• Keine Ergebnisse gefunden

42.1 V er volls tändigu ng von Oper ationen Zum Se lb st st ud ium Prof. U. Aßmann, Softwaretechnologie

N/A
N/A
Protected

Academic year: 2021

Aktie "42.1 V er volls tändigu ng von Oper ationen Zum Se lb st st ud ium Prof. U. Aßmann, Softwaretechnologie "

Copied!
13
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik1

Objek tor ientier ter Entw ur f 42) V er fein er ung des Klas senmodells

K abra kadabra

abc xyz

K abra (x:T1) T2 kadabra (y: T2): T1

abc: T1 xyz: T2 Version 11-0.1, 10.07.11 Prof. U. Aßmann, Softwaretechnologie

O bj ekt or ient ier ter E nt w ur f (O bj ect -O rient ed D esi gn, O O D )

1)Einführung in die objektorientierte Softwarearchitektur 1)Modularität und Geheimnisprinzip 2)Entwurfsmuster für Modularität 3)BCD-Architekturstil (3-tier architectures) 2)Verfeinerung des Entwurfsmodells zum Implementierungsmodell (Anreicherung von Klassendiagrammen) (42) 1)Verfeinerung von Operationen 2)Verfeinerung von Assoziationen 3)Verfeinerung von Vererbung 3)Verfeinerung von Lebenszyklen 1)Verfeinerung von verschiedenen Steuerungsmaschinen 4)Verfeinerung mit Object Fattening 5)Objektorientierte Rahmenwerke (frameworks) 6)Softwarearchitektur mit dem Quasar-Architekturstil

(2)

Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik3

42.1 V er volls tändigu ng von Oper ationen Zum Se lb st st ud ium

Prof. U. Aßmann, Softwaretechnologie

P ar am et er und D at ent ypen für O per at ionen

Analysephase: oft Operationsname ausreichend ggf. Parameternamen ohne weitere Information Entwurfsphase: Parameter und Datentypen der Operationen genau festlegen Zu einem Aktionsdiagramm (Statechart, Aktivitätsdiagramm) oder Interaktionsdiagramm (Sequenzdiagramm, Kommunikationsdiagramm) zuordnen Implementierung: Methodenrumpf schreiben Beispiele (Klasse Besprechungsraum): + freienRaumSuchen (plaetze: int, start: Date, dauer: int=60, raum: Besprechungsraum): Besprechungsraum istFrei(beginn: Date, dauer: int):boolean + reservieren (für: Termin):boolean;

(3)

Prof. U. Aßmann, Softwaretechnologie

B ei sp ie l O O P : A usf ül le n ei ne s M et hodenr um pf s in Java (1)

class Teambesprechung { private Teammitglied[] teilnahme; ... private boolean abstimmen (Hour beginn, int dauer) { boolean ok = true; for (int i=0; i<teilnahme.length; i++) ok = ok && teilnahme[i].terminBestaetigen(beginn, dauer); return ok;

} } TeambesprechungTeammitglied abstimmen()

teilnahme2..* +terminBestaetigen()*

Operationen aus dem Analysemodell müssen in der Implementieru ausgefüllt werden Prof. U. Aßmann, Softwaretechnologie

B ei spi el M et hodenr um pf ( 2)

class Teambesprechung { private Teammitglied[] teilnahme; ... private boolean abstimmen (Hour beginn, int dauer) ...

public Teambesprechung (String titel, Hour beginn, int dauer, Teammitglied[] teilnehmer) { ... titel, beginn, dauer lokal speichern this.teilnahme = teilnehmer; if (! abstimmen(beginn, dauer)) System.out.println("Termin bitte verschieben!"); else ... } ... }

TeambesprechungTeammitglied abstimmen()

teilnahme2..* +terminBestaetigen()*

(4)

Prof. U. Aßmann, Softwaretechnologie

B ei spi el M et hodenr um pf ( 3)

class Teammitglied { ... private Teambesprechung[] teilnahme; public boolean terminBestaetigen (Hour beginn,int dauer){ boolean konflikt = false; int i = 0; while (i < teilnahme.length && !konflikt) { if (teilnahme[i].inKonflikt(beginn, dauer))

konflikt = true; else i++; }; return !konflikt; } ... }

TeambesprechungTeammitglied abstimmen()

