340 likes | 480 Views
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
E N D
Objektorientierte Modellierung mit UML Gerhard Röhner18. 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
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
UML-Darstellung der Klasse • unterteiltes Rechteck • Name im Singular • zentriert, nicht unterstrichen • Attribute • Methoden
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 • Kardinalität: 1, * • Multiplizität: 0..3, 2..4, ... • Optionalität: 0 – nicht 0
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; } }
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
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
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