Entwurfsmuster Zustand

Ähnliche Dokumente
Teachlet zum Entwurfsmuster Zustand: Sessel-o-matic 1.0.0

Das Zustandsmuster Eine Einführung

Theorie zu Übung 8 Implementierung in Java

Christian Klotz Alois Klotz Mario Steinwender 12. Oktober Vielen Dank, dass Sie sich für die EASY4ME-Apps entschieden haben.

Java Einführung Objektorientierte Grundkonzepte

Multiplikation und Division: Lernstände und Entwicklungen

Kombinatorische Optimierung Vorlesung für den Bereich Diplom/Master Informatik

PREISE UND PREISLISTEN UNTER ORGAMAX BEARBEITEN

Beo4. Bedienungsanleitung


Detailierte Anleitung Medientechnik ZHG 007 Bitte wählen Sie aus folgenden Einsatzszenarien die passende Anwendung aus:

Zustandsdiagrammeditor Pflichtenheft, Version 3.0

Dieter Beh Leitung Gesamttherapie

Das Simplexverfahren

Kurzzusammenstellung der in der Vorlesung behandelten impliziten Gleichungen und deren Ableitungen

UML konzentriert. Eine kompakte Einführung in die Standard-Objektmodellierungssprache. Martin Fowler. ADDISON-WESLEY An imprint of Pearson Education

Die 5 besten Übungen für den unteren Rücken

Accantum V6. Herzlich Willkommen. DIGAS erp mit Accantum Schnittstelle - Effizienzsteigerung im Systemhaus - Markus Wedemeyer. fügt Ideen zusammen!

Übungen rund um die Gewaltfreie Kommunikation

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck

Arbeitspaket für den Unterricht zum Thema Wir Kinder dieser Welt. Inhaltsübersicht. Ab der 7./8. Schulstufe

Anzeigen des Monitor-Bildes auf einen externen Bildschirm M.Kuhlmann

Objektorientierter Software-Entwurf Ergebnisse der funktionalen Zerlegung 3 1. Die Zerlegungsmethoden sollen in zwei Dimensionen betrachtet werden:

Kurzreferenz ILIAS für Dozenten

Gleichgewichtstraining zu Hause

Hilfe bei der Änderung der Einstellungen im Alumni-Portal

Institut für Industriebetriebslehre und Industrielle Produktion (IIP) - Abteilung Arbeitswissenschaft- Prof. Dr.-Ing. P. Knauth

Kreisfeuerwehrverband Regen von 1993 e.v.

Let's talk Gimp Das Käfig-Tool. Digitales Gestalten mit Open Source

lobodms.com loboreb Rechnungseingangsbuch

Erzeugungsmuster. Kapselung der Objekt-Erzeugung

Übersicht. 1) Hier sehen Sie, ob Sie sich gerade eine Bibliothek oder eine Sammel- Mappe ansehen.

Benutzerhandbuch EMAS-LogoGenerator

D. DIFFERENTIALGLEICHUNGEN DGL 15. DER BEGRIFF DER DIFFERENTIALGLEICHUNG (DIFFERENTIAL EQUATION)

Validation nach Naomi Feil

Technische Hinweise für den Seminarraum des KHI:

Hinweise zum erfolgreichen Abschluss eines Web-basierten Training (WBT)

Umstellung für HBCI Chipkarte: Automatische Änderung der Benutzerkennung, mit und ohne Kontonummeränderungen

Einführung in die Objektorientierung (OO)

Übung 2: Motivation: Willentliche Bewegung im Dienste von Interesse und Neugier

Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

SS 2011 IBB4C Datenmanagement Fr 15:15 16:45 R Vorlesung #1

1. Aufrechter Stand Motorik Fersen abwechselnd anheben aber Fußspitzen bleiben immer auf dem Boden

Bildungskongress Arbeiten mit Kompetenzrastern Erbach. Zusammengestellt im April2016 FBU Nicole Dolpp und Anne Strobel

Theorie. Methode. Institutionalismus. Sozialkonstruktivismus

Benutzeranmeldung e-geodata Austria Portal

Poseidon for UML. Einführung. Andreas Blunk

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

Proportionale und antiproportionale Zuordnungen