teilnahme2..* +terminBestaetigen()* Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik8

42.2 V er fein eru ng von As soz iationen Zum Se lb st st ud ium

(5)

Prof. U. Aßmann, Softwaretechnologie

Q ual ifi zi er te A ssozi at ion

Definition:Eine Qualifikation (Qualifier) ist ein Attribut für eine Assoziation zwischen Klassen K1 und K2, durch das die Menge der zu einem K1-Objekt assoziierten K2-Objekte partitioniert wird. Zweck der Qualifikation ist direkter Zugriff unter Vermeidung von Suche (Beschleunigung) Notation: K1K20..*

0..1 aK1K2 statt: Hinweis: Qualifizierte Assoziationen werden von vielen UML-Werkzeugen nicht

oder nur schlecht unterstützt. Bedeutung vor allem im Zusammenhang mit Datenbanken (Indizes), aber auch mit geeigneten Datenstrukturen nach Java abbildbar

. Prof. U. Aßmann, Softwaretechnologie

Q ual ifi zi er te A ssozi at ion: B ei spi el ( 1)

Teambesprechung themen

Termin titel beginn dauer verschieben() {abstract} raumFestlegen() einladen() absagen() verschieben()

{abstract} Raum12.istFrei(start=04.05.02 10:00, dauer=60);

Veranstal- tungsort

0..10..*

Besprechungsraum raumNr kapazit reservieren() freigeben() freienRaumSuchen() istFrei() führt zu einer Suche über alle assoziierten Teambesprechungen !

(6)

Prof. U. Aßmann, Softwaretechnologie

Q ual ifi zi er te A ssozi at ion: B ei spi el ( 2)

Teambesprechung themenTermin titel

beginn dauer

verschieben() {abstract} raumFestlegen()

einladen() absagen()

verschieben()

{abstract} Raum12.istFrei(start=04.05.02 10:00, dauer=60);

Veranstal- tungsort

0..10..1

Besprechungsraum

raumNr kapazität reservieren() freigeben()

freienRaumSuchen() istFrei() kann direkt nach Datum abfragen, ob eine Assoziation besteht

beginn wie bisher

kleinere Multiplizität

Indizierter Zugriff (Qualifikation) Prof. U. Aßmann, Softwaretechnologie

R eal isi er ung ei ner qual ifi zi er ten A ssozi at ion

r12: Besprechungsraum raumNr = "r12" kapazität = 20

04.05.02 09:00 10.05.02 10:00 10.05.02 11:00 10.05.02 12:00 11.05.02 09:00 12.05.02 15:00 12.05.02 17:00 Teambesprechungs- Objekte

Direktzugriff z.B. durch: Hashfunktion (Berechnung des Indexwerts aus gegebenem Datum) Sortierte Baumstruktur

beginn

(7)

Prof. U. Aßmann, Softwaretechnologie

G eor dnet e und sor tier te A ssozi at ion

{ordered} an einem Assoziationsende: Es besteht eine feste Reihenfolge, in der die assoziierten Objekte durchlaufen werden können (Sequenz). Mehrfachvorkommen eines Objekts sind verboten Keine Angabe an einem Assoziationsende: Die assoziierten Objekte sind als Menge strukturiert. Spezieller Einschränkungen als Annotationen möglich, z.B. die Forderung nach Sortierung gemäß bestimmter Attribute:

TeammitgliedTeambesprechung0..*0..*Teilnahme {ordered} TeammitgliedTeambesprechung0..*0..* Teilnehmer {sorted} {key=name} {order=ascending}

Besprechungen {sorted} {key=beginn} {order = ascending} Prof. U. Aßmann, Softwaretechnologie

Raumverwaltung einzigeInstanz *1frei

enRaumSuchen()

Bestand {sorted} {key= kapazität}

V er w al tungskl assen (M at er ial behäl ter kl assen)

Teambesprechung themen

Termin titel beginn dauer verschieben() {abstract} raumFestlegen() einladen() absagen() verschieben()

Besprechungsraum

raumNr kapazität

reservieren() freigeben() istFrei()

Veranstal- tungsort

0..1

{abstract} beginn0..1 freienRaumSuchen()

Hat man eine Menge von Objekten, die verwaltet werden müssen, kann eine Verwaltungs- oderMaterialbehälterklasse identifiziert werden

