Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Design Pattern SS 15 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339)

Ähnliche Präsentationen


Präsentation zum Thema: "Design Pattern SS 15 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339)"—  Präsentation transkript:

1 Design Pattern SS 15 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee Kassel (Raum 1339)

2 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 2 Organisatorisches m Umfang: 4 SWS teils Vorlesungen teils Übungen m Übungsbetreuung: Marcel Hahn, … m Ort und Zeit: Vorlesung: Dienstags 16: :00 Raum 1332 (Erste Vorlesung: ) Übung:?In obigem Zeitraum m Prüfung: l Pflichtübungsaufgaben (korrigiert, bepunktet) m Folienskript / Screen Videos: l

3 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 3 Literatur Elementar: m Norbisrath, Zündorf, Jubeh: Story Driven Modeling, Amazon 2014, ISBN (Das Buch überhaupt ) Grundlegend: m E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patterns (Elements of Reusable Object-Oriented Software); Addison Wesley, Bonn, ISBN (1994) m Patterns Home Page: st-www.cs.uiuc.edu/users/patterns/patterns.html Unified Modeling Language: m Martin Hitz, Gerti Kappel: Work, dpunkt.verlag (ziemlich gut) Hintergrund: m Frederick P.\ Brooks: The Mythical Man Month, Addison Wesley 1975 (ist nur kurz aber ziemlich witzig, unbedingt mal lesen)

4 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 4 Gliederung 1. Einführung 2. Design Grundprinzipien 3. Grundlegende Pattern 4. Weitere Pattern 5. Zusammenfassung

5 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 5 1. Einführung Ziele der Veranstaltung: m Design Know How für große Programme > LOC m Grundprinzipien der Wartbarkeit und Erweiterbarkeit m sicherer Umgang mit Vererbung und Delegation m Grundkenntnis der wichtigsten Design Pattern

6 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 6 Beispiel Composite Pattern m Realisierung hierarchischer Datenstrukturen m kommt in praktisch allen Software-Anwendungen vor m naiver Ansatz verursacht dramatische Wartungsprobleme m Gute Lösung ist Ausgangspunkt für viele weitere Pattern

7 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 7 Gliederung 1. Einführung 2. Design Grundprinzipien 3. Grundlegende Pattern 4. Weitere Pattern 5. Zusammenfassung

8 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 8 2. Design Grundprinzipien m Wartbarkeit m Erweiterbarkeit m ein Ort eine Design Entscheidung / eine Funktionalität  lokale Änderungen m nur lokale Auswirkungen lokaler Änderung (Module/Klassen, Interfaces, Sichtbarkeiten) m "wenig" Vererbung

9 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 9 Vererbung m Substitutionsprinzip: Kinder müssen halten was die Eltern versprechen m anstelle eines Elternklassenobjektes kann man auch immer ein Unterklassenobjekt verwenden Enterprise Employee work (t : Task) : Product Manager work (t : Task) : Product manage ( proj : Project ) : Presentation has Project Task Presentation Product created does

10 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 10 Beispielsituationen EnterpriseEmployee work (t : Task) : Product Manager work (t : Task) : Product manage ( proj : Project ) : Presentation has Project Task Presentation Product created does … prod = e.work (t); … Struktur Verhalten Daten :Employee :Manager :Task :Product :Presentation :Project :Task

11 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 11 Beispielsituationen EnterpriseEmployee work (t : Task) : Product Manager work (t : Task) : Product manage ( proj : Project ) : Presentation has Project Task Presentation Product created does … prod = e.work (t); … Struktur Verhalten Daten :Employee :Manager :Task :Product :Presentation :Project :Task

12 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 12 Beispielsituationen EnterpriseEmployee work (t : Task) : Product Manager work (t : Task) : Product manage ( proj : Project ) : Presentation has Project Task Presentation Product created does … prod = e.work (t); … Struktur Verhalten Daten :Employee :Manager :Task :Product :Presentation :Project :Task

13 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 13 Beispielsituationen EnterpriseEmployee work (t : Task) : Product Manager work (t : Task) : Product manage ( proj : Project ) : Presentation has Project Task Presentation Product created does … prod = e.work (t); … Struktur Verhalten Daten :Employee :Manager :Task :Product :Presentation :Project :Task

14 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 14 Co- und Contravariante Redefinitionen: wegen Substituierbarkeit: m input Parameter (Lesen) in Unterklassen nur verallgemeinern (Contravariante Redefinition) m output Parametern (Schreiben in Unterklassen) nur spezialisieren (Covariante Redefinition)

15 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 15 Delegation: House run () alarm () FlashLight alarm() Sirene alarm() MailAlarm alarm() alarmDevice Struktur Verhalten Daten … this.alarm(); … :House :FlashLight :Sirene :MailAlarm AlarmDevice alarm ()

