Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

UML Klassendiagramme - Einführung

8.703 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

UML Klassendiagramme - Einführung

  1. 1. UML Klassendiagramme - KurzzusammenfassungMichael Whittaker / 10. August 2008Software Engineering - Fachhochschule der Wirtschaft Paderborn
  2. 2. Inhalt• UML - was ist das? 1• OOP - wozu Objekte? 2 3• Klassen, Methoden, Attribute• Beziehungen• Real-World-Beispiel 4• Fragen? 5 6
  3. 3. „UML - Was ist das?The OMGs Unified Modeling Language™ (UML®) helps you specify, visualize, and document models of software systems, including theirstructure and design, in a way that meets all of these requirements.  2 3 4 (You can use UML for business modeling and modeling of other non-software systems too.) 5 6 [1]
  4. 4. UML - Was ist das?• Unified Modelling Language = „vereinheitlichte“ Modellierungssprache • legt eine Sprache fest, mit der Modelle beschrieben und modelliert werden (Spezifikation ist frei verfügbar [2]) 2• besteht aus Sprache, Beziehungen, grafischer Notation und Austauschformat 3• wahrscheinlich die meist genutzte Modellierungssprache 4• umfassend und erweiterbar, wird weiterentwicklet (aktuell: 2.1.2 [2]) 5 6
  5. 5. UML - Was ist das?• es existieren verschiedene Typen an Standard-UML-Diagrammen  2 3 4 5 6Strukturdiagramme Design / Architektur Verhaltens- (Zeitliche) Abläufe / diagramme Prozesse
  6. 6. UML - Was ist das?• es existieren verschiedene Typen an Standard-UML-Diagrammen  2 3 4 5 6Strukturdiagramme Design / Architektur Verhaltens- (Zeitliche) Abläufe / diagramme Prozesse
  7. 7. OOP - Wozu Objekte?• Programmierparadigma / programming paradigm (Prinzip, wie man programmiert bzw. eine Programmiersprache 1  aufgebaut ist)• Zusammenfassung von Daten und Funktionen in gekapselten Objekten --> im Gegensatz zum Trennen von Daten und Funktionen beim traditionelleren Programmierparadigmen 3• Jedes Objekt kann als selbstständige „Maschine“ gesehen werden, 4 5 welches häufig selbstständig existieren kann --> dadurch entsteht Wiederverwendbarkeit 6
  8. 8. OOP - Wozu Objekte? 1• anstatt eines Programms mit vielen Unterprogrammen: --> viele Objekte mit Attributen, Methoden und Fähigkeiten, die interagieren• weiteres: - Instanz: „konkretes Exemplar im Speicher“  3 - Klasse vs. Objekt: Definition/Vorlage eines Objekts vs. seine Instanz - Methode: Funktion/Verhalten eines Objekts - Nachricht: Kommando zum Aufruf einer Methode 4 - Vererbung: verschiedene Modellierungsdetails, Hierarchien („Schäferhund“ erbt von „Hund“ erbt von „Säugetier“ erbt von „Wirbeltier“ erbt von „Tier“ erbt von „Lebewesen“) 5 - Abstraktion: verschiedene Abstraktionsgrade werden für Interaktion bereitgestellt oder als Rahmenwerk vorgegeben („Rex“ kann „Schäferhund“, „Hund“, „Tier“, „Lebewesen“ sein) - Polymorphie: gleicher Umgang mit versch. Kindsklassen über selbe Methoden (Nachricht „sprich“ an Hund, Schwein, Mensch; „starte“ an „PKW“, „LKW“, „Bus“, „Motorrad“) 6
  9. 9. „OOP - Wozu Objekte? 1 Durch Anwendung der Objektorientierung hofft  man auf eine Verkürzung der Entwicklungszeit,eine Senkung der Fehlerrate und auf eine deutlich 3 verbesserte Erweiter- und Anpassungsfähigkeit 4 der Software. 5 6 [3]
  10. 10. Klassen, Methoden, Attribute• Rund ums Auto als Beispiel 1 2• Unser KFZ mit versch. Attributen (Variablen des Objekts), einem Motor, einem Inhaber (einfach modelliert)• Notation: + public, # protected, - private <<abstract>  Klassenname 4 Attribute 5 Operationen/ Methoden 6
  11. 11. Klassen, Methoden, Attribute• Rund ums Auto als Beispiel 1 2• Unser KFZ mit versch. Attributen (Variablen des Objekts), einem Motor, einem Inhaber (einfach modelliert)• Notation: + public, # protected, - private <<abstract>  Klassenname 4 Attribute 5 Operationen/ Methoden 6
  12. 12. Beziehungen: Vererbung (Ist-Beziehung)• Definieren von verschiedenen Kfz-Typen, die alle die Attribute und Methoden der Vaterklasse(n) übernehmen 1• Notation: Pfeil mit unausgefüllter Pfeilspitze auf Vaterklasse 2 3  5 6
  13. 13. Beziehungen: Vererbung (Ist-Beziehung)• Definieren von verschiedenen Kfz-Typen, die alle die Attribute und Methoden der Vaterklasse(n) übernehmen 1• Notation: Pfeil mit unausgefüllter Pfeilspitze auf Vaterklasse 2 3  5 6
  14. 14. Beziehungen: Assoziation (Hat-Beziehung)• Ein Objekt hat ein (oder mehrere) andere Objekte• Beispiel: Eine Person hat keins, ein oder mehrere Kraftfahrzeuge, 1 2 ein Kraftfahrzeug hat einen oder keinen Inhaber.• Notation: Strich oder Strich mit Pfeilen (Navigation), Attributangaben und Multiplizität. // Lesen: Angaben gegenüber! 3  5 6
  15. 15. Beziehungen: Aggregation (Besteht-aus-Beziehung)• Ein Objekt besteht aus einem (oder mehreren) anderen Objekten• die einzelnen Komponenten des Aggregators sind auch ohne ihn 1 2 existierend und zu benutzen• Beispiel: Ein KFZ besteht aus einem Motor und vier Reifen 3  5 6
  16. 16. Beziehungen: Aggregation (Besteht-aus-Beziehung)• Ein Objekt besteht aus einem (oder mehreren) anderen Objekten• die einzelnen Komponenten des Aggregators sind auch ohne ihn 1 2 existierend und zu benutzen• Beispiel: Ein KFZ besteht aus einem Motor und vier Reifen 3  5 6
  17. 17. Beziehungen: Komposition(starke Besteht-aus-Beziehung)• Ein Objekt besteht aus einem (oder mehreren) anderen Objekten• die einzelnen Komponenten des Aggregators sind i. d. R. ohne ihn nicht 1 2 existent und nicht zu benutzen• Beispiel („Exkurs“): ein Buch besteht aus mehreren Seiten (die Seiten ergeben ohne das Buch aber keinen Sinn und werden nicht verwendet) 3  5 6
  18. 18. Beziehungen: Abhängigkeit• eine Assoziation ohne damit direkt verbundene Instanzen• verschiedene Arten der Abhängigkeit: 1 • <<use>>-Abhängigkeit (Schreiner <<use>> Hammer; Schnittstellen) • Realisierungsabhängigkeit (s. nächste Folie) 2 • <<include>>-Abhängigkeit (bei Operationen sind auch andere Objekte betroffen) 3 • <<abstract>>-Abhängigkeit bei abstrakten Klassen • verschiedene andere geschäftsspezifische Arten, die nicht konkret mir  Software zusammen hängen (müssen) 5 6
  19. 19. Beziehungen: Schnittstellen• Schnittstellen definieren/standardisieren bestimmte Operationen und Verhaltensweisen, die verschiedene schnittstellenkonforme Klassen 1 2 implementieren• Attribute dabei nicht zwingend gleich, Operationen jedoch schon!• Objekte realisieren oder nutzen Schnittstellen!• Notation: Benutzen über Abhängigkeit mit „<<use>>“, Realisieren über „gestrichelten Vererbungspfeil“ 3  5 6
  20. 20. Beziehungen: Schnittstellen• Schnittstellen definieren/standardisieren bestimmte Operationen und Verhaltensweisen, die verschiedene schnittstellenkonforme Klassen 1 2 implementieren• Attribute dabei nicht zwingend gleich, Operationen jedoch schon!• Objekte realisieren oder nutzen Schnittstellen!• Notation: Benutzen über Abhängigkeit mit „<<use>>“, Realisieren über „gestrichelten Vererbungspfeil“ 3  5 6
  21. 21. Beziehungen: Schnittstellen• Schnittstellen definieren/standardisieren bestimmte Operationen und Verhaltensweisen, die verschiedene schnittstellenkonforme Klassen 1 2 implementieren• Attribute dabei nicht zwingend gleich, Operationen jedoch schon!• Objekte realisieren oder nutzen Schnittstellen!• Notation: Benutzen über Abhängigkeit mit „<<use>>“, Realisieren über „gestrichelten Vererbungspfeil“ 3  5 6
  22. 22. Real-World-Beispiele 1 2 3 4  6
  23. 23. Real-World-Beispiele 1 2 3 4  6
  24. 24. Real-World-Beispiele 1 2 3 4  6
  25. 25. 1 2 3 4Fragen? 5 
  26. 26. Quellen[1] Website: The Current Official UML Specification; URL: http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML[2] Website: Introduction to OMG UML; URL: http://www.omg.org/gettingstarted/what_is_uml.htm[3] Buch: U. Schneider; D. Werner: Taschenbuch der Informatik, S. 204, Hanser(2007)weiteres:Website: List of UML tools - Wikipedia; URL: http://en.wikipedia.org/wiki/List_of_UML_toolswww.michael-whittaker.de www.michael-whittaker.de Creative Commons Namensnennung 3.0 Deutschland Lizenz

×