Methodik des Entwurfs. Prinzipien des Software-Entwurfs Entwurfsmuster
|
|
- Roland Schuler
- vor 6 Jahren
- Abrufe
Transkript
1 Methodik des Entwurfs Prinzipien des Software-Entwurfs Entwurfsmuster
2 Ebenen des Software-Entwurfs Software-Entwurf ist Strukturenwurf auf verschiedenen Ebenen: Architekturentwurf Strukturentwurf für das Gesamtsystem Komponentenentwurf Komponente ist Gliederungseinheit des Systems Modul oder Klassenentwurf Modul ist Gliederungseinheit der Programmierung Ziel ist die Beherrschung der Komplexität, also Einfachheit: "Wenn du es nicht in fünf Minuten erklären kannst, hast du es nicht verstanden oder es funktioniert nicht." Rechtin Erste Schritt: Vereinfachung durch Zerlegung SE2-7-Entwurfsmuster 2
3 Grundformen der Zerlegung Horizontal: "in Scheiben schneiden" Schichtung Abstraktionsebenen jede Schicht baut auf der darunter liegenden auf Vertikal: "in Stücke schneiden" jedes Teil übernimmt eine benennbare fachliche oder technische Funktion Kapselung: Teile (Komponenten) als Black Box betrachten kommunizieren mit der Umgebung über klar definierte Schnittstellen SE2-7-Entwurfsmuster 3
4 Entwurfsprinzipien Entwurfsmuster helfen dabei, Entwurfsziele umzusetzen. Zunächst brauchen wir Ziele und Kriterien Entwurfsprinzipien Unterschiedliche Prinzipien auf verschiedenen Ebenen: Prinzipien des Architekturentwurfs Prinzipien des Komponentenentwurfs Prinzipien des Klassenentwurfs SE2-7-Entwurfsmuster 4
5 1: Hauptprinzip des Architektur-Entwurfs Eine gute Software-Architektur verfügt über: Starke Kohäsion "Unteilbarkeit" der Komponenten Schwache Kopplung leichter Austausch von Komponenten... und ist verstehbar Referenzarchitekturen Best Practices SE2-7-Entwurfsmuster 5
6 Lose Kopplung und starke Kohäsion Optimierung von Abhängigkeiten: Flexibilität (Veränderungen können lokal vorgenommen werden) Stabilität (Änderungen wirken sich nur lokal aus) Kopplung Abhängigkeit zwischen Moduln sollte möglichst gering sein: Austauschbarkeit, Veränderbarkeit Kohäsion Abhängigkeit innerhalb eines Moduls, innerer (logischer) Zusammenhang sollte stark sein sonst Modul teilen SE2-7-Entwurfsmuster 6
7 2: Grundprinzipien des Komponentenentwurfs DRY don't repeat yourself Kapselung Einfachheit vor Allgemeinverwendbarkeit Getrennte Verantwortung (Separation of Concerns) Aufteilung der Schnittstellen Offen-Geschlossen-Prinzip (OGP): Offen für Erweiterungen geschlossen für Veränderungen Minimale Verwunderung Einhaltung von Konventionen, sprechende Namen Solide Annahmen (oder besser gar keine) Stabile Abhängigkeiten Abhängigkeit von Abstraktionen (Umkehrung der Abhängigkeit) Keine zirkulären Abhängigkeiten SE2-7-Entwurfsmuster 7
8 Grundprinzip: Kapselung Ein Modul gibt nur die Informationen preis, die der Benutzer wirklich benötigt. Vorteile: Bessere Kontrolle innerhalb des Moduls Vermeidung von Benutzerfehlern und -angriffen Lokalisierung von Fehlersituationen Leichtere Austauschbarkeit Nachteil: Overhead beim Zugriff zusätzliche Komponenten und zusätzlicher Code SE2-7-Entwurfsmuster 8
9 Grundprinzip: Einfachheit Zerlegung in 5 +/- 2 Komponenten je Einheit ggf. hierarchische Verfeinerung Im Zweifelsfall die weniger komplexe Alternative wählen Entwurf nach Verantwortlichkeiten: Trennung von Technik und Fachlichkeit Komplexe Diagramme nach Verantwortlichkeiten in einfachere unterteilen Konzentration auf Schnittstellen: Details bleiben gekapselt Robuste Komponenten planen: Fehler berücksichtigen Fehlervermeidung durch Verständlichkeit Auswirkungen von Fehlern möglichst lokal halten Robustheit komponentenweise planen SE2-7-Entwurfsmuster 9
10 Grundprinzip: Trennung von Zuständigkeiten Grundprinzip: Jede Komponente sollte nur einen genau umrissenen Aufgabenbereich abdecken Auftrennung von Schnittstellen Jede Schnittstelle sollte nur einen Aufgabenbereich abdecken ggf. Implementierung mehrerer Schnittstellen durch dasselbe Modul dadurch entstehen spezifische Abhängigkeiten Trennung von Funktion und Interaktion entspricht der Isolation des fachlichen Modells ermöglicht separate Veränderungen MVC SE2-7-Entwurfsmuster 10
11 Aufteilung der Schnittstellen: Allgemeines Schema: Clients sollen nicht von Diensten abhängen, die sie nicht benötigen. Interfaces nach den Client-Erfordernissen entwerfen, nicht nach den Klassen-Angeboten: Client1 Client2 Client-2 Client-2 <<interface>> Interface1 <<interface>> Interface2 Service Service- SE2-7-Entwurfsmuster 11
12 Das Offen-Geschlossen-Prinzip (OGP) class Class Model geschlossenes Modul: Schnittstelle ist stabil, nicht veränderbar kann ohne Anpassung verwendet werden A B C offenes Modul: Erweiterungen sind möglich geschlossen offen SX ein OGP-Modul ist offen für Erweiterungen aber geschlossen für Veränderungen: behält seine bestehende Schnittstelle bei. D geschlossen offen SY E SE2-7-Entwurfsmuster 12
13 Umkehrung der Abhängigkeiten: Allgemeines Schema Abhängigkeit von Abstraktionen, nicht Implementierungen Client Client- Service1 Service2 <<interface>> Interface1 <<interface>> Interface2 Service-1 Service-2 SE2-7-Entwurfsmuster 13
14 Auflösung zirkulärer Abhängigkeiten: Allgemeines Schema Verschieben von Methoden C +amethod() C A B A B <<interface>> A-Interface C +amethod() +amethod() Umkehrung durch Vererbung A B SE2-7-Entwurfsmuster 14
15 Literaturempfehlung: Ludewig, Lichtner: Software Engineering, dpunkt 2007 Starke, Effektive Software-Architektur, Hanser 2008 SE2-7-Entwurfsmuster 15
16 3: Grundprinzipien des Klassenentwurfs Kapseln Daten + zugehöriges Verhalten kleine Kapseln (keine allmächtigen Klassen) Veränderliche Aspekte verbergen "schmutzige" Lösungen verbergen Schnittstellen Schlanke Schnittstellen, möglichst "privater" Entwurf Benutzer dürfen nur von der öffentlichen Schnittstelle abhängen Klasse muss unabhängig von ihren Benutzern bleiben Klasse darf keine Annahmen über ihren Nutzungskontext machen lange Argumentlisten vermeiden, ggf. Aggregate verwenden Vererbung Mehr als eine Instanz der Unterklasse (sonst Objekt, nicht Unterklasse) Strukturelle Ähnlichkeit zur Realwelt anstreben Keine explizite Typabfrage, sondern Polymorphie Liskov's Substitutionsprinzip: Funktionalität der Oberklasse weitestgehend erhalten SE2-7-Entwurfsmuster 16
17 Entwurfsmuster Erprobte generische Lösungen zur Umsetzung der Entwurfsprinzipien allgemeine Wissens- und Kommunikationsbasis für Softwarestrukturen "best practices" so wie jeder oo-entwickler weiß, was eine abstrakte Klasse ist, weiß jeder, was ein Singleton oder eine Factory ist kein Erklärungsbedarf beim Auftreten dieses Musters Ein MUSS für jeden OO-Entwickler SE2-7-Entwurfsmuster 17
18 GoF-Entwurfsmuster Erste Sammlung: GoF-Entwurfsmuster GoF = Gang of Four Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Systematik der Entwurfsmuster nach Wirkung: Erzeugungsmuster Strukturmuster Verhaltensmuster (Wir ordnen sie primär den Entwurfsprinzipien zu) SE2-7-Entwurfsmuster 18
19 Entwurfsmuster-Systematik Erzeugungsmuster Strukturmuster Instanziierung, Initialisierung, Konfiguration von Objekten Schnittstellen und Kommunikation Verhaltensmuster Dynamische Interaktion zwischen Gruppen von Obj. Factory Method Adapter Chain of Responsibility Abstract Factory Bridge Command Builder Composite Iterator Prototype Decorator Mediator Singleton Facade Momento Flyweight Proxy Observer State Strategy Visitor SE2-7-Entwurfsmuster 19
20 Entwurfsmuster-Video-Tutorials von Derek Banas / New Think Tank com/videos/designpatterns-tutorial/ SE2-7-Entwurfsmuster 20
21 Entwurfsmuster-Puzzle Es war einmal ein kleines Reisebüro, das bot einen Reiseplaner an, der einen Routenplaner nutzte. Beide Verantwortlichen hatten viele Ideen, also entkoppelten sie Ihre Verantwortungsbereiche. Neben den Individualreisen wurden testweise auch Busreisepläne angeboten. Da das Interesse an Busreisen stark zunahm, wurde ein Busplanungsservice hinzugezogen, der kostenpflichtig war. Als ein besserer Routenplaner auf den Markt kam, wurde dorthin gewechselt. Immer mehr spezialisierte Routenplaner tauchten auf und wurden eingebunden. Der Fahrradroutenplaner fügte ständig neue Features hinzu wie machte er das nur? SE2-7-Entwurfsmuster 21
22 Strukturmuster-Puzzle (zum Tafelbild) s Factory «abstract» AbstrakterReiseplaner «interface» RoutenplanerInterface Indiv idualreiseplaner «interface» BusreiseplanerInterface RoutenPlanAdapter «abstract» AbstrakterRoutenplaner Fahrradroutenplaner Touristikroutenplaner Transportroutenplaner BusreiseplanerServ ice BusreiseplanerProxy Es war einmal ein Reiseplaner, der benutzte einen Routenplaner... Vorher... BasisRouter «abstract» SpezialRouter Reiseplaner Routenplaner + berechneroute() : void Steigungsoptimierer Etappenplaner SE2-10-Entwurfsmuster-2 22
23 Kapselung von Änderungen: Bridge Zweck: Trennung von funktionaler Abstraktion und Implementierung so dass beide unabhängig voneinander verändert werden können Kontext: Strukturmuster Eine Klasse bietet eine bestimmte Leistung (Service) an Beispiel: Transport Sie benutzt dazu eine andere Klasse als "Betriebsmittel" (Facility) Beispiel: Transportmittel Sowohl Service als auch Facility sollen unabhängig weiterentwickelt werden können ServiceAbstraction +Operation() <<interface>> Facility +OperationImp() RefinedService2 RefinedService2 ConcreteFacility2 ConcreteFacility2 SE2-7-Entwurfsmuster 23
24 Bridge Vorteile: Beliebige Kombinationen Funktionale Abstraktionen und konkrete Implementierungen beliebig mischbar Für den Client transparent geringer Aufwand für das Pattern Nachteile: (keine bekannt) SE2-7-Entwurfsmuster 24
25 Open-Closed-Priciple: Strategy (schon bekannt) Zweck: Austauschbarkeit von Algorithmen zur Laufzeit unabhängig von den nutzenden Clients Kontext: Verhaltensmuster Ein Dienstmerkmal soll von außen steuerbar ausgetauscht werden können sehr wichtig z.b. für Internationalisierung: länderspezifische Funktionalität Context +contextoperation() +strategy <<abstract>> Strategy +operation() ConcreteStrategy ConcreteStrategy SE2-7-Entwurfsmuster 25
26 Strategy Vorteile: Client unabhängig von konkreten Implementierungen Nachteile: Clients müssen die Strategien kennen. Varianten: Policy mehr als eine Operation SE2-7-Entwurfsmuster 26
27 Kapselung von Abhängigkeiten: Proxy Zweck: Abschirmung eines Objekts gegen direkte Client-Zugriffe Grund Schutz oder Kosten/Aufwand Strukturmuster Kontext: Der Zugang zum realen Objekt erfolgt nur über den Proxy, der das Verhalten des realen Objekts "vortäuscht" und die Client-Anfragen (ggf.) an das reale Objekt delegiert. Client Subject +request() Proxy +request() RealSubject +request() SE2-7-Entwurfsmuster 27
28 Proxy Vorteile: Implementierung von Aspekten, die mit der Fachlogik nichts zu tun haben: Sicherheitsabfrage, Lazy Loading, Protokollierung, Caching,... Erweiterung des Objektverhaltens in einem bestimmten Kontext Verhaltenserweiterung von Bibliotheksklassen ohne Ableitung Nachteile: Methode gleicher Signatur im Proxy redundanter Code Typische Verwendungen: RemoteProxy VirtualProxy ProtectionProxy Varianten: Dynamic Proxy wird zur Laufzeit durch Reflection erzeugt SE2-7-Entwurfsmuster 28
29 Kapselung von Abhängigkeiten: Adapter Zweck: Anpassung einer gelieferten Schnittstelle an eine erwartete Wiederverwendung von Klassen trotz leichter Inkompatibilitäten Verwendung von Bibliotheken Kontext: Klasse hat die gewünschten Daten und das gewünschte Verhalten Schnittstelle passt nicht (Namen, Parameter, Ausnahmen...) Strukturmuster Client <<interface>> Target +Request() e.g. a library class Adapter +adaptee Adaptee +SpecificRequest() SE2-7-Entwurfsmuster 29
30 Adapter Vorteile: Wiederverwendung Kapselung von Abhängigkeiten, z.b. Anbindung an spezifische Fremdsoftware Nachteile: zusätzlicher Aufwand durch Delegation ggf. performance-relevant bei Übergabe großer Objektstrukturen, falls diese kopiert werden müssen. Alternativen: Fassade, Wrapper, Proxy SE2-7-Entwurfsmuster 30
31 Open-Closed-Principle: Decorator Zweck: Dynamisches Hinzufügen von Funktionalität zu einer Komponente Grundfunktionalität wird erhalten und ergänzt (Delegationskette) Kontext: Reversible, konfigurierbare Modifikation des Verhaltens eines existierenden Objekts Direkt angesprochen, hat das Objekt das Standardverhalten (Gegensatz zu Strategie) Strukturmuster Component +Operation() +component results in a chain of decorator objects with a concrete component at its end. ConcreteComponent ConcreteComponent Decorator ConcreteDecorator ConcreteDecorator ConcreteDecorator SE2-7-Entwurfsmuster 31
32 Decorator Vorteile: Funktionalitäten zur Laufzeit zu- und abschaltbar Komponenten kennen ihre Dekorierer nicht Nachteile: möglicherweise viele ähnlich aussehende Klassen, wenig übersichtlich Varianten: Pipe and Filter (s. Analysemuster) Unterschied: Kette von abgeschlossenen Operationen anstelle von Delegationskette. SE2-7-Entwurfsmuster 32
33 Strukturmuster-Puzzle (zum Tafelbild) lass Factory «abstract» AbstrakterReiseplaner «interface» RoutenplanerInterface Bridge Adapter Indiv idualreiseplaner «interface» BusreiseplanerInterface RoutenPlanAdapter «abstract» AbstrakterRoutenplaner Strategy BusreiseplanerServ ice Proxy BusreiseplanerProxy Fahrradroutenplaner Touristikroutenplaner Transportroutenplan Es war einmal ein Reiseplaner, der benutzte einen Routenplaner... Vorher... BasisRouter «abstract» SpezialRouter Decorator Reiseplaner Routenplaner + berechneroute() : void Steigungsoptimierer Etappenplaner SE2-10-Entwurfsmuster-2 33
34 Selbstlern-Aufgabe Lernen Sie anhand des Video-Tutorials von Derek Banas mindesten 4 der blau geschriebenen Muster, wobei von jeder Kategorie eins dabei sein muss! Erzeugungsmuster Strukturmuster Verhaltensmuster Instanziierung, Initialisierung, Konfiguration von Objekten Schnittstellen und Kommunikation Dynamische Interaktion zwischen Gruppen von Obj. Factory Method Adapter Chain of Responsibility Abstract Factory Bridge Command Builder Composite Iterator Prototype Decorator Mediator Singleton Facade Memento Flyweight Proxy Observer State Strategy Visitor SE2-7-Entwurfsmuster 34
35 ...genug für heute... Die nächtsen Male: wichtige Entwurfsmuster im Einzelnen Kombination von Entwurfsmustern
36 Materialsammlung weitere Entwurfsmuster SE2-7-Entwurfsmuster 36
37 Kapselung von Abhängigkeiten: Fassade Zweck: Vereinfachter Zugriff auf en komplexes Subsystem Kapseln der inneren Struktur Kontext: Verwendung eines Subsystems mit wichtigen inneren Abhängigkeiten Verwendung eines Subsystems, bei dem die Gesamtfunktionalität sich aus den Schnittstellen mehrerer Klassen zusammensetzt Alternative Subsysteme mit unterschiedlicher Struktur "Querschnitt-Aufgaben" wie Logging, Transaktionen oder Zugangskontrolle Strukturmuster Client Client Facade Package1 Subsystem Class Subsystem Class Subsystem Class Subsystem Class Subsystem Class Subsystem Class SE2-7-Entwurfsmuster 37
38 Fassade Vorteile: Clients von den Details des Subsystems entkoppelt Austauschbarkeit von Subsystem-Schnittstellen und Komponenten Nachteile: Clients können Fassade umgehen einige Typen müssen evtl. zusätzlich extern verfügbar bleiben Fassade muss an jede Änderung im Subsystem angepasst werden (erhöhte innere Abhängigkeit) Varianten Session Facade, vgl. JSF Message Facade asynchroner Zugang zu einem Subsystem SE2-7-Entwurfsmuster 38
39 Open-Closed-Principle: Umsetzende Entwurfsmuster Änderungen nicht durch Codemodifikation, sondern durch Hinzufügen weiterer Klassen Strategy Die Aufgabe wird delegiert an ein Objekt, von dem zunächst nur die Schnittstelle bekannt ist. Die Auswahl erfolgt dynamisch Verfügbare Strategien sind zur Compilezeit bekannt (i.d.r.) Decorator, Pipe and Filter Änderungen "außen angefügt", Objekt selbst bleibt unverändert. PlugIn gewissermaßen Strategy auf Systemebene Software dynamisch ergänzbar durch weitere Komponenten Hinzufügen durch Konfiguration (keine Neukompilation) benötigt Factory Method, Abstract Factory und Registry SE2-7-Entwurfsmuster 39
40 DRY: Template Method Zweck: Verwendung der Struktur eines Algorithmus mit verschiedenen Einzeloperationen "Generischer" Algorithmus Kontext: Ein Algorithmus besteht aus einer globalen Ablaufstruktur (z.b. Iterieren über eine Liste) und innerhalb dieser Struktur Detailoperationen (z.b. Verdoppeln des Elementwerts) Die Ablaufstruktur ist unabhängig von den Detailoperationen und wird an verschiedenen Stellen benötigt. Verhaltensmuster AbstractClass +templatemethod() +Operation1() +Operation2() calls abstract operations Operation1 and Operation 2 ConcreteClass +Operation1() +Operation2() ConcreteClass +Operation1() +Operation2() SE2-7-Entwurfsmuster 40
41 Template Method Vorteile: Vermeidung redundanter Algorithmenstrukturen (DRY) Oberklasse ruft Methoden ihrer Unterklasse Grundmuster für IoC verbessert Wiederverwendbarkeit SE2-7-Entwurfsmuster 41
42 Kapselung von Abhängigkeiten: Iterator Zweck: Ursprünglich in Kombination mit Compositum Iteration über die Struktur ohne Kenntnis der Implementierung mit der Möglichkeit, die in der Schnittstelle angegebene (für Knoten und Blätter implementierte) Methode an beliebiger Stelle auszuführen. Verallgemeinert für traversierbare rekursive Strukturen. Verhaltensmuster Aggregate +CreateIterator() Iterator +First() +Next() +IsDone() +CurrentItem() ConcreteAggregate ConcreteIterator SE2-7-Entwurfsmuster 42
43 Iterator Vorteile: Aggregat hat schlankes Interface Client benötigt keine Kenntnisse über den Aufbau des Aggregats. Verschiedene Traversierungsstrategien sind möglich Nachteile: parallele Änderungen der Struktur (Einfügen / Entfernen von Einträgen) sind problemetisch evtl. zu weit von der Struktur abgekoppelt! SE2-7-Entwurfsmuster 43
44 Vereinendes und Trennendes... Die heute behandelten Muster dienen alle der strukturellen Entkopplung schaffen kleinerer Einheiten, die separat in ihren Kontext eingebracht werden können "Einfangen" von Abhängigkeiten "Lokalisierung" von Änderungen und Anpassungen Ziel ist vor allem Auswirkungen von geänderten Anforderungen oder Entwurfsentscheidungen zu begrenzen Erwünschter Zusatzeffekt: getrennte Entwicklung getrennte Qualitätssicherung SE2-7-Entwurfsmuster 44
45 Entwurfsmuster - Einführung Beispiel (nach Shalloway und Trott): In einem Verkaufssystem gibt es eine Komponente zur Verwaltung von Aufträgen, sowie Aufträge. Die Berechnung der fälligen Steuer liegt beim einzelnen Auftrag. class Class Model Auftragsv erw altung Auftrag + berechnesteuer() : double SE2-7-Entwurfsmuster 45
46 Einführung Schritt 2 Durch Ausdehnung der Geschäftsbeziehungen in andere europäische Länder sind verschieden Steuergesetze zu berücksichtigen. Problem: Dynamische Zuordnung von unterschiedlichem Verhalten Lösung 1: Vererbungshierarchie Oberklasse von Auftrag spezifiziert die Schnittstelle abstrakt Verschiedene Unterklassen konkretisieren sie class Class Model Auftragsv erw altung Auftrag + berechnesteuer() : double D_Auftrag + berechnesteuer() : double I_Auftrag + berechnesteuer() : double ES_Auftrag + berechnesteuer() : double SE2-7-Entwurfsmuster 46
47 Einführung - Schritt 3 Die Unterklassen unterscheiden sich nur in einem Aspekt. Für jedes neue Land muss eine neue Unterklasse programmiert werden. Problem: Dynamische class Class Zuordnung Model eines Teilverhaltens, erweiterbare Zahl von Teilverhalten Auftragsv erw altung Aufttrag - steuerrechner - st euer + berechnesteuer() : double Lösung: Entwurfsmuster Strategie SteuerRechne r + steuer() : double D_ Rechner + steuer() : double I_ Rechner + steuer() : double ES_ Rechner + steuer() : double SE2-7-Entwurfsmuster 47
Entwurfsmuster. Methodik des Entwurfs. Design Patterns. Entwurfsmuster. Weitere Patterns. Architektur-Patterns
Entwurfsmuster Methodik des Entwurfs Prinzipien des Software-Entwurfs Entwurfsmuster erprobte generische Lösungen für häufig auftretende Entwurfsprobleme allgemeine Wissens- und Kommunikationsbasis für
MehrEntwurfsprinzip. Entwurfsprinzip
Die Komposition (hat ein Beziehung) ist der Vererbung (ist ein Beziehung) vorzuziehen. Es können Familien von Algorithmen in eigenen Klassensätzen gekapselt werden. Das Verhalten lässt sich zu Laufzeit
MehrÜberblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio
Entwurfsmuster Eine Einführung Botond Draskoczy Marcus Vitruvius Pollio Überblick Historie, Literatur Das Flugapparat-Bildschirmschoner-Projekt (FBP) Das internetbasierte Solar-Netzwerk (SNW) Zusammenfassung
MehrDesign Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26
Design Patterns (Software-Architektur) Prof. Dr. Oliver Braun Letzte Änderung: 11.07.2017 15:12 Design Patterns 1/26 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides:
MehrSoftware-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Software-Architektur Design Patterns Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 11.07.2017 15:12 Inhaltsverzeichnis Standardwerk.................................... 2 Design
MehrDesign Patterns. 3. Juni 2015
Design Patterns 3. Juni 2015 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Taentzer Softwarequalität 2015 138 Was sind Design Patterns?
MehrDesign Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff
Design Patterns II Der Design Muster Katalog Prof. Dr. Nikolaus Wulff Wiederverwendung Wiederverwendung ist das Schlagwort von OOP zur Erhöhung der Produktivität. Es gibt im Prinzip drei Methoden hierzu:
MehrStructural Patterns. B. Sc. Andreas Meißner
Structural Patterns B. Sc. Andreas Meißner Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Systeme, Universität Hannover 11/16/2004 Gliederung 1. Wiederholung Entwurfsmuster
MehrSoftware-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere)
2014-01-08 Software-Entwurfsmuster (weitere) 1 185.A01 OOP Software-Entwurfsmuster (weitere) 2014-01-08 Software-Entwurfsmuster (weitere) 2 OOP Vererbung versus Delegation class A { public void x() { z();
MehrObjektorientierte und Funktionale Programmierung SS 2014
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
MehrSoftware Engineering II (IB) Design Patterns
Software Engineering II (IB) Design Patterns Prof. Dr. Oliver Braun Letzte Änderung: 16.05.2017 20:56 Software Engineering II (IB), Design Patterns 1/43 Standardwerk Gang of Four: Erich Gamma, Richard
MehrEntwurfsmuster Martin Fesser 00IN
Entwurfsmuster Martin Fesser 00IN Inhalt Was sind Entwurfsmuster? Vorteile, Nachteile Entwurfsmusterkatalog (nach GoF) Variation von Entwurfsaspekten Wie Entwurfsmuster Entwurfsprobleme lösen Beispiele
MehrInhaltsverzeichnis. Vorwort Geleitwort von Grady Booch Einleitung... 23
Vorwort.................................................. 17 Geleitwort von Grady Booch................................. 21 Einleitung................................................ 23 1 Einführung...............................................
MehrSoftware Engineering II (IB) Design Patterns
Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 16.05.2017 20:56 Inhaltsverzeichnis Standardwerk.................................... 2 Erzeugungsmuster.................................
MehrSoftware-Architektur Design Patterns
Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:
MehrEntwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik
Entwurfsmuster Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Information über Entwurfsmuster Die heutige Vorlesung: Einführung in die Thematik Die Vorlesung am 12.01:
MehrEntwurfsmuster (Design Patterns)
Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder
MehrSE Besprechung. Übung 4 Architektur, Modulentwurf
SE Besprechung Übung 4 Architektur, Modulentwurf SE, 22.11.11 Mengia Zollinger 2.1 Architekturstile (6 Punkte) 2.1.A Ausgabe eines Monatsabos an Angestellte Lösung: Pipe-and-Filter Beispiel Lösung [Benz,
MehrTutorium Softwaretechnik I
Tutorium Softwaretechnik I Moritz Klammler 27. Juni 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 27. Juni 2017 Moritz Klammler - Tutorium Softwaretechnik
MehrDesign Patterns. OO-GetTogether. Volker Michels
1 Design Patterns OO-GetTogether Volker Michels 2 Muster (engl. Pattern) Züllighoven: Ein Muster ist eine Abstraktion von einer konkreten Form, die wiederholt in bestimmten nicht willkürlichen Kontexten
Mehr185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster
2013-12-11 Software-Entwurfsmuster 1 185.A01 OOP Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 2 OOP Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen
MehrZweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts
Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche
MehrSoftware Engineering. 10. Entwurfsmuster II. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering 10. Entwurfsmuster II Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: 10. Entwurfsmuster II 2 Die Entwurfsmuster der Gang of Four Die 23 GoF Pattern sind in 3 Gruppen
MehrZweck: sequentieller Zugriff auf Elemente eines Aggregats
Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche
MehrDesign Patterns. 5. Juni 2013
Design Patterns 5. Juni 2013 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Refactoring und Design Patterns: Welchen Zusammenhang gibt es
MehrUniversität Bremen. Entwurfsmuster. Thomas Röfer. Wettbewerb Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster
Entwurfsmuster Thomas Röfer Wettbewerb Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster Mein Rückblick: RoboCup 2 Euer Rückblick: Textsuche Naive Suche abrakadabra Boyer-Moore abrakadabra
MehrDecorator Pattern. Analyse- und Design-Pattern CAS SWE FS14. Roland Müller Samuel Schärer
Decorator Pattern Analyse- und Design-Pattern CAS SWE FS14 Roland Müller Samuel Schärer Entwurfsmuster der «Gang of Four» Strukturmuster fassen Klassen und Objekte zu grösseren Strukturen zusammen Adapter
MehrObjektorientierteund FunktionaleProgrammierung
Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten
Mehr3. Entwurfsmuster zur Entkopplung von Modulen
3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Entwurfsmuster (Design Patterns): Software-Entwicklungsaufgaben, die in vielen Ausprägungen häufig auftreten. Objektorientierte Schemata, die als Lösungen
MehrStrategy & Decorator Pattern
Strategy & Decorator Pattern Design Patterns Nutzen Wouldn t it be dreamy if only there were a way to build software so that when we need to change it, we could do so with the least possible impact on
MehrEntwurfsmuster. Marc Monecke
Entwurfsmuster Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 20. Mai 2003 Inhaltsverzeichnis 1 Grundlagen
MehrEntwurfsmuster - Iterator & Composite
Entwurfsmuster - Iterator & Composite Alexander Rausch Seminar Entwurfsmuster WS08/09 19. November 2008 Gliederung 1 Einführung 2 Das Iterator Entwurfsmuster 3 Das Composite Entwurfsmuster 4 Quellen 5
MehrOOSE 8 Entwurfsmuster (Hörsaalübung)
OOSE 8 Entwurfsmuster (Hörsaalübung) SS 2015 Birgit Demuth Entwurfsmuster in Softwaretechnologie 2015 Prüfungsrelevant Composite Iterator Factory Method Class Adapter Object Adapter Observer Singleton
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2009
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2009 Überblick I 1 Entwurfsmuster Entwurfsmuster: Entwurfsmuster
Mehr3. Entwurfsmuster zur Entkopplung von Modulen. Übersicht zu Entwurfsmustern
3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Vorlesung Objektorientierte Programmierung WS 2013/2014 / Folie 301 Entwurfsmuster (Design Patterns): Idee der Entwurfsmuster verstehen Software-Entwicklungsaufgaben,
MehrSOLID für.net und JavaScript
SOLID für.net und JavaScript www.binarygears.de Stefan Dirschnabel Twitter: @StefanDirschnab #dncgn SOFTWARE ENTWICKLUNG BERATUNG SCHULUNG 5 Prinzipien für das Design von Software Wartbarer Code Leicht
MehrDesign Pattern. Motivation, Beispiel Definition "Das" Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe
, Beispiel der Gang of Four Ausführliches Beispiel: Beispiele Wiederverwendung ist etwas Gutes...!!! Wiederverwendung (auch: Verständlichkeit, Änderbarkeit, Portierbarkeit etc.) wird auf Design-Ebene ermöglicht
MehrSoftwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2010/11 Überblick I Entwurfsmuster Entwurfsmuster: Entwurfsmuster
MehrObjektorientierte und Funktionale Programmierung
Objektorientierte und Funktionale Programmierung SS 2013 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Objektorientierte und Funktionale Programmierung 1 PrüfungstermineOFP
MehrCreational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.
Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational
MehrEntwurfsmuster in Java
Entwurfsmuster in Java Das Observer- und das Decorator-Pattern Friederike Löwe 13. März 2011 Inhaltsverzeichnis Einleitung Wozu eigentlich Entwurfsmuster? Die Grundlage: Design-Prinzipien Das Decorator-Pattern
MehrEinführung in die Informatik II
Einführung in die Informatik II SS 2012 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester 2012 Klausurtermine
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrLehrplan: Architektur und Design. paluno
Lehrplan: Architektur und Design Gliederung 1 Grundlagen der industriellen So9ware Entwicklung 2 Ebenen von Architektur und Design 3 KernakAvitäten von So9ware- Architekten 4 Architekturtypologien von
MehrBehavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul
Behavioral Patterns Seminar Software-Entwurf WS 04/05 Przemyslaw Dul Gliederung Design Pattern (Wiederholung) Einordnung Übersicht über die Kategorien: Creational,Structural,Behavioral Übersicht über die
MehrMatthias Geirhos. Entwurfsmuster. Das umfassende Handbuch. Rheinwerk. Computing
Matthias Geirhos Entwurfsmuster Das umfassende Handbuch Rheinwerk Computing Inhalt Vorwort 17 1 Einführung 19 1.1 Einleitung und allgemeine Hinweise 19 1.1.1 Für wen ist dieses Buch gedacht? 19 1.1.2 Muster
MehrR O O T S Ferientutorien Softwaretechnologie 2010
R O O T S Ferientutorien Softwaretechnologie 2010 von Eva Stöwe und Jan Nonnen 12.03.2010 2010 Eva Stöwe, Jan Nonnen Ferientutorien Softwaretechnologie 2010 Disclaimer Die Folien stellen lediglich die
MehrVerhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik
Entwurfsmuster - Design Patterns HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik 27. November 2009 Gliederung 1 Einführung 2 Strategie-Muster 3 Beobachter-Muster
MehrModel-View-Controller
Software Design Pattern Model-View-Controller Michael Lühr Gliederung Einführung und Problemstellung Ansatz durch MVC Detaillierte Darstellung der Komponenten Model View Controller Vor- und Nachteile Zusammenfassung
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
MehrLukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster
Entwurfsmuster Lukas Klich Projektgruppe SHUTTLE Seminar: 28.11.2002 Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1 Motivation Die Menschheit löst Probleme, indem sie beobachtet, Beobachtungen
MehrTutorium Softwaretechnik I
Tutorium Softwaretechnik I Moritz Klammler 11. Juli 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 11. Juli 2017 Moritz Klammler - Tutorium Softwaretechnik
MehrEntwurfsmuster Design Patterns by Erich Gamma et al.
Entwurfsmuster Design Patterns by Erich Gamma et al. Detlef Streitferdt Technische Universität Ilmenau TU-Ilmenau, Softwaresysteme / Prozessinformatik, KBSE Entwurfsmuster 1 Frühe Muster Christopher Alexander
MehrModul Software Komponenten. Entwurfsmuster. Roland Gisler
Modul Software Komponenten Entwurfsmuster Roland Gisler Präambel Dozent: Roland Gisler Unterricht: 6. Oktober: Entwurfsmuster (heute) 7. Oktober: Testing 20./21. Oktober: Coaching (Entwurfsmuster, Testing
Mehr7. Zusammenfassung (1)
Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung
MehrUniversität Bremen. Entwurfsmuster. Thomas Röfer. Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster
Entwurfsmuster Thomas Röfer Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster Rückblick UML Motivation Historie Spracheinheiten Strukturdiagramme Verhaltensdiagramme 2 Motivation Idee Einige
MehrEffektive Software-Architekturen Ein praktischer Leitfaden
Gernot Starke Effektive Software-Architekturen Ein praktischer Leitfaden ISBN-10: 3-446-41215-8 ISBN-13: 978-3-446-41215-6 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41215-6
MehrDesign-Patterns-Katalog
Design-Patterns-Katalog Erzeugungsmuster (Creational Patterns) Abstract Factory (Abstrakte Fabrik, siehe Abschnitt 3.1) Bereitstellung einer Schnittstelle zum Erzeugen verwandter oder voneinander abhängiger
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrAuf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...
Auf einen Blick Auf einen Blick 1 Einleitung... 15 2 Die Basis der Objektorientierung... 29 3 Die Prinzipien des objektorientierten Entwurfs... 41 4 Die Struktur objektorientierter Software... 67 5 Vererbung
MehrOOP. Tagesprogramm. Software-Entwurfsmuster. Factory-Method. Prototype
1 2014-12-10 Tagesprogramm Software-Entwurfsmuster Factory-Method Prototype 2 2014-12-10 Software-Entwurfsmuster Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster benennen wiederkehrende Probleme und Lösungen dienen dem Austasch von Erfahrungen Wiederverwendung von Erfahrung wo Wiederverwendung von Code versagt sehr abstrakt, daher häufig
MehrErzeugungsmuster. Kapselung der Objekt-Erzeugung
Erzeugungsmuster Kapselung der Objekt-Erzeugung Definition Erzeugungsmuster dienen für die Lose Koppelung, bei der erst zur Laufzeit der Typ des zu erzeugenden Objekts festgelegt wird. Abstract Factory
MehrModellarbeit I: Entwurfsgerechte Klassenmodellierung
Modellarbeit I: Entwurfsgerechte Klassenmodellierung Vom Analysemodell zum Entwurfsmodell Nach der Etablierung der Techologien: Überarbeitung des Fachlichen Modells zu einem geeigneten Entwurfsmodell Navigationen
MehrStructural Pattern: Decorator & Bridge
Structural Pattern: Decorator & Bridge Christian Baumann Patrick Goetschi Jan Klominsky Dienstag, 25. August 2015 t Agenda 1. Einleitung / Anwendungsgebiet 2. Decorator 3. Bridge 4. Vergleich anhand Beispiel
MehrObjektorientierte Programmierung (OOP)
orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,
MehrSoftware Engineering. 7. Entwurfsmuster
Software Engineering 7. Entwurfsmuster Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung
MehrArchitektur-Grobstruktur: Framework
Architektur-Grobstruktur: Framework remote oder lokal Server: Anwendungslogik strukturierte Daten FH AACHEN UNIVERSITY OF APPLIED SCIENCES OOS Prof. Dr. H. Faßbender Design & Pattern 10. Juni 2016 1 Feinstruktur
Mehr11. Komponenten Grundlagen der Programmierung 1 (Java)
11. Komponenten Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 10. Januar 2006 Einordnung im Kontext der Vorlesung
MehrEntwurfsmuster. Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr
Entwurfsmuster Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr Was sind Entwurfsmuster (1) Muster (allg.) sind schematische Lösungen für eine Klasse verwandter Probleme Beschreibung:
MehrOOP. Tagesprogramm. Aspekte und Annotationen. Software-Entwurfsmuster. Factory-Method. Prototype
1 2017-01-11 Tagesprogramm Aspekte und Annotationen Software-Entwurfsmuster Factory-Method Prototype 2 2017-01-11 Aspekte und Annotationen Aspektorientierte Programmierung Paradigma der Modularisierung
MehrENTWURFSPRINZIPIEN DIE SOLID-PRINZIPIEN NACH ROBERT C. MARTIN 1 / 21. Markus Just Wissenschaftliche Vertiefung
ENTWURFSPRINZIPIEN DIE SOLID-PRINZIPIEN NACH ROBERT C. MARTIN Markus Just 22.01.2016 Wissenschaftliche Vertiefung 1 / 21 Agenda 1) Einführung 2) SOLID- nach Robert C. Martin 3) Fazit 2 / 21 Mängel von
MehrSoftware-Entwurfsmuster
Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm
MehrErzeugungsmuster (nach Gang of Four )
5. Wiederverwendung im Softwareentwurf 5.1 Entwurfsmuster.KVGTCVWT Gamma/Helm/Johnson/Vlissides: Design Patterns, Addison-Wesley 1994 (= Gang of Four, GoF ) Buschmann/Meunier/Rohnert/Sommerlad/Stal: A
Mehrclass Mitarbeiter {...} class AussendienstMitarbeiter extends Mitarbeiter {...} class InnendienstMitarbeiter extends Mitarbeiter {...
Kapitel 12 Design Patterns 12.1 Das Role-Pattern Faustregel: Klassenhierarchien nicht zu tief, denn 1. Nachbildungen natürlicher tiefer Hierarchien sind meist nicht verhaltenskonformant; 2. Änderung des
MehrVerteidigung Großer Beleg
Verteidigung Großer Beleg Die GoF-Entwurfsmuster in Java Corinna Herrmann ch17@inf.tu-dresden.de Gliederung 1. Aufgabenstellung 2. Entwurfsmuster 3. Verwandte Arbeiten 4. Beispiele: 4.1. Adapter 4.2. Flyweight
MehrInhalt. Design patterns Kernbereiche Creational patterns Factory method Abstract Factory Builder Structural patterns Adapter Facade Decorator
Inhalt Gute OOP-Programmierung ist schwer Objekte Objekte, wird aber so vermittelt (siehe jede Einführung in OOP) Ansprüche an gutes Design diametral welche Ansprüche haben wir überhaupt? Fehler im Design
MehrObjektorientierte Programmierung II
Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem
MehrWahlpflichtfach Design Pattern
Wahlpflichtfach Design Pattern Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik miwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338
MehrSOFTWARE ENGINEERING 2
Fakultät Informatik/Mathematik Lehrstuhl für Softwaretechnologie Vorlesungsmitschrift SOFTWARE ENGINEERING 2 Mitschrift von Falk-Jonatan Strube Vorlesung von Prof. Dr. Anna Sabine Hauptmann 27. März 2018
MehrPraktikum. SEP: Java-Programmierung WS 2018/19. Modularisierung. Thomas Lemberger und Martin Spießl
Praktikum SEP: Java-Programmierung WS 2018/19 Modularisierung Thomas Lemberger und Martin Spießl Basierend auf Folien von Matthias Dangl und Karlheinz Friedberger 1 / 10 Modularisierung Module gliedern
MehrPraxisbuch Objektorientierung
Bernhard Lahres, Gregor Rayman Praxisbuch Objektorientierung Von den Grundlagen zur Umsetzung Galileo Press 1.1 Was ist Objektorientierung? 11 1.2 Hallo liebe Zielgruppe 12 1.3 Was bietet dieses Buch (und
MehrProgrammierparadigmen A01 OOP. Programmierparadigmen
2013-10-09 Programmierparadigmen 1 185.A01 OOP Programmierparadigmen 2013-10-09 Programmierparadigmen 2 OOP Klassische Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische
MehrSoftware Engineering II
Software Engineering II 9 Entwurfsmuster Prof. Dr. Dirk Müller Übersicht Einführung Geschichte Anforderungen und Nutzen Grundlegende Elemente Alphabetischer GoF-Katalog 11 GoF-Muster im Detail Nachteile
MehrÜbung 11: Klausurvorbereitung. Übung 11. Prüfungsvorbereitung Software Engineering WS16/17 Philipp Seltmann
Übung 11 Prüfungsvorbereitung 1/32 0. Organisatorisches http://giphy.com/gifs/exam-gnjnnba5ieoou Klausur: 17.02.2016, 13-15 Uhr, B11, SR15 Keine Hilfsmittel!!! Papier wird bereitgestellt 2/32 01. Funktionale
MehrProgrammierparadigmen
Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische Einteilung: Programmiersprache imperativ deklarativ prozedural objektorientiert funktional logisch Zusammenhänge tatsächlich
MehrEin Entwurfsmuster der GoF. vorgestellt von. Sigrid Weil 16. Januar 2008
Ein Entwurfsmuster der GoF vorgestellt von Sigrid Weil 16. Januar 2008 Einleitung 2 Entwurfsmuster (Design Patterns) beschreiben Probleme, die wiederholt in unterschiedlichsten Zusammenhängen aufreten
MehrStrategie. (Strategy. / Policy) Ein objektbasiertes Verhaltensmuster. Stephan Munkelt, Stefan Salzmann - 03IN
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Gliederung 1. Zweck 2. Motivation 3. Anwendbarkeit 4. Struktur 5. Teilnehmer 6. Interaktionen 7. Konsequenzen 8. Implementierung 9. Beispiele
MehrPraktische Softwaretechnologie Vorlesung 9
Praktische Softwaretechnologie Vorlesung 9 Martin Giese Johann Radon Institute for Computational and Applied Mathematics Österr. Akademie der Wissenschaften Linz PSWT 2006 9. Januar 2007 p.1/38 Pattern
MehrVorlesung Programmieren
Vorlesung Programmieren Software Design Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Software Design Wie schreibe ich gute Software?
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
MehrPaket Kommando. Command Command Processor Visitor
Paket Kommando Command Command Processor Visitor Command Command [kə'mænd] aka: Action ['ækʃən] aka: Transaction [træn'zækʃən] Verhaltensmuster Zweck: Anfragen/Methodenaufrufe als Objekte kapseln 01.07.09
MehrMSE/SWF - API Design. Arthur Zaczek. Feb 2015
Arthur Zaczek Feb 2015 1 Einleitung Dieses Dokument ist eine Zusammenfassung des Buches Practical API Design: Confessions of a Java Framework Architect. [@Tulach2012] 1.1 Cluelessness Je einfacher eine
MehrSeite Wiederverwendung im Softwareentwurf. 5.1 Entwurfsmuster. Erzeugungsmuster (nach Gang of Four ) Strukturmuster (nach Gang of Four )
5. Wiederverwendung im Softwareentwurf 5.1 Entwurfsmuster.KVGTCVWT *DPPD+HOP-RKQVRQ9OLVVLGHVÃ'HVLJQÃ3DWWHUQVÃ$GGLVRQ:HVOH\ÃÃ Â )CPIÂQHÂ(QWT Â )Q( 9OLVVLGHVÃ3DWWHUQÃ+DWFKLQJÃ$GGLVRQ:HVOH\ÃÃ *UDQGÃ3DWWHUQVÃLQÃ-DYDÃÃ%GHÃ:LOH\ÃÃ
MehrFactory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis
Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis Klaus Kusche, Juni 2013 Inhalt Was ist das? Warum braucht man das? Was bringt das? Wann hilft es noch? Realistisches Beispiel
MehrEntwurfsmuster - Iterator
HTWG Konstanz 7. Mai 2009 Muster Klassifikation objektbasiertes Verhaltensmuster des Patterns Ermögliche den sequentiellen Zugriff auf die Elemente eines zusammengestzten Objekts, ohne seine zugrundeligende
MehrObjektorientierte Entwurfsmuster
Objektorientierte Entwurfsmuster Claus Lewerentz Brandenburgische Technische Universität Cottbus Fraunhofer FIRST/SWQlab Cottbus Fraunhofer Institut Rechnerarchitektur und Softwaretechnik 12.05.2005, Software-Systemtechnik,
MehrSoftware Reuse Sommer 2004. Schritt 1: Rechtschreibung, Grammatik, Wortschatz, Semantik Schritt 2: Vertiefung
Design Pattern Peter Sturm Universität Trier Analogie Erlernen einer Fremdsprache Schritt 1: Rechtschreibung, Grammatik, Wortschatz, Semantik Schritt 2: Vertiefung Bildung vernünftiger Sätze, Absätze,...
Mehr