Objektorientierte Modellierung mit UML Gerhard Röhner 18. März 2006
Objektorientierter Entwicklungsprozess Smalltalk, Eiffel, TP 5.5, Delphi, Java Entwicklung der UML Entwicklung der OO-Methodik objektorientierte Methoden ganzheitliche Gegenstände bessere Abstraktionsmöglichkeiten methodische Durchgängigkeit evolutionäre Entwicklung
Durchgängige Modellrepräsentation OOA – objektorientierte Analyse (Definition) OOD – objektorientiertes Design (Entwurf) OOP – objektorientierte Programmierung (Implementierung) type Kunde = class Name: String; StrasseNr: String; PLZOrt: String; Bonitaet: integer; procedure BonitaetPruefen; end;
Objektorientierte Analyse Wünsche und Anforderungen der Auftraggebers an ein neues System ermitteln und beschreiben fachliche Lösung des zu realisierenden Systems keine Implementierungsaspekte Entwicklung des Fachkonzepts
Objektorientierter Entwurf Realisierung des Fachkonzepts aus OOA auf einer Plattform Effizienz und Standardisierung Realisierung der Drei-Schichten-Architektur
Drei-Schichten-Architektur
Objektorientierte Programmierung Implementierung des OOD-Modells in einer objektorientierten Programmiersprache
Objekt Element des Anwendungsbereichs Geheimnisprinzip Attribute Methoden Exemplar einer Klasse Objektidentität
UML-Darstellung unterteiltes Rechteck Name im Singular zentriert, unterstrichen Attribute und Werte
Attribut Datenbereich eines Objekts Name und Datentyp Wert legt Zustand des Objekts fest alle Objekte einer Klasse haben gleiche Attribute Substantiv
Methode Operation zum Manipulieren des Objekts Prozeduren Funktionen Konstruktoren alle Objekte einer Klasse haben gleiche Methoden Verb oder Verb + Substantiv
Klasse Abstraktion gleichartiger Objekte Beschreibung der Objekte Datentyp der Objekte
Stempelmetapher
UML-Darstellung der Klasse unterteiltes Rechteck Name im Singular zentriert, nicht unterstrichen Attribute Methoden
Objekt-Klassen-Beziehung
Programmierung in Java public class Mitarbeiter { private int Personalnummer; private String Name; private float Gehalt; public void einstellen() { } public void druckeAusweis() { public void erhöheGehalt(float Betrag) {
Programmierung in Delphi unit UMitarbeiter; interface type Mitarbeiter = class private Personalnummer: integer; Name: String; Gehalt: real; public procedure einstellen; procedure druckeAusweis; procedure erhoeheGehalt(Betrag: real); end; implementation ... end.
Assoziation Kennt-Beziehung Objektbeziehung ist Exemplar einer Assoziation Darstellung durch Strecken ungerichtet - gerichtet
Kardinalität - Multiplizität Optionalität: 0 – nicht 0
Implementierung Assoziation Operation Beispiel Allgemein Herstellen einer Beziehung setAuto(einAuto) link Abfragen einer Beziehung getAuto(): Auto getlink Aufheben einer Beziehung removeAuto() unlink
Implementierung Assoziation public class Schueler { private Auto dasAuto; ... public void setAuto(Auto einAuto) { dasAuto = einAuto; } public Auto getAuto() { return dasAuto; public void removeAuto() { dasAuto = null;
Beispiel Assoziation
Aggregation
Aggregation hat-Beziehung (besteht aus, Teil-Ganzes) Raute für Behälterobjekt Implementierung als Feld, Liste oder Vektor
Komposition Spezialfall der Aggregation Teile sind existenzabhängig vom Ganzen
Generalisierung Beziehung zwischen allgemeiner und spezieller Klasse Klassenhierarchie abgeleitete Klasse hat zusätzliche Attribute und Methoden Darstellung durch Pfeil mit geschlossenem Dreieck Ist-Beziehung
Delegation
Implementierung der Vererbung Type Unterklasse = class(Oberklasse) // allgemein TAutoFormular = class(TForm) // Beispiel In Java benutzt man das Schlüsselwort extends: public class Unterklasse extends Oberklasse {} // allgemein public class Hilfskraft extends Student() // Beispiel
Klassendiagramm Index für Datenbanktabelle
Sekundarstufe I
Sequenzdiagramm
Zustandsdiagramm POP3-Protokoll STAT liefert die Anzahl der verfügbaren E-Mails und deren Gesamtgröße LIST liefert eine nummerierte Liste der verfügbaren E-Mails samt Größe RETR # holt E-Mail mit der Nummer # DELE # markiert die E-Mail mit der Nummer # zum Löschen NOOP No Operation RSET alle Löschmarkierungen werden aufgehoben QUIT Verbindung beenden und markierte E-Mails löschen
ER-Modellierung Verhältnis ERM zu OO Problembereiche Spiele Simulationen Anwendungen