Embedded Development

Die Softwarequalität durch klare Prozesse verbessern

Kontaktieren Sie uns

Bevor Sie das Anmeldeformular ausfüllen, lesen Sie bitte die Datenschutzerklärung gemäß Artikel 13 der EU-Verordnung 2016/679.

Eingabe ungültig
Eingabe ungültig
Eingabe ungültig
Eingabe ungültig
Eingabe ungültig
Eingabe ungültig
Eingabe ungültig

Privacy


Ich erkläre, dass ich die Datenschutzerklärung gelesen und verstanden habe und erkläre mich mit der Verarbeitung meiner persönlichen Daten durch Reply SpA für Marketingzwecke einverstanden, insbesondere für den Erhalt von Werbe- und kommerziellen Mitteilungen oder Informationen über Reply Veranstaltungen oder Webinare unter Verwendung automatisierter Kontaktmittel (z.B. SMS, MMS, Fax, E-Mail und Webanwendungen) oder herkömmlicher Methoden (z.B. Telefonanrufe und Briefe).

Eingebettete Software

Fitnesstracker, Geldautomat und zentrale Heizungsanlage haben eines gemein: Sie funktionieren dank Embedded Software. Diese steuert, überwacht und regelt die Geräte – und zwar so, dass es der Nutzer gar nicht bemerkt.

Damit diese Anwendungen unauffällig im Hintergrund ablaufen können, bedarf es jedoch gerade in der schnelllebigen Umgebung des IoT eines besonderen Know-hows bei der Entwicklung.

So funktionierts

Die Dokumentation und das organisierte Testen gehören beim Embedded Development zu den größten Herausforderungen. Unsere Experten von Concept Reply zeigen, was Sie dabei beachten sollten und welche Prozesse und Tools eine erfolgreiche Entwicklung ermöglichen.

Dokumentation sinnvoll gestalten

Die Softwaredokumentation ist ein wesentlicher Bestandteil der Softwareentwicklung. Sie erläutert den Verwendungszweck und die Möglichkeiten, die die Software bietet. Zudem verbessert eine gute Dokumentation die Effizienz während des Entwicklungsprozesses und die Wartbarkeit der Software. Bei der Dokumentation sollten daher die folgenden Tipps beachtet werden:

Beim Embedded Development ist es ratsam, eine README- Datei bereitzustellen, die grundlegende Informationen über den Zweck und Anweisungen zum Erstellen bzw. Ausführen der Software enthält. Zudem sollte diese über Protokolldefinitionen, Verzweigungsstrategien, Codestil und Teststrategie Aufschluss geben.

Die Architekturdokumentation sollte ein integraler Bestandteil jedes Embedded Software-Projektes sein. Es ist wichtig, dass diese leicht zugänglich und einfach zu aktualisieren ist. Aus diesem Grund ist der Erfahrung von Reply nach der "Dokumentation-as-Code"-Ansatz der Schlüssel zum Erfolg. Dabei ist die Verknüpfung des Projektstatus mit der Dokumentation essenziell. Aus diesem Grund empfehlen wir die Verwendung von PlantUML und des C4-Modells. Die Beschreibung sollte als Markdown-Datei direkt im Code-Repository gespeichert werden. Das ermöglicht einen einfachen Zugriff, eine unkomplizierte Aktualisierung und die Möglichkeit der Versionskontrolle.

Für den Code selbst ist die Verwendung des Industriestandards Doxygen hilfreich. Dieser ist frei verfügbar, einfach zu bedienen und kann in das Build-System integriert werden. Das ermöglicht eine automatische Ausführung bei jedem Build. So kann der Zugang zu APIs gewährleitet werden, was bei der Analyse von Abhängigkeiten nützlich sein kann.

Neben der Dokumentation, die Auskunft über die allgemeine Teststrategie, die verwendeten Tools und die durchgeführten Tests gibt, müssen auch die Testergebnisse selbst dokumentiert werden. Ein vordefiniertes Format (Testbericht) ist dabei essenziell. Dieses sollte mit jedem Release zur Verfügung gestellt werden, damit der Stand des Projekts zu jedem spezifischen Release-Punkt leicht nachvollziehbar ist.

