C2 und Xgen
Bei Softwareprojekten wird häufig unterschätzt, dass Komplexität und Aufwand exponentiell zur Anzahl der Requirements steigen, wenn nicht von Anfang an durch eine durchdachte Softwarearchitektur gegengesteuert wird.
Mit C2 (CC == Components for C/C++) entwickelte Triple-S eine in der Syntax zu C/C++ ähnliche Beschreibungssprache, mit der beliebig komplexe Software als ein hierarchisch strukturiertes System, bestehend aus einfach zu handhabenden SW-Komponenten, beschrieben werden kann. Während Sie mit C/C++ oder einer anderen Programmiersprache das funktionale Verhalten implementieren, beschreiben Sie mit C2 die Struktur der Software. Dies klärt von Anfang an Zuständigkeiten und Schnittstellen zwischen den einzelnen Entwicklern und Teams und hilft so insbesondere das klassische Integrationsdesaster zu vermeiden, wenn das erste Mal alle Teilsysteme zusammen geführt werden sollen. Auch in späteren Projektphasen führt dies immer wieder zu erleichtertem Aufatmen, wenn keine Integrationsprobleme für Erweiterungen auftreten.
C2 basiert auf einem sehr schlanken Komponentenmodell, bestehend aus Datasets, Interfaces, Komponenten und Hyperkomponenten und gehört zum Alltagshandwerkszeug des Softwarearchitekten, kann aber auch vom geübten C/C++ Entwickler mit extrem wenig Einarbeitungszeit sofort angewandt werden.
Xgen ist der (Sourcecode-) Generator von Triple-S der aus C2 den zugehörigen C/C++ Sourcecode generiert, wobei der Anwender mittels der kompakten c2x Scriptspache detailliert festlegen kann wie der zu generierende Code auszusehen hat. Nach identischem Schema können auch Dokumentations-, Projekt-, make- und beliebige andere Dateiformate generiert werden.
Xgen generiert zu allen definierten Komponenten und Interfaces alle spezifizierten Funktionsrümpfe und erspart damit Entwicklungszeiten gerade in der Projektanfangsphase, in der nach Möglichkeit sofort nach Projektstart ein erster Prototyp vorliegen soll.
Xgen stellt neben anderen ein C-Sourccode-Modell zur Verfügung das entsprechend den hohen Anforderungen für Embedded – und Echtzeitbetriebsysteme entwickelt wurde. Über Steuerungsparameter kann der generierte Sourcecode so optimiert werden, dass zusätzlicher Verbindungscode durch den C-Präprozessor vollkommen eliminiert wird und somit absolut kein zusätzlicher Bedarf an Flash-Speicher oder CPU-Resourcen entsteht. In C implementierte C2 Komponenten können mehrfach instanziert werden, ohne dass der Anwender seinen C Code dazu anpassen muss. Code von vorhandenen Modulen kann ohne Änderung für eine C2 Komponente verwendet werden.
Für Multitreading-/Multitasking-Systeme kann mit Xgen zu vorgegebenen Interfaces ein komplettes Messagingsystem generiert werden. Entsprechend wird auch das Architektur-Pattern Datapool für prozessornahe Schichten unterstützt, wobei Daten zwischen verschieden Memorytypen (ROM, RAM, EEPROM,..) verschoben werden können, ohne dass dazu Code händisch umgeschrieben werden muss.
Xgen wurde bereits sehr erfolgreich in Automotive-Software-Großprojekten eingesetzt (s. Empfehlungsschreiben). XGen realsisiert den Virtual Function Bus (VFB) nach AUTOSAR Standard Philosophie.
VISUAL Architect ist die grafisch interaktive Komfortergänzung zu Xgen.
