# Rational Rhapsody

Rational Rhapsody ist eine UML-basierte grafische Entwicklungsumgebung für Systemingenieure und für Softwareentwickler, die Echtzeit- oder eingebettete Systeme und -Software entwickeln. Rational Rhapsody verwendet grafische Modelle, um den Quellcode für Software-Anwendungen in verschiedenen Sprachen wie C++, C, Java, C# und Ada83, Ada95 und Ada2005 zu generieren.
Rational Rhapsody unterstützt verteilt arbeitende Teams bei der Zusammenarbeit. Es hilft Anforderungen besser zu verstehen und zu detaillieren, Komplexität mit standardisierten Notationen (UML, SysML, AUTOSAR, DoDAF, MODAF, UPDM) auf einer abstrakteren Ebene zu visualisieren und die Funktionalität von Anwendungen früh im Entwicklungsprozess zu validieren.
Rational Rhapsody wurde ursprünglich vom Unternehmen I-Logix Inc. mit Hauptsitz in Andover, Massachusetts, und einer Entwicklungsmannschaft in Israel entwickelt und 1998 unter dem Namen I-Logix Rhapsody vorgestellt. Die Firma I-Logix wurde im Jahr 2006 von dem schwedischen Unternehmen Telelogic AB mit Sitz in Malmö übernommen und das Produkt danach unter dem Namen Telelogic Rhapsody vermarktet. Nach der Übernahme der schwedischen Telelogic AB durch IBM im Jahr 2008 wurde Rhapsody in IBMs Software-Brand Rational integriert.
Obwohl IBM angibt, eingebettete Systeme und verteilt arbeitende Teams zu unterstützen, werden weder die ARM-Architektur noch gängige Versionierungssysteme wie SVN, Git oder Mercurial unterstützt.

## Architektur

Rational Rhapsody steht in vier, untereinander kompatiblen, teamfähigen Rich Client Editionen für Arbeitsplatzrechner, und ab der Version 8 der Rich Clients auch für Web Clients auf einem auf der IBM Jazz-Technologie basierenden Design Server zur Verfügung. Unabhängig davon existiert eine separate Rich Client Edition für Einzelanwender:

### Rational Rhapsody Architect for Systems Engineers

Die Architect for Systems Engineers Edition ist die einfachste Basisversion. Sie erlaubt das Erstellen und das Bearbeiten von UML und SysML basierten Designs, sie erlaubt die Nachverfolgung von Anforderungen im Modell, die Erstellung von Dokumentationen und den Austausch von Modellen mit den anderen Editionen.

### Rational Rhapsody Designer for Systems Engineers

Die Designer for Systems Engineers Edition enthält alle Funktionen der Architect for Systems Engineers Edition, ermöglicht aber zusätzlich die Simulation und Validierung des Systemverhaltens auf grafischer Ebene.

### Rational Rhapsody Architect for Software

Die Rhapsody Architect for Software Edition enthält ebenfalls die Funktionen der Architect for Systems Engineers Edition, ermöglicht aber zusätzlich die Generierung von C, C++, Java oder C# Code Frames, unterstützt das Reverse Engineering von existierendem Code und erlaubt die Modellierung von AUTOSAR Designs.
Eine OEM-Version der Rhapsody Architect for Software Edition mit dem Namen Embedded UML Studio II unterstützt auf einem eigenen Laufzeitsystem basierend auch kleinste, in C programmierte Embedded Echtzeitsysteme.

### Rational Rhapsody Developer

Die Rhapsody Developer Edition ist das Flaggschiff der Familie und enthält neben den Funktionen aller obigen Editionen eine vollständige Codegenerierung für Architektur und Verhalten. Sie kann mit vielen IDEs und Compilern integriert werden und enthält Laufzeitbibliotheken für die Integration des generierten Codes mit den gängigsten Embedded Echtzeitbetriebssystemen.

### Rational Rhapsody Design Manager

Der Rhapsody Design Manager besteht aus zwei Elementen. Eines ist das PlugIn für die oben genannten Rich Client Editionen, das andere eine Serverkomponente für die IBM Jazz Platform. Mit beiden zusammen wird es möglich, mit einem Rich Client erstellte Rhapsody Modelle auf einem Jazz Server zu publishen, um dann kollaborativ, wahlweise mit klassischen Rich Clients oder browserbasiert mit Web Clients rollenbasiert am gemeinsamen Design zu arbeiten, dort Modellelemente OSLC-basiert mit Anforderungen zu verlinken oder aber das Design zu reviewen.

### Rational Rhapsody Modeler

Daneben gibt es eine freie Rhapsody Modeler Edition für Einzelanwender, welche in ihrer Funktionalität in etwa mit dem Rhapsody Architect for Systems Engineers vergleichbar ist. Mit dem Modeler erstellte Designs können in die teamfähigen Editionen zur Weiterbearbeitung importiert werden, eine Bearbeitung der mit den teamfähigen Editionen gespeicherten Designs im Modeler ist nicht möglich.