16 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 16 Hausaufgabe 1: deliveryBoy Struktur Verhalten Daten … myCourier.deliver(p1, "WilliAllee73"); … :CourierService :CarBoy :BikeBoy :RollerBoy DeliveryBoy deliver(pack, addr) BikeBoy deliver(pack, addr) RollerBoy deliver(pack, addr) CarBoy CourierService deliver(package, address)

17 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 17 Hausaufgabe 1: m Implementiert obiges Klassendiagramm zur Delegation (z.B. mit SDMLib) m Implementiert die deliver(pack, addr) Methoden der DeliveryBoy–Unterklassen m macht jeweils unterschiedliche System.out Ausgaben m Schreibt ein Testprogramm dass: l ein CourierService Objekt und ein Paket Kaffebohnen erzeugt, l nacheinander verschiedene DeliveryBoy Objekte einbaut l jeweils deliver(coffeeBeans, "WilliAlle73") aufruft

18 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 18 Abgabe: m Bis m Eclipse Projekt "DPH01 " m Eclipse Projekte inklusive Quellcode m JUnit Test start mit einem Click

19 Vererbungskonzepte Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 19

20 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 20

21 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 21

22 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 22 Gliederung 1. Einführung 2. Design Grundprinzipien 3. Grundlegende Pattern 4. Weitere Pattern 5. Zusammenfassung

23 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel Referenzarchitektur interaktive System Repository Data Model GUI (Commands) Generators / Interpreters QVT (Control) Import/ Export GUI (Unparsing)

24 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 24 Datenmodell mit Composite Pattern: naiv Struktur Verhalten Daten

25 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel Datenmodell mit Composite Pattern: besser Struktur Verhalten Daten

26 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 26 Datenmodell mit Composite Pattern: gut Struktur Verhalten Daten

27 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 27 Hausaufgabe 2: m Ein Book besteht aus: l Parts l Chapters l Sections l Paragraphs l Sentences m Implementiert ein Datenmodell für Books mit dem Composite Pattern m Lest die Kapitelstruktur des Buches ein. m zählt die Anzahl der Objekte in euerer Composite Struktur m macht euch für weitere Anforderungen bereit

28 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 28 Composite Pattern Problem: Struktur Verhalten Daten

29 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 29 Naiver Ansatz: Struktur Verhalten Daten

30 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 30 Visitor Pattern m rekursiver Durchlauf durch Composite Struktur m durchreichen eines Visitor Objekts m uniformerer Umgang mit Rekursionsparametern m Trennung von Durchlauf und Aktion

31 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 31 Visitor Pattern Struktur Verhalten Daten

32 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 32 Visitor Pattern mit Reflection Struktur Verhalten Daten

33 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 33 Visitor Pattern Zusammenfassung m Ziemlich viele accept und visit Methoden m Double Dispatch möglich m Seperation of concern m Zustandsobjekt in der Rekursion

34 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 34 Hausaufgabe 3:

35 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 35 Strategy Pattern m ersetze if-then-else-if Ketten

