Objektorientierte Entwurfsmuster

Größe: px
Ab Seite anzeigen:

Download "Objektorientierte Entwurfsmuster"

Transkript

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

2 Qualitätskriterien und oo Entwurfsprinzipien Software-Entwurf: Konstruktion eines Software-Produkts Realisierung der funktionalen Anforderungen mit vorhandenen und neuen Komponenten Erreichen von inneren Qualitätseigenschaften des Produkts. leichte Anpassbarkeit, Erweiterbarkeit Verstehbarkeit, Wiederverwendbarkeit,... Strukturiertheit viele unterschiedliche Entwurfsprobleme müssen gelöst werden arbeitsteilige kooperative Entwicklungsprozesse (Kommunikation!) mit objektorientierten Ansätzen ist das leicht (wird uns gesagt :-)... aber wie geht das systematisch? , Software-Systemtechnik, BTU Cottbus 2

3 Qualitätskriterien und oo Entwurfsprinzipien /2 objektorientierte Modellierungs-/Programmiersprachen bieten Konzepte/Mechanismen zur Konstruktion von großen Programmen Bündelung Kapselung Abstraktion Komposition Vererbung... bekannte Entwurfsprinzipien zur Verwendung der Konzepte Einsatz von Vererbung (Klassen- vs. Schnittstellenvererbung) Schaffen und Nutzen von abstrakten Schnittstellen Vererbung vs. Komposition vs. parametrische Typen Delegation Kopplung, Kohäsion , Software-Systemtechnik, BTU Cottbus 3

4 Das Rad wird immer wieder neu erfunden... Was ist gutes Design? bewährte Lösungen Experten-/Erfahrungswissen Wie findet man bewährte Entwurfsstrukturen?... wie beschreibt man sie?... wie erlernt man sie? Architekt Christopher Alexander (Oregon Group): The Timeless Way of Building (A Quality Without Name) A Language of Patterns (1977) , Software-Systemtechnik, BTU Cottbus 4

5 Bauarchitektur: Beispiel für eine klassische gute Lösung Arkaden , Software-Systemtechnik, BTU Cottbus 5

6 Entwurfsmuster systematische Erfassung bewährter Lösungen für spezifische, wiederkehrende Entwurfsprobleme Benennung und Beschreibung von Problemlösungen Problem (als Feld von widerstreitenden Kräften) typische gute Lösung Auswirkungen, Effekte dieser Lösung Entwurfssprache verbesserte Kommunikation über Entwürfe Vermittlung und Wiederverwendung von Entwurfswissen , Software-Systemtechnik, BTU Cottbus 6

7 Schema zur Beschreibung von Mustern 1. Mustername (Kategorie) 2. Zweck (was macht das Muster?, Grundprinzip, Entwurfsprobleme) 3. Synonyme 4. Motivation 5. Anwendbarkeit 6. Lösung (Struktur, Teilnehmer, Interaktion) 7. Diskussion / Konsequenzen 8. Implementierung (Impl. Ideen, Beispiel, sprachspez. Hinweise) 9. bekannte Verwendungen 10.verwandte Muster , Software-Systemtechnik, BTU Cottbus 7

8 Beispiel für ein Muster: Zustand 1. Name Zustand, state (objektbasiertes Verhaltensmuster) 2. Zweck Modellierung von zustandsabhängigen Operationen Nutzung von Abstraktion für Zustand, polymorphe Methoden 3. Synonyme 4. Motivation Verhalten eines Systems (Methodenaufrufe) zustandsabhängig. klassische Lösung: Zustandsvariable (Aufzählungstyp) operation() { switch Zustand case A:... break case B:... break } , Software-Systemtechnik, BTU Cottbus 8

9 Beispiel für ein Muster: Zustand /2 Lösung durch Zustandsobjekte , Software-Systemtechnik, BTU Cottbus 9

10 Beispiel für ein Muster: Zustand /3 5. Anwendbarkeit Wirkung einer Methode hängt von Zustand des Objekts ab. Verhalten muss zur Laufzeit in Abhängigkeit vom Zustand geändert werden Methoden einer Klasse haben große mehrteilige Bedingungsanweisungen, die vom Objektzustand (Zustandsattribut) abhängen. 6. Lösung Struktur , Software-Systemtechnik, BTU Cottbus 10