(8)

Prof. U. Aßmann, Softwaretechnologie

Id en tif ika tio n von ab ge lei te te n (r edu nd an te n) E lem ent e

Definition EinabgeleitetesModellelement (z.B. Attribut, Assoziation) ist ein Modell-Element, das jederzeit aus anderen (nicht abgeleiteten) Elementen rekonstruiert werden kann. Notation / Modellelement oder Modellelement {derived} Beispiele: Teambesprechung TeammitgliedLeitung Teilnahme

1* 2..*...*name/ teilnehmeranzahl / leiter Abhängigkeitspfeil mit <<derive>>: Optionale Angabe des Ursprungselements einer Abhängigkeit anzugeben.

/ istInKonflikt

1 * <<derive>> Prof. U. Aßmann, Softwaretechnologie

D et ai linf or m at ion zu abgel ei tet en E lem ent en

Zweck: Durch Ableitung kann Redundanz ausdem Model eliminie werden, und das führt zu einer besseren Konsistenz Man kann die Ableitungsregel für abgeleitete Elemente explizit angeben. (Notation: Object Constraint Language OCL von UML) {leiter = Leitung.name} {teilnehmeranzahl = Teilnahme->size}

Teambesprechung TeammitgliedLeitung Teilnahme

1* / teilnehmeranzahl /leiter ...*name 2..*

(9)

Softwaretechnologie, © Prof. Uwe Aßmann Technische Universit Dresden, Fakultät Informatik17

42.3 V er feiner ung v on V er er bung

Prof. U. Aßmann, Softwaretechnologie

E lim inat ion von ni cht -konf or m er V er er bung

In Analysemodellen hat die Vererbungsrelation oft mehrere Bedeutungen Während das Analysemodell diese Feinheiten nicht unterscheiden muss, sollte das Entwurfsmodell dies tun Ansonsten kann es zu Laufzeitfehlern kommen

(10)

Prof. U. Aßmann, Softwaretechnologie

Wi ed er h. : Ä hn lichke itsr el at io ne n (S im ila rit y R el at ionshi ps)

is-a: zeigt Ähnlichkeit an is-a ist azyklische Relation, bei einfacher Vererbung baumförmig is-structured-like: zeigt ähnliche Struktur an (structurelle Ähnlichke oder Gleichheit) behaves-like: Verhaltensähnlichkeit always-behaves-like: Konformanz (conformance), Ersetzbarkeit (substitutability) sometimes-behaves-like: gelegentlich verhaltensgleich restrictedly-behaves-like: im allgemeinen konformant, aber nicht in speziellen Situationen (extravagance, restriction inheritance) Achtung: is-a, is-structured-like, behaves-like werden alle Vererbung genannt instance-of: A ist aus einer Schablone B gemacht worden Prof. U. Aßmann, Softwaretechnologie

K onf or m e V er er bung (K onf or m ität , behaves- like)

Konforme Vererbung stellt sicher, dass Ableiten von Unterklassen niemals Fehler in eine Anwendung einbringt (Robustheit) dass bei der Unterklassenbildung die Semantik von Oberklassen erhalte bleibt

Liskov'sches Substitutionsprinzip (Liskov substitution principle): Eine Unterklasse U heisstverhaltenskonform zu einer Oberklasse O wenn jedes Objekt aus U jedes Objekt aus O ersetzen kann, ohn eine Anwendungsklasse, die O verwendet, in einen fehlerhaften Zustand zu versetzen

(11)

Prof. U. Aßmann, Softwaretechnologie

E xt ravaganz (r est rict edl y- behaves- like)

Eine Unterklasse U heisstextravagant (eingeschränkt) zu einer Oberklasse O, wenn nicht alle Objekte aus U alle Objekte aus O ersetzen können, ohne dass in einer Anwendung, die O verwende Fehler auftreten Aka: Eingeschränkte Vererbung (restriction inheritance) Professor Emeritus

giveLecture()

Professor

Frage: Was passiert, wenn ein emeritierter Professor keine Vorlesungen mehr anbietet? Antwort: Eine Anwendung der Klasse Professor, die dies erwartet, endet in einem fehlerhaften Zustand. Erklärung: ProfessorEmeritus ist eine extravagante Unterklasse von Professor Prof. U. Aßmann, Softwaretechnologie