Praxisteil Woche 25. Übungen und Tipps zur visuellen Strategie. Ort des Visualisierens

Verbale und Nonverbale Kommunikation. Einführung in die Psychologie der Kommunikation in der Hausarztpraxis

7. Objektorientierung. Informatik II für Verkehrsingenieure

Vorlesung Programmieren

Dieter Beh Leitung Gesamttherapie. Übung der Woche (17): Beweglichkeit Sprunggelenk

Modellierung Zusammenfassung WS2000

Kann aus einem Pflichtenheft ein Lastenheft abgeleitet werden?

Anleitung MSK 125 Software Update

Die freie Energie wird also bei konstantem Volumen und konstanter Temperatur minimal

Spieltheorie. Miriam Polzer Miriam Polzer Spieltheorie / 40

Einrichtung eines Gäste wlans auf einer digitalisierungsbox. Basierend auf der Grundeinrichtung durch den Schnellstartassistenten

Kurzanleitung zur Bearbeitung des DFBnet Spielbericht Online FÜR VEREINE

5. Continental-Studentenumfrage 2008 Auswahl wichtiger Ergebnisse

Kapitel 10, VHDL, Teil 2. Prof. Dr.-Ing. Jürgen Teich Lehrstuhl für Hardware-Software-Co-Design. Grundlagen der Technischen Informatik

Semaphor- Workshop. Handbuch für Endnutzer

KeptSecret User Guide

Adobe Acrobat Professional - Portfolio. Leibniz Universität IT Services Anja Aue

Reisekosten effizient abrechnen mit RKA². Überblick

Vorlesung Programmieren

b b b b bb B B B B B B 2. Nummerieren Sie die Linien für ein großes b 3. Nummerieren Sie die Linien für ein kleines b

Schreiben Sie unbedingt auf, was Ihre Unbekannte bedeutet! Seien Sie dabei so präzis wie möglich, geben Sie die Einheiten für die Unbekannte an.

secuentry/anleitung IOS KeyApp

ACTOR². Twin Kamera Recorder. Bedienungsanleitung V2.1. Allgemeiner Hinweis:

Viewpoint. Webmail-Oberfläche. Kontakt: universität bonn Hochschulrechenzentrum Wegelerstr. 6, Bonn Tel.: 0228/

Trainingssequenz Hygieneverhalten hier und anderswo

Döner-Kebab. (280 Wörter) Ministerium für Bildung, Wissenschaft, Jugend und Kultur des Landes Rheinland-Pfalz

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

Übung zur Vorlesung Mensch-Maschine-Interaktion

Drucken und Löschen von angehaltenen Druckaufträgen

Java, OO und UML Fortsetzung

Bewegen und Denken Übung 1

Deklaration einer Klasse Innere innerhalb Klassen einer in Ja anderen v a Klasse

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Modellierung und Implementierung von Datenstrukturen mit Java

Der folgende Text und die Aufgaben stützen sich auf das Buch "Java lernen mit BlueJ" (David J. Barnes und Michael Kölling).

Anleitung - Mass er by Patrick Biegel

Aufbau der Übungsaufgaben zum Lese- und Hörverstehen Leseverstehen Erste Übungsaufgabe Zweite Übungsaufgabe...

Lineare Gleichungssysteme mit zwei Unbekannten

mobilbox (postpaid) der anschluss unter ihrer nummer

Einführung in die deutsche Sprache der Wissenschaften

Data Mining und maschinelles Lernen

Streitfälle des Deutschen Rommé-Verbandes e.v. Streitfall Nr. 1

Häufige Fehler und Probleme bei FuPa-Hallenturnieren

Transkript:

Universität Hamburg 27. April 2010 basierend auf einem Teachlet von: Janina Nemec,

Einführung Das letzte Programmierteam hat das Handtuch geworfen... Enterprise Sessel Solutions braucht euch!

Das Ausgangssystem... in Benutzung der Sessel-o-Matic

