Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objektorientierter Entwurf Basiskonzepte innerhalb des OOD: Klassen (generische ~, Container, Schnittstellen) Attribut Operation UML: Komponentendiagramm.

Ähnliche Präsentationen


Präsentation zum Thema: "Objektorientierter Entwurf Basiskonzepte innerhalb des OOD: Klassen (generische ~, Container, Schnittstellen) Attribut Operation UML: Komponentendiagramm."—  Präsentation transkript:

1 Objektorientierter Entwurf Basiskonzepte innerhalb des OOD: Klassen (generische ~, Container, Schnittstellen) Attribut Operation UML: Komponentendiagramm

2

3 OOD-Modell Soll das spätere Programm widerspiegeln; aber: höhere Abstraktionsebene, Verdeutlichung des Zusammenwirkens einzelner Elemente Erstellen eines statischen und dynamischen Modells

4 Klasse Allgemein: Notation Name: Wie in der Analyse fett und zentriert, beginnend mit Großbuchstabe Stereotypen verwenden, um Zugehörigkeit einer Klasse zu einer bestimmten Entwurfsschicht zu zeigen: >, >, … PERSON > UIButton

5 Klasse Parametrisierte Klasse (Template): Queue queue: T[0..n] insert() delete() FloatQueue Adressbuch > > Die parametrisierte Klasse Queue enthält ein Attribut queue, das mit Hilfe des Typs T und der Multiplizität [0..n] definiert wird; in den beiden Klassen, die Queue als Vorlage benutzen, wird dann Typ und Anzahl der maximalen Werte/Objekte bestimmt

6 Klasse Container-Klasse Verwaltung von Objekten einer anderen Klasse (fehlte im Entwurf!) stellt Operationen bereit, um auf die zu verwaltenden Objekte zugreifen zu können Vordefiniert in Bibliotheken (z.B. C++ STL)

7 Implementierung C++: template class Queue{ public: void insert(ElementType element) {...} }; typedef Queue IntQueue; typedef Queue StringQueue; IntQueue intQueue; StringQueue strQueue; strQueue.insert(Meier"); intQueue.insert(5);

8 Klasse Schnittstelle (Interface) Enthält Signaturen von Operationen (abstrakt) und evtl. Attribute Verwendung wie abstrakte Klasse Schlüsselwort >

9 Beispiel:

10 Schnittstelle : Implementierung Java: Deklaration: interface ClassInfo{ public abstract String getClassName(); } Nutzung: class MyClass implements ClassInfo{ public String getClassName(){ return MyClass; } C++: Mittels Klassenkonzept

11 Klasse Abstrakte Klassen Oberklasse zu realen Klassen kann keine Objekte erzeugen jede Klasse, die eine mit abstract gekennzeichnete Operation enthält muss ebenfalls abstract sein UML: Medium {abstract} erfasse() Medium Oder: erfasse() {abstract}

12 Implementierung Java: - Kennzeichnung mittels abstract - Eine Klasse, die eine abstrakte Operation besitzt, muss als abstrakt deklariert sein abstract class AbstClass1{ public void operation1(){} public abstract void operation2(){} } C++: - Keine spezielle Kennzeichnung

13 Attribute UML erlaubt alle Zeichen im Attributnamen Name an Konvention Programmiersprache anpassen; beginnend mit Kleinbuchstaben Sichtbarkeiten publicsichtbar in allen Klassen UML: + protected sichtbar in der Klasse und allen Unterklassen UML: # privatesichtbar in der KlasseUML: - package sichtbar für alle Klasse im gleichen Paket UML:~

14 Attribute Notation: Sichtbarkeit / name : Typ [Multiplizität] = Anfangswert {Eigenschaftswert} - Nur der Name des Attributs ist zwingend anzugeben; Standard: Sichtbarkeit, Name, Typ

15 Attribute Eigenschaftswerte: -UML bietet eine Reihe von vordefinierten Eigenschaftswerten, wie z.B.: {read only} Attributwert unveränderbar {ordered} Menge von Werten, geordnet ( vorname[1..3] {ordered} ) -Weitere Eigenschaftswerte dürfen nach Belieben definiert werden (ebenso Einschränkungen) rueckflug: Date {rueckflug > hinflug}

16 Attribute Typen: UML erlaubt neben vordefinierten Typen die Definition beliebiger weiterer Typen Typen der Programmiersprache, die verwendet werden soll, benutzen. Abgeleitete Attribute: Abgeleitete Attribute ins OOD- Modell eintragen. Sie werden später als Attribute oder durch eine Operation realisiert, die den aktuellen Wert des abgeleiteten Attributs ermittelt.

17 Operationen Name: beliebig, sollte mit Kleinbuchstaben beginnen; auch hier: Syntax der verwendeten Programmiersprache zu Grunde legen Überladen von Operationen: Im OOD darf derselbe Operationsnamen innerhalb einer Klasse mehrfach vorkommen, allerdings mit verschiedenen Parametern

18 Operation Sichtbarkeiten : publicsichtbar in allen Klassen UML: + protectedsichtbar in der Klasse und in allen Unterklassen UML: # privatsichtbar in der Klasse UML: - package sichtbar im selben Paket UML: ~

19 Operationen Signatur: Im OOD-Modell vollständig anzugeben Spezifikation: Sichtbarkeit name (Parameterliste) : Ergebnistyp {Eigenschaftswert} Für die Parameterliste gilt: Richtung parametername : Typ [Multiplizität] = Anfangswert {Eigenschaftswert} Auch hier ist nur die Angabe des Namens zwingend.

20 Operation Signatur: Richtung in : bei reinen Eingabeparametern; nur lesender Zugriff der Operation möglich z.B. erfassen(in name: string) out : bei reinen Ausgabeparametern; Operation erzeugt den Wert des Parameters und gibt ihn an die aufrufende Funktion zurück inout : lesen, verändern, zurückgeben

21 Operation Eigenschaftswerte: Analog zu Attributen gibt es in UML vordefinierte und die Möglichkeit, eigene zu definieren

22 Operation Für abstrakte Operationen gilt dasselbe wie für abstrakte Klassen: - sie besteht nur aus der Signatur (ohne Wertangabe im OOD / ohne aktive Implementierung) - sie werden im Rahmen von Generalisierungsstrukturen ins OOD-Modell eingetragen - UML: kursiv oder {abstract} - in Schnittstellen sind Operationen immer abstrakt und müssen nicht gesondert als abstrakt gekennzeichnet werden

23 Beispiel

24 Operation Erweiterung gegenüber Analyse: vollständige Signatur Namen und Typen aller Parameter Ergebnistyp der Operation Sichtbarkeiten

25 Übung 1 Ziel: Generische Klasse entwerfen Bilden sie generische Klassen und versuchen Sie die Signaturen zu spezifizieren. Bilden Sie auch Klassen, die die Templates benutzen. 1) Liste: Operationen: Einfügen eines Elements in die Liste, Entfernen an einer angegebenen Position, Lesen eines Elements an der angegebenen Position 2) Menge (Set): Operationen: Einfügen eines Elements, Prüfung auf Enthaltensein eines Elements, Prüfen ob Menge Teilmenge einer anderen Menge ist, Bilden des Durchschnitts zweier Mengen