K onf or m ität spr obl em in A nal ysem odel len

Leider sind nicht alle Vererbungshierarchien konform, insbesonder nicht in Analysemodellen Sowohl in UML als auch in Java drückt die Vererbungsrelation nicht unbedingt Konformität aus Man muss jede einzelne Vererbung daraufhin untersuchen :-( Und im Entwurfsmodell Konformität herstellen

(12)

Prof. U. Aßmann, Softwaretechnologie

ProfManagement

B ei spi el : B ib liot heke n, Fr am ew or ks und A nw endungen

Bibliotheken, Frameworks sind vorgefertigte Pakete mit Vererbungshierarchien von einem anderen Hersteller Anwendungenleiten speziellereUnterklassen davon ab Beispiele: Java Development Kit C++ Standard Template Library (STL)

eat() work() sleep() getName()

Person giveLecture()

Professor

visitLecture( drinkBeer

Student salary

Employee

visitUniversity() drinkBeer()

Alumnus visitNullCourse()

Beginner

PersonManagement StudentManagement Prof. U. Aßmann, Softwaretechnologie

B ei sp iel : K onf or m e V er er bun g von B ibl io th ek s- und Fr am ew or kkl assen

Verwendet man beim Entwurf eine zugekaufte Klassenbibliothek, stelle man sicher, dass man Anwendungsklassen nur mit konforme Vererbung ableitet Ansonsten treten Laufzeitfehler in Klassen der Klassenbibliothek Deren Fehlermeldungen sind völlig unverständlich, da sie nicht die eigentlichen Fehlerursache vermitteln können

(13)

Prof. U. Aßmann, Softwaretechnologie

Analyse-ModellEntwurfs-Modell

Zusam m enf assung: U M L- K lassenm odel le in A nal yse und E nt w ur f

Skizze: Teilweise unvollständig in Attributen und Operationen Datentypen und Parameter können noch fehlen Noch kaum Bezug zur Realisierungssprache Keine Überlegungen zur Realisierung von Assoziationen Nicht-konforme Vererbung

Vollständige Angabe aller Attribute und Operationen Vollständige Angabe von Datentypen und Parametern Auf Umsetzung in gewählter Programmiersprache bezogen Navigationsangaben, Qualifikation Ordnung, Verwaltungsklassen Entscheidung über Datenstrukture Vorbereitung zur Anbindung von Benutzungsoberfläche und Datenhaltung an fachlichen Kern Konforme Vererbung Prof. U. Aßmann, Softwaretechnologie

The E nd

Diese Folien sind eine überarbeitete Version der Vorlesungsfolien Vorlesung Softwaretechnologie von © Prof. H. Hussmann, 2002. used by permission.

Referenzen

ÄHNLICHE DOKUMENTE

Anmerkungen: Die Beurteilung erfolgt nach § 34 BauGB-Zulässigkeit von Vorhaben innerhalb der im Zusammenhang bebauten Ortsteile.

Anmerkungen: Wiesbaden 1959/07 Plan nach dem Hessischen Aufbaugesetz, der nur Bau- und Straßenfluchtlinien festsetzt. Im Übrigen erfolgt die Beurteilung nach § 34 BauGB

Anmerkungen: Wiesbaden 1959/07 Plan nach dem Hessischen Aufbaugesetz, der nur Bau- und Straßenfluchtlinien festsetzt. Im Übrigen erfolgt die Beurteilung nach § 34 BauGB

This work has been digitalized and published in 2013 by Verlag Zeitschrift für Naturforschung in cooperation with the Max Planck Society for the Advancement of Science under

( Setze die richtige Vokale ein und kontrolliere dich selber mit dem Duden... Übungseinheit o oder u, ö

Edité par Agroscope Changins-Wädenswil –Etat au 15.12.2008© AMTRA / VPS Liste des insecticides et acaricides recommandés en viticulture en 2009 ➀1 application par

Admis en viticulture biologique✘ Teneur en matière active (%) Concentration (%) a = excoriose b = rougeot c = coître Black-rot Botrytis Excoriose Mildiou Oïdium Rougeot

Produits chimiques pouvant avoir des effets dangereux sur la santé ou être mortels à des doses plus élevées..