SlideShare ist ein Scribd-Unternehmen logo
UML Klassendiagramme - Kurzzusammenfassung
Michael Whittaker / 10. August 2008
Software Engineering - Fachhochschule der Wirtschaft Paderborn
Inhalt

• UML - was ist das?
                                 1
• OOP - wozu Objekte?
                                 2
                                 3
• Klassen, Methoden, Attribute


• Beziehungen


• Real-World-Beispiel            4
• Fragen?                        5
                                 6
„
UML - Was ist das?

The OMG's Unified Modeling Language™ (UML®)
   helps you specify, visualize, and document
   models of software systems, including their
structure 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]
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
UML - Was ist das?

• es existieren verschiedene Typen an Standard-UML-Diagrammen
                                                                
                                                                2
                                                                3
                                                                4
                                                                5
                                                                6
Strukturdiagramme   Design / Architektur

   Verhaltens-      (Zeitliche) Abläufe /
   diagramme              Prozesse
UML - Was ist das?

• es existieren verschiedene Typen an Standard-UML-Diagrammen
                                                                
                                                                2
                                                                3
                                                                4
                                                                5
                                                                6
Strukturdiagramme   Design / Architektur

   Verhaltens-      (Zeitliche) Abläufe /
   diagramme              Prozesse
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
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
„
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]
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
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
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
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
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
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
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
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
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
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
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
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
Real-World-Beispiele

                       1
                       2
                       3
                       4
                       
                       6
Real-World-Beispiele

                       1
                       2
                       3
                       4
                       
                       6
Real-World-Beispiele

                       1
                       2
                       3
                       4
                       
                       6
1
          2
          3
          4
Fragen?
          5
          
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_tools

www.michael-whittaker.de

                                                                   www.michael-whittaker.de
                              Creative Commons Namensnennung 3.0
                                        Deutschland Lizenz

Weitere ähnliche Inhalte

Was ist angesagt?

Client server chat
Client server chatClient server chat
Client server chat
Freelancer
 
Direct linking loader
Direct linking loaderDirect linking loader
Direct linking loader
babyparul
 
Object oriented programming c++
Object oriented programming c++Object oriented programming c++
Object oriented programming c++
Ankur Pandey
 
Android resources
Android resourcesAndroid resources
Android resources
ma-polimi
 
Chat server nitish nagar
Chat server nitish nagarChat server nitish nagar
Chat server nitish nagar
Nitish Nagar
 
Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Concepts
thinkphp
 
2CPP09 - Encapsulation
2CPP09 - Encapsulation2CPP09 - Encapsulation
2CPP09 - Encapsulation
Michael Heron
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
Darshit Metaliya
 
Presentation on class and object in Object Oriented programming.
Presentation on class and object in Object Oriented programming.Presentation on class and object in Object Oriented programming.
Presentation on class and object in Object Oriented programming.
Enam Khan
 
Chat application
Chat applicationChat application
Chat application
Mudasir Sunasara
 
Visual Studio.NET
Visual Studio.NETVisual Studio.NET
Visual Studio.NET
salonityagi
 
C# OOP Advanced Concepts
C# OOP Advanced ConceptsC# OOP Advanced Concepts
C# OOP Advanced Concepts
agni_agbc
 
Client server chat application
Client server chat applicationClient server chat application
Client server chat application
Samsil Arefin
 
Design phase of game development of unity 2d game
Design phase of game development of unity 2d game Design phase of game development of unity 2d game
Design phase of game development of unity 2d game
Muhammad Maaz Irfan
 
Constraints of designing for mobile devices
Constraints of designing for mobile devicesConstraints of designing for mobile devices
Constraints of designing for mobile devices
K Senthil Kumar
 
Event management system
Event management systemEvent management system
Event management system
NishaChaudhari25
 
Social networking
Social networkingSocial networking
Social networking
vishnukdixit
 
Java Basic Oops Concept
Java Basic Oops ConceptJava Basic Oops Concept
Java Basic Oops Concept
atozknowledge .com
 
.Net framework
.Net framework.Net framework
.Net framework
Om Vikram Thapa
 
CSharp.ppt
CSharp.pptCSharp.ppt
CSharp.ppt
ckthesolo
 