26 Komponentendiagramm Wie ist die Struktur des Systems, wie wird sie erzeugt? Komponente: Softwarebaustein, der über feste Schnittstellen verfügt, wobei das Innenleben der Komponente modifiziert werden kann Vorteil: Austauschbarkeit Komponentenbasierte Entwicklung: z.B..NET, JavaBeans

27 Komponentendiagramm Notation: Komponente und Schnittstelle > Komponente

28 Komponentendiagramm Alternative Darstellung

29 Komponentendiagramm Die einzelnen Komponenten sind über ihre Schnittstellen miteinander verbunden: > KomponenteA > KomponenteB > KomponenteC

30 Komponentendiagramm Artefakte Artefakte sind physische Informationseinheiten, z.B. eine Quellcodedatei oder eine ausführbare Binärdatei Die Art des Artefakts kann durch Stereotypen spezifiziert sein: > =Datei > =Datei, die weder Quellcode noch ausführbaren Programmcode besitzt > =Datei mit Quellcode > = ausführbare Datei > =Datei, die Bibliothek enthält (z.B. dll- Datei) > ArtefaktX

31 Komponentendiagramm Artefakt1 wird durch Komponente realisiert Keine näher spezifizierte Abhängigkeit Class-Datei wird automatisiert aus aus Java- Datei erstellt OOD-Modell wird aus OOA-Modell erstellt Abhängigkeiten zwischen Artefakten und Komponenten

32 Komponentendiagramm Darstellung des Innenlebens einer Komponente

33 Komponentendiagramm Abhängigkeiten zwischen Modellelementen Klasse Fahrzeug ist Exemplar der Klasse Fahrzeugtyp Kunden-Window besitzt Zugriffsrechte auf Klasse Kunde OOD-Klasse Kunde realisiert OOA-Klasse Kunde EditierbareListe ist durch Klasse Liste ersetzbar Klasse Bestellung benötigt für volle Funktionalität Artikel

34 Übung 2 Ziel: Komponentendiagramm erstellen Erstellen Sie ein Komponentendiagramm mit den folgenden Komponenten und den jeweils angegebenen Schnittstellen, die diese Komponenten zur Verfügung stellen und benutzen: - Online-Reservierung: benutzt Reservierung - Zimmerbelegung: bietet Zimmeranfrage und Buchung - Preisberechnung: bietet Preisliste und Sonderangebote - Zimmerreservierung: bietet Stornierung und Reservierung, benutzt Zimmeranfrage, Buchung, Preisliste und Sonderangebote.


Herunterladen ppt "Objektorientierter Entwurf Basiskonzepte innerhalb des OOD: Klassen (generische ~, Container, Schnittstellen) Attribut Operation UML: Komponentendiagramm."

Ähnliche Präsentationen


Google-Anzeigen