Consilia hilft seinen Kunden, ihr Budget für die Softwareentwicklung zu senken.
Wir entwickeln seit vielen Jahren Anwendungen und eingebettete Firmware.
Wir verwenden das Git-Repository-System täglich, ganz gleich, ob wir an Linux-Anwendungen oder eingebetteter Echtzeit-Software arbeiten.
Eine übliche Frage für Entwickler elektronischer Produkte, die Dienstleistungen von einer Softwareentwicklungsfirma bestellen, ist, wie Software in Hardware eingebettet werden kann.
Ein erheblicher Vorteil der Zusammenarbeit mit dem Forschungs- und Entwicklungsunternehmen Consilia ist, dass wir sowohl in der Hardware- als auch in der Softwareentwicklung kompetent sind.
Sie müssen sich nicht mit mehreren Lieferanten herumschlagen.
Wir können SW und HW in einem eingebetteten Gerät integrieren und bieten auch Systemtests an.
Was wir für Ihr Produkt tun können
Wir bieten Dienstleistungen in jeder Phase des Lebenszyklus der Softwareentwicklung.
Es hängt vom Kunden ab, ob er eine schlüsselfertige Lösung benötigt, d. h. ob er unsere gesamte Prozesskette oder nur einige unserer Dienstleistungen in Anspruch nehmen möchte, insbesondere wenn der Kunde über ein eigenes Team mit einer Lücke in einer bestimmten Kompetenz verfügt (z. B. Softwaretests).
Unser typischer Arbeitsablauf basiert auf den folgenden kontrollierten Prozessen:
Studien zur Durchführbarkeit
Vor der Realisierung des Projekts analysieren wir sorgfältig, ob und welche Technologien alle Anforderungen erfüllen können, einschließlich der Herstellbarkeit und der Produktionskosten.
Für eine solche Analyse benötigen wir bestimmte Angaben vom Kunden - z. B. technische Anforderungen, Zielkosten und Zeitplan.
Entwurf einer Software-Architektur
Wir betrachten den Entwurf der SW-Architektur als einen wichtigen Teil, bei dem wir in der Anfangsphase einen angemessenen Aufwand betreiben und später viele Kosten sparen.
Wir skizzieren die Schichten der Software, schlagen die Funktionsblöcke vor und definieren die Beziehungen zwischen ihnen.
Nachweis der Machbarkeit
In einigen Fällen erstellen wir einen schnellen Prototyp, der uns (und natürlich dem Kunden) zeigt, ob der Systemarchitekturkandidat eine große Chance hat, die Schlüsselfunktionalitäten und Anforderungen zu erfüllen.
Bei einem solchen POC (Proof of Concept) testen und messen wir auch kritische Punkte, z. B. die mechanische Stabilität, die Reaktionsfähigkeit des Systems, den Datendurchsatz und den Stromverbrauch.
Datenflussmodelle
Auf der Grundlage der Softwarearchitektur erstellen wir detaillierte Datenflussmodelle, bei denen wir genau sehen, ob sie den Anforderungen entsprechen.
Wir verwenden die Ergebnisse dieser Phase als Grundlage für die Erstellung der Module/Einheiten und des Komponententestplans.
Forschung zu Lösungen
Viele Marketingmodelle lassen sich auf verschiedene Weise realisieren.
Wir analysieren immer mehrere Lösungen oder Konzepte, um eine Art internen Wettbewerb zwischen ihnen anzuregen und die beste von ihnen auszuwählen.
Umsetzung
Wir implementieren die Software unter weitgehender Verwendung eines Revisionskontrollsystems. Wir haben seit vielen Jahren sehr viel Erfahrung mit Git.
Beim Zusammenführen der Feature-Branches in den Master-Branch unterstützt uns das System insbesondere bei Code-Reviews.
Unit-Tests
Unser Team kümmert sich intern um die Unit-Tests.
Wir verwenden die Unit-Tests, um die Unit/ das Modul auf der niedrigstmöglichen Ebene zu debuggen, was für uns einer der kostensparendsten Wege zu stabiler und zuverlässiger Software ist.
Vertikale Integration der Komponenten
In Projekten, in denen der agile Ansatz als der beste gewählt wurde, führen wir eine vertikale Integration der Komponenten durch, um alle ein bis zwei Wochen ein sichtbares Merkmal oder eine Funktionalität zu erhalten.
So kann der Produktverantwortliche verfolgen, ob das Projekt geradlinig verläuft, und mögliche kritische Pfade so schnell wie möglich aufdecken.
Integration mit HW
Die Zusammenarbeit des Software- und Hardwareteams ist unsere Stärke.
Unsere Hardware-Kollegen sind sehr erfahren in der Entwicklung eigener Hardware-Module und der Planung von Hardware-/Software-Schnittstellen im Voraus.
Daher führen wir in der Regel eine nahtlose Hardware-/Software-Integration durch und vermeiden, dass kritische Systemfehler zu spät entdeckt werden.
Funktionstests
Im Rahmen der vertikalen Integration testen wir die Systemfunktionen auf der Grundlage des Funktionstestplans.
Wenn es sich anbietet, erstellen wir unser eigenes Testsystem und implementieren die Tests so, dass sie jederzeit wiederverwendet und wiederholt werden können.
Regressionstests
Wenn wir neue Funktionen hinzufügen und implementieren, testen wir auch die bestehenden, damit das gesamte System in all seinen Teilen zuverlässig funktioniert. Im Grunde sind Regressionstests für uns regelmäßig wiederholte Funktionstests.
Daher verwenden wir das Testsystem und die Testfälle aus den Funktionstests wieder.
Erhalten Sie Unterstützung von unseren Experten in allen Phasen der Softwareentwicklung und heben Sie Ihr Projekt auf die nächste Stufe.
Wir wissen, wie wir unser Software-Entwicklungsteam führen.
Wir verwenden verschiedene Entwicklungsansätze.
In den letzten zwanzig Jahren haben wir Erfahrungen mit zwei verschiedenen Softwareentwicklungsprozessen gesammelt: V-Modell und Agile; für Agile können wir sowohl im Scrum- als auch im Kanban-Modus arbeiten.
Wenn Sie sich für diese Softwareentwicklungsprozesse interessieren, erfahren Sie mehr über unsere Arbeit in unserem Artikel Vergleich von V-Modell und agiler Softwareentwicklungsmethodik.
Bei Prüf- und Messgeräten erstellen wir häufig eine eingebettete Softwareanwendung für das Zielgerät selbst und fügen eine native oder webbasierte Anwendung für das Client-Gerät hinzu. Die Schnittstelle kann eine herkömmliche kabelgebundene (USB oder kabelgebundenes LAN) oder drahtlose (Bluetooth, Wi-Fi, LTE und andere) sein.
Der gleiche Ansatz gilt häufig für IoT-Anwendungen, bei denen Sensoren auf Bare-Metal-Software laufen und über Bluetooth oder andere IoT-Verbindungen mit einem Gateway kommunizieren.
Das Gateway kann mit einem leichtgewichtigen Linux-Betriebssystem ausgestattet sein und bietet in der Regel eine Webserver-Anwendung für die Verbindung zu einem beliebigen Ort in der Welt. Der Benutzer kann über eine mobile Software mit benutzerfreundlichen Gadgets auf das System zugreifen.
Wichtigste Anwendungsbereiche
Wir bieten unsere kundenspezifische Softwareentwicklung für eine Vielzahl von Märkten an.
Unser Team arbeitete unter anderem für Segmente der Automobil- oder Luftfahrtindustrie, die einen besonderen Bedarf an Softwarezertifizierung haben.
Technologien und Plattformen
Diese Technologien und Plattformen stehen hinter unserer Softwareentwicklung.