Was ist angesagt? (20)

Client server chat
Client server chatClient server chat
Client server chat
 
Direct linking loader
Direct linking loaderDirect linking loader
Direct linking loader
 
Object oriented programming c++
Object oriented programming c++Object oriented programming c++
Object oriented programming c++
 
Android resources
Android resourcesAndroid resources
Android resources
 
Chat server nitish nagar
Chat server nitish nagarChat server nitish nagar
Chat server nitish nagar
 
Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Concepts
 
2CPP09 - Encapsulation
2CPP09 - Encapsulation2CPP09 - Encapsulation
2CPP09 - Encapsulation
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Presentation on class and object in Object Oriented programming.
Presentation on class and object in Object Oriented programming.Presentation on class and object in Object Oriented programming.
Presentation on class and object in Object Oriented programming.
 
Chat application
Chat applicationChat application
Chat application
 
Visual Studio.NET
Visual Studio.NETVisual Studio.NET
Visual Studio.NET
 
C# OOP Advanced Concepts
C# OOP Advanced ConceptsC# OOP Advanced Concepts
C# OOP Advanced Concepts
 
Client server chat application
Client server chat applicationClient server chat application
Client server chat application
 
Design phase of game development of unity 2d game
Design phase of game development of unity 2d game Design phase of game development of unity 2d game
Design phase of game development of unity 2d game
 
Constraints of designing for mobile devices
Constraints of designing for mobile devicesConstraints of designing for mobile devices
Constraints of designing for mobile devices
 
Event management system
Event management systemEvent management system
Event management system
 
Social networking
Social networkingSocial networking
Social networking
 
Java Basic Oops Concept
Java Basic Oops ConceptJava Basic Oops Concept
Java Basic Oops Concept
 
.Net framework
.Net framework.Net framework
.Net framework
 
CSharp.ppt
CSharp.pptCSharp.ppt
CSharp.ppt
 

Andere mochten auch

UML-Einführung: Darstellung von Klassen (Klassendiagramm)
UML-Einführung: Darstellung von Klassen (Klassendiagramm)UML-Einführung: Darstellung von Klassen (Klassendiagramm)
UML-Einführung: Darstellung von Klassen (Klassendiagramm)lehrerfreund
 
Anforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML GrundlagenAnforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML GrundlagenChristian Baranowski
 
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
GFU Cyrus AG
 
Programmieren war gestern!
Programmieren war gestern!Programmieren war gestern!
Programmieren war gestern!
Gerrit Beine
 
Objektorientierte Techniken und UML
Objektorientierte Techniken und UMLObjektorientierte Techniken und UML
Objektorientierte Techniken und UML
Sebastian Hempel
 
2010 - Einführung in die UML - Seitenbau Developer Convention
2010 -  Einführung in die UML - Seitenbau Developer Convention2010 -  Einführung in die UML - Seitenbau Developer Convention
2010 - Einführung in die UML - Seitenbau Developer Convention
Christian Baranowski
 
UML - Unified Modeling Language
UML - Unified Modeling LanguageUML - Unified Modeling Language
UML - Unified Modeling Language
Katharina Schwarzer
 
Analyse-Methodik
Analyse-MethodikAnalyse-Methodik
Analyse-Methodik
Christoph Santschi
 

Andere mochten auch (8)

UML-Einführung: Darstellung von Klassen (Klassendiagramm)
UML-Einführung: Darstellung von Klassen (Klassendiagramm)UML-Einführung: Darstellung von Klassen (Klassendiagramm)
UML-Einführung: Darstellung von Klassen (Klassendiagramm)
 
Anforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML GrundlagenAnforderungsanalyse und UML Grundlagen
Anforderungsanalyse und UML Grundlagen
 
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
Professionelle Anforderungsanalyse am Beispiel einer Java-Anwendung zur Betri...
 
Programmieren war gestern!
Programmieren war gestern!Programmieren war gestern!
Programmieren war gestern!
 
Objektorientierte Techniken und UML
Objektorientierte Techniken und UMLObjektorientierte Techniken und UML
Objektorientierte Techniken und UML
 
