-LABORPRAKTIKUM- SOMMERSEMESTER 2005

Slides:



Advertisements
Ähnliche Präsentationen
Strategie (Strategy / Policy) Ein objektbasiertes Verhaltensmuster Stephan Munkelt, Stefan Salzmann - 03IN.
Advertisements

mit Entwicklungsumgebungen (Eclipse) Software verbessern
Harald Köbler Software Design Patterns Prototype.
Rollenbasierter Entwurf am Beispiel eines benutzeradaptierbaren Hyperbooks Institut für Informatik Rechnergestützte Wissensverarbeitung Universität Hannover.
Designing Software for Ease of Extension and Contraction
Christian A. Kopf Institut für Informatik FU Berlin Episode Recognizer Framework - Rahmenwerk zur Episodenerkennung.
Design Patterns- Entwurfsmuster
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
DOM (Document Object Model)
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (03 – Nichtdeterminierte endliche Automaten) Prof. Dr. Th. Ottmann.
Fliegengewicht Ein objektbasiertes Strukturmuster.
Sebastian Grahn Sebastian Kühn
Das Strukturmuster Kompositum von C. Günther, T. Hammerschmidt und D. Kuhn.
MVC – ein Architekturmuster
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
GROOVE Graphs for Object-Oriented Verification Seminar: SEFSIS Sommersemester 2006 Basil Becker
Explizite und editierbare Metainformationen für Software Muster.
Jürgen-Maria Mustermensch ... sonstiges ...
Prüfkriterien für objektorientierte Systeme
Access 2000 Datenbanken.
Datenbanken Einführung Merkmale dateiorientierte Datenverwaltung
Remote Methode Invocation (RMI)
Folie 1 Christian Pfeffer Carsten Walther Fernstudium Informatik Matrikel LABORPRAKTIKUM- SOMMERSEMESTER 2005 Umsetzung von Pattern Muster: DECORATOR.
Sicherheit von mobilem Code Hauptseminar: Sicherheit in vernetzten Systemen Sicherheit von mobilem Code Oliver Grassow.
Software Design Patterns Creational Patterns Structural Patterns Behavioral Patterns –Behavioral Class Patterns Interpreter Template Method Pattern –Behavioral.
Einführung in Visual C++
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
Entwurfsmuster EDV Entwurfsmuster.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
DVG Klassen und Objekte
Forschungszentrum Informatik, Karlsruhe Objektorientierte Systeme unter der Lupe Markus Bauer Oliver Ciupke.
Handlungsplanung und Allgemeines Spiel „Game Description Language (GDL)“ Peter Kissmann.
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
RFS Roboter Fussball Simulation. Projektdaten Warum gibt es dieses Projekt: Jahr der Informatik Anfrage des Fördervereins Fussballweltmeisterschaft in.
Interpreter Seminar Entwurfsmuster Tobias Webelsiep
Flexible Datenstrukturen
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen.
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Konzepte der objektorientierten Programmierung
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
1.5 Das Entwurfsmuster Kompositum
UML-Kurzüberblick Peter Brusten.
Testtechniken-Praktikum WS 2005/06 1 Testen mit Mock- Objekten Andreas Höfer Dr. Matthias Müller.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Java Programmierung.
SWT-Übung WS 10/ Zusammenfassung.
Software Design Patterns
1 Thema: Regionale Strukturen entwickeln – Planung von regionalen Veranstaltungen Projektbüro Inklusion.
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Tag-Libraries1 seit JSP Version 1.1 Sammlung selbst definierter Tags (Custom Tags) Tagdefinition: Body Tags halten sich an XML-Konvention Präfix bezeichnet.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Extended Pascal ( Erweitreung von Pascal) Name: Mehmet CELIK Matr :
Entwurfsmuster (Design Pattern)
Laborpraktikum Umsetzung von Pattern SS 05 Prof. Paul, Dipl.-Inf. Fröhlich, Dipl.-Inf. Linke {paul | iti.cs.uni-magdeburg.de
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Folie 1 Jan-Peter Schmidt Matthias Teske -Fernstudium Informatik- -Matrikel LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster:
Design Pattern1 Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwen- dung.
Dieser Vortrag wird gesponsort von:
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Im Rahmen der Abschlussprüfung zum Fachinformatiker Fachrichtung Anwendungsentwicklung Neuentwicklung eines Intranets für die Carano Informationssysteme.
Strategy Pattern Teachlet Autor: Sven Wende Replay durch Stephan Schwake Konzepte objektorientierter Programmiersprachen, SS 2006.
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
 Präsentation transkript:

-LABORPRAKTIKUM- SOMMERSEMESTER 2005 „Umsetzung von Pattern“ Muster: State Gruppe: Christian Wolff Marita Schwaß Quelle: Gamma, E., Helm, R., Jonson, R., Vlissides, J., „Entwurfsmuster“, Addison Wesley, Bonn, 1996

State – Muster (Zustand) Laborpraktikum „Umsetzung von Pattern“ State – Muster (Zustand) Schwerpunkte : Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 1/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

1. Zweck Es soll einem Objekt möglich sein, sein Verhalten zu ändern, Laborpraktikum „Umsetzung von Pattern“ 1. Zweck Es soll einem Objekt möglich sein, sein Verhalten zu ändern, wenn sich sein interner Zustand ändert. Das Objekt scheint dann seine Klasse zu ändern. Variante: Der interne Zustand eines Objektes ändert sich. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 2/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 2. Motivation Beispiel Lichtautomat: 1. Zustand = Klasse 1. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 3/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 2. Motivation 2. Verallgemeinerung 1. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 4/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 2. Motivation 3. Aggregation zur Automaten-Klasse 1. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 5/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 2. Motivation 4. Java-Code 1. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 6/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 3. Struktur Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster Kontext: - definiert die den Klienten interessierende Schnittstelle - verwaltet ein Exemplar einer KonkreterZustand- Unterklasse, welche den aktuellen Zustand definiert Zustand: - definiert Schnittstelle zur Kapselung des mit einem be- stimmten Zustand des Kontextobjekts verbundenen Verhalten KonkreterZustand: - jede Unterklasse beinhaltet ein Verhalten, das mit einem Zustand des Kontextobjekts verbunden ist 7/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 4. Interaktion Kontextobjekt delegiert zustandsspezifische Anfragen an das aktuelle KonkreterZustand-Objekt. Ein Kontext kann sich selbst als Argument an das die Anfrage bearbeitende Zustandsobjekt mitgeben. Dadurch ist es dem Zustandsobjekt möglich, ggf. auf das Kontextobjekt zuzugreifen. 3. Das Kontextobjekt bietet die für die Kunden interessante Schnittstelle. Der Kunde kann ein Kontextobjekt mit Zustandsobjekten konfigurieren. Ist ein Kontextobjekt einmal konfiguriert, braucht sich der Kunde nicht mehr direkt mit den Zustandsobjekten befassen. 4. Welche Zustände aufeinander folgen und unter welchen Bedingungen sie dies tun, kann sowohl von der Kontext- als auch den KonkreterZustand-Unterklassen bestimmt werden. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 8/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 5. Konsequenzen Das Zustandsmuster lokalisiert zustandspezifisches Verhalten und teilt das Verhalten in unterschiedliche Zustände auf. Der gesamte zustandsspezifische Code ist in einer Zustands- unterklasse  neue Zustände und Zustandsübergänge können einfach durch Definition einer neuen Unterklasse hinzugefügt werden. - Logik der Zustandsübergänge ist auf die Zustandsunterklassen verteilt  leichter zu überschauen und zu warten Zustandsobjekte können gemeinsam genutzt werden. Wenn Zustandsobjekte über keine Exemplarvariablen verfügen, dann können Kontextobjekte ein Zustandsobjekt gemeinsam nutzen. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 9/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 6. Implementierung Definition der Zustandsübergänge Im Zustandsmuster ist nicht bestimmt, welcher Teilnehmer die Kriterien der Zuständeübergänge definiert. Ändern sich die Kriterien nicht, könnten sie direkt im Kontextobjekt implementiert werden. Flexibler ist es jedoch, wenn die Zustandsklassen ihren Nachfolgezustand und wann der Übergang erfolgen soll, selbst angeben.  Kontextobjekt erhält weitere Schnittstelle, die es den Zustandsobjekten ermöglicht, den aktuellen Zustand des Kontextobjekts explizit zu setzen. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 10/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 6. Implementierung Erzeugen und Löschen von Zustandobjekten Frage: Sollen Zustandsobjekte nur bei Bedarf erzeugt werden und danach gelöscht werden (1) oder im voraus erzeugt und danach niemals gelöscht werden(2). Sollte genutzt werden, wenn die möglichen Eingabezustände zur Laufzeit bekannt sind und sich die Kontextobjekte selten ändern. Sollte genutzt werden, wenn die Zustandsänderungen schnell und häufig sind. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 11/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 6. Implementierung 3.Alternativen zur Realisierung von Zustandsdiagrammen 3.1. Tabellenbasierte Alternative Idee: Jeder Zustand hat eine Tabelle, in der jede mögliche Eingabe auf einen Nachfolgezustand abgebildet wird. Vorteil: regelmäßige Struktur der Tabelle Übergangskriterien können durch die Modifikation von Daten festgelegt werden, statt durch Programmcode. Nachteil: Übergänge sind weniger explizit zu sehen und daher schwerer zu warten Aktionen während eines Zustandsüberganges sind schwierig einzubinden. Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 12/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 6. Implementierung 3.2. Logische Ausdrücke Vorteile: äußerst kompakt, ideal für Hardwarerealisierung Nachteile: Minimierung der Zustandsübergangstabelle nötig, schlecht erweiterbar 3.3. Case-Anweisungen geeignet für procedurale Sprachen, relativ kompakt verschachtelte Case/If-then-Konstrukte, unübersichtlich, schlecht Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 13/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 6. Implementierung 3.4. State - Muster Vorteile: geeignet für objektorientierte Sprachen, gut erweiterbar, übersichtlich, hohe Verfolgbarkeit vom Zustandsdiagramm zum Code Nachteile: viele Klassen (Code) mit hoher Ähnlichkeit Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 14/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000

Fernstudium Informatik Laborpraktikum „Umsetzung von Pattern“ 7.Verwandte Muster Fliegengewichtmuster: erläutert, wann und wie Zustandsobjekte gemeinsam genutzt werden können. Singletons: Zustandsobjekte sind oft Singletons Zweck Motivation Struktur Interaktion Konsequenzen Implementierung Verwandte Muster 15/15 Christian Wolff Marita Schwaß Fernstudium Informatik Matrikel 2000