logging in or signing up Modellierung mit UML 2 giombetti Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 720 Category: Education License: All Rights Reserved Like it (1) Dislike it (0) Added: July 01, 2008 This Presentation is Public Favorites: 0 Presentation Description Modellierung mit UML 2 Model-Driven Development Proseminar im Sommersemester 2005 URL: http://www.giombetti.com/2005/08/15/model-driven-develo pment-modellierung-mit-uml2/ Comments Posting comment... Premium member Presentation Transcript Modellierung mit UML 2 : Modellierung mit UML 2 01.07.2008 Folie 1 Modellierung mit UML 2 Marc Giombetti Model-Driven DevelopmentProseminar im Sommersemester 2005 Was ist UML? : Modellierung mit UML 2 01.07.2008 Folie 2 Was ist UML? Die UML (Unified Modeling Language) ist eine von der Object Management Group (OMG) entwickelte Beschreibungsspache um Strukturen und Abläufe in Softwaresystemen zu: modellieren dokumentieren spezifizieren visualisieren Sie entstand anfangs durch die Zusammenführung verschiedener Modellierungstechniken, die alle eine hohe Praxisrelevanz hatten: unified – Eine Sprache für alles. → Breiteres Anwendungsgebiet: gute Lesbarkeit viel Semantik allmögliche Systemaspekte / Sichten ... Begründer: Boch, Rumbough und Jacobson Was ist Modellbasierte Entwicklung? : Modellierung mit UML 2 01.07.2008 Folie 3 Was ist Modellbasierte Entwicklung? Unterscheidung: Modell: vereinfachtes Abbild der Wirklichkeit. Diagramm: grafische Darstellung von Daten oder Informationen. Sicht: Gewisse Perspektive auf ein Modell. Stellt nur die für den jeweiligen Standpunkt relevanten Aspekte dar. (→ Abstraktion) Was ist Modellbasierte Entwicklung? : Modellierung mit UML 2 01.07.2008 Folie 4 Was ist Modellbasierte Entwicklung? Automatisierung bei der Softwareerstellung. Infrastrukturcode, Teilsysteme oder ganze Anwendungen generativ aus formalen Methoden ableitbar. Modellierung einer Domäne (z.B Business-Bereich) Entwicklung ausschließlich unter Verwendung von Operationen auf dem konzeptuellen Produktmodell. Einige Vorteile: Stakeholder nehmen im Prozess Teil. Modellportabilität über Metamodelle. Macht Komplexität beherrschbar. Was ist Modellbasierte Entwicklung? : Modellierung mit UML 2 01.07.2008 Folie 5 Was ist Modellbasierte Entwicklung? Die Modellwelt: Modelle sind ein natürlicher Weg um komplexe Vorgänge und Systeme zu verstehen, damit sie dann in die Realität überführt werden können. Entstehung vieler Modelle, doch Die Kombination bereitet Schwierigkeiten Inkonsistenzen Komplizierter Planungsprozess (→“Unordnung“) → Idee: Wichtigste Modellnotationen in einer Sprache strukturiert zusammenführen und vereinigen → UML Die Manipulation des Modells ist nur mittels Diagrammen möglich. Die UML Diagramme stellen lediglich eine Sicht auf ein Modell dar. Diagrammtypen : Modellierung mit UML 2 01.07.2008 Folie 6 Diagrammtypen 13 Diagrammtypen, unterteilt in: statische Diagramme (Strukturdiagramme) dynamische Diagramme (Verhaltensdiagramme) Use-Case-Diagramm : Modellierung mit UML 2 01.07.2008 Folie 7 Use-Case-Diagramm Use-Case-Diagramme (dt: Anwendungsfall-Diagramme) beschreiben die Leistungen des Systems für: seine Umwelt Nachbarsysteme Stakeholder Beschreibung aus der Sicht eines Aussenstehenden. ( → Black-Box-Sicht) Oftmals zur ersten Skizzierung eines Projektes verwendet. (→ Hohes Abstraktionsniveau) einfaches Notationsmittel ( → auch für Laien (z.B. Kunden) intuitiv verständlich)) → Hauptsächlich Analysemodell Use-Case-Diagramm - Beispiel : Modellierung mit UML 2 01.07.2008 Folie 8 Use-Case-Diagramm - Beispiel Use-Cases auf einer Einweihungsfeier: Klassendiagramm : Modellierung mit UML 2 01.07.2008 Folie 9 Klassendiagramm Klassendiagramme beschreiben: Beziehungen (Schnittstellen, Assoziationen, Abhängigkeiten, Generalisierungen) zwischen Klassen und Typen. Operationen / Methoden Attribute Zur Modellierung der statischen Struktur des Systems (statisches Diagramm). Bildet die Brücke zu den dynamischen Diagrammen. Meistverwendetes Diagramm (selten unverzichtbar, Kern der UML). Ersetzt immer mehr die klassische Entity Relationship Notation. Darstellung: Klassendiagramm - Beispiel : Modellierung mit UML 2 01.07.2008 Folie 10 Klassendiagramm - Beispiel Metamodell zur Überführung eines Analyse- in ein Designmodell : Modellierung mit UML 2 01.07.2008 Folie 11 Metamodell zur Überführung eines Analyse- in ein Designmodell Codegenerierung : Modellierung mit UML 2 01.07.2008 Folie 12 Codegenerierung Ziel jeder Modellierung ist irgendwann die Umsetzung des Modells in Programmiercode. Codegenerierung: Überführung eines UML-Modells in Programmiercode einer gewissen Sprache mittels Transformationsregeln. Die Überführungsregeln ergeben sich aus dem Metamodell der UML als auch aus dem Metamodell der Zielprogrammiersprache. Überführung meistens mit geeigneten Tools. Ein Tool ist besser je mehr Überführungsregeln es unterstützt (→ Round-Trip Engineering): Tau/Developer Poseidon for UML Codegenerierung – Beispiel : Modellierung mit UML 2 01.07.2008 Folie 13 Codegenerierung – Beispiel Codegenerierung – Beispiel : Modellierung mit UML 2 01.07.2008 Folie 14 Codegenerierung – Beispiel Java-Code des modellierten Partybeispiels : public abstract class Person { // Eigenschaften public String name; public int alter; public void trinke(int c) { // Programmiercode } }class Partyteilnehmer extends Person { // Eigenschaften public Boolean betrunken = false; public void feiere() { // Programmiercode } } class Partyveranstalter extends Person { private int budget; public void zahleRechnung(Euro betrag) { //Programmiercode } } class Gastgeber ... //Mehrfachvererbung ist in Java nicht darstellbar Grenzen und Probleme : Modellierung mit UML 2 01.07.2008 Folie 15 Grenzen und Probleme Die Object Constraint Language (OCL) bringt viel Semantik in die Diagramme → Vereinfacht die Überführung in Quellcode, aber: Überführung eines Modells per „Knopfdruck“ in fertigen Programmiercode ist nicht möglich. Diagramme müssen interpretationsfrei sein. Es ist nicht möglich ein leicht verständliches einfaches Diagramm zu haben, das zugleich alle Details enthält. In der UML 2 Spezifikation ist nicht genau angegeben, wie ein Modell in Programmiercode überführt werden muss. ( → Überführung = Abhängig von UML-Tool) Fazit : Modellierung mit UML 2 01.07.2008 Folie 16 Fazit Die UML 2 ist eine Sprache mit sehr hoher Praxisrelevanz im Softwareengineering („lingua franca des Softwareengineerings“) Gelungene Zusammenführung praxisrelevanter und weitverbreiteter Modellierungstechniken. Keine Methode! – Satz von Notationen zur Formulierung aus einer allgemeinen Sprache. Entweder einfache, gut lesbare übersichtliche Diagramme, oder präzise komplexe Diagramme die prüfbar und automatisierbar sind. UML wird der Anforderung nicht ganz gerecht, eine Sprache für alles zu sein, daher entstehen Erweiterungen: UML-RT (Echtzeitfähigkeit) xUML UML Profile Direkte Quellcodeerzeugung ist nur bedingt möglich. (Rumpf / Dynamik) Kontakt Informationen : Modellierung mit UML 2 01.07.2008 Folie 17 Kontakt Informationen Marc Giombetti m_giombe@informatik.uni-kl.de Fragen ? Zusatzfolie: Vom Platform Independent Model (PIM) zum Platform Specific Model (PSM) : Modellierung mit UML 2 01.07.2008 Folie 18 Zusatzfolie: Vom Platform Independent Model (PIM) zum Platform Specific Model (PSM) Problemlösung oftmals gleich; nur die Umsetzung ist variabel. Beispiel: Die modellierte Party ist immer die Gleiche, aber → Realisierung in Java, C++, C# usw verschieden. Ein Algorithmus und seine Implementierung in einer Sprache. Um ein PIM in ein PSM zu überführen, werden zusätzliche Informationen über die Plattform gebraucht. Grundsatz: Trennung von technologieunabhängigen und technologiebezogenen Notationen und Konzepten. Erspart: Arbeit, Zeit und Geld bei der Portierung auf andere Plattformen. Zusatzfolie: Ziele der UML : Modellierung mit UML 2 01.07.2008 Folie 19 Zusatzfolie: Ziele der UML Die wichtigsten Ziele der UML 2 lassen sich in 3 Kategorien aufteilen: Übersichtlichkeit Eliminierung verschiedener Modellkonstrukte Weniger Basiskonzepte, dafür aber konsequente Wiederverwendung (der Basiskonzepte) Präzisionssteigerung UML 2 basiert weitgehend auf der Object Constraint Language (OCL) (Semantiksteigerung) Einheitliches Meta-Modell Ausführbarkeit executable UML (xUML) Überführung verschiedener Modelle in Programmiercode durch eindeutige deterministische interpretationsfreie Diagramme Zusatzfolie: Klassendiagramm - Präzisierung : Modellierung mit UML 2 01.07.2008 Folie 20 Zusatzfolie: Klassendiagramm - Präzisierung Es gibt 2 Arten von Klassendiagrammen Konzeptuell-analytische Modellierung abstrakte Sicht auf das System → Übersicht / Verständlichkeit technische Details sind unwichtig (keine Operationen, keine Schnittstellen usw) Verwendung: frühe Projektphase Logische, Design-orientierte Modellierung sehr hohe Präzision → Detailgenauigkeit Beinhaltet technische Informationen → Quellcodeerzeugzung Verwendung: spätere Projektphase Zusatzfolie: Klassendiagramm - Notation : Modellierung mit UML 2 01.07.2008 Folie 21 Zusatzfolie: Klassendiagramm - Notation Klassendiagramme und die Notation für: Abhängigkeiten Assoziationen Realisierung Schnittstellen Notizzettel für Kommentare (keine semantische Wirkung) You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
Modellierung mit UML 2 giombetti Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 720 Category: Education License: All Rights Reserved Like it (1) Dislike it (0) Added: July 01, 2008 This Presentation is Public Favorites: 0 Presentation Description Modellierung mit UML 2 Model-Driven Development Proseminar im Sommersemester 2005 URL: http://www.giombetti.com/2005/08/15/model-driven-develo pment-modellierung-mit-uml2/ Comments Posting comment... Premium member Presentation Transcript Modellierung mit UML 2 : Modellierung mit UML 2 01.07.2008 Folie 1 Modellierung mit UML 2 Marc Giombetti Model-Driven DevelopmentProseminar im Sommersemester 2005 Was ist UML? : Modellierung mit UML 2 01.07.2008 Folie 2 Was ist UML? Die UML (Unified Modeling Language) ist eine von der Object Management Group (OMG) entwickelte Beschreibungsspache um Strukturen und Abläufe in Softwaresystemen zu: modellieren dokumentieren spezifizieren visualisieren Sie entstand anfangs durch die Zusammenführung verschiedener Modellierungstechniken, die alle eine hohe Praxisrelevanz hatten: unified – Eine Sprache für alles. → Breiteres Anwendungsgebiet: gute Lesbarkeit viel Semantik allmögliche Systemaspekte / Sichten ... Begründer: Boch, Rumbough und Jacobson Was ist Modellbasierte Entwicklung? : Modellierung mit UML 2 01.07.2008 Folie 3 Was ist Modellbasierte Entwicklung? Unterscheidung: Modell: vereinfachtes Abbild der Wirklichkeit. Diagramm: grafische Darstellung von Daten oder Informationen. Sicht: Gewisse Perspektive auf ein Modell. Stellt nur die für den jeweiligen Standpunkt relevanten Aspekte dar. (→ Abstraktion) Was ist Modellbasierte Entwicklung? : Modellierung mit UML 2 01.07.2008 Folie 4 Was ist Modellbasierte Entwicklung? Automatisierung bei der Softwareerstellung. Infrastrukturcode, Teilsysteme oder ganze Anwendungen generativ aus formalen Methoden ableitbar. Modellierung einer Domäne (z.B Business-Bereich) Entwicklung ausschließlich unter Verwendung von Operationen auf dem konzeptuellen Produktmodell. Einige Vorteile: Stakeholder nehmen im Prozess Teil. Modellportabilität über Metamodelle. Macht Komplexität beherrschbar. Was ist Modellbasierte Entwicklung? : Modellierung mit UML 2 01.07.2008 Folie 5 Was ist Modellbasierte Entwicklung? Die Modellwelt: Modelle sind ein natürlicher Weg um komplexe Vorgänge und Systeme zu verstehen, damit sie dann in die Realität überführt werden können. Entstehung vieler Modelle, doch Die Kombination bereitet Schwierigkeiten Inkonsistenzen Komplizierter Planungsprozess (→“Unordnung“) → Idee: Wichtigste Modellnotationen in einer Sprache strukturiert zusammenführen und vereinigen → UML Die Manipulation des Modells ist nur mittels Diagrammen möglich. Die UML Diagramme stellen lediglich eine Sicht auf ein Modell dar. Diagrammtypen : Modellierung mit UML 2 01.07.2008 Folie 6 Diagrammtypen 13 Diagrammtypen, unterteilt in: statische Diagramme (Strukturdiagramme) dynamische Diagramme (Verhaltensdiagramme) Use-Case-Diagramm : Modellierung mit UML 2 01.07.2008 Folie 7 Use-Case-Diagramm Use-Case-Diagramme (dt: Anwendungsfall-Diagramme) beschreiben die Leistungen des Systems für: seine Umwelt Nachbarsysteme Stakeholder Beschreibung aus der Sicht eines Aussenstehenden. ( → Black-Box-Sicht) Oftmals zur ersten Skizzierung eines Projektes verwendet. (→ Hohes Abstraktionsniveau) einfaches Notationsmittel ( → auch für Laien (z.B. Kunden) intuitiv verständlich)) → Hauptsächlich Analysemodell Use-Case-Diagramm - Beispiel : Modellierung mit UML 2 01.07.2008 Folie 8 Use-Case-Diagramm - Beispiel Use-Cases auf einer Einweihungsfeier: Klassendiagramm : Modellierung mit UML 2 01.07.2008 Folie 9 Klassendiagramm Klassendiagramme beschreiben: Beziehungen (Schnittstellen, Assoziationen, Abhängigkeiten, Generalisierungen) zwischen Klassen und Typen. Operationen / Methoden Attribute Zur Modellierung der statischen Struktur des Systems (statisches Diagramm). Bildet die Brücke zu den dynamischen Diagrammen. Meistverwendetes Diagramm (selten unverzichtbar, Kern der UML). Ersetzt immer mehr die klassische Entity Relationship Notation. Darstellung: Klassendiagramm - Beispiel : Modellierung mit UML 2 01.07.2008 Folie 10 Klassendiagramm - Beispiel Metamodell zur Überführung eines Analyse- in ein Designmodell : Modellierung mit UML 2 01.07.2008 Folie 11 Metamodell zur Überführung eines Analyse- in ein Designmodell Codegenerierung : Modellierung mit UML 2 01.07.2008 Folie 12 Codegenerierung Ziel jeder Modellierung ist irgendwann die Umsetzung des Modells in Programmiercode. Codegenerierung: Überführung eines UML-Modells in Programmiercode einer gewissen Sprache mittels Transformationsregeln. Die Überführungsregeln ergeben sich aus dem Metamodell der UML als auch aus dem Metamodell der Zielprogrammiersprache. Überführung meistens mit geeigneten Tools. Ein Tool ist besser je mehr Überführungsregeln es unterstützt (→ Round-Trip Engineering): Tau/Developer Poseidon for UML Codegenerierung – Beispiel : Modellierung mit UML 2 01.07.2008 Folie 13 Codegenerierung – Beispiel Codegenerierung – Beispiel : Modellierung mit UML 2 01.07.2008 Folie 14 Codegenerierung – Beispiel Java-Code des modellierten Partybeispiels : public abstract class Person { // Eigenschaften public String name; public int alter; public void trinke(int c) { // Programmiercode } }class Partyteilnehmer extends Person { // Eigenschaften public Boolean betrunken = false; public void feiere() { // Programmiercode } } class Partyveranstalter extends Person { private int budget; public void zahleRechnung(Euro betrag) { //Programmiercode } } class Gastgeber ... //Mehrfachvererbung ist in Java nicht darstellbar Grenzen und Probleme : Modellierung mit UML 2 01.07.2008 Folie 15 Grenzen und Probleme Die Object Constraint Language (OCL) bringt viel Semantik in die Diagramme → Vereinfacht die Überführung in Quellcode, aber: Überführung eines Modells per „Knopfdruck“ in fertigen Programmiercode ist nicht möglich. Diagramme müssen interpretationsfrei sein. Es ist nicht möglich ein leicht verständliches einfaches Diagramm zu haben, das zugleich alle Details enthält. In der UML 2 Spezifikation ist nicht genau angegeben, wie ein Modell in Programmiercode überführt werden muss. ( → Überführung = Abhängig von UML-Tool) Fazit : Modellierung mit UML 2 01.07.2008 Folie 16 Fazit Die UML 2 ist eine Sprache mit sehr hoher Praxisrelevanz im Softwareengineering („lingua franca des Softwareengineerings“) Gelungene Zusammenführung praxisrelevanter und weitverbreiteter Modellierungstechniken. Keine Methode! – Satz von Notationen zur Formulierung aus einer allgemeinen Sprache. Entweder einfache, gut lesbare übersichtliche Diagramme, oder präzise komplexe Diagramme die prüfbar und automatisierbar sind. UML wird der Anforderung nicht ganz gerecht, eine Sprache für alles zu sein, daher entstehen Erweiterungen: UML-RT (Echtzeitfähigkeit) xUML UML Profile Direkte Quellcodeerzeugung ist nur bedingt möglich. (Rumpf / Dynamik) Kontakt Informationen : Modellierung mit UML 2 01.07.2008 Folie 17 Kontakt Informationen Marc Giombetti m_giombe@informatik.uni-kl.de Fragen ? Zusatzfolie: Vom Platform Independent Model (PIM) zum Platform Specific Model (PSM) : Modellierung mit UML 2 01.07.2008 Folie 18 Zusatzfolie: Vom Platform Independent Model (PIM) zum Platform Specific Model (PSM) Problemlösung oftmals gleich; nur die Umsetzung ist variabel. Beispiel: Die modellierte Party ist immer die Gleiche, aber → Realisierung in Java, C++, C# usw verschieden. Ein Algorithmus und seine Implementierung in einer Sprache. Um ein PIM in ein PSM zu überführen, werden zusätzliche Informationen über die Plattform gebraucht. Grundsatz: Trennung von technologieunabhängigen und technologiebezogenen Notationen und Konzepten. Erspart: Arbeit, Zeit und Geld bei der Portierung auf andere Plattformen. Zusatzfolie: Ziele der UML : Modellierung mit UML 2 01.07.2008 Folie 19 Zusatzfolie: Ziele der UML Die wichtigsten Ziele der UML 2 lassen sich in 3 Kategorien aufteilen: Übersichtlichkeit Eliminierung verschiedener Modellkonstrukte Weniger Basiskonzepte, dafür aber konsequente Wiederverwendung (der Basiskonzepte) Präzisionssteigerung UML 2 basiert weitgehend auf der Object Constraint Language (OCL) (Semantiksteigerung) Einheitliches Meta-Modell Ausführbarkeit executable UML (xUML) Überführung verschiedener Modelle in Programmiercode durch eindeutige deterministische interpretationsfreie Diagramme Zusatzfolie: Klassendiagramm - Präzisierung : Modellierung mit UML 2 01.07.2008 Folie 20 Zusatzfolie: Klassendiagramm - Präzisierung Es gibt 2 Arten von Klassendiagrammen Konzeptuell-analytische Modellierung abstrakte Sicht auf das System → Übersicht / Verständlichkeit technische Details sind unwichtig (keine Operationen, keine Schnittstellen usw) Verwendung: frühe Projektphase Logische, Design-orientierte Modellierung sehr hohe Präzision → Detailgenauigkeit Beinhaltet technische Informationen → Quellcodeerzeugzung Verwendung: spätere Projektphase Zusatzfolie: Klassendiagramm - Notation : Modellierung mit UML 2 01.07.2008 Folie 21 Zusatzfolie: Klassendiagramm - Notation Klassendiagramme und die Notation für: Abhängigkeiten Assoziationen Realisierung Schnittstellen Notizzettel für Kommentare (keine semantische Wirkung)