Rhapsody in J Modellierung von Echtzeitsystemen Tobias Schumacher tobe@uni-paderborn.de Rhapsody in J - Modellierung von Echtzeitsystemen p.1/17
Anspruch des Tools Einsatzbereiche/Features Modellierung von eingebetteten Echtzeitsystemen Test der Modelle Simulation der Modelle Marktführer im Bereich Codegenerierung in Ada, C, C++, Java (je nach Version) Reverse Engineering Unterstützte Plattformen Windows NT/2000/XP Solaris V2.7/V8 Rhapsody in J - Modellierung von Echtzeitsystemen p.2/17
Werkzeuge & Architektur Diagrammeditor Codegenerator Simulator VBA-Schnittstelle Schnittstelle zu diversen Configuration Management Tools Rhapsody in J - Modellierung von Echtzeitsystemen p.3/17
Unterstützte Diagrammtypen Klassen-/Objektdiagramme Aktivitätendiagramme Statecharts Sequenzdiagramme Use Case Diagramme Kollaborationsdiagramme Komponentendiagramme Deployment Diagramme Rhapsody in J - Modellierung von Echtzeitsystemen p.4/17
Klassendiagramme Rhapsody in J - Modellierung von Echtzeitsystemen p.5/17
Objektdiagramme Rhapsody in J - Modellierung von Echtzeitsystemen p.6/17
Sequenzdiagramme Rhapsody in J - Modellierung von Echtzeitsystemen p.7/17
Sequenzdiagramme(2) Beschreibung eines möglichen speziellen Ablaufs keine Codegenerierung angegebene Events und Nachrichten werden den Klassen/dem System hinzugefügt Haupteinsatzzweck: Planung, Dokumentation und Simulation Kollaborationsdiagramm beschreiben dagegen Objektbeziehungen in einem speziellen Zustand Rhapsody in J - Modellierung von Echtzeitsystemen p.8/17
Statechart Rhapsody in J - Modellierung von Echtzeitsystemen p.9/17
Statecharts (2) einsetzbar, um das Verhalten einer Klasse zu beschreiben Klasse muss vorher im Modell erzeugt werden Events werden automatisch zu Methoden der Klasse hinzugefügt Unterdiagramme möglich werden zur Codegenerierung genutzt können nach der Codegenerierung zur Visualisierung von Objekten verwendet werden Rhapsody in J - Modellierung von Echtzeitsystemen p.10/17
Aktivitätendiagramme einsetzbar, um das Verhalten einer Klasse oder Methode zu beschreiben Klasse oder Methode muss vorher im Modell erzeugt werden werden zur Codegenerierung genutzt können nach der Codegenerierung zur Visualisierung von Objekten bzw. deren Methoden verwendet werden Statechart und Aktivitätendiagramm schliessen einander bei der Beschreibung von Klassen aus Rhapsody in J - Modellierung von Echtzeitsystemen p.11/17
Schritte zur Simulation Erzeugen einer Konfiguration Code erzeugen Code bearbeiten Übersetzen Gewünschtes Diagramm auswählen Simulation starten evtl. Events generieren Rhapsody in J - Modellierung von Echtzeitsystemen p.12/17
Simulation eines Statechart Rhapsody in J - Modellierung von Echtzeitsystemen p.13/17
Zeit nur rudimentäre Unterstützung von Zeit tm(zeit in ms) in Sequenz- und Statechartdiagrammen Keine direkte Unterstützung von Kontinuierlichen Zeitmodellen (laut Dokumentation problemlos möglich, indem man den Code dafür entweder von Hand erstellt oder eben ein anderes Tool benutzt, um entsprechenden Code zu erzeugen) Rhapsody in J - Modellierung von Echtzeitsystemen p.14/17
Codegenerierung Codegenerierung in C, C++, Ada, Java Unterstützung aller RTOS, für die die OSAL-Schnittstelle implementiert ist, momentan z.b. QNX Neutrino VxWorks PsosX86 Microsoft Borland... erzeugter Code für Java fehlerhaft Code kann geändert und automatisch in Modell übertragen werden Rhapsody in J - Modellierung von Echtzeitsystemen p.15/17
Qualität Notation Modellierung einfach teilweise Unterschiede zu Standardbenennungen in UML GUI wichtige Funktionen übersichtlich angeordnet selten benötigte Einstellungen in langer Liste Dialogfenstergrössen werden nicht gespeichert Aussehen eines alten Windows 3.1 Programms Rhapsody in J - Modellierung von Echtzeitsystemen p.16/17
Qualität (2) Tool (ausser GUI) anschauliche Simulation sehr ausfürliche Dokumentation in Form von PDF-Dateien kaum zu gebrauchende Online-Hilfe häufige Abstürze (Segmentation fault, Solaris-Version) Java-Codegenerierung fehlerhaft Rhapsody in J - Modellierung von Echtzeitsystemen p.17/17