, Rainer Schmidberger, ISTE. Entwurfsmuster. Rainer Schmidberger

Größe: px
Ab Seite anzeigen:

Download ", Rainer Schmidberger, ISTE. Entwurfsmuster. Rainer Schmidberger"

Transkript

1 Entwurfsmuster Rainer Schmidberger

2 Was sind Entwurfsmuster? A design pattern names, abstracts and identifies the key aspect of a common design structure that makes it uful for creating a reusable object-oriented design [Gamma95] Eine Menge von Klasn und eine Regel sie zu gebrauchen Ein Entwurfs-Beispiel, das geschickt (im Sinne von clever oder trickreich) Mechanismen der Objektorientierung auf eine bekannte Problemstellung anwendet I. allg. nicht an eine Programmiersprache gebunden (wenngleich Entwurfsmuster mit Schablonenklasn nicht in jeder objektorientierten Sprache verwendet werden können) [Gamma95]: Gamma, E. u.a., "Design Patterns, Elemets of Reusable Object-Oriented Software", Addison-Wesley, 1995 Folie 2

3 Entwurfsmuster gibt es schon lange... Folie 3

4 Nutzen von Entwurfsmustern Wiederverwendung von Software-Entwürfen: für viele wiederkehrende Aufgabenstellungen gibt es bereits fertige Lösungen Standardisierung von Software-Entwürfen Erhöhung von Verständlichkeit von Software- Entwürfen Aber: nicht jede Zeile Implementierung muss in ein bekanntes Entwurfsmuster eingebettet werden Die verwendeten Entwurfsmuster müsn den am Projekt beteiligten Entwicklern bekannt in Falscher Einsatz von Entwurfsmustern verwirrt Folie 4

5 Darstellung von Entwurfsmustern UML-Modelle, zumeist Klasndiagramme, teilwei Interaktionsdiagramme (speziell bei den Behavior- Pattern) Exemplarische Implementierung der wichtigen Methoden Textuelle Beschreibung Entwurfsmuster bekommen oft einen "griffigen" Namen wie z.b. Facade, Composite,... Folie 5

6 Null-Object Problemstellung null-überprüfungen von Objektreferenzen führen zu u.u. unübersichtlichem Programmcode Auch "null-objekte" hätten u.u. ein bestimmtes Verhalten, das oft über el-zweige zu implementieren wäre TabDialog tabdialog = view.gettabdialog(i); if(tabdialog!= null) { tabdialog.open(); } el... Folie 6

7 Null-Object Die Methoden der Klas TabDialogNull sind i.allg. leer implementiert View TabDialog open() TabDialogA open() TabDialogB open() TabDialogNull open()... {}... public class View... {... TabDialog gettabdialog(int index) {... Hier wird er gefunden... } } return new TabDialogNull(); //... Und hier nicht Folie 7

8 Vor und Nachteile Dem null-objekt können Verhaltensmuster implementiert werden Weniger if-konstrukte Dient u.u. der Fehlervermeidung Erhöht die Zahl der Klasn Es muss eine entsprechende Vererbungshierarchie oder ein zu implementierendes Interface im Vorfeld geben Folie 8

9 Entwurfsmuster - Standard Gang of Four - GoF Erich Gamma, Richard Helm, Ralph E. Johnson, John Vlissides Industriestandard Aufgabe Entwurfs-Muster Erzeugungs-Muster Struktur-Muster Verhaltens-Muster Klasnbasiert Factory method Adapter Interpreter Template method Gültigkeitsbereich Objektbasiert Abstract Factory Adapter Command Builder Bridge Obrver Prototype Decorator Visitor Singleton Facade Iterator Flyweight Memento Composite Proxy Strategy Mediator State Chain of Responsibility Folie 9

10 Singleton Problemstellung Es soll sichergestellt werden, dass es zu einer Klas höchstens eine Instanz gibt. Die Instanz soll global verfügbar in, d.h. es muß eine Möglichkeit für alle Objekte geben, die Instanz anzusprechen. Beispiele: Datenbank, Drucker,... Lösung 1: Instanz in globaler Variablen ablegen. Problem: verhindert nicht die mehrfache Instantiierung. Lösung 2: deklariere alle Eigenschaften der Instanz als Klasneigenschaften. Problem: keine Redefinition möglich Folie 10

11 Singleton Idee Idee: Die Klas ist lbst dafür verantwortlich, dass es von ihr nur ein Exemplar gibt. Sie stellt auch die Instanz zur Verfügung. Struktur: die Instanz wird in der privaten Singleton Klasnvariablen theinstance gespeichert sie kann mit der Klasnmethode +rvice() getinstance() angefordert werden. (Aufruf Singleton.getInstance()) Die Instanzierung von theinstance findet beim ersten Zugriff statt -theinstance : Singleton +getinstance() : Singleton Folie 11