11 Beispiel für ein Muster: Zustand /4 Teilnehmer: Kontext definiert die für die Klienten relevante Schnittstelle, verwaltet Exemplar einer konkreten Zustandsklasse Zustand definiert die Schnittstelle zur Kapselung des mit einem bestimmten Zustand des Kontextobjekts verbundenen Verhaltens konkreter Zustand (jede Unterklasse von Zustand) implementiert das Verhalten des Kontextobjekts in einem spezifischen Zustand. Interaktion: Kontextobjekt delegiert die zustandsspezifischen Operationen an das aktuelle konkrete Zustandsobjekt Übergabe der Kontextinformation (ggf. das vollständige Kontextobjekt an das zustandsobjekt übergeben) nach Ausführung der zustandsspez. Operation muß Zustandsobjekt des Kontextobjekts aktualisiert werden , Software-Systemtechnik, BTU Cottbus 11

12 Beispiel für ein Muster: Zustand /5 7. Diskussion + Lokalisierung von zustandsspezifischem Verhalten + Zustandsstruktur wird explizit modelliert - viele Klassen - Erzeugung von vielen Objekten, polymorphe Aufrufe 8. Implementierung offen, wie Zustandsübergang realisiert erzeugen, zerstören von Zustandsobjekten 9. bekannte Verwendung drag/drop bei interaktiven Programmen 10.verwandte Muster Fliegengewicht, Einzelexemplar, , Software-Systemtechnik, BTU Cottbus 12

13 Beispiel für ein Muster: Abstrakte Fabrik Problem: Erzeugung von Familien verwandter oder von einander abhängiger Objekte (Mitglieder einer Produktfamilie), ohne ihre konkreten Klassen an jeder Erzeugungsstelle zu benennen. Konfiguration eines Systems mit unterschiedlichen Produktfamilien Lösung: Abstraktionen für die unterschiedlichen Produkttypen schaffen Erzeugungsoperationen in speziellen Erzeugungsklassen für jede Produktfamilie bündeln. abstrakte Erzeugungsklasse (Fabrik) für alle Produkttypen definieren , Software-Systemtechnik, BTU Cottbus 13

14 Beispiel für ein Muster: Abstrakte Fabrik / , Software-Systemtechnik, BTU Cottbus 14

15 Musterkataloge und Mustersprachen Detaillierungsebenen Konzeptuelle Muster anwendungsspezifisch (domain specific patterns) Metaphern Architekturmuster fundamentale Systemstrukturen oo Entwurfsmuster Standardkonstruktionen für Klassen, Komponenten,.. Programmiermuster (Idiome) Standardkonstruktionen auf Programmiersprachenebene Umfangreiche Sammlungen / Kataloge von Mustern Klassifikationen, Systematisierung von Mustern , Software-Systemtechnik, BTU Cottbus 15

16 Beispiel: Musterkatalog GOF-Buch 23 Muster in 3 Kategorien: Erzeugungsmuster (5) Strukturierungsmuster (7) Verhaltensmuster (11) , Software-Systemtechnik, BTU Cottbus 16

17 Zusammenhänge zwischen Entwurfsmustern (Ausschnitt) , Software-Systemtechnik, BTU Cottbus 17

18 Anwendung von Entwurfsmustern Ziele: Vereinfachung von Architekturen durch den Einsatz von Standard- Konstruktionen Disziplin Erreichen von Qualitätszielen mögliche Anpassungen, Erweiterungen in Architekturen a priori abschätzen, vorsorglich für Variabilität sorgen Prozess: schrittweise Reorganisation einer existierenden Architektur durch Analyse und den Einsatz von Mustern zur Transformation Hotspot-Analyse, Refactoring , Software-Systemtechnik, BTU Cottbus 18

19 Effekte der Entwurfsmuster GOF-Buch hat eine starke Design Pattern -Bewegung ausgelöst Beschreibung von Architekturen im Muster-Stil gemeinsame Definition und Diskussion von Mustern Mustersammlungen Entwurfsmuster sind heute Standard-Lehrstoff in der Softwaretechnik-Ausbildung Standard-Repertoire an Begrifflichkeiten für komplexe Entwurfsstrukturen Entwicklung von Design-/Architektursprachen zunehmend Bibliotheken, die mit Standardmustern konstruiert sind, und Werkzeugunterstützung für die Anwendung von Mustern , Software-Systemtechnik, BTU Cottbus 19

20 Resümee die Pattern-Bewegung hat dem Thema Software-Architektur wesentliche Impulse und Dynamik gegeben. Entwurfsmuster stellen ein brauchbares Hilfsmittel zur Definition komplexer Teilstrukturen in Architekturen dar. Denken in größeren, komplexen Einheiten Disziplin im Umgang mit objektorientierten Basiskonzepten gutes Kommunikationsmittel für Entwickler Entwurfsmuster sind ein guter Startpunkt für die Entwicklung von abstrakteren Entwurfssprachen mit standardisierten Umsetzungen in Code. Muster sind keine einfache Universal-Lösung für alle Entwurfsprobleme , Software-Systemtechnik, BTU Cottbus 20

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

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

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

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

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

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

Entwurfsmuster. Marc Monecke

Entwurfsmuster. Marc Monecke Entwurfsmuster Marc Monecke [email protected] Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 20. Mai 2003 Inhaltsverzeichnis 1 Grundlagen

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

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

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

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

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

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

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

Daniel Warneke [email protected] 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 [email protected] 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des

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

Kleine Refactoring-Muster

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

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

Objektorientierte Systementwicklung

Objektorientierte Systementwicklung Karl-Heinz Rau Objektorientierte Systementwicklung Vom Geschäftsprozess zum Java-Programm Mit 162 Abbildungen vieweg Überblick und Vorbemerkungen 1 1 Objektorientierte Software-Entwicklung 5 1.1 Überblick

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

10 Abstrakte Datentypen

10 Abstrakte Datentypen 10 Abstrakte Datentypen abstrakte Datentypen generische Implementierung datengesteuerte Programmierung Operationstabelle 10.1 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen

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

Unified Modelling Language

Unified Modelling Language Unified Modelling Language SEP 72 Software-Entwicklung Software-Entwicklung ist Prozess von Anforderung über Modellierungen zu fertigen Programmen Anforderungen oft informell gegeben fertige Programme

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

2 Softwarearchitektur in der Organisationsstruktur 25

2 Softwarearchitektur in der Organisationsstruktur 25 xiii Teil I Grundlagen und Organisation 1 1 Grundlagen 3 1.1 Warum Softwarearchitektur?.............................. 4 1.2 Was ist Softwarearchitektur?.............................. 6 1.2.1 Definition

Mehr

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Dominik Kirsten Daniel Schäferbarthold Trier, 21.01.2008 1 Gliederung 1. Einführung 1.1 Anforderungen an

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

13 Abstrakte Datentypen

13 Abstrakte Datentypen 13 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen auf den Elementen (Konstruktoren, Selektoren, Typprädikate) Eigenschaften abgeleitet Jetzt: Abstrakte Datentypen (ADT)

Mehr

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs... Auf einen Blick Auf einen Blick 1 Einleitung... 15 2 Die Basis der Objektorientierung... 29 3 Die Prinzipien des objektorientierten Entwurfs... 41 4 Die Struktur objektorientierter Software... 67 5 Vererbung

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

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit

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

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

Entwurfsmuster - Iterator

Entwurfsmuster - Iterator HTWG Konstanz 7. Mai 2009 Muster Klassifikation objektbasiertes Verhaltensmuster des Patterns Ermögliche den sequentiellen Zugriff auf die Elemente eines zusammengestzten Objekts, ohne seine zugrundeligende

Mehr

Konzepte der Programmiersprachen

Konzepte der Programmiersprachen Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Analyse und Entwurf von Softwaresystemen mit der UML

Analyse und Entwurf von Softwaresystemen mit der UML Analyse und Entwurf von Softwaresystemen mit der UML Bearbeitet von Horst A. Neumann 2. Auflage 2002. Buch. XVI, 480 S. Hardcover ISBN 978 3 446 22038 6 Format (B x L): 17,7 x 24,5 cm Gewicht: 1049 g Zu

Mehr

Praxisbuch Objektorientierung

Praxisbuch Objektorientierung Bernhard Lahres, Gregor Rayman Praxisbuch Objektorientierung Von den Grundlagen zur Umsetzung Galileo Press 1.1 Was ist Objektorientierung? 11 1.2 Hallo liebe Zielgruppe 12 1.3 Was bietet dieses Buch (und

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

Objekt-Komposition versus Vererbung: Decorator-Design-Pattern

Objekt-Komposition versus Vererbung: Decorator-Design-Pattern Objekt-Komposition versus Vererbung: Decorator-Design-Pattern O.Univ.-Prof. Dipl.-Ing. Dr. Wolfgang Pree Fachbereich Informatik cs.uni-salzburg.at Motivation: Änderungen einer Klasse mit vielen Unterklassen

Mehr

Programmierparadigmen A01 OOP. Programmierparadigmen

Programmierparadigmen A01 OOP. Programmierparadigmen 2013-10-09 Programmierparadigmen 1 185.A01 OOP Programmierparadigmen 2013-10-09 Programmierparadigmen 2 OOP Klassische Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische

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

Einleitung. Wozu benötigen wir Entwurfsmuster? Warum ein weiteres Buch über Entwurfsmuster? Warum ein weiteres Buch über Entwurfsmuster?

Einleitung. Wozu benötigen wir Entwurfsmuster? Warum ein weiteres Buch über Entwurfsmuster? Warum ein weiteres Buch über Entwurfsmuster? Warum ein weiteres Buch über Entwurfsmuster? Einleitung This book is meant to be played, rather than to be read in an armchair. Jerry Coker et. al: Patterns for Jazz, Studio P/R, 1970 Wozu benötigen wir

Mehr

Entwurfsmuster (Design Pattern) ETIS SS05

Entwurfsmuster (Design Pattern) ETIS SS05 Entwurfsmuster (Design Pattern) ETIS SS05 Gliederung Motivation Pattern allgemein Proxy-Pattern Zusammenfassung 2 Motivation I Wie gut sind eure Programme strukturiert? Wartbarkeit? - Verständlichkeit

Mehr

Entwurfsmustern in der industriellen Praxis. Erfahrungen mit. Bayave Software GmbH. Dirk Riehle

Entwurfsmustern in der industriellen Praxis. Erfahrungen mit. Bayave Software GmbH. Dirk Riehle Erfahrungen mit Entwurfsmustern in der industriellen Praxis Dirk Riehle Bayave Software GmbH Entwurfsmuster Definition: Abstraktion von wiederkehrenden Problemlösungen in bestimmtem Kontexten Rechte vorbehalten.

Mehr

Programmierparadigmen

Programmierparadigmen Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische Einteilung: Programmiersprache imperativ deklarativ prozedural objektorientiert funktional logisch Zusammenhänge tatsächlich

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

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken 1 Java ist... gut erlernbar wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax objektorientiert Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken robust keine Adressen,

Mehr

Refactoring. Uschi Beck

Refactoring. Uschi Beck Refactoring Uschi Beck [email protected] Gliederung Was ist Refactoring Definition, Einordnung in das Seminar Motivation Testen Code-Smells Katalog von Refactorings Aufbau, Beispiele Design Patterns als

Mehr

Basisinformationstechnologie I

Basisinformationstechnologie I Basisinformationstechnologie I Wintersemester 2014/15 07. Januar 2015 Programmiersprachen II Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // [email protected]

Mehr

Software Engineering

Software Engineering Software Engineering Gustav Pomberger, Wolfgang Pree Architektur-Design und Prozessorientierung ISBN 3-446-22429-7 Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22429-7 sowie

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

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

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum

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

Software-Refactoring. 29. Mai 2013

Software-Refactoring. 29. Mai 2013 Software-Refactoring 29. Mai 2013 Überblick Was ist Refactoring und wozu dient es? Welche Refactorings gibt es? Refactoring-Katalog: www.refactoring.com Wann, wo und wie führt man Refactorings durch? Wie

Mehr

Wahlpflichtfach Design Pattern

Wahlpflichtfach Design Pattern Wahlpflichtfach Design Pattern Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik [email protected] http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338

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

Wahlpflichtfach Design Pattern

Wahlpflichtfach Design Pattern Wahlpflichtfach Design Pattern Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik [email protected] http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338

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

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

Software-Engineering im Sommersemester 2014

Software-Engineering im Sommersemester 2014 Methodische Grundlagen des Software-Engineering SS 2014 Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl

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

Einführung in die objektorientierte Programmierung

Einführung in die objektorientierte Programmierung Einführung in die objektorientierte Programmierung Seminarunterlage Version: 4.04 Copyright Version 4.04 vom 17. Juni 2016 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten.

Mehr

Das UML Benutzerhandbuch

Das UML Benutzerhandbuch Grady Booch James Rumbaugh Ivar Jacobson Das UML Benutzerhandbuch Aktuell zur Version 2.0 Inhalt Vorwort 15 Ziele 15 Publikum 16 Wie Sie dieses Buch verwenden sollten 16 Aufbau und besondere Merkmale 17

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

Mehr

Programmierpraktikum WS 16/17 Entwicklungsprozess

Programmierpraktikum WS 16/17 Entwicklungsprozess Programmierpraktikum WS 16/17 Entwicklungsprozess AR Dr.-Ing. Andreas Hoffmann Universität Siegen Lehrstuhl Betriebssysteme / verteilte Systeme ProPra WS 16/17 1 Softwareentwicklung Software ist ---komplex,

Mehr

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl 26.07.21 Themenübersicht Objektorientierte Software-Entwicklung Objektorientierte Analyse und Design OOA OOD Objektorientierte

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

Einführung: Verteilte Systeme - Remote Method Invocation - Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Bernhard Lahres, Gregor Rayman Objektorientierte Programmierung Das umfassende Handbuch Galileo Press 1.1 Was ist Objektorientierung? 13 1.2 Hallo liebe Zielgruppe 14 1.3 Was bietet dieses Buch (und was

Mehr

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 1 185.A01 OOP Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 2 OOP Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen

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

Objektorientierte Programmierung II

Objektorientierte Programmierung II Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem

Mehr

Vom Modulkonzept zur Software-Stadt

Vom Modulkonzept zur Software-Stadt Vom Modulkonzept zur Software-Stadt Claus Lewerentz Brandenburgische Technische Universität Cottbus Lehrstuhl Software-Systemtechnik 1 Programmieren im Großen: Systeme und Module 2 Software-Architektur

Mehr

Objektorientierte Analyse (OOA) OOA-Pattern

Objektorientierte Analyse (OOA) OOA-Pattern OOA-Muster (Architektur Pattern) Ein Pattern (Entwurfsmuster) ist ein Problem mit seiner Lösung in einem Kontext. Der Kontext enthält in der Regel Zielkonflikte, die der Designer lösen muss, z.b. Performance

Mehr

Inhalt. TEIL I Grundlagen. Einleitung 15

Inhalt. TEIL I Grundlagen. Einleitung 15 Einleitung 15 TEIL I Grundlagen 1.1 Notwendigkeit einer verbesserten Abstraktion 23 1.2 Klassen und Objekte 25 1.3 Festlegung von Grenzen 27 1.4 Wiederverwendung 30 1.4.1 Komposition 30 1.4.2 Vererbung

Mehr

Observer Chain of Responsibility Mediator

Observer Chain of Responsibility Mediator Observer Chain of Responsibility Mediator Seminar Software Design Pattern - Sommersemester 2009 Vertragender: Christian Kube Betreuer: Frank Schumacher SDP - SS09 - Kommunikation - Christian Kube 1 Paket

Mehr

Übungen Softwaretechnik I

Übungen Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der

Mehr

3-Tier-Architecture und J2EE

3-Tier-Architecture und J2EE 3-Tier-Architecture und J2EE Oliver Müller Seminar Software-Entwurf WS 2004/05 3-Tier, was war das noch gleich? NEIN, das nicht!!! 2 Die Lage - Applikationen laufen

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