36 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 36 If-then-else-if Kette: Struktur Verhalten Daten public void doMove () { if (mode == AGGRESSIVE) { …} else if (mode == DEFEND) { …} else if (mode == PLAN) { …} … Player main () doMove() mode : int

37 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 37 AStarStrat doMove() Strategy Pattern: Player main() doMove () MoveStrategy doMove() DefensiveStrat doMove() strategy 0..1 Struktur Verhalten Daten class Player{ public void doMove () { strategy.doMove (); } … :Player :AttackStrat :DefensiveStrat :AStarStrat AttackStrat doMove()

38 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 38 Strategy Pattern Struktur Verhalten Daten

39 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 39 Hook Pattern (nicht im Gof-Buch) m zusätzliches Verhalten nachträglich einbauen

40 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 40 Hook Pattern: Struktur Verhalten Daten public void doMove() { produceFood(); for (strat in strategies) { strat.doMove(); } } n ResearchStrat doMove() Player main() doMove () StrategyPart doMove() DefensiveStrat doMove() strategies :Player :AttackStrat :DefensiveStrat : ResearchStrat AttackStrat doMove()

41 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 41 Chain of Responsibility m im wesentlichen Hook m aber Abbruch wenn erfolgreich bearbeitet

42 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 42 < next Chain of Responsibility, original Struktur Verhalten Daten class Player{ public boolean doMove () { if (next != null) { return next.doMove(); } return false; } } 1 ResearchStrat doMove() Player main() doMove () StrategyPart doMove() DefensiveStrat doMove() next :Player :AttackStrat :DefensiveStrat : ResearchStrat AttackStrat doMove()

43 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 43 Chain of Responsibility, original : Struktur Verhalten Daten class AttackStrat{ public boolean doMove () { // try it if (canAttack ()) { doAttack (); return true; } else { super.ring (); }}} 1 ResearchStrat doMove() Player main() doMove () StrategyPart doMove() DefensiveStrat doMove() next :Player :AttackStrat :DefensiveStrat : ResearchStrat AttackStrat doMove() next

44 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 44 Chain of Responsibility, besser debugbar: Struktur Verhalten Daten class Player{ public boolean doMove () { boolean success = false; for (h in handlers) { success = h.doMove(); if (success) return true; } return false; }} {ordered} handlers[1] handlers [2] handlers [3] n ResearchStrat doMove() Player main() doMove () StrategyPart doMove() DefensiveStrat doMove() handlers :Player :AttackStrat :DefensiveStrat : ResearchStrat AttackStrat doMove()

45 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 45 Chain of Responsibility, besser debugbar: Struktur Verhalten Daten class AttackStrat { public boolean doMove() { // try it if (canAttack ()) { doAttack (); return true; } else { return false; }}} {ordered} handlers[1] handlers [2] handlers [3] n ResearchStrat doMove() Player main() doMove () StrategyPart doMove() DefensiveStrat doMove() handlers :Player :AttackStrat :DefensiveStrat : ResearchStrat AttackStrat doMove()

46 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 46

47 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 47 Beobachtungen m typische Kombinationen von Assoc und Vererbung m Unterklassen haben KEINE neue Methoden m Unterklassen redefinieren geerbte Methoden

48 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 48 Beobachtungen

49 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 49 Hausaufgabe 4:

50 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 50 State m im wesentlichen Strategy m aber systematische Strategy-Änderung nach Benutzung m meist Implementierung von Statecharts

51 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 51 State: Struktur Verhalten Daten TraficLight state :Integer timerTick() Car class TrafficLigth { void timerTick() { if (state == RED) { car.setPos (…); state = GREEN; } else if (state == GREEN) { car.stop(); state == YELLOW; } else if (state == YELLOW) car.stop() state = RED; }}} green yellow red timerTick() / car.setPos(…) timerTick() / car.stop() car

52 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 52 State: Struktur Verhalten Daten TLState Green Yellow Red current TraficLight timerTick() Car :TrafficLight :Car :Red :Yellow :Green name states states["red"] states["yellow"] states["green"] class Red { void timerTick() { owner.current = owner.states["green"]; car.setPos(…); }} class Green { void timerTick() { owner.current = owner.states["yellow"]; car.stop(); }} car

53 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 53 Listener/Observer/Model-View-Controler/Mediator m im wesentlichen Hook m aber Einsatz zur Überwachung von Änderungen

54 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 54 Listener/Observer/Model-View-Controler Struktur Verhalten Daten Drive usedSpace :Integer propertyChange (obj, attrName, oldVal, newVal) File size :Integer write(bytes[]) :Drive usedSpace = 38 write ("aaaa") class File { void write (bytes[]) { … this.setSize (size+bytes.length()); } void setSize (newVal) { if (this.size != newVal) { int oldVal = size; size = newVal; firePropertyChange ("size", oldVal, newVal); }} … :File size = 23 :File size = 15 listeners n Listener propertyChange (obj, attrName, oldVal, newVal)

55 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 55 Listener/Observer/Model-View-Controler Struktur Verhalten Daten Drive usedSpace :Integer propertyChange (obj, attrName, oldVal, newVal) File size :Integer write(bytes[]) :Drive usedSpace = 38 write ("aaaa") class File { … void firePropertyChange (attrName, oldVal, newVal){ for (l in listeners) { l.propertyChange (this,attrName,oldVal,newVal); }} … :File size = 23 :File size = 15 listeners n Listener propertyChange (obj, attrName, oldVal, newVal)

56 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 56 Listener/Observer/Model-View-Controler Struktur Verhalten Daten Drive usedSpace :Integer propertyChange (obj, attrName, oldVal, newVal) File size :Integer write(bytes[]) :Drive usedSpace = 38 write ("aaaa") :File size = 23 :File size = 15 listeners n Listener propertyChange (obj, attrName, oldVal, newVal) class Drive { … void propertyChange (obj,attrName,oldVal,newVal){ usedSpace += newVal – oldVal; } … }

57 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 57 MVC Struktur Verhalten Daten Drive usedSpace :Integer :Drive usedSpace = 38 write ("aaaa") class SpaceUpdater { … void propertyChange (obj,attrName,oldVal,newVal){ for (t : targets) { t.usedSpace += newVal – oldVal; } } … } :File size = 23 :File size = 15 targets n :SpaceUpdater SpaceUpdater propertyChange (obj, attrName, oldVal, newVal) File size :Integer write(bytes[]) listeners n Listener propertyChange (obj, attrName, oldVal, newVal) Computer

58 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 58 Struktur Verhalten Daten :Drive usedSpace = 38 write ("aaaa") class SpaceUpdater { … void propertyChange (obj,attrName,oldVal,newVal) { Dir parent = obj.getParent(); while (parent != null) { parent.usedSpace += newVal – oldVal; parent = parent.getParent(); } } … } :File size = 23 :File size = 15 :SpaceUpdater SpaceUpdater propertyChange (obj, attrName, oldVal, newVal) File size :Integer write(bytes[]) listeners n Listener propertyChange (obj, attrName, oldVal, newVal) Computer Dir usedSpace :Integer files parent n 1 Drive :Dir usedSpace = 38 :Dir usedSpace = 38 :Computer usedSpace = 38

59 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 59 Struktur Verhalten Daten

60 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 60 Hausaufgabe 5?:

61 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 61

62 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 62 Template Method m Motivation ähnlich wie Hook m aber feste Vorgabe von abstrakten Template-Methoden m alle Template-Methoden müssen überschrieben werden

63 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 63 Template Method: Alarm + ring () ~ start () ~ stop () Struktur Verhalten Daten class Alarm { void ring () { start (); … stop (); … } } :FlashLight :Sirene :MailAlarm MailAlarm ring () Sirene ring () FlashLight ~ start () ~ stop ()

64 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 64 Template Method: Alarm + ring () ~ start () ~ stop () Struktur Verhalten Daten class FlashLigth { void start () { powerOn (); } void stop () { powerOff () }} :FlashLight :Sirene :MailAlarm MailAlarm ring () Sirene ring () FlashLight ~ start () ~ stop ()

65 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 65 Decorator m ähnlich wie Composite mit nur einem Kind m ähnlich wie Chain-of-Responsibility m erweitere eine Strategy um zusätzliche Aktionen

66 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 66 Decorator: Struktur Verhalten Daten class MailAlarm { ring () { sendMail(); orig.ring(); }} :House :Sirene :MailAlarm MailAlarm ring () House run () ring () Alarm ring () Sirene ring () alarm 0..1 FlashLight ring () 0..1 orig

67 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 67 Proxy m ähnlich wie Decorator m aber kein Zusatzeffekt m sondern remote, lazy oder cache Effekte

68 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 68 Proxy: Struktur Verhalten Daten :House :Sirene :MailAlarm

69 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 69 Adapter m ähnlich wie Decorator m aber Schnittstellenanpassung

70 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 70 Adapter: Struktur Verhalten Daten :House :Sirene :MailAlarm

71 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 71 Hausaufgabe:

72 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 72

73 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel Flyweight Struktur Verhalten Daten

74 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 74 Flyweight Struktur Verhalten Daten

75 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 75 Struktur Verhalten Daten Interpreter / Macro / Command

76 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 76 Command Struktur Verhalten Daten

77 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 77 Struktur Verhalten Daten

78 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 78 Hausaufgabe: Command

79 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 79

80 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 80

81 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 81 Factory Method: Struktur Verhalten Daten

82 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 82 Prototype: Struktur Verhalten Daten

83 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 83 Komplexer Prototyp

84 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 84 Abstract Factory: Struktur Verhalten Daten

85 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 85 Hausaufgabe:

86 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 86

87 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 87 Facade: Struktur Verhalten Daten

88 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 88 Facade: Struktur Verhalten Daten

89 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 89

90 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 90 Plugins: Struktur Verhalten Daten

91 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 91 Import Umkehrung: Struktur Verhalten Daten

92 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 92 Import Umkehrung: Struktur Verhalten Daten

93 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 93 Daten Plugin: Struktur Verhalten Daten

94 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 94

95 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 95

96 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 96 Reuse Architekturen: m Bibliotheken m Frameworks m Plugin Architekturen m Software Bus / ECMA Toaster m Corba / RMI / REST m Component & Connector m Android Intents m Product Line Architecture

97 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 97

98 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 98 Components & Connectors Architekturen

99 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 99

100 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 100

101 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 101 Components & Connectors Architekturen

102 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 102 Components & Connectors Architekturen

103 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 103 Components & Connectors Architekturen

104 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 104 Wie erreicht man: m Wartbarkeit m Erweiterbarkeit m Qualität m Produktivität m Sicherheit m Robustheit m Usability m Skalierbarkeit m Verfügbarkeit

105 Design Pattern SS2015 © 2015 Albert Zündorf, University of Kassel 105


Herunterladen ppt "Design Pattern SS 15 Prof. Albert Zündorf Fachgebiet für Software Engineering Wilhelmshöher Allee 73 34121 Kassel (Raum 1339)"

Ähnliche Präsentationen


Google-Anzeigen