## Funktionsweise

Die Rational Rhapsody Developer Edition unterstützt und automatisiert folgende Schritte im Modellbasierten Entwicklungsprozess:
* Import und Synchronisierung von Anforderungen aus Requirements Management Werkzeugen wie Rational DOORS, Rational RequisitePro, Borland Caliber oder auch aus Office Dokumenten
* Erstellung eines grafischen Modells unter Verwendung einer standardisierten, UML-basierten Notation (UML, SysML, AUTOSAR, DoDAF, MODAF, UPDM) oder einer eigenen UML-basierten Domain-Specific Language (DSL)
* Verknüpfung von Modellelementen mit Anforderungen für Nachverfolgbarkeit und für Auswirkungsanalyse
* Integration von funktionalen Blöcken aus anderen Modellierungswerkzeugen (z. B. Matlab Simulink) in die Architektur
* Grafische Validierung des Verhaltens auf Basis von Sequenzdiagrammen und Zustandsautomaten
* Reverse Engineering und grafisches Refactoring für bestehenden Code
* Generierung des vollständigen Applikationscodes und automatischer Aufruf eingebundener externer Compiler
* Dynamische, bidirektionale Modelle zur Code Assoziation, Navigation und Transformation
* Konfigurierbare Templates und Regeln für die Codegenerierung
* Verwendung verschiedener anpassbarer Laufzeitbibliotheken (Object Execution Framework) zur Anbindung an Echtzeitbetriebssysteme
* Optionale automatisierte Testarchitektur- und Testfallerstellung sowie automatische Testdurchführung mit Rational Rhapsody Testconductor
* Optionale automatische Testfallerstellung für Model- und Decision-Coverage mit Rational Rhapsody ATG
* Optionale Anbindung an Test- und Qualitätsmanagement Werkzeuge wie Rational Quality Manager um ein externes Testmanagement zu ermöglichen
* Anbindung an Versionierungs- und Change-Management Systeme wie Rational ClearCase, Rational Synergy/CM, SVN und andere
* Eigenes modellbasiertes Diff-Merge Werkzeug mit automatisierbarer Trivial Merge Funktion zur Einbindung in Versionierungswerkzeuge
* Integration in die JAZZ-basierte Teamkollaborationsplattform Rational Team Concert
* Template-gesteuerte Reportgenerierung mit Rational Publishing Engine
* Austausch von Modellen und Teilmodellen mit anderen UML Modellierungswerkzeugen über das standardisierte XML-basierte XMI-Format
* Offene Microsoft COM- und Java-APIs zur Automatisierung und für eigene Erweiterungen des Werkzeugs
* Kommandozeilenversion zur Integration in automatisierte Build-Prozesse

## Plattformen, Programmiersprachen und Betriebssysteme

Unterstützte IDEs:
* Eclipse – wahlweise als PlugIn oder mit Workflow-Integration
* Microsoft Visual Studio 2008 – mit Workflow-Integration
* Windriver Workbench – mit Workflow-Integration
* Greenhills Multi – mit Workflow-Integration
* Weitere Compiler – mit makefile basiertem Buildprozess
Unterstützte Betriebssysteme für Targetapplikationen:
* Windows, Windows Embedded, Windows CE
* Linux
* Solaris
* Windriver VxWorks
* Greenhills Integrity
* Nucleus
* Zahlreiche kleine 16/32 bit Echtzeitbetriebssysteme
* Adaptierbar auf eigenes Custom RTOS
* MainLoop Adapter ohne RTOS

## Quellen

* Rational Rhapsody Product Line - alle Rhapsody Editionen im Überblick (englisch)
* IBM Rational Rhapsody - Produktübersicht bei IBM developerWorks (englisch)
* Download: Rational Rhapsody Developer Evaluierung und eine Evaluierungslizenz (englisch)
* Download: IBM Rational Modeler Evaluierung - die freie Modeler Version (englisch)
* IBM Academic Initiative – IBM Technologie kostenlos für Lehre & Forschung
* Embedded UML Studio II - die OEM-Version von Willert Software Tools für kleinste Embedded Echtzeitsysteme
* IBM Rational Helps Eaton Develop Smarter Hybrid Systems for UPS - using Rhapsody, ein Video auf youtube
* DeveloperWorks Rhapsody Forum - hosted by IBM (englisch)
* Rhapsody4You - independent Rhapsody User Forum (englisch)
* Embedded UML Forum - hosted by Willert Software Tools
* "Werkzeuggestützte Softwareentwicklung mit Rhapsody" Hochschule Konstanz Technik, Wirtschaft und Gestaltung Fakultät Informatik (PDF; 4,8 MB)