Das Ausgangssystem... in Benutzung der Sessel-o-Matic Beobachtungen: Die Lehne kann zwischen zwei Zuständen umgeschaltet werden: aufrecht und zurückgestellt Die Massage hat ebenfalls zwei mögliche Zustände: ein- und ausgeschaltet Diese Zustände sind nicht unabhängig voneinander: Nur, wenn die Lehne zurückgestellt ist, kann die Massage aktiviert werden, und nur, wenn die Massage ausgeschaltet ist, kann die Lehne hochgestellt werden Die Zustände von Lehne und Massage werden über je zwei Buttons manipuliert Die zwei Buttons für die Fußstütze sind noch ohne Funktion

Das Ausgangssystem... in Spezifikation Was das System bisher kann

Der Arbeitsauftrag Die Anforderungen sind gestiegen. Da muss noch mehr gehen Hochstellbare Füße (unabhängig von der Lehne) Massage nur aktivierbar, wenn Lehne zurück und Füße hochgestellt

Der Arbeitsauftrag Die Anforderungen sind gestiegen. Da muss noch mehr gehen Beobachtungen: Wir erinnern uns: Bereits im Ausgangssystem war die Massage nur bei zurückgestellter Lehne aktivierbar Nun sollen Lehne und Fußstütze unabhängig voneinander umgeschaltet werden können Die Massage soll jedoch nur bei zurückgestellter Lehne und hochgestellten Füßen aktivierbar sein Wie würde ein aktualisiertes Zustandsdiagramm aussehen?

Der Arbeitsauftrag Die Anforderungen sind gestiegen. Da muss noch mehr gehen

Der Arbeitsauftrag Zeit, in den Code zu schauen Blick auf die Innereien! Machen wir uns die Finger schmutzig...

Der Arbeitsauftrag Zeit, in den Code zu schauen Blick auf die Innereien! Beobachtungen: Die Fernbedienung kennt ihren Sessel, der Sessel kennt seine Fernbedienung nur als ein Display für Nachrichten Die Fernbedienung ruft beim Drücken eines Buttons einfach eine Methode am Sessel auf Der Sessel speichert seinen eigenen Zustand in zwei Zustandsfeldern Es existiert ein bisher unbenutzter Enumerationstyp für den Zustand der Füße Alle benötigten Strings sind in der Klasse Nachrichten abgelegt

Der Arbeitsauftrag Diskussion: Ansätze Was ist das Problem? if/switch/case-salat wird schnell unübersichtlich Zustände und Zustandsübergänge werden getrennt voneinander definiert Der (Gesamt-)Zustand des Sessels ist nicht vom Sessel entkoppelt

Der Arbeitsauftrag Diskussion: Ansätze Wie lösen wir das? Gibt es eine pragmatische, objektorientierte Lösung?

Das Zustandsmuster Zustand objektorientiert nach GoF Kapselung der Zustände und ihres Verhaltens in eigenen Klassen vermeidet if/switch/case-salat Dank Koppelung von Zustand und Verhalten können neue Zustände leicht hinzugefügt werden

Implementierung Jetzt wird gebaut! Es wird ernst: Die Umsetzung.

Implementierung Jetzt wird gebaut! Beobachtungen: Erstellung neuer Zustände ist im fertigen System eine leichte Übung Der Sessel und sein Zustand wurden entkoppelt: Der Sessel hält nun ein Exemplar eines (möglichen) Zustands Jeder Zustand ist zusammen mit seinem Verhalten und seinen Übergängen gekapselt Der Code ist insgesamt klarer strukturiert An der Fernbedienung oder der Schnittstelle des Sessels waren keinerlei Änderungen notwendig

Geschafft Der Auftrag wurde erfüllt!

Diskussion: Alternativen etc.? Noch mal Gedanken machen Was hätte noch anders gemacht werden können? Gibt es mögliche Varianten der Implementierung?

Ende, danke! Füße hochlegen! Jetzt geht es ja. ;)

Ende, danke! Weiterführende Literatur: Modellierung zustandsorientierter Systeme in Java: Das Zustandsmuster, Varianten und Alternativen, Janina Nemec http://www.julian-fietkau.de/ modellierung zustandsorientierter systeme in java Folien-Download und Feedback-Möglichkeit sowie (nach Aufbereitungszeit) das Video: http://www.julian-fietkau.de/entwurfsmuster zustand 2010