2010 - Einführung in die UML - Seitenbau Developer Convention
2010 -  Einführung in die UML - Seitenbau Developer Convention2010 -  Einführung in die UML - Seitenbau Developer Convention
2010 - Einführung in die UML - Seitenbau Developer Convention
 
UML - Unified Modeling Language
UML - Unified Modeling LanguageUML - Unified Modeling Language
UML - Unified Modeling Language
 
Analyse-Methodik
Analyse-MethodikAnalyse-Methodik
Analyse-Methodik
 

Ähnlich wie UML Klassendiagramme - Einführung

05 ai uml_illik_students_part_1_de
05 ai uml_illik_students_part_1_de05 ai uml_illik_students_part_1_de
05 ai uml_illik_students_part_1_de
Prof. J. A. Illik, Hochschule Furtwangen University,
 
Ruby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerRuby und Rails für .NET Entwickler
Ruby und Rails für .NET Entwickler
NETUserGroupBern
 
Schau, Mutti, keine Programmierzeile
Schau, Mutti, keine ProgrammierzeileSchau, Mutti, keine Programmierzeile
Schau, Mutti, keine Programmierzeile
rokr
 
T4 S1 Objektorienierte Entwicklung
T4 S1 Objektorienierte EntwicklungT4 S1 Objektorienierte Entwicklung
T4 S1 Objektorienierte Entwicklungdominion
 
jRQL- Management Server Aufgaben elegant automatisieren
jRQL- Management Server Aufgaben elegant automatisieren jRQL- Management Server Aufgaben elegant automatisieren
jRQL- Management Server Aufgaben elegant automatisieren
msg systems ag
 
Sitzung 2
Sitzung 2Sitzung 2
Sitzung 2scuy
 
Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"
joergreichert
 
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AGCCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
Communardo GmbH
 
Webinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAPWebinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAP
Cadaxo GmbH
 
Relevantes schneller finden – mit-Lucene und Solr
Relevantes schneller finden – mit-Lucene und SolrRelevantes schneller finden – mit-Lucene und Solr
Relevantes schneller finden – mit-Lucene und Solr
SHI Search | Analytics | Big Data
 
Joomlaplatform deutsch
Joomlaplatform deutschJoomlaplatform deutsch
Joomlaplatform deutsch
Robert Deutz
 
Was Sie schon immer über barrierefreie PDFs wissen wollten
Was Sie schon immer über barrierefreie PDFs wissen wolltenWas Sie schon immer über barrierefreie PDFs wissen wollten
Was Sie schon immer über barrierefreie PDFs wissen wollten
Markus Erle
 
Development of an English vocabulary trainer for German speaking pupils and o...
Development of an English vocabulary trainer for German speaking pupils and o...Development of an English vocabulary trainer for German speaking pupils and o...
Development of an English vocabulary trainer for German speaking pupils and o...
Educational Technology
 
Vorgehensmodelle - Methoden der Wirtschaftsinformatik
Vorgehensmodelle - Methoden der WirtschaftsinformatikVorgehensmodelle - Methoden der Wirtschaftsinformatik
Vorgehensmodelle - Methoden der Wirtschaftsinformatik
Claus Brell
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
gedoplan
 
AOP mit PostSharp
AOP mit PostSharpAOP mit PostSharp
AOP mit PostSharp
Thomas Mentzel
 
Metamodellierung und Validierung
Metamodellierung und ValidierungMetamodellierung und Validierung
Metamodellierung und Validierungfoobar2605
 
Softwarequalität - Fachklassenmodellierung
Softwarequalität - FachklassenmodellierungSoftwarequalität - Fachklassenmodellierung
Softwarequalität - Fachklassenmodellierung
Gerrit Beine
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
Tobias Kraft
 

Ähnlich wie UML Klassendiagramme - Einführung (20)

05 ai uml_illik_students_part_1_de
05 ai uml_illik_students_part_1_de05 ai uml_illik_students_part_1_de
05 ai uml_illik_students_part_1_de
 
Ruby und Rails für .NET Entwickler
Ruby und Rails für .NET EntwicklerRuby und Rails für .NET Entwickler
Ruby und Rails für .NET Entwickler
 
Schau, Mutti, keine Programmierzeile
Schau, Mutti, keine ProgrammierzeileSchau, Mutti, keine Programmierzeile
Schau, Mutti, keine Programmierzeile
 
T4 S1 Objektorienierte Entwicklung
T4 S1 Objektorienierte EntwicklungT4 S1 Objektorienierte Entwicklung
T4 S1 Objektorienierte Entwicklung
 
jRQL- Management Server Aufgaben elegant automatisieren
jRQL- Management Server Aufgaben elegant automatisieren jRQL- Management Server Aufgaben elegant automatisieren
jRQL- Management Server Aufgaben elegant automatisieren
 
Sitzung 2
Sitzung 2Sitzung 2
Sitzung 2
 
Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"Using openArchitectureWare 4.0 in domain "registration"
Using openArchitectureWare 4.0 in domain "registration"
 
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AGCCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
CCD 2012: Wissensmanagement @MPS - Sören Krasel, Daimler AG
 
Webinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAPWebinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAP
 
Relevantes schneller finden – mit-Lucene und Solr
Relevantes schneller finden – mit-Lucene und SolrRelevantes schneller finden – mit-Lucene und Solr
Relevantes schneller finden – mit-Lucene und Solr
 
Joomlaplatform deutsch
Joomlaplatform deutschJoomlaplatform deutsch
Joomlaplatform deutsch
 
Was Sie schon immer über barrierefreie PDFs wissen wollten
Was Sie schon immer über barrierefreie PDFs wissen wolltenWas Sie schon immer über barrierefreie PDFs wissen wollten
Was Sie schon immer über barrierefreie PDFs wissen wollten
 
Development of an English vocabulary trainer for German speaking pupils and o...
Development of an English vocabulary trainer for German speaking pupils and o...Development of an English vocabulary trainer for German speaking pupils and o...
Development of an English vocabulary trainer for German speaking pupils and o...
 
Vorgehensmodelle - Methoden der Wirtschaftsinformatik
Vorgehensmodelle - Methoden der WirtschaftsinformatikVorgehensmodelle - Methoden der Wirtschaftsinformatik
Vorgehensmodelle - Methoden der Wirtschaftsinformatik
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungen
 
AOP mit PostSharp
AOP mit PostSharpAOP mit PostSharp
AOP mit PostSharp
 
Systementwurf mit UML
Systementwurf mit UMLSystementwurf mit UML
Systementwurf mit UML
 
Metamodellierung und Validierung
Metamodellierung und ValidierungMetamodellierung und Validierung
Metamodellierung und Validierung
 
Softwarequalität - Fachklassenmodellierung
Softwarequalität - FachklassenmodellierungSoftwarequalität - Fachklassenmodellierung
Softwarequalität - Fachklassenmodellierung
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 

UML Klassendiagramme - Einführung

  • 1. UML Klassendiagramme - Kurzzusammenfassung Michael Whittaker / 10. August 2008 Software Engineering - Fachhochschule der Wirtschaft Paderborn
  • 2. Inhalt • UML - was ist das? 1 • OOP - wozu Objekte? 2 3 • Klassen, Methoden, Attribute • Beziehungen • Real-World-Beispiel 4 • Fragen? 5 6
  • 3. „ UML - Was ist das? The OMG's Unified Modeling Language™ (UML®) helps you specify, visualize, and document models of software systems, including their structure 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. 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. UML - Was ist das? • es existieren verschiedene Typen an Standard-UML-Diagrammen  2 3 4 5 6 Strukturdiagramme Design / Architektur Verhaltens- (Zeitliche) Abläufe / diagramme Prozesse
  • 6. UML - Was ist das? • es existieren verschiedene Typen an Standard-UML-Diagrammen  2 3 4 5 6 Strukturdiagramme Design / Architektur Verhaltens- (Zeitliche) Abläufe / diagramme Prozesse
  • 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. 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. „ 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Real-World-Beispiele 1 2 3 4  6
  • 23. Real-World-Beispiele 1 2 3 4  6
  • 24. Real-World-Beispiele 1 2 3 4  6
  • 25. 1 2 3 4 Fragen? 5 
  • 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_tools www.michael-whittaker.de www.michael-whittaker.de Creative Commons Namensnennung 3.0 Deutschland Lizenz