Heutige Elektronik-Systeme sind eine zunehmend komplexere Verbindung aus Hard- und Software-Komponenten. Sie beinhalten einen immer größeren Umfang an Funktionen, erfordern mehr Rechenleistung, müssen verschiedenste Schnittstellen bedienen, Standards genügen und zu etablierten Marktlösungen kompatibel sein. Die offensichtliche Vielzahl an Anforderungen sollte sehr frühzeitig in den Systementwurf eingehen. Je später Entscheidungen im Entwurf geändert werden, desto kostspieliger wird deren Umsetzung, schreibt Dr. Roland Jancke, Abteilungsleiter Entwurfsmethoden.

Die neuen Anforderungen können eine größere Siliziumfläche bedeuten, um all die neuen Funktionen und erweiterten Kapazitäten unterzubringen. An anderen Stellen geht der Trend zu höherer Integration, sei es um Bauraum zu sparen, Energieverbrauch zu reduzieren oder um spezifische Technologien zu verbinden. Diese höhere Dichte an Bauelementen führt zu zusätzlichen multiphysikalischen Effekten, wie elektro-thermischen und thermo-mechanischen Wechselwirkungen. Hinzu kommen für sicherheitskritische Anwendungen weitere Anforderungen im Bereich von Safety und Security sowie als Grundlage dafür Anforderungen an die Zuverlässigkeit und die Robustheit. Schließlich müssen die entstehenden Lösungen marktfähig sein, das bedeutet, bereits im Entwurf sind die Kosten einzelner Komponenten und Entscheidungen zu berücksichtigen.

In der Phase der System-Entwicklung geht es neben der Validierung der Funktionalität um relevante Architektur-Entscheidungen. Die Struktur des Systems wird festgelegt, also die Unterteilung des Gesamtsystems in Subsysteme. Auch die Wahl, welche Teile des Systems in Software und welche in Hardware realisiert werden, steht in dieser frühen Entwicklungsphase an. Für den Hardware-Teil gibt es wieder eine Reihe von Varianten, wie Mikroprozessor, Mikrocontroller, FPGA, ASIC oder auch eine Kombination daraus. Gerade bei der Aufteilung einer sehr komplexen Hardware-Implementierung auf mehrere ICs oder auch innerhalb eines System-in-Package auf mehrere Chiplets ist es besonders wichtig, eine gute Teilung zu finden und die Grenzen der Subsysteme geeignet festzulegen. Dazu wird betrachtet, wie eng die Kopplung der Teilsysteme an den Schnittstellen hinsichtlich des Datenaustauschs ist. Welche Bandbreite ist erforderlich? Wie viele Kanäle mit welchen Taktraten werden benötigt? Welche Latenz für die Übertragung ist erlaubt?

Wichtig ist, solche grundlegenden Entscheidungen zur Partitionierung des Systems und zur Technologieauswahl für die Subsysteme frühzeitig und informiert zu treffen. Das bedeutet, die entsprechenden Anforderungen zu kennen und die Auswahl mit dem Wissen über die Konsequenzen vorzunehmen. Ein Weg, diese informierten Entscheidungen vorzubereiten, besteht darin, modellbasiert Systeme aufzubauen, also die Prinzipien der Modellbasierten Systementwicklung (Model based systems engineering – MBSE) konsequent in der Systementwicklung anzuwenden.

UML-Diagramme bilden Strukturen und Abläufe ab

Dieser Begriff wird seit vielen Jahren im Bereich der Software-Entwicklung verwendet. Grundlage hier sind UML-Diagramme, die Strukturen und Abläufe unabhängig von einer Implementierungssprache abbilden. Auf dieser Basis kann dann automatisiert die Software-Implementierung kodiert werden. Hardware wird seit jeher mit Hilfe von Modellen entwickelt, beginnend mit den ersten Transistor-Modellen und Simulationstools wie SPICE. Die Herausforderung der modernen Systementwicklung besteht darin, beide Welten zusammenzubringen und sehr frühzeitig in der Entwicklungsphase ein integriertes Modell des spezifizierten Systems zu erstellen. Idealerweise abstrahiert ein solches Modell noch von der Frage, welche Teile in Hardware und welche in Software umgesetzt werden, sondern orientiert sich an zu realisierenden Funktionen.

Die Vorteile einer solchen modellbasierten Arbeitsweise von Beginn an sind vielfältig. Das abstrakte Systemmodell lässt sich als Referenz für die Implementierung verwenden, mit fortschreitender Entwicklung können Teile des Modells verfeinert und durch detailliertere Sichten ersetzt werden. Auf der anderen Seite können Systemmodelle zur Kommunikation mit Zulieferern genutzt werden. Dann erfüllen sie den Zweck einer ausführbaren Spezifikation, um Fehlinterpretationen von textuellen Beschreibungen einer Funktion zu vermeiden. Umgekehrt verlangen Endgeräte-Hersteller heute teilweise von ihren Zulieferern bereits ein Modell der Komponente, um das Zusammenspiel der einzelnen Teile bei der Ausführung komplexer Funktionen im Endgerät vorab simulativ testen zu können. Ebenso dienen Modelle der Hardware den Entwicklern der Software als virtuelle Prototypen, mit denen sie deutlich früher in der Entwicklung starten können, weit bevor die reale Hardware vorliegt, um damit die Zeit bis zum Markteintritt zu verkürzen.

Anforderungen auf Vollständigkeit prüfen

Ein weiteres Potential der modellbasierten Systementwicklung besteht darin, bereits in der Phase des Anforderungsmanagements (Requirements Engineering) damit zu beginnen. Sobald Anforderungen eine erste Stufe der Formalisierung erreicht haben, lassen sie sich als Modelle auffassen. Das bietet die Möglichkeit, Tests auf Vollständigkeit und Widerspruchsfreiheit der Anforderungen durchzuführen sowie für die Nachverfolgbarkeit jederzeit einen Link zwischen der formulierten Anforderungen und deren Umsetzung im System herzustellen.

Gleichzeitig lassen sich Systemmodelle als Startpunkt für die oben dargestellten Entwicklungen direkt aus formalisierten Beschreibungen der Anforderungen generieren. Darüber hinaus können aus ihnen automatisiert Testbenches erzeugt werden, um die Erfüllung der Anforderung zu überprüfen. Damit wird der Link vom Systementwurf zur Systemvalidierung hergestellt. Das schließt am Ende den Entwicklungszyklus indem sich die Erfüllung von Anforderungen dokumentieren und damit ein konsequentes Qualitätsmanagement umsetzen lässt.

Insgesamt verlangt die Komplexität und Heterogenität heutiger Hardware-Software-Systeme neue Herangehensweisen für die Prozesse zur Entwicklung und Qualitätssicherung. Die konsequente und durchgängige Umsetzung einer Modellbasierten Systementwicklung erstreckt sich von den Anforderungen bis zur Dokumentation. Sie kann die Zeit bis zur Markteinführung eines Produkts verkürzen und leistet einen wichtigen Beitrag zur Vermeidung von Fehlern in der Kommunikation mit Zulieferern oder Auftraggebern sowie bei der Implementierung der Systeme.