SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
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?

ELECTRONIC COURT CASE MANAGEMENT SYSTEM_Project
ELECTRONIC COURT CASE MANAGEMENT SYSTEM_ProjectELECTRONIC COURT CASE MANAGEMENT SYSTEM_Project
ELECTRONIC COURT CASE MANAGEMENT SYSTEM_ProjectLaud Randy Amofah
 
Software Engineering unit 2
Software Engineering unit 2Software Engineering unit 2
Software Engineering unit 2Abhimanyu Mishra
 
Open Source Software Testing Tools
Open Source Software Testing ToolsOpen Source Software Testing Tools
Open Source Software Testing ToolsVaruna Harshana
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semesterrajesh199155
 
Location Tracking of Android Device Based on SMS.
Location Tracking of Android Device Based on SMS.Location Tracking of Android Device Based on SMS.
Location Tracking of Android Device Based on SMS.iCreateWorld
 
Seminar on Software Testing
Seminar on Software TestingSeminar on Software Testing
Seminar on Software TestingBeat Fluri
 
software engineering
software engineeringsoftware engineering
software engineeringTayfun Çelik
 
Introduction to the Windows Live Platform
Introduction to the Windows Live PlatformIntroduction to the Windows Live Platform
Introduction to the Windows Live PlatformClint Edmonson
 
Software Requirements Specification Final
Software Requirements Specification FinalSoftware Requirements Specification Final
Software Requirements Specification Finaljangjong
 
Software requirement specification
Software requirement specificationSoftware requirement specification
Software requirement specificationAmit Gandhi
 
Devices Sponsor Information Day: 3A - Medical Devices - Manufacturer's eviden...
Devices Sponsor Information Day: 3A - Medical Devices - Manufacturer's eviden...Devices Sponsor Information Day: 3A - Medical Devices - Manufacturer's eviden...
Devices Sponsor Information Day: 3A - Medical Devices - Manufacturer's eviden...TGA Australia
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram Rahul Pola
 
Computer science industrial training report carried out at web info net ltd ...
Computer science  industrial training report carried out at web info net ltd ...Computer science  industrial training report carried out at web info net ltd ...
Computer science industrial training report carried out at web info net ltd ...rashid muganga
 
Photo Management System PPT
Photo Management System PPTPhoto Management System PPT
Photo Management System PPTShanthan Reddy
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
 
Istqb foundation level training 2018 syllabus - day1 intro
Istqb foundation level training   2018 syllabus - day1 intro Istqb foundation level training   2018 syllabus - day1 intro
Istqb foundation level training 2018 syllabus - day1 intro Hassan Muhammad
 
Software testing and quality assurance
Software testing and quality assuranceSoftware testing and quality assurance
Software testing and quality assuranceTOPS Technologies
 

Was ist angesagt? (20)

ELECTRONIC COURT CASE MANAGEMENT SYSTEM_Project
ELECTRONIC COURT CASE MANAGEMENT SYSTEM_ProjectELECTRONIC COURT CASE MANAGEMENT SYSTEM_Project
ELECTRONIC COURT CASE MANAGEMENT SYSTEM_Project
 
Software Engineering unit 2
Software Engineering unit 2Software Engineering unit 2
Software Engineering unit 2
 
Open Source Software Testing Tools
Open Source Software Testing ToolsOpen Source Software Testing Tools
Open Source Software Testing Tools
 
Srs template ieee
Srs template ieeeSrs template ieee
Srs template ieee
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semester
 
Location Tracking of Android Device Based on SMS.
Location Tracking of Android Device Based on SMS.Location Tracking of Android Device Based on SMS.
Location Tracking of Android Device Based on SMS.
 
Seminar on Software Testing
Seminar on Software TestingSeminar on Software Testing
Seminar on Software Testing
 
software engineering
software engineeringsoftware engineering
software engineering
 
Introduction to the Windows Live Platform
Introduction to the Windows Live PlatformIntroduction to the Windows Live Platform
Introduction to the Windows Live Platform
 
Software Requirements Specification Final
Software Requirements Specification FinalSoftware Requirements Specification Final
Software Requirements Specification Final
 
Software requirement specification
Software requirement specificationSoftware requirement specification
Software requirement specification
 
Devices Sponsor Information Day: 3A - Medical Devices - Manufacturer's eviden...
Devices Sponsor Information Day: 3A - Medical Devices - Manufacturer's eviden...Devices Sponsor Information Day: 3A - Medical Devices - Manufacturer's eviden...
Devices Sponsor Information Day: 3A - Medical Devices - Manufacturer's eviden...
 
Use case Diagram
Use case Diagram Use case Diagram
Use case Diagram
 
Ieee 829 1998-a3
Ieee 829 1998-a3Ieee 829 1998-a3
Ieee 829 1998-a3
 
Computer science industrial training report carried out at web info net ltd ...
Computer science  industrial training report carried out at web info net ltd ...Computer science  industrial training report carried out at web info net ltd ...
Computer science industrial training report carried out at web info net ltd ...
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Photo Management System PPT
Photo Management System PPTPhoto Management System PPT
Photo Management System PPT
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
 
Istqb foundation level training 2018 syllabus - day1 intro
Istqb foundation level training   2018 syllabus - day1 intro Istqb foundation level training   2018 syllabus - day1 intro
Istqb foundation level training 2018 syllabus - day1 intro
 
Software testing and quality assurance
Software testing and quality assuranceSoftware testing and quality assurance
Software testing and quality assurance
 

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 UMLSebastian 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 ConventionChristian Baranowski
 

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

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 EntwicklerNETUserGroupBern
 
Schau, Mutti, keine Programmierzeile
Schau, Mutti, keine ProgrammierzeileSchau, Mutti, keine Programmierzeile
Schau, Mutti, keine Programmierzeilerokr
 
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 AGCommunardo GmbH
 
Webinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAPWebinar - Entwurfsmuster in ABAP
Webinar - Entwurfsmuster in ABAPCadaxo GmbH
 
Joomlaplatform deutsch
Joomlaplatform deutschJoomlaplatform deutsch
Joomlaplatform deutschRobert 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 wolltenMarkus 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 WirtschaftsinformatikClaus Brell
 
Monitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-AnwendungenMonitoring und Profiling von Java-Anwendungen
Monitoring und Profiling von Java-Anwendungengedoplan
 
Metamodellierung und Validierung
Metamodellierung und ValidierungMetamodellierung und Validierung
Metamodellierung und Validierungfoobar2605
 
Softwarequalität - Fachklassenmodellierung
Softwarequalität - FachklassenmodellierungSoftwarequalität - Fachklassenmodellierung
Softwarequalität - FachklassenmodellierungGerrit 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 PraxisTobias 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