Anzeige

Entwicklungsprozesse als Basis moderner Softwareentwicklung

Im professionellen Software Engineering sind die Entwicklungs- und Prozessschritte vor der Softwareimplementierung essenziell. Begriffe wie Softwareanalyse und Softwaredesign bzw. Software-Grobdesign und Software-Feindesign aus den Entwicklungsprozessen (z.B. dem V-Modell XT oder dem branchenspezifischen V-Modell Automotive) stehen genau dafür.

 (Bild: MicroConsult GmbH)

ild: Kit8/stock.adobe.com)

Mittlerweile hat es sich herumgesprochen, dass die VHIT-Methode (vom Hirn ins Terminal) mit der heutigen und künftig noch weiter steigenden Komplexität von Embedded- und Echtzeitsoftware/ Echtzeitsystemen nicht mehr vereinbar ist. Im Folgenden sind wichtige Aktivitäten in der Embedded-Software-Analyse, im Embedded-Software-Design bzw. im SW-Engineering kurz beschrieben, die Anwender in der Softwareentwicklung durchführen.

Requirements Engineering steht am Projektbeginn

Als Grundlage für die Softwareentwicklung werden in der Rolle des Software-Anforderungsanalysten zu Beginn die Anforderungen erfasst. Im Rahmen des Requirements Engineering (Anforderungsentwicklung, Anforderungsanalyse) werden die Anforderungen der Stakeholder gesammelt. Hierbei wird unterschieden zwischen funktionalen und nicht-funktionalen Anforderungen (unter anderem Softwarequalitätsmerkmale), um qualitativ hochwertige Anforderungen zu formulieren. Im Rahmen des Anforderungsmanagements werden dann die Anforderungen mit geeigneten Requirements Management Tools verwaltet und gepflegt.

Der Softwarearchitekt definiert die Softwarearchitektur

Softwarearchitekten verfügen über viel Erfahrung in der Softwareentwicklung und beherrschen das Thema Softwarearchitektur in der Praxis. Unter den Aspekten der Wiederverwendbarkeit, Austauschbarkeit, Erweiterbarkeit und Portierbarkeit entwickeln sie idealerweise eine nicht monolithische Softwarearchitektur, die die identifizierten Softwarearchitektur-Anforderungen und Einflussfaktoren bestmöglich erfüllt. Die Architektur beschreibt die grobe Struktur und auch das darauf basierende interaktive Verhalten (Kommunikation). Softwarekomponenten, Softwareschichten, Softwaresubsysteme, Schnittstellen und deren Funktionen (Operationen/Methoden) und optional die wichtigsten Module/Klassen repräsentieren typische Architekturbausteine. Zur Architekturentwicklung werden Architekturrichtlinien, Architekturprinzipien, Architekturmuster (Patterns) und Softwarearchitektur-Beispiele genutzt. Softwarearchitekten treffen wichtige Entscheidungen. Beispielsweise legen sie fest, ob eine synchrone Architektur, eine asynchrone Architektur oder eine Mischform aus beidem entwickelt wird. Sie entscheiden, ob es sich um ein Echtzeit- oder ’nur‘ um ein eingebettetes System handelt. Sie bestimmen über die verwendeten Middleware-Komponenten, wie Feldbus- und Kommunikationsstacks oder das Flash-Filesystem. Diese Komponenten sind als Free Software, Open Source Software und kommerzielle Software erhältlich. Für die Laufzeitarchitektur wählen Softwarearchitekten basierend auf Auswahlkriterien ein geeignetes Echtzeit-/Embedded-Betriebssystem aus. Bei Multicore- und Multiprozessorsystemen verteilen sie die Software auf verschiedenen Rechenknoten und führen bei Bedarf Virtualisierung und Hypervisor ein. Jeder Schritt wird dabei übersichtlich vom Softwarearchitekten dokumentiert.

Empfehlungen der Redaktion

Das könnte Sie auch interessieren

Mit Rust für Embedded-Systeme kommt eine neue Sprache ins Rennen, die traditionell eingesetzte Hochsprachen wie Go oder Python und auch C und C++ starke Konkurrenz machen könnte.‣ weiterlesen

Warum MQTT im IIoT so erfolgreich ist und was man vor dem Einsatz des Übertragungsprotokolls wissen sollte, erläutert der folgende Beitrag.‣ weiterlesen

Anzeige

Markforscher rechnen mit einem Anstieg des weltweiten Datenvolumens auf 175 Zettabyte im Jahr 2025. Über die Hälfte soll dann von vernetzten Applikationen im IoT und der Industrie 4.0 ausgehen. Zusammen mit Edge- und Fog-Technologien sorgen Computer-on-Module (COM), Single-Board-Computer (SBC) und entsprechende Software dafür, die Rechenleistung effizient, schnell und flexibel zur Verfügung zu stellen.‣ weiterlesen

Sei es der Kühlschrank, der meldet, wenn die Milch alle ist, oder der Thermostat, der Nutzungsstatistiken aufs Smartphone sendet: Verschiedenste Produkte, die traditionell nicht über eine Netzwerkverbindung verfügten, werden mittlerweile damit ausgestattet.‣ weiterlesen

Designs für smarte IoT-Geräte zu erstellen ist bei weitem keine leichte Aufgabe. Anwender stellen viele Anforderungen an die intelligenten Helfer. So müssen nahezu unsichtbar IoT-Devices immer aktuelle Updates ausführen können, sollten dabei gleichzeitig modern aussehen und natürlich sollte auch die Rechenleistung stimmen, um komplexe Aufgaben schnell erledigen zu können. Hinzu kommen dann noch Sparsamkeit beim Stromverbrauch und vor allem müssen die Daten der Anwender bestens geschützt sein. Einen Ausblick darauf, wie smarte Geräte diesen Anforderungen gerecht werden können, zeigt dieser Beitrag.‣ weiterlesen

Vom Sensor bis zur Cloud in wenigen Momenten: Die neue schlüsselfertige IoT-Plattform von Datacake macht Prozesse sichtbar. Das Startup bringt nicht nur die intuitiv zu bedienende Cloudlösung mit, sondern vernetzt darüber hinaus Anlagen und Maschinen mittels eigener Hardware auf Mobilfunkbasis. Nutzer können Prozesse in Echtzeit kontrollieren, Regeln für die automatische Anlagensteuerung erstellen und so ihre Prozesse optimieren. Datacake hat die Lösung speziell für die Bedürfnisse von KMU entwickelt.‣ weiterlesen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige