objekte uml 2.0: alles wird gut? von bernd oestereich und tim weilkiens mehr zum thema: www.omg.org/uml/ www.u2-partners.org UML 2.0: ALLES WIRD GUT? Die „Unified Modeling Language” (UML) überfordert und verwirrt viele Anwender durch ihre Notationsvielfalt, obwohl einige wichtige Elemente fehlen. Andere Elemente sind unbrauchbar oder fehlerhaft, bestimmte Elemente wurden zur allgemeinen Verwirrung in Notation und Semantik von Version zu Version geändert. Jetzt steht die UML 2.0 vor der Tür und wird in Kürze offiziell verabschiedet – wird jetzt alles besser? Der Artikel beschreibt die für die Praxis wichtigsten zu erwartenden Neuerungen. In Folge der Erfahrungen mit der UML 1.x wurde die Kritik- und Wunschliste für neue UML-Versionen immer länger. Da sich einige elementare Anforderungen nicht sinnvoll in die UML integrieren ließen, war es notwendig geworden, sie von Grund auf neu aufzusetzen – deshalb nun der Versionswechsel vor dem Punkt von 1.x auf 2.0. In UML 2.0 wurde die UML komplett renoviert, beispielsweise ist das Metamodell ganz anders aufgebaut. Im Fokus: MDA, XMI, RT und BPM Beim Entwurf der UML 2.0 wurde unter anderem folgenden Bereichen größere Aufmerksamkeit gegeben: ■ verbesserter Modellaustausch durch XML Metadata Interchange (XMI), z.B. inklusive Diagramm-LayoutInformationen, ■ verbesserte Unterstützung der Model Driven Architecture (MDA), d. h. auch von Modelltransformationen und ausführbaren UML-Modellen1) , ■ bessere Unterstützung von Echtzeitmodellierung (RT) durch neue Diagrammtypen und erweiterte Semantik, ■ bessere Unterstützung von Geschäftsprozessmodellierung (BPM). Nachdem die Object Management Group (OMG) den Bedarf einer größeren Überarbeitung erkannt hatte, forderte sie zur Einreichung entsprechender Vorschläge auf. Im Wesentlichen beteiligen sich drei Konsortien an der sogenannten Infra- und Superstruktur-Spezifikation der UML 2.0: ■ 3C (Clear Clean Concise): Financial Systems Architects, MEGA International, TogetherSoft Corporation ■ U2 Partners: Alcatel, Computer Associates, Enea Business Software, Ericsson, Hewlett-Packard, IBM, I-Logix, IONA, Kabira Technologies, Motorola, Oracle, Rational Software, SOFTEAM, Telelogic, Unisys, WebGain ■ 2U (Umambigous UML): Adaptive, Data Access Technologies, Kinetium, Project Technology, Inc., Siemens, Softlab, Dr. A. Clark (Kings College, London, UK), Dr. A. Evans (University of York, UK), Dr. S. Kent (University of Kent, UK) Von diesen Einreichungen hat sich das U2Partner-Konsortium mit der deutlich erkennbar strukturiertesten und umfassend1 ) Zum Thema MDA mit UML 2.0 finden Sie übrigens einen eigenen Beitrag von Chris Kobryn u.a. auf S. 32 in diesem Heft. d i e a u t o re n Bernd Oestereich (E-Mail: [email protected]) ist Geschäftsführer der oose.de Dienstleistungen für innovative Informatik GmbH. Tim Weilkiens (E-Mail: [email protected]) arbeitet bei der Firma oose.de als Trainer und Berater. sten Spezifikation durchgesetzt. UML 2.0 ist formal in folgende Teile gegliedert: ■ Infrastructure: Kern der Architektur, Profile und Stereotypen ■ Superstructure: statische und dynamische Modellelemente ■ Object Constraint Language (OCL): formale Sprache für Zusicherungen ■ Diagram Interchange: UML-Austauschformat In diesem Artikel betrachten wir nur die Infra- und Superstruktur und auch daraus Abb. 1: Aktivitätsmodelle jetzt mit Petri-Netz-Semantik 36 37 w w w. o b j e k t s p e k t r u m . d e objekte uml 2.0: alles wird gut? nur ausgewählte Aspekte. Im Bereich der statischen Modellierung wurde nur wenig geändert, Klassendiagramme sind weitgehend unverändert, nur im Bereich der Komponentenmodellierung sind ein paar wichtige Neuerungen zu verzeichnen. Die grundlegendsten Änderungen finden wir in der Verhaltensmodellierung, vor allem bei den Aktivitätsdiagrammen. Aktivitäten sind jetzt keine Aktivitäten mehr... In der UML 1.x war ein Aktivitätsdiagramm eine Spezialform eines Zustandsdiagramms, was theoretisch und praktisch viele Probleme aufwarf und zu einer eher ausdrucksschwachen Notation führte. Nun sind Aktivitätsdiagramme auch im Metamodell eigenständig, d. h. auch formal etwas völlig Neues. Zur allgemeinen Verwirrung werden leider einige Begriffe aus der UML 1.x beibehalten, obwohl sie stellenweise eine grundlegend andere Bedeutung haben. Während früher die einzelnen Schritte im Ablauf Aktivitäten genannt wurden, heißt nun das Diagramm bzw. Modell „Aktivität”. Die einzelnen Schritte heißen nun „Verhaltensaufruf” (activity invocation). Wie der Name sagt, repräsentiert ein Ablaufschritt nun nicht mehr selbst ein Verhalten, sondern ruft es nur auf. Verhalten und der Aufruf von Verhalten wurden somit getrennt. Aufgerufen werden können verschiedene Arten von Verhalten, entweder eine elementare Operation oder wiederum eine ganze Aktivität (d. h. ein komplettes Untermodell). Neben diesen begrifflichen Umstellungen gibt es verschiedene inhaltliche Neuerungen. Aktivitätsmodelle haben nun große Ähnlichkeit mit Petrinetzen, was ihre Ausdruckfähigkeit stark erhöht: ■ Die Semantik von Synchronisationsund Splitting-Punkten hat sich geändert. Die Einschränkung, dass eine Aufteilung stets wieder synchronisiert werden muss, besteht nicht mehr. ■ Ein Aktivitätsmodell darf nun endlich mehrere Anfangszustände (heißen nun Startknoten) besitzen, wodurch parallele Abläufe gestartet werden. Auch Signale können Startknoten sein. ■ Es gibt eine neue Art von Endzustand, das Ablaufende, bei dem nur ein Ablaufzweig der Aktivität stoppt, während beim Aktivitätsende stets die gesamte Aktivität stoppt. ■ Aktivitätsmodelle dürfen nun Ein- und Ausgabeparameter erhalten. ■ Objektflüsse lassen sich besser beschreiben. Die bisherigen Objektzustände werden durch Objektknoten ersetzt, die nun (ähnlich wie bei der Trennung von Verhalten und Verhaltensaufruf) nicht mehr die Objekte selbst repräsentieren, sondern diese nur in der Art eines Containers referenzieren. ■ Die Zählung von Tokens, ähnlich wie in Petrinetzen, ist möglich. ■ Innerhalb von Aktivitätsmodellen dürfen nun auch einzelne Schritte als Sequenzdiagramm repräsentiert werden. Abbildung 1 zeigt als Beispiel, wie immer sechs Flaschen abgefüllt und etikettiert werden, die dann zu einem Sechser-Pack gebündelt werden. Durch die Schleife nach dem Splitting-Balken wird ausgedrückt, dass bereits die nächste Flasche angefüllt Abb. 2: Herzschrittmacher als Timing-Diagramm (nach [Dou98]) 1/2003 werden kann, während die vorige noch etikettiert wird. Sobald Feierabend ist, werden keine neuen Flaschen mehr abgefüllt, die bereits abgefüllten werden aber noch etikettiert. Sofern gerade noch sechs Flaschen zusammenkommen, werden diese auch noch gebündelt. Bald ernst zu nehmen: Echtzeitmodellierung mit der UML Aufgrund der hardwarenahen Programmierung adaptieren RTE-Entwickler (Real-Time and Embedded) seltener neue Technologien als „normale” Entwickler. Aber zunehmende Komplexität der RTESysteme und kürzere Auslieferungszyklen erfordern auch in diesem Bereich einen Wandel. Konferenzen zu RTE-Systemen zeigen, dass vermehrt objektorientierte Konzepte eingesetzt werden und somit die UML in den Fokus der RTE-Entwickler gekommen ist. Die Neuauflage der UML hat einige interessante Aspekte für RTEEntwickler zu bieten. Bewährte Konzepte aus „Real-Time Object-Oriented Modeling” (ROOM, [Sel94]), einem der Standardwerke zum Thema Echtzeitmodellierung, sind in der UML 2.0 enthalten. Mittels Parts, Connectors und Ports können interne Laufzeitstrukturen von Klassen modelliert werden. Timing-Diagramme ermöglichen die Modellierung von zeitgenauen Zustandsübergängen. Die Technik wird schon lange erfolgreich von Elektro-Ingenieuren verwendet und wird nun in die UML 2.0 als Diagrammform aufgenommen. Abbildung 2 zeigt ein Timing-Diagramm für einen Herzschrittmacher. Die Beschreibung von Verhalten ist mit der UML 2.0 sehr viel detaillierter und formaler möglich, sodass Modelle erstellt werden können, die ausführbar sind (executable UML). Entgegen dem „rush-tocode”-Syndrom können Konzepte frühzeitig überprüft werden. Domänen-spezifische Konstrukte sind in der UML nicht bzw. sollten nicht enthalten sein. Daher kann auch die UML 2.0 nicht alle Anforderungen von RTEEntwicklern befriedigen. Hierfür sind Profiles notwendig – ein Erweiterungsmechanismus der UML. Speziell für RTE gibt es ein „UML Profile for Schedulability, Performance and Time” und „UML Profile for Quality of Service (QoS)” (in Arbeit) (siehe www.omg. org/uml). w w w. s i g s - d a t a c o m . d e objekte uml 2.0: alles wird gut? Abb. 3: Sequenzdiagramme mit Unterdiagrammen und Schleifen Sequenzdiagramme: Sind Neuerungen wirklich wichtig? Die Überarbeitung der Verhaltensmodellierung bringt auch eine Änderung im Bereich der Sequenzdiagramme mit sich. Bekannte Schwächen der UML 1.4, wie z.B. bedingte Nachrichten, wurden in der neuen Fassung verbessert. Eine weitere wesentliche Neuerung ist die Möglichkeit, in Sequenzdiagrammen auf andere Sequenzen zu verweisen. Somit können Sequenzen zerlegt werden („divide and conquer”). Immer wieder vorkommende Sequenzen können so einmal modelliert und mehrfach referenziert werden (siehe Abb. 3). Die Vermeidung von redundanten Informationen trägt sehr zur Qualität des Modells bei. Sequenzdiagramme zeigen den Ausschnitt eines konkreten dynamischen Verhaltens. Sie sind somit recht volatil, da hier bis zum Ende der Systementwicklung mit Änderungen zu rechnen ist. Es ist daher fragwürdig, ob sich hier der Modellierungsaufwand lohnt oder ob Sequenzdiagramme besser nur als Whiteboard-Instrument zum besseren Verständnis und Herleiten von dynamischen Aspekten geeignet sind. Fazit? Die UML 1.x ist komplex, hat unüberschaubar viele und teilweise redundante 38 39 Modellelemente, viele Konstrukte wurden von Version zu Version geändert, einige sind schlecht oder falsch erläutert, teilweise semantisch schwach oder fehlerhaft spezifiziert und dennoch fehlen einige wichtige Elemente. Wird die UML 2.0 sich dieser Kritik entziehen können? Die Neuauflage der UML ist nicht gerade klein geraten. Alleine die Superstruktur umfasst bereits weit über 600 eng bedruckte Seiten. In ihrer Gesamtheit wird die UML 2.0 somit auch sehr komplex. Für Projekte ist zu Beginn ein „Tailoring” notwendig, um eine überschaubare Projektversion der UML zu erhalten. Das Anpassen an spezifische Bedürfnisse (Profile, Stereotypen) ist in der UML 2.0 verbessert worden. In der UML 2.0 werden viele neue Konstrukte und Ideen dazugekommen, von denen viele auf Anhieb nützlich erscheinen, viele aber nur für spezielle Anwendungsbereiche wichtig sind. Dabei sollten domänen-spezifische Konstrukte eigentlich nur in UML-Erweiterungen zu finden sein. Timing-Diagramme sind beispielsweise der RTE-Domäne zuzuschreiben, sind aber dennoch Teil des neuen Standards (vielleicht weil im U2-PartnerKonsortium bekannte RTE-Unternehmen vertreten sind?). Ein Teil des Umfangs ist sicherlich auf die ausführlichere und sauberere formale Spezifikation zurückzuführen und wird viele UML-Anwender nicht direkt betreffen. Mit den neuen Diagrammtypen und Modellelementen, von denen hier nur die Spitze des Eisberges gezeigt wurde, wird sich aber auch ein Großteil der gewöhnlichen UML-Anwender früher oder später beschäftigen müssen. Also wird es wieder eine Weile dauern, bis die Praxis entschieden hat, mit welchen 20% der Konstrukte 80% der Modellierungsbedürfnisse abgedeckt werden. Als ersten Schritt hierzu haben wir eine Notationsübersicht für die wichtigsten Elemente aus UML 2.0 zusammengestellt, die unter www.oose.de/uml hinterlegt ist, da sie den Rahmen dieses Artikels sprengen würde. Im Moment ist die Herausarbeitung des Kerns nicht so dringlich, da es noch eine Weile dauern wird, bis die Hersteller von UML-Werkzeugen die UML 2.0 adaptiert haben. Dabei werden sicherlich auch zahlreiche Portierungsprobleme und Kinderkrankheiten auftreten, da gerade das Metamodell und das Modelldatenaustauschformat von den Änderungen betroffen sind. Für UML-Interessierte werden die nächsten Monate auf jeden Fall nicht langweilig. ■ Literatur & Links [Dou98] B.P. Douglass, Real-Time UML: developing efficient objects for embedded systems, Addison-Wesley, 1998 [Oes01] B. Oestereich, Objektorientierte Softwareentwicklung, Analyse und Design mit der UML, 5. Aufl., Oldenbourg Wissenschaftsverlag 2002 [OMG02-a] Object Management Group, Unified Modeling Language: Superstructure, version 2 beta R1, Revised submission, ad/2002-09-02 [OMG02-b] Object Management Group, Unified Modeling Language: Infrastructure, version 2.0, Updated submission, ad/2002-09-01 [Sel94] B. Selic, G. Gullekson, P. T. Ward, Real-Time Object-Oriented Modeling, John Wiley & Sons, Inc., 1994 [UML-a] UML 2.0-Glossar, siehe: http:// www.oose.de/uml/glossar [UML-b] UML 2.0-Notationsübersicht, siehe: http://www.oose.de/uml/notation w w w. o b j e k t s p e k t r u m . d e
© Copyright 2024 ExpyDoc