12 Singleton Programmcode class Singleton { static private Singleton theinstance = null; static public Singleton getinstance() { if (theinstance == null) { theinstance = new Singleton(); } return theinstance; } } /* Es darf keinen public-konstruktor geben (also auch keinen Default-Konstruktor). Damit Unterklasn ihn trotzdem benutzen können, wird er protected deklariert */ protected Singleton() {... }... // Instanzvariablen und -methoden Folie 12

13 Singleton Bemerkungen Überwachter Zugang zu einer einzigen Instanz Instanz braucht erst bei Bedarf erzeugt werden Keine globale Variable notwendig Die Singleton-Klas kann redefiniert werden Kann verallgemeinert werden für n Instanzen Flexibler als die Realisierung durch Klasnoperationen Folie 13

14 Composite Problemstellung es sollen hierarchische Teil-Ganzes-Beziehungen modelliert werden einzelne Objekte (Primitive) und zusammengetzte Objekte (Container) sollen für den Verwender die gleiche Schnittstelle haben Beispiele: Dateisystem, UML: Pakete,... Lösung: gemeinsame Oberklas für Primitive und Container, die beide Eigenschaften in sich vereinigt Folie 14

15 Composite Lösung Component add(c : Component) +children remove(c : Component) getchild(i : int) : Component operation() 0..* Leaf operation() Composite add(c : Component) remove(c : Component) getchild(i : int) : Component operation() Folie 15

16 Composite Bemerkungen (1) Composite reicht normale Methodenaufrufe (operation()) in der Regel an alle Kinder durch, kann aber auch noch zusätzliche Operationen durchführen die Aufnahme von Composite-Operationen in Component ist praktisch (einheitl. Schnittstelle), aber auch problematisch, da ihr Aufruf auf einen Leaf nicht sinnvoll ist. nötig ist zumindest eine Default-Implementierung dier Operationen (z.b. Exception auslön), ansonsten müsste jede Leaf-Klas das lbst tun ein Verschieben in Composite kann sinnvoll in (höhere Sicherheit). In beiden Fällen muss der Verwender darauf achten, nur bei Composite-Objekten add() etc. aufzurufen. Nur bedarf es beim zweiten Fall dazu eines expliziten Casts. Folie 16

17 Composite Bemerkungen (2) Component kann um getparent() erweitert werden, um den übergeordneten Composite referenzieren zu können. Problem: wer enthält den obersten Composite? statt mittels getchild() die Kinder einzeln verfügbar zu machen, kann nach außen auch ein externer und/oder interner Iterator über die Kinder zur Verfügung gestellt werden. Beispiel: java.awt.component Composite gehört zur Gruppe der Structural Patterns Folie 17

18 State Problemstellung Ein Objekt soll sich abhängig von inem Zustand verschieden verhalten. Hiervon können eine oder viele Methoden betroffen in. Idee: Der Zustand wird als Klas gekaplt. Spezielle Zustands-Klasn mit überladenen Methoden implementieren die jeweilige Zustandsabhängigkeit Folie 18

19 State: Lösung Aufruf: einstudent.dasrichtigetun(); Student Zustand dasrichtigetun() Vorlesung Pruefung Freizeit Party dasrichtigetun() dasrichtigetun() dasrichtigetun() dasrichtigetun() Folie 19

20 State Bemerkungen Als Erweiterung könnten die Methode dasrichtigetun() ein Objekt des Folgezustandes zurückliefern Es könne leicht weitere Zustände aufgenommen werden State gehört zur Gruppe der Behavioral Patterns Dinge, die in allen Zuständen gleich gemacht werden, können in der gemeinsamen Vaterklas implementiert werden Folie 20

21 Visitor: Problemstellung Es besteht eine Vererbungshierarchie. Für eine bestimmte Aufgabe, in der sich jede Klas unterschiedlich verhalten soll, erhält jeder Klas eine entsprechende Methode. Fragebogen drucken() 0..* FragebogenElement drucken() JaNeinFrage Mehrfachlektion FreitextFrage drucken() drucken() drucken() Was nun, wenn das drucken in unterschiedliche Medien stattfinden soll (z.b. HTML, pdf, usw...) oder verschiedene Druckstile verwendet werden sollen? Folie 21

