Design Patterns. OO-GetTogether. Volker Michels

Größe: px
Ab Seite anzeigen:

Download "Design Patterns. OO-GetTogether. Volker Michels"

Transkript

1 1 Design Patterns OO-GetTogether Volker Michels

2 2 Muster (engl. Pattern) Züllighoven: Ein Muster ist eine Abstraktion von einer konkreten Form, die wiederholt in bestimmten nicht willkürlichen Kontexten auftritt Christopher Alexander: Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing the same way twice.

3 3 Klassifikation von Mustern Konzeptionsmuster Beschreibung mit Begriffen und Konzepten eines Anwendungsbereichs Entwurfsmuster Beschreibung mit Elementen des Softwareentwurfs Programmiermuster Beschreibung durch programmiersprachliche Konstrukte

4 4 Entwurfsmuster helfen, existierende Softwareentwürfe zu analysieren und reorganisieren erleichtern Einarbeitung in Softwarearchitekturen sind Elemente einer Sprache für Softwarearchitekten A pattern is a solution to a problem in a context Kontext: Wiederkehrende Situation, in der das Muster angewendet wird Problem: berücksichtigt auch Rahmenbedingungen ( Forces ) Lösung: allgemeines Design, das jeder anwenden kann und Ziel und Rahmenbedingungen berücksichtigt

5 5 Beschreibung von Entwurfsmustern Name des Entwurfsmusters Problem, das gelöst werden soll Kontext, in dem sich das Problem stellt Lösung: Klassenhierarchie und Gestaltung ihrer Interaktion Konsequenzen (positive und negative) der Musteranwendung

6 6 Klassifikation von Entwurfsmustern Erzeugung (Creational): Objekterzeugung Struktur (Structure): Komposition von Klassen oder Objekten Verhalten (Behavior): Charakterisieren, wie Objekte und Klassen interagieren und verteilt sind

7 7 Katalog von Entwurfsmustern Gang of Four : Gamma, Helm, Johnson, Vlissides: Standardwerk: 23 fundamentale Patterns

8 8 Schablonenmethode (Template Method) Zweck: Definiere das Grundgerüst eines Algorithmus, verschiebe einige Schritte in Unterklassen. Subklassen können einige Schritte des Algorithmus neu definieren, ohne die Struktur des Algorithmus zu ändern Anwendbarkeit: Implementiere die invarianten Teile eines Algorithmus ein einziges mal, der veränderliche Teil wird von Subklassen implementiert Identifiziere gemeinsames Verhalten von Subklassen und lokalisiere es in einer gemeinsamen Klasse ( refactoring to generalize ) Kontrolliere die Erweiterung von Subklassen, lasse Erweiterungen nur an bestimmten Stellen zu durch Aufruf von Einschubmethoden an bestimmten Stellen

9 Beispiel für Template Method 9

10 Struktur für Template Method 10

11 11 Diskussion Template Method Fundamentale Technik für Wiederverwendung, wichtig für Rahmenwerke Invertierung der Kontrollstruktur ( Hollywood Prinzip : Don t call us, we call you ): Oberklasse ruft Funktionen der Unterklasse auf Einschubmethoden ( hook operations ) liefern Standardverhalten, werden erweitert oder implementiert von Subklassen

12 Strategiemuster 12 Trennung von Spezifikation und Implementation Zweck: Definiere eine Familie von Algorithmen, kapsele jeden einzelnen und mache sie austauschbar. Das Strategiemuster ermöglicht es, den Algorithmus unabhängig von nutzenden Klienten zu variieren. Anwendbarkeit: Viele verwandte Klassen unterscheiden sich nur in ihrem Verhalten. Unterschiedliche Varianten von Algorithmen werden benötigt Ein Algorithmus soll Daten verwenden, die Klienten nicht bekannt sein sollen. Eine Klasse definiert unterschiedliche Verhaltensweisen, die als mehrfache Bedingungsanweisungen in ihren Operationen erscheinen.

13 Struktur für Strategie 13 Ein Kontextobjekt hält eine Referenz auf ein Objekt einer konkreten Strategie. Sobald eine Strategie ausgeführt werden soll, stößt das Kontextobjekt den Algorithmus des Strategieobjekts an und versorgt es mit den benötigten Daten und Objekten.

14 Beispiel: Zinsstrategie für Konto 14

15 15 Diskussion des Strategiemusters Alternative zur Unterklassenbildung ->Vermischung der Implementierung von Algorithmus und Kontext wird vermieden, Algorithmus ist zur Laufzeit austauschbar Bedingungsanweisungen werden überflüssig gemacht Kommunikationsaufwand zwischen Strategie und Kontext Strategieobjekte sind zusätzliche Objektstrukturen, die Speicher benötigen

16 Viele weitere Patterns 16 Structural Behavioral Adapter Bridge Command Composite Proxy Facade Decorator Creational Iterator State Observer Abstract Factory Factory Method Prototype Singleton

17 17 OO-Principles, OO-Basics Encapsulate what varies Favor composition over inheritance Program to interface, not implementations Strive for loosely coupled designs between objects that interact Classes should be open for extension but closed for modification Depend on abstractions. Do not depend on concrete classes. Only talk to your friends. Don t call us, we ll call you A class should have only one reason to change Abstraction Encapsulation Polymorphism Inheritance

18 Denken in Patterns 18 Keep it simple: Verwende Patterns, wenn es eine natürliche Anwendung gibt, falls es eine einfachere Lösung gibt, benutze diese Patterns sind allgemeine Lösungen für wiederkehrende Probleme, getestet von vielen Entwicklern und deshalb sicher. Es bringt aber u.u. zusätzliche Probleme, es müssen die Konsequenzen für das restliche Design bedacht werden Die Entscheidung, ob ein Pattern anwendbar ist, benötigt viel Wissen und Erfahrung Patterns sind einfacheren Lösungen vorzuziehen, falls Änderung am System erwartet werden Anwendung von Patterns sollte nicht nur zur Design-Zeit, sondern auch beim Rafactoring in Betracht gezogen werden

19 Take home messages 19 Gute OO-Designs sind wiederverwendbar, erweiterbar, wartbar Patterns zeigen, wie Systeme mit guten OO-Design- Qualitäten erstellt werden können Patterns sind bewährte OO-Erfahrung Patterns liefern keinen Code, sondern generelle Lösungen zu Design-Problemen Patterns werden nicht erfunden, sondern entdeckt Die meisten Patterns beziehen sich auf Änderungen in Software Die meisten Patterns erlauben Änderungen eines Teil des Systems unabhängigen von den anderen Teilen Patterns liefern eine gemeinsames Vokabular zur Kommunikation mit anderen Entwicklern

Ü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

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

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

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

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

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

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

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik

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

Mehr

Summary. OO Principles OO Design Principles OO Design Patterns: Past, Present and Future. 1 June

Summary. OO Principles OO Design Principles OO Design Patterns: Past, Present and Future. 1 June Summary OO Principles OO Design Principles OO Design Patterns: Past, Present and Future 1 OOP Principles Encapsulation Methods and data are combined in classes Not unique to OOP Information Hiding Implementation

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

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

Praktikum Experience Design From Experience Story to Scheme

Praktikum Experience Design From Experience Story to Scheme Praktikum Experience Design From Experience Story to Scheme Daniel Ullrich Stina Schick Folie: 1 Analysis of the elements of a story. Experience Design gernerates a story from the experience produced by

Mehr

Effizientes Programmieren

Effizientes Programmieren Effizientes Programmieren Praktikum smuster (09.05.2016) Christopher Pietsch Agenda 1 2 smuster 3 4 1 / 23 smuster (09.05.2016) smuster Teil 1 2 / 23 smuster (09.05.2016) smuster Definition: [...] alle

Mehr

Effizientes Programmieren

Effizientes Programmieren Effizientes Programmieren Praktikum smuster (04.07.2017) Christopher Pietsch Agenda 1 2 smuster 3 4 1 / 23 smuster (04.07.2017) smuster Teil 1 2 / 23 smuster (04.07.2017) smuster Definition: [...] alle

Mehr

Strategie. (Strategy. / Policy) Ein objektbasiertes Verhaltensmuster. Stephan Munkelt, Stefan Salzmann - 03IN

Strategie. (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

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

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

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

Software-Entwurfsmuster (weitere) A01 OOP. Software-Entwurfsmuster (weitere)

Software-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();

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

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

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

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

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

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

Head First Design Patterns. FALLBEISPIEL: SimUDuck

Head First Design Patterns. FALLBEISPIEL: SimUDuck Head First Design Patterns FALLBEISPIEL: SimUDuck 1 SimUDuck Fallbeispiel aus Head First Design Patterns [1] SimUDuck: Simulationsspiel wo verschiedenen Entenarten (Stockente, Rotschopfente, Schnatterente

Mehr

3. Entwurfsmuster zur Entkopplung von Modulen. Übersicht zu Entwurfsmustern

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

Mehr

Behavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul

Behavioral 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

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

Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius

Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius Die S.O.L.I.D-Prinzipien für C# Entwickler Thomas Claudius Huber @ThomasClaudiusH BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH

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 Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 16.05.2017 20:56 Inhaltsverzeichnis Standardwerk.................................... 2 Erzeugungsmuster.................................

Mehr

Einführung in die Informatik II

Einfü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

Mehr

Objektorientierte und Funktionale Programmierung

Objektorientierte und Funktionale Programmierung Objektorientierte und Funktionale Programmierung SS 2013 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Objektorientierte und Funktionale Programmierung 1 PrüfungstermineOFP

Mehr

Entwurfsmuster in Java

Entwurfsmuster 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

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

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

Didaktische Entwurfsmuster: Eine Einführung. Pascal Fischer, Uwe Frommann, Ina Schiller

Didaktische Entwurfsmuster: Eine Einführung. Pascal Fischer, Uwe Frommann, Ina Schiller Didaktische Entwurfsmuster: Eine Einführung 1 Ausgangssituation Alltag ambitionierter Lehrender Quellen: http://natex-hamburg.de/blog/2012/11/natex-siegerehrung-201112-senator-ehrt-die-natex-sieger-beim-10-jahrigen-jubilaum/voller-horsaal-ii/

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

Didaktische Entwurfsmuster und E-Portfolio-Arbeit

Didaktische Entwurfsmuster und E-Portfolio-Arbeit 3. Tag der Lehre an der FH St. Pölten Didaktische Entwurfsmuster und E-Portfolio-Arbeit Theoretisches Konzept und praktische Erfahrungen mit Mustern für individuelles, reflektierendes und kollaboratives

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

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

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

Entwurfsmuster Theoretische und praktische Implikationen zur Unterrichtsvorbereitung

Entwurfsmuster Theoretische und praktische Implikationen zur Unterrichtsvorbereitung This work is licensed under a Creative Commons Attribution Noncommercial No Derivative Works 3.0 Unported License. Didaktische Entwurfsmuster Theoretische und praktische Implikationen zur Unterrichtsvorbereitung

Mehr

Entwurfsmuster Design Patterns by Erich Gamma et al.

Entwurfsmuster 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

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

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

Objektorientierte Entwurfsmuster

Objektorientierte Entwurfsmuster Objektorientierte Entwurfsmuster Claus Lewerentz Brandenburgische Technische Universität Cottbus Fraunhofer FIRST/SWQlab Cottbus Fraunhofer Institut Rechnerarchitektur und Softwaretechnik 12.05.2005, Software-Systemtechnik,

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

EINSATZ VON DESIGN PATTERNS BEI DER ENTWICKLUNG DES CSM-FRAMEWORKS REMARC

EINSATZ VON DESIGN PATTERNS BEI DER ENTWICKLUNG DES CSM-FRAMEWORKS REMARC EINSATZ VON DESIGN PATTERNS BEI DER ENTWICKLUNG DES CSM-FRAMEWORKS REMARC 10. Informatik-Tag, HTWM Dipl.-Inf. Chris Hübsch, ARC Solutions GmbH Inhalt 1. ARC Solutions 2. REMARC 3. Design Patterns 4. Patterns

Mehr

Anwendung der Aspektorientierung: Design Patterns

Anwendung der Aspektorientierung: Design Patterns Anwendung der Aspektorientierung: Design Patterns Seite 1 Agenda Allgemein: Design Patterns Adapter Decorator Observer Design Patterns in der AOP Adapter Decorator Observer Zusammenfassung Seite 2 Allgemein:

Mehr

Einführung in Entwurfsmuster

Einführung in Entwurfsmuster Ursprung der Musterdiskussion Beschreibung von Mustern Nutzen von Mustern von Gamma et al. APCON Workplace Solutions Muster Muster (engl. pattern) Ein Muster ist eine Abstraktion von einer konkreten Form,

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

R O O T S Ferientutorien Softwaretechnologie 2010

R 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

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

Modul Software Komponenten. Entwurfsmuster. Roland Gisler

Modul 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

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

Each pattern describes a problem which occurs over and over again (...), and then describes the core of the solution to that problem, in such a way

Each pattern describes a problem which occurs over and over again (...), and then describes the core of the solution to that problem, in such a way Each pattern describes a problem which occurs over and over again (...), and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over,

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

ENTWURFSPRINZIPIEN DIE SOLID-PRINZIPIEN NACH ROBERT C. MARTIN 1 / 21. Markus Just Wissenschaftliche Vertiefung

ENTWURFSPRINZIPIEN 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

Mehr

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08 Security Patterns Benny Clauss Sicherheit in der Softwareentwicklung WS 07/08 Gliederung Pattern Was ist das? Warum Security Pattern? Security Pattern Aufbau Security Pattern Alternative Beispiel Patternsysteme

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

Software Engineering II

Software 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

Design Patterns. 5. Juni 2013

Design 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

Mehr

Design-Patterns-Katalog

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

Mehr

7. Zusammenfassung (1)

7. Zusammenfassung (1) Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung

Mehr

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

Software Engineering. 7. Entwurfsmuster

Software Engineering. 7. Entwurfsmuster Software Engineering 7. Entwurfsmuster Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung

Mehr

Matthias Geirhos. Entwurfsmuster. Das umfassende Handbuch. Rheinwerk. Computing

Matthias 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

Mehr

Model-View-Controller

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

Mehr

Unchaining Blockchain

Unchaining Blockchain Unchaining Blockchain Universität Bayreuth Prof. Dr. Gilbert Fridgen Kernkompetenzzentrum Finanz- & Informationsmanagement Projektgruppe Wirtschaftsinformatik des Fraunhofer FIT Professur für Wirtschaftsinformatik

Mehr

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

Mehr

Wahlpflichtfach Design Pattern

Wahlpflichtfach 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

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

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

Thomas Schissler MVP Visual Studio ALM, artiso AG

Thomas Schissler MVP Visual Studio ALM, artiso AG Thomas Schissler MVP Visual Studio ALM, artiso AG Kurs-Übersicht Moderne Softwareentwicklung 01 Überblick Was macht moderne Software-Entwicklung aus? 02 Projektmanagement Wie funktioniert modernes Projektmanagement

Mehr

Inhaltsverzeichnis. a. Standorte...3 1. Design Patterns...6. b. Impressum... 16. i. C#.NET...6. ii. Enterprise Integration Patterns...

Inhaltsverzeichnis. a. Standorte...3 1. Design Patterns...6. b. Impressum... 16. i. C#.NET...6. ii. Enterprise Integration Patterns... 2 Inhaltsverzeichnis a. Standorte...3 1. Design Patterns...6 i. C#.NET...6 ii. Enterprise Integration Patterns... 8 iii. Entwurfsmuster-Katalog Standard (GoF)...10 iv. Java...12 v. PHP... 14 b. Impressum...

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

class Mitarbeiter {...} class AussendienstMitarbeiter extends Mitarbeiter {...} class InnendienstMitarbeiter extends Mitarbeiter {...

class 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

Mehr

Seminar Software Design Patterns Sommersemester 09. Paket Servicevariation. Template Method State Strategy

Seminar Software Design Patterns Sommersemester 09. Paket Servicevariation. Template Method State Strategy Seminar Software Design Patterns Sommersemester 09 Paket Servicevariation Template Method State Strategy Vortragender: René Speck 1 Seminar Software Design Patterns Sommersemester 09 Verhaltensmuster Template

Mehr

Specifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams. Lothar Wendehals. Universität Paderborn

Specifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams. Lothar Wendehals. Universität Paderborn Specifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams Lothar Wendehals 6. Workshop Software-Reengineering Bad Honnef, 3. - 5. Mai 2004 Motivation Unterstützung des

Mehr

Paket Kommando. Command Command Processor Visitor

Paket 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

Mehr

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

Mehr

Mustersuche in Quellcode

Mustersuche in Quellcode Mustersuche in Quellcode Komponentenbasierte Softwareentwicklung 13.07.2005 Peter Schübel 1 Gliederung 1. Vorstellung des Projekts InPulse 2. Design Patterns 1. Idee 2. Beispiele 3. Referenzsystem World

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

Design Patterns (dt. Entwurfsmuster)

Design Patterns (dt. Entwurfsmuster) Design Patterns (dt. Entwurfsmuster) Michael Svoboda 25. Mai 2007 Ein fortgeschrittener bzw. erfahrener Softwareentwickler hat oftmals während der Analyse eines Problems bei der Erstellung eines Entwurfs

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

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

Hausarbeit Software Design Patterns

Hausarbeit Software Design Patterns Hausarbeit Software Design Patterns Template Method, State, Strategy René Speck 13. Oktober 2009 Betreuer: Frank Schumacher Axel Ngonga Martin Gebauer Universität Leipzig Fakultät für Mathematik und Informatik

Mehr

PS Software Engineering WS 2018/19

PS Software Engineering WS 2018/19 PS Software Engineering WS 2018/19 Wöchentlich Dienstag 08:00-10:00 Start: 8:15 Termine: PLUSonline Homepage zum PS: Allgemeines www.softwareresearch.net Teaching Programmieren im Großen Die Entwicklung

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

Schnittstellen und. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda

Schnittstellen und. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda Schnittstellen und Abstrakte Klassen 1 Hauptziel der objektorientierten Programmiertechniken ist es, die Flexibilität leichte Anpassbarkeit und Wiederverwendbarkeit von Software zu vereinfachen. 2 Kapselung

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

Handbuch der therapeutischen Seelsorge: Die Seelsorge-Praxis / Gesprächsführung in der Seelsorge (German Edition)

Handbuch der therapeutischen Seelsorge: Die Seelsorge-Praxis / Gesprächsführung in der Seelsorge (German Edition) Handbuch der therapeutischen Seelsorge: Die Seelsorge-Praxis / Gesprächsführung in der Seelsorge (German Edition) Reinhold Ruthe Click here if your download doesn"t start automatically Handbuch der therapeutischen

Mehr

Patterns im Softwareentwicklungsprozeß

Patterns im Softwareentwicklungsprozeß Patterns im Softwareentwicklungsprozeß ADV Arbeitsgemeinschaft für Datenverarbeitung Dr. Michael Hahsler Abteilung für Informationswirtschaft, Wirtschaftsuniversität Wien 20.

Mehr

Softwareentwicklungsprozeß. Patterns im. 20. September ADV Arbeitsgemeinschaft für Datenverarbeitung

Softwareentwicklungsprozeß. Patterns im. 20. September ADV Arbeitsgemeinschaft für Datenverarbeitung Patterns im Softwareentwicklungsprozeß ADV Arbeitsgemeinschaft für Datenverarbeitung Dr. Michael Hahsler Abteilung für Informationswirtschaft, Wirtschaftsuniversität Wien 20.

Mehr

Datenintegrationsmuster MKWI 2004, Essen, 10. März 2004

Datenintegrationsmuster MKWI 2004, Essen, 10. März 2004 Datenintegrationsmuster MKWI 2004, Essen, 10. März 2004 Universität St. Gallen Institut für Wirtschaftsinformatik, Lehrstuhl Prof. Dr. R. Winter Kompetenzzentrum Application Integration Management (CC

Mehr

Grundlagen der Programmierung in C Klassen

Grundlagen der Programmierung in C Klassen Grundlagen der Programmierung in C Klassen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple address pointer reference structured integral

Mehr