Die richtigen Tests auswählen

Leider wird das Testen immer wieder als nicht notwendig für das Endprodukt bewertet, weshalb es oft weggelassen wird. Deshalb sollten Aufwandsschätzungen, wann immer es möglich ist, das Testen bereits mit einbeziehen. Wenn die Tests von Anfang an eingeplant sind, ist der Aufwand für diese nicht allzu groß. Die Vorteile sind vielfältig: Tests zeigen, ob die Implementierung die Anforderungen erfüllt, sie sorgen für eine verbesserte Qualität und reduziert die Fehler, bevor das Produkt den Benutzer erreicht. Zudem können Sie die Gesamtkosten der Entwicklung senken.

Wenn es möglich ist, sollte eine umfassendere Teststrategie umgesetzt werden. Auf jeden Fall sollten jedoch die folgenden Tests durchgeführt werden:
  • Unit-Tests

    überprüfen das Verhalten einer einzelnen Komponente, die vom Rest des Systems isoliert ist. Eine Komponente kann eine einzelne Funktion oder eine Sammlung verwandter Funktionen sein. Bei Unit-Tests wird der Rest des Systems simuliert. Wenn sie zu Beginn des Projekts eingerichtet werden, können Unit-Tests parallel neben der Implementierung geschrieben werden – ohne viel Aufwand zu verursachen. Idealerweise sollte die Ausführung der Unit-Tests automatisiert werden, um eventuelle Regressionen frühzeitig zu erkennen.

    strip-0
  • strip-1

    Integrationstests

    sind ein zusätzlicher Baustein neben den Unit-Tests. Anstatt die Module isoliert zu testen, werden mehrere Module kombiniert, um ihr Verhalten und ihre Interaktionen zu untersuchen. Die Herausforderungen bei den Integrationstests sind ähnlich wie bei den Unit-Tests – obwohl weniger vom System simuliert werden muss, kann die Hardwareabhängigkeit immer noch ein Problem darstellen. Wenn die Komplexität des Systems gering genug ist, kann es sinnvoll sein, Integrationstests zu überspringen und sie durch umfassendere Funktionstests zu ersetzen.

  • Funktionstests

    werden durchgeführt, um zu bestätigen, dass sich die erforderliche Funktionalität wie erwartet verhält. Spezifische Nutzungspfade werden auf der Grundlage der Anforderungen definiert und getestet, ohne Einblick in die interne Struktur des Programms zu haben. Auch wenn es nicht realistisch ist, dass jeder Anwendungsfall durch Tests abgedeckt wird, sollten die Tests dennoch durchgeführt werden. Ein umfassender Satz von Tests, der die wichtigsten Aspekte der Software abdeckt, sollte dafür definiert werden.

    strip-2

Concept Reply unterstützt Sie bei Ihrem Projekt

Wir arbeiten ausschließlich nach diesen Grundsätzen. Unsere Experten verfügen über eine ausgeprägte Expertise und unterstützen Sie gerne bei Ihrem Embedded Development-Projekt. Dabei berücksichtigen wir Ihre spezifische Situation und die Tools, die Ihnen bereits vertraut sind. Gemeinsam entwickeln wir mit Ihnen auf Basis dessen sichere, zuverlässige und kosteneffiziente Produkte oder verbessern Ihre Prozesse.
  • strip-0

    Concept Reply

    Concept Reply ist ein auf die Erforschung, Entwicklung und Validierung innovativer Lösungen spezialisierter IoT-Softwareentwickler und unterstützt seine Kunden aus der Automobil-, Fertigungs- und Smart-Infrastructure-Industrie sowie anderen Branchen in allen Fragen rund um das Internet der Dinge (IoT) und Cloud Computing. Ziel ist es, End-to-End-Lösungen entlang der gesamten Wertschöpfungskette anzubieten: von der Definition einer IoT-Strategie über Testing und Qualitätssicherung bis hin zur Umsetzung einer konkreten Lösung.