22 Visitor: Lösung Je Druckstil wird ein Visitor implementiert public void visit(freitextfrage n) { // hier nun die Implementierung // für den HTML-Druck der // Freitextfrage } DruckeHTMLVisitor visit(n : Fragebogen) visit(n : JaNeinFrage) visit(n : Mehrfachlektion) visit(n : FreitextFrage) <<Interface>> Visitor visit(n : Fragebogen) visit(n : JaNeinFrage) visit(n : Mehrfachlektion) visit(n : FreitextFrage) DruckepdfVisitor visit(n : Fragebogen) visit(n : JaNeinFrage) visit(n : Mehrfachlektion) visit(n : FreitextFrage) Die drucken -Methode erhält als Parameter den Visitor Fragebogen drucken(v : Visitor) JaNeinFrage drucken(v : Visitor) 0..* Mehrfachlektion drucken(v : Visitor) FragebogenElement drucken(v : Visitor) FreitextFrage drucken(v : Visitor) public void drucken(visitor v) { v.visit(this); } Folie 22

23 Visitor: Bemerkung Vorteil Anstelle in vielen (gleichnamigen) Methoden über die Hierarchie verteilt, wird in einer zentralen Klas ein Aspekt behandelt Verhaltensmuster für eine ganze Reihe von Klasn lasn sich so übersichtlich austauschen Nachteil Kontrollfluss schwerer zu verfolgen Folie 23

24 Einteilung der Patterns Nach [Gamma95]: Creational Patterns Instanzierung von Objekten Beispiel: Singleton Structural Patterns Lösung bestimmter Strukturierungsprobleme Beispiel: Composite Behavioral Patterns Lösungen bestimmter Verhaltensaspekte Beispiel: State Folie 24

25 Kurzübersicht Unified Process und Agile Prozes Rainer Schmidberger

26 Wasrfall Prozess Business modelling Implementierung Requirements Analy und Design Modultest Inte- grations- Test Wasrfall vs. iterativem Prozess Auslieferung Iterativer Prozess Produktreife Configuration Management Folie 26

27 Der (Rational) Unified Process "The Unified Software Development Process", Ivar Jacobson u.a., Addison-Wesley, 1999 Der Einsatz Objektorientierter Sprachen führt i.allg. zu einem iterativen Prozessmodell Engineering Manage -ment Quelle: Rational Software Achtung: Quantitative Aussagen können aus diem Diagramm nicht abgeleitet werden! Folie 27

28 Unified Process (2) Jede Iteration führt zu einem ausführbaren Gesamtsystem Folie 28

29 Unified Process (3) Phan beschreiben den Reifegrad eines SW-Projektes über die Zeitach: Inception, Elaboration, Construction, Transition Workflows (Disciplines) sind die Aktivitäten eines SW-Projektes. Engineering Disciplines: Business Modeling, Requirements, Analysis&Design, Implementation, Test, Deployment Management Disciplines: Configuration&Change Management, Project Management, Environment Iterationen sind einzelne Abschnitte innerhalb einer Pha eines SW-Projektes. Entsprechend der Phan werden schwerpunktmäßig unterschiedliche Aktivitäten in den Disciplines durchgeführt! Jede Pha besteht aus mehreren Iterationen. Folie 29

30 Freigabe der Ressourcen für die Elaboration-Pha Major Milestones Produkt hat ausreichende Reife für erste Auslieferung an die Kunden (BZA) Freigabe der Ressourcen für die Construction- Pha Kundenakzeptanz oder Ende des Lebenszyklus Inception Elaboration Construction Transition Zeitach Quelle: Rational Software LCO (Lifecycle Objective) LCA (Lifecycle Architecture) IOC (Initial Operational Capability) PR (Product Relea) Folie 30

31 Typischer Projektverlauf und -Aufwand Pha Inception Elaboration Schedule 10% 30% Effort 5% 20% Meilenstein LCO LCA Construction Transition 50% 10% 65% 10% IOC PR Kruchten, P., The Rational Unified Process. An Introduction., Addison-Wesley, 2004 Folie 31

32 (Rational) Unified Process U Ca getrieben Die Analy wird für die funktionalen Anforderungen über U Ca Modellierung vorgenommen Die U Cas werden nach Risiko bewertet. U Cas mit hohem Risiko, also für den Kunden wichtigen Prozes, werden zuerst umgetzt. Architektur zentriert Der erste Architekturentwurf entsteht aus den wichtigsten U Cas und den zentralen nichtfunktionalen Anforderungen Je weiterer U Ca-Implementierung wird die Architektur inkrementell verfeinert Inkrementell Jeder Meilenstein soll ein ausführbares Gesamtsystem werden Iterativ Aus der Bewertung früher Inkremente kann der Analyst die noch ausstehenden U Cas optimieren Kundenanforderungen können noch umgetzt werden Folie 32

33 Agile Prozes Leichtgewichtige Prozessmodelle mit Fokussierung auf der Erstellung von Quellcode Weitere typische Merkmale: Focus on clo ating and clo communication Frequent delivery Information from real urs Extreme Programming (Kent Beck) Crystal Methodologies (Alistair Cockburn) Agile Software Development Manifesto ("The Agile Alience") Folie 33

34 Extreme programming (1) "extreme Programming explaid", Kent Beck, Addison- Wesley,1999 Small releas: kurze Iterationszyklen mit testbaren Resultaten Simple design: das einfachste Design, das ausreicht, wird implementiert (keep ist simple!) Testing: Ständige Unit-Tests der Entwickler. Je Klas wird eine eigene Test-Klas implementiert. Es wird sogar die Vorgehenswei empfohlen, zuerst Testfälle zu entwickeln um dann die eigentliche Anwendungs- Implementierung vorzunehmen. Refactoring: Ständiges Überarbeiten der Architektur mit dem Ziel der Vereinfachung bei unveränderter Funktionalität... Folie 34

35 Extreme programming (2)... Pair programming: der Programmcode wird immer von zwei Entwicklern gemeinsam entwickelt Collective ownership: Jeder kann jeden Code jederzeit ändern Continuous integration: häufiger (mehrmals täglich) Build des Gesamtsystems (zumindest immer wenn Teilsysteme fertig gestellt sind) 40-hour-week: niemals in zwei Wochen hintereinander Überstunden (d.h. mehr als 40 Wochenstunden) machen Coding standards: Gemeinsame Code-Richtlinien Folie 35

36 Folie 36

37 The Crystal Methodologies (1) "Agile Software Development", Alistair Cockburn, Addison-Wesley, 2002 Begriff "Crystal" ist einfach ein Name und hat letztlich keine Bedeutung ("Produktname") Tabelle mit Zuordnung Anzahl beteiligter Personen und Risiko zum empfohlenen Prozessmodell Risiko (Criticality, Hardness): Corresponds to more potential damage Je Prozessmodell existiert eine Prozess-Beschreibung mit Empfehlungen zu den beteiligten Personen und Rollen den zu erstellenden Dokumenten den einzutzenden Werkzeugen... Folie 37

38 The Crystal Methodologies (2) Criticality L6 L20 L40 L80 E6 E20 E40 E80 Criticality :Defects cau loss of... L=Life E=esntial money D=Discretionary money C=Comfort D6 C6 D20 C20 D40 C40 D80 C80 Clear Yellow Orange Red Number of people involved Ein Projekt der Criticality "D" und 20 beteiligten Personen wird nach dem Prozessmodell "D20" entwickelt Folie 38

39 "The Agile Alliance" "The Agile Alliance": 17, durchaus bekannte Personen aus dem SE-Umfeld "The Agile Software Development Manifesto", Utah Feb., 2002 Ziel: Es sollen besre Wege zur Software-Entwicklung aufgezeigt werden Vier (sicherlich fragwürdige) Kernpunkte: 1. Individuals and interactions 2. Working software 3. Custommer collaboration 4. Responding to change over over over over process and tools comprehensive documentation contract negotiation following a plan Folie 39

40 Refactoring Rainer Schmidberger

41 Was ist Refactoring? [Fowler 1999]: Refactoring: A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its obrvable behavior Gesucht: Anleitung zum Refactoring Indikatoren/Gegenindikatoren für eine bestimmtes Refactoring Aufwand und Nutzen Risiko [Fowler 1999] Fowler, M., Refactoring. Improving the Design of Existing Code., Addison- Wesley, 1999 Folie 41

42 Refactoring-Struktur nach Fowler Name Summary Motivation Mechanics Examples Kurze, griffige Bezeichnung. Bildet ein Vokabular an Refactorings. Kurze Zusammenfassung, Situationsbeschreibung für Anwendbarkeit des Refactorings. Beschreibt den Nutzen des Refactoring und auch Umstände, unter denen es nicht verwendet werden soll. Detaillierte, schrittwei Beschreibung wie das Refactoring durchgeführt werden soll. Beispielhafte Durchführung des Refactoring mit Veranschaulichung des Nutzens. Folie 42

43 Beispiel Move Method Name Summary Motivation Mechanics Examples Move Method A method is, or will be, using or ud by more features of another class than the class on wich it is defined. Create a new method with a similar body int the class it us most. Either turn the old method into a simple delegation or remove it altogether Method moving is the bread and butter of refactoring. I move methods when class have too much behavior... Examine all features ud by the source method that are defined on the source class. Consider whether they also should be moved. Check the sub- and superclass [...] Declare the method in the target class. Copy the code from the source method to the target. [...] Compile the target class. [...] Decide whether to remove the source method or retain it as a delegating method. [...] An account class illutrates this refactoring... Folie 43

44 Was fehlt bei Fowler (1) Vorbedingung Was muss im Code/Design vorliegen damit die Restrukturierung sinnvoll angewendet werden kann evtl. konkrete Metriken Gegenanzeigen Gründe, die gegen die Restrukturierung sprechen Risiko welcher Schaden kann entstehen Welche Nebenwirkungen sind zu erwarten und wie wären die ggf. zu begrenzen Angenommen, die Restrukturierung zeigt sich als undurchführbar. Wie aufwändig ist ein Undo Organisatorische Rahmenbedingungen welche Information (Dokumente, Ansprechpartner) sind erforderlich welche Kompetenz (Skill) ist erforderlich Folie 44

45 Was fehlt bei Fowler (2) Aufwand Zur Umtzung im Code Zur Qualitätssicherung Zur Pflege der Dokumente Zur Vermittlung an die weiteren Teammitglieder Nutzen Hat sich für das Modul bzw. die Prozedur ein Wartbarkeitsindex geändert? Welche Schaden entsteht durch eine Nichtdurchführung? Hat durch die einfacheren Strukturen das Fehlerrisiko abgenommen? Nachbedingung Das ursprüngliche (funktionale) Verhalten des Systems ist unverändert: Regressionstest. Folie 45

46 Beispiel: Move Method Name Vorbedingung Gegenanzeigen Risiko Organisatorische Rahmenbedingungen Move Method (m1 von K1 in K2) Eine Methode der Klas K1 wird überwiegend aus der Klas K2 heraus genutzt und hat lbst wenig Zugriff auf private Methoden oder Attribute Metriken: C&K nützen nichts, es gibt aber andere Publikationen hierzu Synchronisationen verbinden m1 mit K1 K1 ist abgeleitet und m1 ist auch in einer der Vaterklasn definiert K2 nicht lbst Sorgenkind Es könnte in, dass der Ausbau von K1 noch nicht abgeschlosn ist Reflektion Code-Ownership auf K1 und K2 liegt vor Die Verwendungen von K1 sind bekannt (Achtung bei Frameworks!) Eine Auslieferung steht nicht unmittelbar an (Da QS erfolgen muss) Aufwand Nutzen Nachbedingung Implementierung, Interne Dokumentation (z.b. Javadoc) ändern Externe Dokumentation, z.b. Klasn und Sequenzdiagramme QS Mitteilung an die Teammitglieder Programm leichter lesbar, weniger Delegation Zusammenhalt in K1 und K2 größer, Kopplung zwischen K1 und K2 kleiner Folie 46

Entwurfsmuster. Rainer Schmidberger

Entwurfsmuster. Rainer Schmidberger Entwurfsmuster Rainer Schmidberger schmidrr@informatik.uni-stuttgart.de Copyright 2004, Rainer Schmidberger, Universität Stuttgart, Institut für Softwaretechnologie, Abt. Software Engineering Was sind

Mehr

Kurzübersicht Unified Process und Agile Prozesse

Kurzübersicht Unified Process und Agile Prozesse Kurzübersicht Unified Process und Agile Prozes Rainer Schmidberger schmidrr@informatik.uni-stuttgart.de Copyright 2004, Rainer Schmidberger, Universität Stuttgart, Institut für Softwaretechnologie, Abt.

Mehr

Entwurf im Kleinen : Lösungen für bekannte Aufgaben. Entwurf im Großen : Wie entwerfe ich ein System

Entwurf im Kleinen : Lösungen für bekannte Aufgaben. Entwurf im Großen : Wie entwerfe ich ein System Entwurf Entwurfsmuster Entwurf im Kleinen : Lösungen für bekannte Aufgaben Refactoring Entwurfsüberarbeitung Entwurf Entwurf im Großen : Wie entwerfe ich ein System Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de

Mehr

JavaCC Rainer Schmidberger

JavaCC Rainer Schmidberger JavaCC Rainer Schmidberger Universität Stuttgart Institut für Softwaretechnologie, Abt. Software Engineering rainer.schmidberger@informatik.uni-stuttgart.de Übersicht JavaCC ist ein in Java implementierter

Mehr

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio

Ü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

Mehr

Einführung in die Objektorientierung

Einführung in die Objektorientierung Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de Objektorientiert daisy : Kunde 2. angebot Nein Prozedural Schleife über alle Projekte Noch was zu tun? Manager informieren... Ja Daten

Mehr

Einführung in die Objektorientierung

Einführung in die Objektorientierung Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de Objektorientiert daisy : Kunde 2. angebot Nein Prozedural Schleife über alle Projekte Noch was zu tun? Manager informieren... Ja Daten

Mehr

const Zwei Schlüsselwörter bei der Deklaration von Variablen und Member-Funktionen haben wir noch nicht behandelt: const und static.

const Zwei Schlüsselwörter bei der Deklaration von Variablen und Member-Funktionen haben wir noch nicht behandelt: const und static. const Zwei Schlüsselwörter bei der Deklaration von Variablen und Member-Funktionen haben wir noch nicht behandelt: const und static. Eine const Variable kann ihren Wert nicht ändern: const double pi =

Mehr

Projektmanagement iterativer Projekte

Projektmanagement iterativer Projekte Übersicht Motivation zum iterativen Vorgehen Anleitung zur U Ca getriebenen Vorgehenswei Praktische Tipps Zusammenfassung Projektmanagement iterativer Rainer Schmidberger Universität Stuttgart Institut

Mehr

Einführung in die Objektorientierung

Einführung in die Objektorientierung Rainer Schmidberger schmidrr@informatik.uni-stuttgart.de Objektorientiert daisy : Kunde Nein Prozedural Schleife über alle Projekte Noch was zu tun? Ja Daten Progr. dagobert : Manager 2. angebot Manager

Mehr

Verteidigung Großer Beleg

Verteidigung 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

Mehr

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Creational 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

Mehr

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26

Design 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:

Mehr

Agile Softwareprozess-Modelle

Agile Softwareprozess-Modelle Agile Softwareprozess-Modelle Steffen Pingel Regionale Fachgruppe IT-Projektmanagement 2003-07-03 Beweglich, Lebhaft, Wendig Was bedeutet Agil? Andere Bezeichnung: Leichtgewichtiger Prozess Manifesto for

Mehr

Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar

Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar Zweck des Entwurfs Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar Überspitztes Beispiel: Wenn eine Klas mit einer Methode, die 10.000 Zeilen lang ist, die geforderte

Mehr

Structural Patterns. B. Sc. Andreas Meißner

Structural 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

Mehr

Design Patterns. OO-GetTogether. Volker Michels

Design 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

Mehr

Entwurfsmuster (Design Patterns)

Entwurfsmuster (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

Mehr

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Software-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

Mehr

Design Patterns. 3. Juni 2015

Design 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?

Mehr

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff

Design 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:

Mehr

Software Engineering II (IB) Design Patterns

Software 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

Mehr

Strategy & Decorator Pattern

Strategy & 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

Mehr

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP 3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg ARIS meets RUP Der ARIS Unified Information System Development Process Martin Plümicke Berufsakademie

Mehr

Einführung von XP in der Praxis

Einführung von XP in der Praxis Einführung von XP in der Praxis Seminar Agile vs. klassische Methoden der Software- Entwicklung David Kocher, dk@cyberduck.ch Einführung XP bezeichnet sich als leichte Methode des Software Engieneerings

Mehr

Ein Entwurfsmuster der GoF. vorgestellt von. Sigrid Weil 16. Januar 2008

Ein 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

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel 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

Mehr

Software Engineering II (IB) Design Patterns

Software 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.................................

Mehr

Tutorium Softwaretechnik I

Tutorium 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

Mehr

Entwurfsprinzip. Entwurfsprinzip

Entwurfsprinzip. 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

Lukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster

Lukas 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

Mehr

Tutorium Softwaretechnik I

Tutorium 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

Mehr

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit IBM Software Group IBM Rational mit RequisitePro Hubert Biskup hubert.biskup@de.ibm.com Agenda Rational in der IBM Software Group Der Rational Unified Process als Basis für die Projektarbeit mit Rational

Mehr

3.4 Unified Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

3.4 Unified Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process. 1999 Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process. 1996 Philippe Kruchten: Rational Unified Process Produkt der Firma Seit 2002 Teil des IBM Konzerns Objektorientiertes

Mehr

MSE/SWF - API Design. Arthur Zaczek. Feb 2015

MSE/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

Mehr

Entwurfsmuster. Marc Monecke

Entwurfsmuster. 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

Mehr

Entwurfsmuster - Iterator & Composite

Entwurfsmuster - 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

Mehr

Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis

Factory 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

Mehr

Software Reuse Sommer 2004. Schritt 1: Rechtschreibung, Grammatik, Wortschatz, Semantik Schritt 2: Vertiefung

Software 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

Seminar Software Engineering

Seminar Software Engineering Seminar Software Engineering Klassische vs agile Methoden der Software-Entwicklung Inhalt Einleitung Klassische Methoden Agile Methoden Methoden Organisationen und Konferenzen Fazit Fragen / Diskussion

Mehr

3. Entwurfsmuster zur Entkopplung von Modulen

3. 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

Mehr

Universität Bielefeld. Softwarepraktikum. Gernot A. Fink SS Rückblick extreme Programming (XP)

Universität Bielefeld. Softwarepraktikum. Gernot A. Fink SS Rückblick extreme Programming (XP) Softwarepraktikum Gernot A. Fink SS 2005 Rückblick extreme Programming (XP) extreme Programming: Die Idee XP takes common sense principles and practices to extreme levels. (Kent Beck, 2001) (d.h. alles,

Mehr

Inhaltsverzeichnis. Vorwort Geleitwort von Grady Booch Einleitung... 23

Inhaltsverzeichnis. Vorwort Geleitwort von Grady Booch Einleitung... 23 Vorwort.................................................. 17 Geleitwort von Grady Booch................................. 21 Einleitung................................................ 23 1 Einführung...............................................

Mehr

Objektorientierte und Funktionale Programmierung SS 2014

Objektorientierte 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

Mehr

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung

Mehr

Software Design Patterns Zusammensetzung. Daniel Gerber

Software Design Patterns Zusammensetzung. Daniel Gerber Software Design Patterns Zusammensetzung Daniel Gerber 1 Gliederung Einführung Iterator Composite Flyweight Zusammenfassung 2 So wird s werden Problem und Kontext an einem Beispiel vorstellen Lösung des

Mehr

Software-Architektur Design Patterns

Software-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:

Mehr

Softwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2009

Softwaretechnik. Ü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

Mehr

Design Pattern. Motivation, Beispiel Definition "Das" Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe

Design 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

Mehr

Herkömmliche Softwareentwicklungsmodelle vs. Agile Methoden

Herkömmliche Softwareentwicklungsmodelle vs. Agile Methoden vs. Agile Methoden Christoph.Kluck@Student.Reutlingen University.de Medien und Kommunikationsinformatik Agenda Einführung Vorgehensmodelle Herkömmlich agil Resümee Klassische Probleme Nachgereichte Anforderungen

Mehr

Softwaretechnik. 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 Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2010/11 Überblick I Entwurfsmuster Entwurfsmuster: Entwurfsmuster

Mehr

Vorlesung Programmieren

Vorlesung 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?

Mehr

Softwarearchitektur, UML, Design Patterns und Unit Tests

Softwarearchitektur, UML, Design Patterns und Unit Tests Softwarearchitektur, UML, Design Patterns und Unit Tests Stefan Wehr Prof. Dr. Peter Thiemann 7. Dezember 2005 Übersicht Softwarearchitektur UML Design Pattern Unit Tests 2 / 34 Softwarearchitektur Softwarearchitektur

Mehr

Entwurfsmuster. Die Entwurfsmuster Observer, State und Singleton am Beispiel einer Digital-Uhr

Entwurfsmuster. 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:

Mehr

Vorlesung Software-Reengineering

Vorlesung Software-Reengineering Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2007/08 Überblick I 1 Refactoring Refactorings

Mehr

Kleine Refactoring-Muster

Kleine Refactoring-Muster Diplomarbeitsvortrag Kleine Refactoring-Muster Marko Schulz ms@datenreisender.de http://datenreisender.de/da/ Überblick 0 Wieso? (davor) Fragen Muster Was sind Muster? Muster in der Softwaretechnik Refactorings

Mehr

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II Rational Unified Process (RUP) Informationswirtschaft II Rational Unified Process (RUP) Wolfgang H. Janko, Michael Hahsler und Stefan Koch Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe Das

Mehr

Informationswirtschaft II

Informationswirtschaft II Rational Unified Process (RUP) Informationswirtschaft II Wolfgang H. Janko, Michael Hahsler und Stefan Koch Seite 1 Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe

Mehr

Inhalt. Design patterns Kernbereiche Creational patterns Factory method Abstract Factory Builder Structural patterns Adapter Facade Decorator

Inhalt. 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

Mehr

Software 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 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

Mehr

Entwurfsmuster Martin Fesser 00IN

Entwurfsmuster 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

Mehr

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Übersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur

Übersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur Übersicht Object Oriented Organization Das System besteht aus Objekten, die mittels Methodenaufrufe (Nachrichten) miteinander kommunizieren. 2 / 34 4 / 34,, Design Patterns und Stefan Wehr Prof. Dr. Peter

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts

Zweck: 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

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats

Zweck: 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

Mehr

Lehrplan: Architektur und Design. paluno

Lehrplan: 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

Mehr

OOSE 8 Entwurfsmuster (Hörsaalübung)

OOSE 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

Mehr

Decorator 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 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

Mehr

Universität Bremen. Entwurfsmuster. Thomas Röfer. Wettbewerb Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster

Universitä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

Mehr

Refactorings in großen Softwareprojekten

Refactorings in großen Softwareprojekten Refactorings in großen Softwareprojekten (C) 2004 Martin Lippert lippert@acm.org Stefan Roock stefan@stefanroock.de Was ist Refactoring? A change made to the internal structure of software to make it easier

Mehr

Design Patterns I. Observer, Listener & MVC

Design Patterns I. Observer, Listener & MVC Design Patterns I Observer, Listener & MVC Design Patterns I - Gliederung - Was sind Design Patterns? - Definition von Design Patterns - Entstehung - Nutzen & Verwendung - MVC - Model, View, Controller

Mehr

Extreme Programming. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825

Extreme Programming. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825 Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Extreme Programming Agiles Manifest Individuen und Interaktion wichtiger als Prozesse und Werkzeuge Laufende Software wichtiger als vollständige

Mehr

Wieso Prozesse? Ist das nicht einfach nur mühsam? A. Stucki, Solcept AG

Wieso Prozesse? Ist das nicht einfach nur mühsam? A. Stucki, Solcept AG Wieso Prozesse? Ist das nicht einfach nur mühsam? A. Stucki, Solcept AG 1 Was erwartet Sie? Arbeit & Prozesse Ingenieure & Prozesse Organisationen & Prozesse Projekt/ Produkt & Prozesse Agil & Prozesse

Mehr

Universität Bremen. Entwurfsmuster. Thomas Röfer. Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster

Universitä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

Mehr

Einführung des Unified Process: ein Erfahrungsbericht

Einführung des Unified Process: ein Erfahrungsbericht Einführung des Unified Process: ein Erfahrungsbericht Werner Altmann K&A GmbH, Perlacher Strasse 21, D-81359 München Tel: 089/651071-10 e-mail: wa@ka-muc.de www.ka-muc.de Kölsch & Altmann GmbH 2001 GI-ACM-011008-1

Mehr

Software Engineering. 2. Methodologien. Franz-Josef Elmer, Universität Basel, HS 2010

Software Engineering. 2. Methodologien. Franz-Josef Elmer, Universität Basel, HS 2010 Software Engineering 2. Methodologien Franz-Josef Elmer, Universität Basel, HS 2010 Software Engineering: 2. Methodologien 2 Wie den Entwicklungsprozess organisieren? Dokumentieren Verwalten Instandhalten

Mehr

Softwaretechnik 2015/2016

Softwaretechnik 2015/2016 Softwaretechnik 2015/2016 PST Lehrstuhl Prof. Dr. Matthias Hölzl HAUPT-/ BACHELOR- SEMINAR ADAPTIVE SYSTEME PST Joschka PROF. DR. Rinke WIRSING 14. JUNI 2009 VORNAME NAME AGENDA Übung 11: 14.01.2016 Schon

Mehr

a.k.a. Broker a.k.a. Vermittler , Sebastian Gäng, Moritz Moll, Design Pattern, HTWG Konstanz

a.k.a. Broker a.k.a. Vermittler , Sebastian Gäng, Moritz Moll, Design Pattern, HTWG Konstanz Mediator Pattern a.k.a. Broker a.k.a. Vermittler 1 2009, Sebastian Gäng, Moritz Moll, Design Pattern, HTWG Konstanz Beschreibung Klassifikation: i Objektbasiertes b Verhaltensmuster hl Zweck: Wenn eine

Mehr

Erzeugungsmuster. Kapselung der Objekt-Erzeugung

Erzeugungsmuster. 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

Mehr

Grundlagen Software Engineering

Grundlagen Software Engineering Grundlagen Software Engineering Rational Unified Process () GSE: Prof. Dr. Liggesmeyer, 1 Rational Unified Process () Software Entwicklungsprozess Anpassbares und erweiterbares Grundgerüst Sprache der

Mehr

Objektorientierteund FunktionaleProgrammierung

Objektorientierteund FunktionaleProgrammierung Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

Mehr

Studentische Probeklausur

Studentische Probeklausur Aufgabe 1 Entwurfsmuster 1. Was ist ein Entwurfsmuster? Studentische Probeklausur SWT SoSe 2010 2. In welche Kategorien werden Entwurfsmuster gewöhnlich unterteilt und wozu dienen die Muster der jeweiligen

Mehr

SOLID für.net und JavaScript

SOLID 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

Mehr

SE Besprechung. Übung 4 Architektur, Modulentwurf

SE 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,

Mehr

Softwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2007

Softwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2007 Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2007 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen

Mehr

Softwaretechnik. Prof. Dr. Rainer Koschke. Sommersemester Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

Softwaretechnik. Prof. Dr. Rainer Koschke. Sommersemester Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2007 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen

Mehr

Labor Datenverarbeitung SS 2006

Labor Datenverarbeitung SS 2006 Labor Datenverarbeitung SS 2006 Versuch Speicherprogrammierbare Steuerungen Versuch Objektorientierter Entwurf mit Design-Pattern 1 SPS, Allgemeines Umfang der Versuche Logische Grundverknüpfungen kombinatorische

Mehr

MVVM (Model View ViewModel) in JavaFX

MVVM (Model View ViewModel) in JavaFX MVVM (Model View ViewModel) in JavaFX SEP Sommersemester 2019 Nicolas Brauner 30.04.2019 DBS Wissenschaftlicher Betreuer: Maximilian Hünemörder, Ludwig Zellner Verantwortlicher Professor: Prof. Dr. Peer

Mehr

Praktikum. 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 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

Mehr

Blockpraktikum Multimediaprogrammierung

Blockpraktikum Multimediaprogrammierung Blockpraktikum Multimediaprogrammierung 15. September 26. September 2008 Max Maurer Erfahrungsbericht Extreme Programming Kleiner Rückblick zur Vorlesung Prof. Heinrich Hußmann Agile Development for Multimedia

Mehr

29.01.2013. Vorlesung Programmieren. Software Design. Software Design. Entwurfsmuster

29.01.2013. Vorlesung Programmieren. Software Design. Software Design. Entwurfsmuster 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?

Mehr

ZuuL - Entwicklung eines Adventures

ZuuL - Entwicklung eines Adventures ZuuL - Entwicklung eines Adventures im Rahmen der Uni-Tage 2009 Team 120 Universität Hamburg 16./17. November 2009 Team 120 (Universität Hamburg) ZuuL - Entwicklung eines Adventures 16.11.09 1 / 21 Übersicht

Mehr

Management von Anforderungen im Rational Unified Process (RUP)

Management von Anforderungen im Rational Unified Process (RUP) Management von Anforderungen im Rational Unified Process (RUP) Peter Fröhlich ABB DECRC 69115 Heidelberg Fröhlich-8/98-1 Themen: Was ist RUP? RM im RUP Core Workflows Dokumente Tools Erfahrungen RUP Objectory

Mehr

JUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite!

JUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite! JUnit a Cook s Tour Ziel des Frameworks Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren Design des Frameworks Beginne bei Nichts Schritt für Schritt aus passenden Mustern

Mehr

Refactoring Transformationen. Martin Freund Januar 2003 Seminar Refactoring in extreme Programming AG Kastens Universität Paderborn

Refactoring Transformationen. Martin Freund Januar 2003 Seminar Refactoring in extreme Programming AG Kastens Universität Paderborn Refactoring Transformationen Martin Freund bbl@upb.de Januar 2003 Seminar Refactoring in extreme Programming AG Kastens Universität Paderborn Gliederung 1. Transformationen-Übersicht 2. Beispiel: Methode

Mehr