If Fase Logo

mit Google im Archiv der If Fase

Ausgabe 7 vom 1. März 2006 (als PDF):

27. Februar 2006 – Dr. Ludger Humbert

LaTeX – Teil 7: Erstellung von UML-Diagrammen (3) Klassendiagramm mit MetaUML

In einer Reihe von Artikeln in der If Fase werden nützliche Elemente von LaTeX vorgestellt, die erprobt sind und bei der täglichen Arbeit der Informatiklehrerin eingesetzt werden.

Bisher wurden in den vorgelegten sieben Teilen der Artikelserie – Ausgaben 0 … 6: rhinodidactics.de/Archiv – Hinweise zur Installation, grundlegenden Arbeitsweisen, Quellen zu Dokumentationen, die Arbeit mit KOMAscript, Hinweise auf PSTricks und als stärker inhaltsbezogene Elemente die Erstellung von Arbeitsblättern, Struktogrammen, Automatengrafen und einigen Elementen von UML thematisiert.
In dieser Ausgabe beschäftigen wir uns mit einer neu hinzugekommenen Möglchkeit zum Layout von [Klassen-] Diagrammen der Unified Modeling Language (UML) mit Hilfe des Pakets MetaUML
Darüber hinaus wird der Faden wiederaufgenommen, den wir bei der Darstellung der (in MetaUML noch fehlenden) Sequenzdiagramme mit dem Paket MSC (Message Sequence Charts) ausgelegt haben.

Anordnen von Elementen mit MetaUML

Das Paket MetaUML wird von seinem Autor Ovidiu Gheorghies heftig weiterentwickelt und beinhaltet nunmehr Möglichkeiten zum Anordnen von Elementen, die die Nutzung in der Handhabung – gerade für Layoutfragen – erheblich verbessert haben. Im aktuellen Manual (Version 0.2.2) MetaUML – nicht vergesssen findet sich auf den Seiten 19ff ein neues Kapitel mit dem Titel Arranging Diagram Items. Bei der neuen Schnittstelle handelt es sich um die einfache Anordnung von Elementen durch die Angabe der Richtung, in der die Anordnung erfolgen soll. Folgende Zeilen im MetaPost-Quellcode führen zu dem Klassendiagramm unter der Überschrift.

%
%

leftToRight(270)(Aussendienst, Innendienst);    

leftToRight(30)(CallCenter, Geschaeftsstelle);

topToBottom(40)(Aussendienst, Geschaeftsstelle); 
   
leftToRight(30)(KfzUebergabe, KfzRuecknahme);

topToBottom(40)(Geschaeftsstelle, KfzUebergabe);    

leftToRight(25)(Disposition, KfzTechnik, Buchhaltung);

topToBottom(40)(Innendienst, KfzTechnik);

Der angegebene Quellcode erzeugt die Anordnung der Klassen in der Abbildung. Dabei wird deutlich, dass diese neue Möglichkeit angenehm in der Handhabung ist. Eine Variante besteht in der Möglichkeit, die Notation in einer erweiterten Form zu nutzen, um die Ausrichtung nicht oben (Voreinstellug bei leftToRight), sondern unten leftToRight.bottom(..)(..) oder an der Mitte leftToRight.midy(..)(..) zu orientieren. Desgleichen kann für die Ebenendarstellung topToBottom die Voreinstellung (mittig bzgl. der Horizontalen == midx) geändert werden. Die Ausrichtung an den linken Seiten wird mit topToBottom.left(..)(..), die an den rechten Seiten – dem Prinzip der Orthogonalität folgend – mit topToBottom.right(..)(..) erreicht.

Darüber hinaus wurden MetaPost-Makros entwickelt und zur Verfügung gestellt, die die Benutzung der Schnittstelle weiter vereinfachen: below, above,atright und atleft. Die Makros benötigen zwei Parameter: einen Punkt und ein Längenangabe. Damit kann statt B = A + (5,0); nunmehr auch B = atright(A, 5); geschrieben werden.

Weitere Verbesserungen im Detail machen das Paket so hochwertig, das es für den Praxiseinsatz sehr gut geeignet erscheint:

Bei Interesse kann nur empfohlen werden, das Paket, die Dokumentation (im Quellcode) und die Darstellung der Musterbibliothek der GoF (== Gang of Four, Gamma et. al., vgl.: If Fase Nr. 5 vom 1. Dezember 2005, Seite 3) zu sichten und auf Nützlichkeit zu untersuchen. Es lohnt sich!

Von MSC zu LSC

Die Sprache der Live Sequence Charts (LSC) ist eine Variante der Message Sequence Charts (MSC) (wir berichteten über MSC in If Fase Nr. 5 vom 1. Dezember 2005, Seite 1) und geeignet, um Sequenzdiagramme zu beschreiben. LSC unterscheidet sich von MSC durch das Hinzufügen von heissen hot und kalten cold Elementen, die die weitere Arbeit von Ergebnissen abhängig machen (oder nicht). Diese Darstellungsform eignet sich zur Entwicklung von Informatiksystemen, da das Verhalten durch diese Elemente im Entwicklungsprozess (noch) offen gehalten werden kann. Mit Jochen Klose, Live Sequence Charts: A Graphical Formalism for the Specification of Communication Behaviour, PhD thesis, Carl von Ossietzky Universität Oldenburg, 2003 wurde eine wissenschaftliche Arbeit zu LSC vorgelegt. Der Autor hat darüber hinaus gezeigt, wie LSC dazu benutzt werden kann UML-Modelle zu prüfen. Das Paket lsc unterstützt das Setzen von LSC.

Weiterhin wurde von David Harel und Rami Marelly mit Come, Let's Play: Scenario-Based Programming Using LSCs and the Play-Engine, Springer-Verlag, 2003 eine GUI-basierte Implementierung (Spielumgebung) vorgelegt, die einen Ansatz verfolgt, der zusätzliche Erweiterungen notwendig machte. Damit wird eine Benutzungsoberfläche zum Steuerungsinstrument bei der Softwareentwicklung. Die Erweiterungen werden von dem vorliegenden LaTeX-Paket nicht zur Verfügung gestellt.

Verglichen mit MSC wird bei LSC der Benutzerin eine low-level-Schnittstelle zur Verfügung gestellt, die eine Positionierung der Elemente erfordert, wie in dem folgenden Beispiel deutlich wird.

%
%

\begin{Lsc}{none}{2}{3}

  \begin{lscinst}[SD]{Inst1}

    \lscLine{hot}{1.5}

    \lscInstSnd{rip}

    \lscLine{hot}{1}

    \lscKill

  \end{lscinst}

  \begin{lscinst}[SD]{Inst2}

    \lscLine{hot}{1.5}

    \lscInstRcv{rip}

    \lscKill

  \end{lscinst}

  \lscInst{rip}{hot}{RIP}

\end{Lsc}

sudoku
Die hier veröffentlichten Inhalte stellen keine Meinungsäußerungen der Studienseminare Hamm Arnsberg dar.
© Redaktion If Fase