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

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

Anzeige

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

Anzeige

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

Embedded-Systeme per Supervised Machine Learning für eine bestimmte Aufgabenstellung zu trainieren anstatt den gewünschten Zusammenhang zwischen den jeweiligen Eingangs- und Ausgangsdaten anhand wissensbasierter Regeln in einer Hochsprache zu codieren, ist für viele Anwendungen inzwischen die deutlich effektivere Alternative.‣ weiterlesen

Comp-Mall stellt den Embedded-Computer Modell DS-1202 vor. Das System bietet zwei PCI/PCIe-Steckplätze und damit Flexibilität wie ein 19"-System.‣ weiterlesen

Vision-App-basierte Industriekameras der künftigen IDS NXT Familien Rio und Rome sind bereits KI-Ready. Eine von IDS entwickelte KI-Vision-App macht sie zur energieeffizienten, aber dennoch leistungsstarken Inferenzkamera mit integriertem KI-Beschleuniger. Mit vorhandenen neuronalen Netzen können damit vielfältige, KI-basierte Bildverarbeitungsaufgaben in kurzer Zeit realisiert werden.‣ weiterlesen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige