UML 2 Ballast oder Befreiung?

Ähnliche Dokumente
UML. Unified Modeling Language. Prof. Mario Jeckle. Fachhochschule Furtwangen

Software-Architektur-Modellierung mit UML

Datenbanken. Teil 2: Informationen. Kapitel 7: Objektorientierte Sicht. UML-Diagramme. Vorstellung der unterschiedlichen UML-Diagramme

Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML2 glasklar. UNIFIED MODELING LANGUAGE l HANSER

CARL HANSER VERLAG. Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML 2 glasklar

UML (Unified Modelling Language) von Christian Bartl

UML 2 glasklar Praxiswissen für die UML-Modellierung

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm...

Inhalt. 1 Einführung 17. Strukturdiagramme. 2 Klassendiagramm 37

Unified Modeling Language (UML )

NACHRICHTENTECHNISCHER SYSTEME

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

INSPIRE - Modellierung

Inhalt. Einleitung Liebe Leserin, lieber Leser, Wer dieses Buch aus welchem Grund lesen sollte Ihre Meinung ist uns sehr wichtig.

UML 2 glasklar HANSER. Chris Rupp Stefan Queins Barbara Zengler. Praxiswissen für die UML-Modellierung. 3., aktualisierte Auflage

UML 2 glasklar. Mario Jeckle, Jürgen Hahn, Stefan Queins, Barbara Zengler, Chris Rupp. Praxiswissen für die UML-Modellierung und -Zertifizierung

Das umfassende Handbuch

Unified Modeling Language 2

UML 2.0 Das umfassende Handbuch

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

Vorlesung Programmieren

Software-Engineering

OOAD in UML. Seminar Software-Entwurf B. Sc. Sascha Tönnies

Oracle JDeveloper 10 g

Die Unified Modeling Language UML

Requirements Engineering I

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Die Unified Modeling Language (UML)

UML 2 glasklar. Praxiswissen für die UML-Modellierung. Bearbeitet von Chris Rupp, Stefan Queins, die SOPHISTen

Unified Modeling Language

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest

Vorlesung "Software-Engineering"

Von UML 1.x nach UML 2.0

Wirtschaftsinformatik 6a: Modellierung. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

UML 2 Tutorial: Einführung in die neue Standardmodellierungssprache

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Analyse und Modellierung von Informationssystemen

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

Objektorientierte Softwareentwicklung

Das UML Benutzerhandbuch

Bei Sitzungen im Team oder mit dem Kunden erleichtert eine grafische Darstellung des Software-Systems die Kommunikation.

Software-Engineering

OOA-Dynamische Konzepte

Aktivitätsdiagramm (Activity Diagram)

Objektorientierte Softwareentwicklung

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Diagrammtypen der UML 2.0

Inhaltsverzeichnis.

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

UML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller

Objektorientiertes Design

Analyse und Entwurf von Softwaresystemen mit der UML

Objektorientierte Analyse (OOA) Übersicht

Objektorientierte Systementwicklung

Software Engineering in der Praxis

Analyse und Design mit U ML 2.3

Diagrammtypen der UML 2.0

Analyse und Design mituml2

Verhaltensdiagramme. 3.5 Sequenzdiagramm 3.6 Kommunikationsdiagramm. Prof. Mario Jeckle

Super. Sub1. Sub2 State2. Sub3. Sub4. Super. State2. Sub4

Analyse und Design mituml2.1

Systems Engineering mit SysML/UML

Systemmodellierung mit SysML - Stereotypen und Profile

Objektorientierte Analyse (OOA) Verhaltensdiagramme der UML

Vorlesung Software-Engineering I

Unified Modelling Language

Media Engineering. Objektorientierte Modellierung. Verhaltensmodellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.

Gliederung des Vortrages

Softwaretechnologie für Fortgeschrittene Wohce 4 Modellierung UML

Objektorientierte Modellierung mit UML

Besteht aus Aktoren (actors) und use-cases sowie deren Verbindungen.

Exkurs 1: Hintergrund zu Java und UML

Software Engineering in der Praxis

Softwaretechnik 2015/2016

Übung Einführung in die Softwaretechnik

Softwaretechnik SS Vorlesungseinheit

Modellierung von Web Anwendungen mit UML

Methoden des Software Engineering

Transkript:

UML 2 Ballast oder Befreiung? von Chris Rupp, SOPHIST GROUP chris.rupp@sophist.de UML 2 Fakten/ Fallstricke Seite 1

UML 2 Fakten/ Fallstricke Seite 2 Es gibt Menschen, die, wenn sie das Licht am Ende des Tunnels sehen, ein neues Stück Tunnel kaufen. Johannes Rau

Ideen Vorschläge UML 2 Roadmap Neue Diagramme Praktischer Einsatz Standardisierung Übersichtlichkeit Präzisionssteigerung Ausführbarkeit Abhängigkeiten Metamodell Verbesserte Diagramme UML 2 Fakten/ Fallstricke Seite 3

Was ist die UML? logische Sicht Use Case - Sicht Wunsch des Kunden Requirements: - Das System soll mit C++ realisiert werden - Bei Anfrage durch einen Kunden muss die Funktionalität sichergestellt sein Requirements & Use Case- Beschreibungen... Deployment - Sicht Implemen- tierungs- Sicht Prozess - Sicht Datenmodell - Sicht Notation für Modell des Systems zeigt statische und dynamische Aspekte Nicht jede Sicht in jedem System sinnvoll UML 2 Fakten/ Fallstricke Seite 4

UML... Geschichten von fremden Meeren der Standardisierung OML Firesmith, Henderson- Sellers, Page-Jones; 1998 Unified Modeling Language v1.0 Booch, Jacobson, Rumbaugh; 1997 Catalysis D Souza, Willes; 1996 Unified Method Booch, Rumbaugh; 1995 MOSES Henderson-Sellers; 1994 SOMA Graham; 1994 Fusion Coleman, et al.; 1994 OBA Rubin; 1992 BON Nerson; 1992 OOA Coad, Yourdan; 1991 OOA&D Martin, Odell; 1992 OOD Booch; 1992 OMT Rumbaugh, et al.; 1991 OOSE Jacobson; 1992 OSA Embley; 1991 OOAD&I Henderson-Sellers, Macrone; 1992 OOSA Shlear, Mellor; 1991 SCOOP Cherry; 1990 HOOD ESA; 1990 RDD Wirfs-Brock; 1990 Vom Methodenkrieg... OBA Bailin; 1989 State Charts Harel; 1987 UML 2 Fakten/ Fallstricke Seite 5

Erweiterung UML... Geschichten von fremden Meeren der Standardisierung OMG Unified Modeling Language 2.0 UML 2 Partners; unveröffentlicht Fragmentierung Vereinheitlichung Standardisierung Breiteneinsatz Erfahrungen der Anwender OMG Unified Modeling Language 1.4 UML Partners; 2001 Object Management Group übernimmt Copyright XML Metadata Interchange Integration der Object Constraint Language Einsatzerfahrung der Sprachschöpfer OMT Rumbaugh, et al.; 1991 OMG Unified Modeling Language 1.5 UML Partners; 2003 OMG Unified Modeling Language 1.3 UML Partners; 1999 ( OMG Unified Modeling Language 1.2 ) UML Partners; 1998 Unified Modeling Language 1.1 UML Partners; 9/1997 Unified Modeling Language 1.0 UML Partners 1/1997 Unified Modeling Language 0.9, 0.91 Booch, Rumbaugh, Jacobson; 1996 Unified Method 0.8 Booch, Rumbaugh 1995 OOD Booch; 1992... OOSE Jacobson; 1992 Viele arbeiten für alle Einige arbeiten für andere Wenige arbeiten für einige... zum Standardisierungskrieg UML 2 Fakten/ Fallstricke Seite 6

UML 2... Warum eine neue Version? Evolution - Der Markt hat sich bewegt... - Neue Programmiersprachen (z.b. C#, Python, PHP) - Neue Anwendungsdomänen (z.b. Serverprog., RTE-Systeme) Erfahrung - Für einige Einsatzgebiete bietet UML v1.x... - Manchmal zu wenig - Manchmal zu viele Konstrukte Eliminierung - Sprachen und Konzepte verschwinden aus der UML - Einige Programmiersprachen verschwinden (z. B. C++) - Einige früher als modellierungsnah eingestufte Konzepte entwickeln sich inzwischen getrennt von UML weiter (z. B. Entwicklungsprozesse, Codegenerierung) UML 2 Fakten/ Fallstricke Seite 7

UML... Ein Leiden am Second System Syndrom UML 2 Fakten/ Fallstricke Seite 8

UML 2 Die Ziele Übersichtlichkeit - Weniger graphische Modellkonstrukte - Weniger Basiskonzepte + deren Wiederverwendung Präzisionssteigerung - Reformulierung des Meta-Modells - Weitestgehende OCL-Verwendung Ausführbarkeit - Erweiterte Zustandsmaschinen - Stärkere Beziehungen zwischen statischen und dynamischen Diagrammen - Integration erprobter Konzepte außerhalb der UML UML 2 Fakten/ Fallstricke Seite 9

UML 2 Verrentung existierender Modellelemente 1. Durch UML-Werkzeuge nicht implementierte Sprachanteile 2. Durch OO-Methoden unberücksichtigte Sprachelemente 3. Programmiersprachen-spezifische Sprachelemente 4. Inpräzise UML-Sprachelemente UML 2 Fakten/ Fallstricke Seite 10

UML 2 Verrentung existierender Modellelemente 1. Durch UML-Werkzeuge nicht implementierte Sprachanteile 2. Durch OO-Methoden unberücksichtigte Sprachelemente 3. Programmiersprachen-spezifische Sprachelemente 4. Inpräzise UML-Sprachelemente SWE 1 System-Anforderungsanalyse und -Entwurf SWE 9 System-Integration System System- Ebene Systemanforderungen Systemarchitektur Systemintegrationsplan Handbuchinformationen DV-Anforderungen SWE 2 DV-Anforderungsanalyse und -Entwurf SWE 8 DV-Integration DV-Segment Segment- Ebene DV-Architektur DV-Integrationsplan SW-Anforderungen SWE 3 SW-Anforde rungsanalyse SWKE- Integration Implementierungsdok. (SWKE) Konfigurations- einheits- Ebene SWE 7 SWKE SWE 4 SW-Integration Implementierungsdok. (Komponente) SW-Architektur Schnittstellenentwurf SWKE-Integrationsplan Grobentwurf Kompo- nenten- Integration Komponenten- Ebene Komponente Datenkatalog SW-Entwurf SWE 5 Feinentwurf Implementierungsdok. (Modul) Modul-/Datenbank- Ebene Implementierungsdok. (Datenbank) SWE 6 Modul Datenbank Implementierung Legende: Prüfaktivitäten (siehe QS) Abb. 2.7 Funktionsüberblick Submodell SWE UML 2 Fakten/ Fallstricke Seite 11

UML 2 Verrentung existierender Modellelemente 1. Durch UML-Werkzeuge nicht implementierte Sprachanteile 2. Durch OO-Methoden unberücksichtigte Sprachelemente 3. Programmiersprachen-spezifische Sprachelemente 4. Inpräzise UML-Sprachelemente KlasseA irgend : int ein : bool wichtiges : float Element : byte «friend» KlasseB noch : String viel : short wichtiger : float UML 2 Fakten/ Fallstricke Seite 12

UML 2 Verrentung existierender Modellelemente 1. Durch UML-Werkzeuge nicht implementierte Sprachanteile 2. Durch OO-Methoden unberücksichtigte Sprachelemente 3. Programmiersprachen-spezifische Sprachelemente 4. Inpräzise UML-Sprachelemente Objekt1 : KlasseA irgend = 1 ein = true wichtiges = 3.1 Element = 42 «copy» «become» Objekt2 : KlasseA irgend = 1 ein = true wichtiges = 3.1 Element = 42 UML 2 Fakten/ Fallstricke Seite 13

Schichtenweise UML 2 Auch weniger UML ist noch UML! Erfüllungsebenen Sequenzdigramm Erfüllungsgrad Complete Intermediate Basic Erfüllungspunkte Die Idee entstammt der SQL-Standardisierung Operationalisiert den Begriff der UML-Unterstützung Auch weniger UML ist immer noch UML UML 2 Fakten/ Fallstricke Seite 14

Schichtenweise UML 2 Auch weniger UML ist noch UML! Erfüllungspunkt Level 3: Complete KlasseAbs. Klasse1 Klasse2 «flow» Level 2: Intermediate Nicht realisiert «artifact» xy.dll «central buffer» for while do... Erfüllungsgrad Level 1: Basic Erfüllungsebene Klasse1 - Attr + Op() Klasse1 Klasse1 Klasse1 UML 2 Fakten/ Fallstricke Seite 15

Der Weg zu UML 2 Verschiedene Weiterentwicklungsvorschläge: - Infrastructure: 36 Lettern of Intents (LOIs); 5 Einreichungen durch 28 Firmen - Superstructure: 37 LOIs; 5 Einreichungen durch 28 Firmen - OCL: 30 LOIs; 4 Einreichungen durch 10 Firmen - Diagram Interchange: 6 LOIs; 3 Einreichungen durch 6 Firmen Eingereicht durch Einzelfirmen und Konsortien Bezugnehmend auf einzelne Sprachaspekte der UML v1.x um diese neu zu erweitern; Vorschläge für vollständig neue Diagrammtypen oder die Abschaffung Existierender UML 2 Fakten/ Fallstricke Seite 16

Vorschläge zur UML 2 Superstructure und Infrastructure: Ausgereiftester und mit breiter Unterstützung bedachter Vorschlag durch die sog. UML2 Partners : - Mitglieder: Alcatel, Computer Associates, Ericsson, Hewlett-Packard, IONA, Kabira Technologies, Motorola, Oracle, Rational Software, SOFTEAM, Telelogic, and Unisys - Unterstützer: Advanced Concepts Center, Ceira Technologies, Compuware, Commisariat à L Energie Atomique, DaimlerChrysler, Embarcardero Technologies, Enea Business Software, France Telecom,... UML 2 Fakten/ Fallstricke Seite 17

Vorschläge zur UML 2 Einige komplexe Dinge sollten einfacher werden... UML 2 Fakten/ Fallstricke Seite 18

Vorschläge zur UML 2 Manchmal sagen Bilder einfach zu wenig... UML 2 Fakten/ Fallstricke Seite 19

UML 2.0 Ablaufplan Ziel: Ein UML 2.0 Standard Infrastructure RFP Erste Einreichung Überarbeitete Einreichung Annahme Superstructure RFP Erste Einreichung Überarbeitete Einreichung Annahme Sep 00 Apr 01 Jun 01 Aug 01 Okt 01 Dez 01 Feb 02 Jan 03 Apr 03 Sep 03 UML 2 Fakten/ Fallstricke Seite 20

UML 2.0 Standardisierungsablauf Komplexer Annahmeprozess Bestätigung durch das OMG Architecture Board Jun 03 Bestätigung durch das OMG Board of Directors Okt 03? OMG Mitgliedsabstimmung Sep 04? angenommene Spezifikation gültige Spezifikation Ab diesem Zeitpunkt sind UML 2 Artikel, Bücher, Tools,... Wahrscheinlich zu erwarten Sep 03? OMG Mitgliedsabstimmung Jun 04? UML 2.0 Finalization Task Force (FTF) Okt 04? Bestätigung durch das OMG Board of Directors offizieller Standard (bis Oktober 2004 änderbar) UML 2 Fakten/ Fallstricke Seite 21

Diagramme der UML 2 Diagramme der UML 2 Strukturdiagramme Verhaltensdiagramme Klassendiagram m Komponentendiagramm Objektdiagramm Aktivitätsdiagramm Use-Case- Diagramm Zustandsautomat Kompositionsstrukturdiagramm Interaktionsdiagramme Verteilungsdiagramm Paketdiagramm Ze itv e rlaufsdiagramm Sequenzdiagramm Kommunikationsdiagramm Interaktionsübersichtsdiagramm UML 2 Fakten/ Fallstricke Seite 22

Diagramme der UML - Anwendung I Diagrammtyp Klassendiagramm Paketdiagramm Objektdiagramm Diese zentrale Frage beantwortet das Diagramm Aus welchen Klassen besteht mein System und wie stehen diese untereinander in Beziehung? Wie kann ich mein Modell so schneiden, dass ich den Überblick bewahre? Welche innere Struktur besitzt mein System zu einem bestimmten Zeitpunkt zur Laufzeit (Klassendiagrammschnappschuss)? Stärken Beschreibt die statische Struktur des Systems. Enthält alle relevanten Strukturzusammenhänge/Datentypen. Brücke zu dynamischen Diagrammen. Normalerweise unverzichtbar. Logische Zusammenfassung von Modellelementen. Modellierung von Abhängigkeiten/ Inklusion möglich. Zeigt Objekte u. Attributbelegungen zu einem bestimmten Zeitpunkt. Verwendung beispielhaft zur Veranschaulichung Detailniveau wie im Klassendiagramm. Sehr gute Darstellung von Mengenverhältnissen. UML 2 Fakten/ Fallstricke Seite 23

Diagramme der UML - Anwendung II Diagrammtyp Kompositionsstrukturdiagramm Komponentendiagramm Verteilungsdiagramm Diese zentrale Frage beantwortet das Diagramm Wie sieht das Innenleben einer Klasse, einer Komponente, eines Systemteils aus? Wie werden meine Klassen zu wieder verwendbaren, verwaltbaren Komponenten zusammengefasst und wie stehen diese in Beziehung? Wie sieht das Einsatzumfeld (Hardware, Server, Datenbanken, ) des Systems aus? Wie werden die Komponenten zur Laufzeit wohin verteilt? Stärken Ideal für die Top-Down-Modellierung des Systems (Ganz-Teil-Hierarchien). Zeigt Teile eines Gesamtelements und deren Mengenverhältnisse. Präzise Modellierung der Teile- Beziehungen über spezielle Schnittstellen (Ports) möglich. Zeigt Organisation und Abhängigkeiten einzelner technischer Systemkomponenten. Modellierung angebotener und benötigter Schnittstellen möglich. Zeigt das Laufzeitumfeld des Systems mit den greifbaren Systemteilen. Darstellung von Softwareservern möglich. Hohes Abstraktionsniveau, kaum Notationselemente. UML 2 Fakten/ Fallstricke Seite 24

Diagramme der UML - Anwendung III Diagrammtyp Use-Case-Diagramm Aktivitätsdiagramm Zustandsautomat Diese zentrale Frage beantwortet das Diagramm Was leistet mein System für seine Umwelt (Nachbarsysteme, Stakeholder)? Wie läuft ein bestimmter flussorientierter Prozess oder ein Algorithmus ab? Welche Zustände kann ein Objekt, eine Schnittstelle, ein Use Case, bei welchen Ereignissen annehmen? Wer tauscht mit wem welche Informationen in welcher Reihenfolge aus? Stärken Außensicht auf das System. Geeignet zur Kontextabgrenzung. Hohes Abstraktionsniveau, einfache Notationsmittel. Sehr detaillierte Visualisierung von Abläufen mit Bedingungen, Schleifen, Verzweigungen. Parallelisierung und Synchronisation. Darstellung von Datenflüssen. Präzise Abbildung eines Zustandsmodells mit Zuständen, Ereignissen, Nebenläufigkeiten, Bedingungen, Ein- und Austrittsaktionen. Schachtelung möglich. Darstellung d. Informationsaustauschs zwischen Kommunikationspartnern Sehr präzise Darstellung der zeitlichen Abfolge auch mit Nebenläufigkeiten. UML 2 Fakten/ Fallstricke Seite 25

Diagramme der UML und ihre Anwendung IV Diagrammtyp Interaktionsübersichtsdiagramm Kommunikationsdiagramm Timingdiagramm Diese zentrale Frage beantwortet das Diagramm Wer kommuniziert mit wem? Wer arbeitet im System zusammen? Wann befinden sich verschiedene Interaktionspartner in welchem Zustand? Wann läuft welche Interaktion ab? Stärken Stellt den Informationsaustausch zwischen Kommunikationspartnern dar. Überblick steht im Vordergrund (Details und zeitliche Abfolge weniger wichtig). Visualisiert das exakte zeitliche Verhalten von Klassen,Schnittstellen,.. Geeignet für die Detailbetrachtungen, bei denen es wichtig ist, dass ein Ereignis zum richtigen Zeitpunkt eintritt. Verbindet Interaktionsdiagramme (Sequenz-, Kommunikation- und Timingdiagramme) auf Top-Level- Ebene. Hohes Abstraktionsniveau. UML 2 Fakten/ Fallstricke Seite 26

Anforderungen eingehalten? Die Bewertung UML kompakter und in sich schlüssiger durch Anpassung von Konzepten der Infrastruktur Angestrebte Abwärtskompatibilität zu älteren UML-Versionen in vielen Bereichen verletzt Die aktuelle Version der UML 2 Superstructure beinhaltet noch einige Kinderkrankheiten Das grafische Aussehen einiger Notationselemente hat sich verändert, was sicherlich zur Verwirrung führen wird Eingeführte Bezeichnungen und Namen wurden verändert UML 2 Fakten/ Fallstricke Seite 27

Umsteigen: Ja oder Nein? Wann sich der Umstieg wirklich lohnt Die Modellierung des Systemverhaltens steht im Vordergrund: häufige Verwendung von Zustandsautomaten und Sequenzdiagrammen Modellierung im Umfeld technischer Systeme: bessere Darstellung z.b. der Kommunikation von Systemkomponenten oder des Zeitverhaltens eines Systems Modellierung von Geschäftsprozessen, bzw. von Aktivitäten eines Systems mittels Aktivitätsdiagrammen Generierung von Code oder Architekturen basierend auf einem MDA-Ansatz, oder in sich schnell ändernden, architektonischen Umfeldern wie EAI (Enterprise Application Integration) UML 2 Fakten/ Fallstricke Seite 28

Diagramme der UML 2 Diagramme der UML 2 Strukturdiagramme Verhaltensdiagramme Klassendiagram m Komponentendiagramm Objektdiagramm Aktivitätsdiagramm Use-Case- Diagramm Zustandsautomat Kompositionsstrukturdiagramm Interaktionsdiagramme Verteilungsdiagramm Paketdiagramm Zeitverlaufsdiagramm Sequenzdiagramm Kommunikationsdiagramm Interaktionsübersichtsdiagramm UML 2 Fakten/ Fallstricke Seite 29

Basiskonzepte UML 2... Erweitert die Nutzung der Classifier Klassendiagramm Strukturdiagramme Kompositionsstrukturdiagramm Verteilungsdiagramm Komponentendiagramm Objektdiagramm Paketdiagramm Classifier DataType Signal Association Class (from Kernel) Actor InformationItem BehavioredClassifier StructuredClassifier PrimitiveType Enumeration CommunicationPath AssociationClass Behavior Artifact Interface Class (from Communications) UseCase Collaboration EncapsulatedClassifier Activity Interaction StateMachine Class (from StructuredClasses) ProtocolStateMachine Node Device ExecutionEnvironment UML 2 Fakten/ Fallstricke Seite 30

Basiskonzepte -- Classifier UML 2... Erweitert die Nutzung der Classifier Classifier Klassendiagramm Strukturdiagramme Kompositionsstrukturdiagramm Verteilungsdiagramm Komponentendiagramm Objektdiagramm Paketdiagramm Beziehungen (Assoziationen) werden zwischen ihnen geknüpft... können Charakteristika (Attribute) besitzen... können Verhaltensspezifikationen (Operationen) besitzen... können generalisiert werden... können autonom auf Signale reagieren... können ausschließlich der Strukturierung dienen (abstract) DataType Signal Association Class (from Kernel) Actor InformationItem BehavioredClassifier StructuredClassifier PrimitiveType Enumeration CommunicationPath AssociationClass Behavior Artifact Interface Class (from Communications) UseCase Collaboration EncapsulatedClassifier Activity Interaction StateMachine Class (from StructuredClasses) ProtocolStateMachine Node Device ExecutionEnvironment UML 2 Fakten/ Fallstricke Seite 31

Fazit --- statische Diagramme in UML 2 Absichtsvoll wenig spürbar Neues - Im Hintergrund - Klarere Basiskonzepte - Deutlich mehr Wiederverwendung - Fast vollständig neues Metamodell Modifizierte Semantik vieler (Meta-)Modellelemente Einige neue graphische Primitive Reichhaltigeres Angebot an Abhängigkeiten und eingebauten Modellerweiterungen (Stereotypen) Behutsame Verrentung problematischer Modellelemente UML 2 Fakten/ Fallstricke Seite 32

Diagramme der UML 2 Diagramme der UML 2 Strukturdiagramme Verhaltensdiagramme Klassendiagram m Komponentendiagramm Objektdiagramm Aktivitätsdiagramm Use-Case- Diagramm Zustandsautomat Kompositionsstrukturdiagramm Interaktionsdiagramme Verteilungsdiagramm Paketdiagramm Zeitverlaufsdiagramm Sequenzdiagramm Kommunikationsdiagramm Interaktionsübersichtsdiagramm UML 2 Fakten/ Fallstricke Seite 33

Use-Case-Diagramm Geändert in UML 2: - Name eines Akteurs nicht mehr optional, sondern verpflichtend - Classifier können Use- Cases besitzen, nicht nur Pakete - Vorbedingung und extension point werden als Notiz an die Extend- Beziehung angehängt Akteur Verkäufer Use-Case Verkaufsposten eingeben Systemname Verkauf extension points: fehlender Kunde Systemgrenze Kunde nicht gefunden «extend» Extend- Beziehung «include» Kundendaten einsehen Assoziation Kreditwürdigkeit prüfen Include- Beziehung UML 2 Fakten/ Fallstricke Seite 34

Aktivitätsdiagramm möglicher Ablauf Einladung bekommen Einladung Datum prüfen Kante [keine Zeit] [Zeit vorhanden] Lust auf Feier prüfen Bedingung [keine Lust] Kontrollknoten [Lust vorhanden] Feier absagen Zur Feier zusagen UML 2 Fakten/ Fallstricke Seite 35

Aktivitätsdiagramm Modulorechnung Parameter Streaming Natürliche Zahl [zusammengesetzt] Modul Rechne modulo Natürliche Zahl [ganzzahliger Anteil] Natürliche Zahl [Rest] DVD-Signal {stream} Fernsehbild Umwandeln {stream} Schleifenknoten Zahl 1 Zahl 2 Datenspeicher «centralbuffer» for X = Zahl 1 Y = Zahl 2 Zähler = 0 «datastore» Name [Zustand] while A = X+ Zähler A < Y Unterbrechungsbereich do Zähler = Zähler +1 UML 2 Fakten/ Fallstricke Seite 36

Aktivitätsdiagramm iterative Mengenverarbeitung Bierkiste besorgen Flasche öffnen Flasche leeren leere Bierkiste zurückgeben Speise Entscheidungsknoten if Speise bewerten schmackhaft? then Gute Kritik erstellen Restaurant Bewertung else Schlechte Kritik erstellen UML 2 Fakten/ Fallstricke Seite 37

Aktivitätsdiagramm Neu in UML 2: - Neue Notationselemente: Strukturierte Knoten, Entscheidungsknoten, Schleifenknoten, Mengenverarbeitungsknoten, Unterbrechungsbereich, Datenspeicher und Bufferknoten, Parametersatz - Aktivitäten verwenden eine den Petri-Netzen ähnlich Semantik (Token- Konzept) - Aktivitäten können Ein- und Ausgabeparameter enthalten - Aktionen können mit Vor- und Nachbedingungen verknüpft werden Geändert in UML 2: - Aktivitäten sind nun unabhängig von Zustandsautomaten - Es sind nun mehrere Startknoten erlaubt - Parallele Abläufe müssen nicht wieder zusammengeführt werden - Aktivitätsbereiche können hierarchisch oder multidimensional sein - Die Notation von Aktionen entspricht der Notation von Zuständen der UML 1.x UML 2 Fakten/ Fallstricke Seite 38

Zustandsautomat optionale Kennzeichnung Zustandsautomat (sm = StateMachine) sm Fahrkartenautomat Name des Zustandsautomaten Trigger Startzustand wartend Betrag erhöht [Münze eingegeben] Geldaufnahme Do [Münze eingegeben] / Betrag erhöhen [Betrag < Preis] Guard Zustand Transition Stop gedrückt Cancel gewählt Fahrkarte ausgewählt TimeTrigger Kreuzungspunkt Abbruch entry / Betrag ausgeben after (Timeout) Berechnung do / Preis berechnen entry activity Ausgabe Fahrkarte entry / Fahrkarte ausgeben [Betrag = Preis] Ausgabe Wechselgeld do / Wechselgeld ausgeben [Betrag > Preis] doactivity UML 2 Fakten/ Fallstricke Seite 39

Zustandsautomat sm Handy an standby [else] / einschalten gesperrt Authentifizierung : sm Authentifizierung [Pin unterdrückt] / einschalten Pin unterdrückt ausgeschalten benutzbar : sm BenutzungHandy sm Authentifizierung Pin eingeben / Anzahl = 0 Pin-Eingabe Pinprüfung do / Pin prüfen Pin geprüft [Pin = falsch] / Anzahl++ Fehleingabe [Anzahl<3] [Anzahl >=3] gesperrt [Pin = richtig] do / Anzahl prüfen Pin unterdrückt authentifiziert UML 2 Fakten/ Fallstricke Seite 40

Zustandsautomat Neu in UML 2: - Ports können nun Protokollzustandsautomaten besitzen - Ein-, Austrittspunkte und Terminatoren wurden eingeführt - Regeln zur Ergänzung und Ersetzung von Transitionen bei vererbten Zustandsautomaten wurde hinzugefügt Geändert in UML 2: - Tiefe Historien können auch Ziel einer Transition innerhalb des enthaltenen Zustands sein (also nicht nur von außen) - Das vererbte Verhalten wird mit einem Zustandsautomaten dargestellt und nicht nur durch eine Notiz UML 2 Fakten/ Fallstricke Seite 41

Interaktionsmodellierung Funktion: - Interaktion ist der Nachrichten- und Datenaustausch zwischen zwei Kommunikationspartnern - Nachrichtenaustausch verbindet Sende- und Empfangsereignisse Aufgabe im Projekt: - Interaktionsdiagramme zeigen nur Sichten auf Interaktionen - Diagrammwahl nach hervorzuhebenden Modellierungsaspekt UML 2 Fakten/ Fallstricke Seite 42

Interaktionsmodellierung Diagrammwahl / Modellierungsaspekt : - Sequenzdiagramm: + Die Reihenfolge, in der der Nachrichtenaustausch stattfindet - Kommunikationsdiagramm: + Das Zusammenspiel von strukturierten Kommunikationspartnern + Modellierung von Prinzipien und Konzepten - Timing-Diagramm: + Darstellung der zeitlichen Veränderung eines Classifiers + Modellierung zeitkritischer Zustands- und Wertänderungen sinnvoll - Interaktionsübersichtsdiagramm: + Darstellung der Ablaufreihenfolge mehrerer Interaktionen + Logischer Zusammenhang zwischen Interaktionsdiagrammen + Brückenschlag zwischen Aktivitäts- und Interaktionsdiagrammen UML 2 Fakten/ Fallstricke Seite 43

Sequenzdiagramme Lebenslinie Zustandsbedingung sd Bild aufhaengen loop :Person :Hammer :Nagel :Daumen :Bild {gerade} Abbruchbedingung [Nagel haelt] alt schlagen getroffen = schlagen treffen Kombiniertes Fragment treffen Interaktions -verweis ref Daumen verbinden aufhaengen Nachricht Aktionssequenz UML 2 Fakten/ Fallstricke Seite 44

Sequenzdiagramme Neu in UML 2: - Zustandsinvarianten können an Lebenslinien angetragen werden - lost und found Nachrichten eingeführt Geändert in UML 2: - Innerhalb von Sequenzdiagrammen kann auf andere Interaktionen verwiesen werden (Zerlegung von Abläufen oder Lebenslinien) - Alle Kontrollflussmöglichkeiten (if, switch,...) höherer Programmiersprachen durch kombinierte Fragmente, sehr gute Unterstützung von nebenläufiger Modellierung Entfällt in UML 2: - Nachrichtenart unspezifiziert entfällt UML 2 Fakten/ Fallstricke Seite 45

Kommunikationsdiagramme Name der Interaktion Lebenslinie cd Gassi gehen Nachrichtenname 1:Gassi gehen Hundehalter Hund Sequenzbezeichner 3:entfernen 2.1:schimpfen 1.1:machen Richtung der Nachricht Passant 2:reintreten Häufchen UML 2 Fakten/ Fallstricke Seite 46

Kommunikationsdiagramme Geändert in UML 2: - Kommunikationsdiagramm statt Kollaborationsdiagramm - Subset des Sequenzdiagramms, z. B. keine Interaktionsverweise ( ref ) keine kombinierten Fragmente Ereignisreihenfolge wird ignoriert UML 2 Fakten/ Fallstricke Seite 47

Timing-Diagramm Name des Diagramms Zeit- Bedingung td Fußgängerampel {d...6*d} grün :Ampel rot betriebsbereit gehen nicht gehen Lebenslinien aktiv aktivieren :Fußgänger wartend d 0 10 20 30 Sek. Zustand Zeitskala Zustandslinie Nachricht UML 2 Fakten/ Fallstricke Seite 48

Timing-Diagramm Neu in UML 2: - Komplett neu in die UML 2 eingeführt - Bereits seit Jahren in Elektrotechnik genutzt (z. B. für elektronische Schaltvorgänge) UML 2 Fakten/ Fallstricke Seite 49

Interaktionsübersichtsdiagramme iod Betriebsfeier ref sd Verpflegung_organisieren :Chef :Angestellter ref Mitarbeiter.Hemmschwelle=Feier:Alkoholkonsum organisierefeier ref Mitarbeiter_verständigen [Keine Hemmschwelle] sd sd :Chef :Mitarbeiter :Chef :Personalchef bedanken mitarbeiterfeuern UML 2 Fakten/ Fallstricke Seite 50

Interaktionsübersichtsdiagramme Neu in UML 2: - Komplett neu in die UML 2 eingeführt UML 2 Fakten/ Fallstricke Seite 51

Fazit --- dynamische Diagramme in UML 2 Viel neu - viel geklaut Aktivitätsdiagramme und Sequenzdiagramme faktisch neu Verbesserte Unterstützung der Codeabbildung Bessere Modellierung von Nebenläufigkeiten und Zeitverhalten möglich dennoch keine Echtzeitsprache Deutlich bessere Schnittstelle zu Strukturdiagrammen Notationsvielfalt erfordert Tailoring Interaktionsübersichtsdiagramm, Timingdiagramm erfordern Nachbesserungen UML 2 Fakten/ Fallstricke Seite 52

Damit Sie klar sehen! Besuchen Sie uns bei unserem Buchvorstellungsevent am 3. Dezember! Ort: SOPHIST GROUP Nürnberg ab 17 Uhr Trainings: UML 2 Update: 27.11.2003 OOA: 09.12.-10.12.2003 OOD: 11.12.-12.12.2003 Beratung: wann immer Sie wollen ;-)) Infos: www.uml-glasklar.de www.sophist.de UML 2 Fakten/ Fallstricke Seite 53

Unsere Bücher Chris Rupp und die SOPHISTen Chris Rupp und Peter Hruschka Chris Rupp, Mario Jeckle, Jürgen Hahn, Barbara Zengler und Stefan Queins Chris Rupp, Peter Hruschka und Gernot Starke Aktualisierte, zweite Auflage seit 23. Mai 2002 im Handel ISBN:3-446-21960-9 Im Handel seit 21. Mai 2002 ISBN:3-446-21997-8 Erstauflage ab November 2003 ISBN: 3-446-22575-7 Erstauflage ab Oktober 2003 ISBN 3-827-41483-0 UML 2 Fakten/ Fallstricke Seite 54