Archiv für den Monat: September 2013

UML Praxis: Modeling in Color – Verbrennungsmotor

Bereits vor zwei Jahren habe ich in diesem Blog über UML in Color berichtet, nämlich in einer Einführung und einem Erfahrungsbericht. Ich habe die Artikel in der Kategorie „Coad“ eingeordnet.

Die meinsten Beispiele zum „UML in Color“ drehen sich um Warenkörbe in Shops und ähnliche Beispiele. UML in Color verspricht, dass aus einem Klassendiagramm die interaktive Sicht herausgelesen werden kann, und genau das soll an dieser Stelle überprüft werden. Als Beispiel habe ich einen Verbrennungsmotor (Ottomotor) gewählt, da dessen Arbeitsprinzip zum einen sehr dynamisch, zum anderen allgemein bekannt ist.

Vererbung kommt in dem Buch „Java Modeling in Color with UML“ von Peter Coad, Eric Lefebvre und Jeff DeLuca nur am Rande vor. In den „Modeling Tips“ wird aber erwähnt, dass Vererbung für spezialisierte Moment-Intervals, Descriptions und Party/Place/Things verwendet wird. Für Rollen wird sie nicht verwendet.

Bevor der Verbrennungsmotor mit dieser Methode modelliert wird, zunächst ein grober Vorschlag für ein klassisches Diagramm. Der Motor hat für die vier Takte jeweils eine Operation, und delegiert z.B. in der Methode „verbrennen()“ an die Zündkerze. In welcher Reihenfolge die Takte erfolgen, würde über ein Sequenzdiagramm oder ein Kollaborationsdiagramm dargestellt werden.

Klassisches Modell eines Verbrennungsmotors

Motor klassisch

Nun ein Brainstorming für die wichtigen Dinge, die zu einem Verbrennungsmotor gehören:
Luft (angesaugt)
Benzin
Kolben
Zylinder
Kurbelwelle
verdichten
Abgas
ausstoßen
ansaugen
Zündkerze
verbrennen
Einlassventil
Auslassventil

Als nächstes werden diese Begriffe in die vier Kategorien (Moment-Interval, Role, Party/Place/Thing und Description) eingeordnet. Das wird in einem der nachfolgenden Beiträge geschehen. Darauf aufbauend wird dann ein farbiges Klassendiagramm entwickelt, und abschließend wird überprüft, ob dieses Diagramm tatsächlich auch die Dynamik darstellt.