Seminar. Werkzeuggestützte Modellierung des Tamagotchi. Modellierung mittels SCR. Ausgearbeitet von: Kizito Ssamula Mukasa und Ralf Hettesheimer



Ähnliche Dokumente
Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

SEP 114. Design by Contract

Künstliches binäres Neuron

Fragebogen ISONORM 9241/110-S

Content Management System mit INTREXX 2002.

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

Constraint-Algorithmen in Kürze - Mit der Lösung zur Path-Consistency-Aufgabe 9

IINFO Storyboard

Modellierung biologischer. Christian Maidorfer Thomas Zwifl (Seminar aus Informatik)

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Barrierefreie Webseiten erstellen mit TYPO3

Die integrierte Zeiterfassung. Das innovative Softwarekonzept

Switching. Übung 7 Spanning Tree. 7.1 Szenario

Adminer: Installationsanleitung

Tipps & Tricks Neuerungen Nr. 5/ Externe Web-Shops im UniKat für Laborverbrauchsmaterial & Chemikalien

Anforderungen an die HIS

Geschäftsprozesse modellieren mit BPMN. Nürnberg,

11. Aufgabenblatt

impact ordering Info Produktkonfigurator

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Some Software Engineering Principles

Kompilieren und Linken

Leseauszug DGQ-Band 14-26

Dokumentenverwaltung im Internet

Übungen Programmieren 1 Felix Rohrer. Übungen

Word 2010 Schnellbausteine

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Online Newsletter III

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Virtual Private Network

Impulse Inklusion 2014 Beteiligungskulturen - Netzwerke - Kooperationen (Leichte Sprache Version)

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Der monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik).

Dieses erste Kreisdiagramm, bezieht sich auf das gesamte Testergebnis der kompletten 182 getesteten Personen. Ergebnis

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Zur Konfiguration werden hierbei das Setup-Tool und die Shell verwendet.

Emergency Room für Projektleiter

egovernment für das Open Source CMS Contao

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Hilfedatei der Oden$-Börse Stand Juni 2014

Dienstleistungen Externer Datenschutz. Beschreibung der Leistungen, die von strauss esolutions erbracht werden

Fragebogen: Abschlussbefragung

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Semantik von Formeln und Sequenzen

e-books aus der EBL-Datenbank

Fotos in Tobii Communicator verwenden

Allgemeiner Leitfaden zum Einfügen suchmaschinenoptimierter Texte

SAS 9.2 Installationsanleitung

Auftrag zum Fondswechsel

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Keine Disketteneinreichung ab 1. Februar 2014

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Wir machen neue Politik für Baden-Württemberg

Online-Bestellung Tageskarten für Mitglieder des FC St. Pauli, die nicht im Besitz einer Dauer- oder Saisonkarte sind.

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Einführung in. Logische Schaltungen

Erfahrungen mit Hartz IV- Empfängern

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Anleitung Grundsetup C3 Mail & SMS Gateway V

Registrierung Ihres Fachbesucher Tickets

Guide DynDNS und Portforwarding

Data Mining: Einige Grundlagen aus der Stochastik

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel

1 Konto für HBCI/FinTS mit Chipkarte einrichten

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

SMART Newsletter Education Solutions April 2015

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

SharePoint Demonstration

Beschreibung der Umstellungsschritte für moneyplex (neue Benutzerkennung und Kommunikationsadresse)

Sehr geehrte Faktor-IPS Anwender,

Whitebox-Tests: Allgemeines

Software-Engineering SS03. Zustandsautomat

Ihr Weg in die Suchmaschinen

ALEMÃO. Text 1. Lernen, lernen, lernen

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Die Excel Schnittstelle - Pro Pack

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers


Anleitung für den Elektronischen Lesesaal der Martin-Opitz Bibliothek

Anleitung zur Online-Schulung

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Task: Nmap Skripte ausführen

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Professionelle Seminare im Bereich MS-Office

Terminabgleich mit Mobiltelefonen

IT-Governance und Social, Mobile und Cloud Computing: Ein Management Framework... Bachelorarbeit

Internet Explorer Version 6

QISPOS. Benutzerhandbuch Prüfungsanmeldung. für. Die Rolle: Student

ID VisitControl. Dokumentation Equitania Software GmbH cmc Gruppe Seite 1

Urlaubsregel in David

Änderung des Portals zur MesseCard-Abrechnung

Grundlagen Software Engineering

Objektorientierte Programmierung

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Outlook 2000 Thema - Archivierung

Transkript:

Seminar Werkzeuggestützte Modellierung des Tamagotchi Modellierung mittels SCR Ausgearbeitet von: Kizito Ssamula Mukasa und Ralf Hettesheimer

Einleitung Charakterisierung der Technik Entwickelt 1978 am Naval Research Laboratory der US Navy Formale Beschreibungstechnik für System- und Softwarespezifikation Beschreibung von Verhaltensanforderungen basiert auf endlichem Automatenmodell Verhalten wird in Beziehung zur Systemumwelt als Black-Box beschrieben Tabellarische Repräsentation der Anforderungen Basiert auf dem Vier-Variablen-Modell von Parnas Senkung der Software-Entwicklungskosten durch einfache Modellierung Gedacht für reaktive eingebettete Echzeitsysteme 2(20)

Einleitung Environment m(t) Input Devices i(t) NAT + REQ Software o(t) Output Devices IN SOFT OUT c(t) Environment Das Vier-Variablen-Modell von Parnas Aktuelle Version Tool ist Forschungsprototyp Einige Teilfunktionen noch nicht implementiert 3(20)

Einleitung Abstraktion der Umwelt Vereinfachtes Vier-Variablen-Modell Notation bietet drei Arten von Variablen: - Monitored - Controlled - Term Terme sind global (keine Kapselung) Interne Modellierung Mode-Klassen (Modes) Terme 4(20)

Einleitung Bedingungen (z.b. Knopf=gedrückt AND Druck < 50) Ereignisse (z.b. @T(Knopf=gedrückt) ) Tabellen Methodik - Ereignistabellen - Mode Transitionstabellen - Bedingungstabellen Methodik nur sehr grob vorgegeben (Identifizierung von Monitored- und Controlled- Variablen) Abbildung der informellen Anforderungen in Modell nicht definiert 5(20)

Einleitung Features des Tools Tools bietet umfangreichen Konsistenz-Checker. Beispielsweise Prüfung auf Eindeutigkeit der Zustandsübergänge und Variablenzuweisungen Dependency Graph Browser: - Darstellung der Abhängigkeiten sämtlicher Variablen und Modeclassas - Darstellung von Zyklen in der Spezifikation - Vereinfachte Navigation durch die Spezifikation Simulator - Simulation durch direkte Manipulation der Monitored-Variablen - Darstellung aller vorhandenen Variablen und States der einzelnen Modeclasses - ModelChecker anschließbar (SPIN) 6(20)

Modellierung im Team Aufteilung Aufteilung in Backend (Entwicklung des Tamagotchi, Zeitgesteuertes Verhalten etc.) und Frontend (Interaktion, Hauptmenü etc.) Aufteilung erschien sinnvoll, da die beiden Teile nur an wenigen Stellen zusammenhängen (wenig Schnittstellen zu besprechen) Unterstützung durch das Tool ist nicht besonders gut. - Durch Term-Variablen zusammenhängende Modeclasses lassen sich nur schwierig getrennt entwickeln - Da alle Terme global sind, können beim zusammenfügen leicht mehrfache Deklarationen entstehen - Kein Import von Teil-Spezifikationen möglich (Neueingabe) Simulation der beiden Teile war schon während des Entwurfs möglich 7(20)

Modellierung im Team Umfang Die erstellte Spezifikation umfasst fast die gesamte Liste der informellen Anforderungen Teilweise Tricks nötig, da das Tool keine Timer oder Zufallsgeneratoren enthält Die Spezifikation umfaßt 71 Tabellen. 8(20)

Modellierung des Spiels Spielablauf BA-F-23-25 Tamagotchi schaut abwechselnd nach rechts und links. Benutzer wählt rechts oder links. Tamagotchi wählt zufällig rechts oder links. stimmen die beiden Richtungen überein, ist die Runde gewonnen. Ein Spiel besteht aus fünf Runden. Sind mehr als zwei Runden gewonnen, steigt die Glücklichkeit um eine Einheit. Pro Spiel nimmt Tamagotchi 1 oz ab. Ein Spiel wird mit der R-Taste abgebrochen, oder wenn Tamagotchi ins Bett muß. Sonst erfolgt nach jedem Spiel ein weiteres. 9(20)

Das Modell Das ganze ist Event-gesteuert. Modellierung des Spiels Ein Event ist entweder @T(Ausdruck), @F(Ausdruck), @C(Ausdruck) oder @A Es gibt zwei Spielzustände: Zustand saplaying ist für das tatsächliche Spielen. Zustand sareset ist für das rücksetzen der Variablen. Ein Wechsel von einem Zustand zum anderen erfolgt, wenn ein entsprechendes Event eintritt. Die entsprechenden Events werden in einer Zustandsübergangstabelle festgelegt. (s. Tabelle Nr. 35) 10(20)

Modellierung des Spiels Für die Ausdrücke braucht man Variablen. Diese können Monitored (M), Controlled (C) oder Term (T). Variablen werden in einer Tabelle deklariert. Table 1: Table 2: Monitored Variable Dictionary(Abschnitt 1 von 2) Name Type Initial Value Accuracy Comment m_cardboardswitch switch Yes Pappstreifen (Yes=drinnen, No=draussen) m_critical Boolean FALSE m_development state dev_initial m_exit switch No m_flying Boolean FALSE m_happy Integer 4 m_hunger Integer 4 11(20)

Table 1: Table 2: Monitored Variable Dictionary(Abschnitt 2 von 2) Name Type Initial Value Accuracy Comment m_lbutton button notpressed linker Button m_lifeexpect Integer 30 m_mametchi Boolean TRUE controlled/monitored-verfahren m_mbutton button notpressed m_randexpect Float 1.0 Zufallswert fuer Lebenserwartung (in Prozent) m_rbutton button notpressed m_rhappytimer Integer 0 Externer Timer m_rhungertimer Integer 0 Externer Timer m_sleep Integer 1500 m_tamdirection direction middle m_timeregghatch Integer 0 Externer Timer zum Eiausbrueten m_wakeup Integer 1500 time Integer 0 Globale Zeit 12(20)

Modellierung des Spiels Den Wert einer M-Variablen muß der Benutzer selbst setzen. C- und T- werden intern gesetzt. Allerdings müssen die Regeln vorher beschrieben werden. Für jede C- oder T- Variable gibt es genau eine Event- oder Conditiontabelle, die die Regel für den Wert der entsprechenden Variablen festlegt, und zwar in allen möglichen Zuständen einer Modeclass. Table 3: Condition Table for c_starttimeregghatch Name Mode Class c_starttimeregghatch Modes Conditions development dev_egg TRUE FALSE dev_initial, dev_babytchi, dev_marutchi, dev_tamatchi, dev_kuchitamatchi, dev_mametchi, dev_kuchipatchi, dev_masktchi FALSE TRUE c_starttimeregghatch = TRUE FALSE 13(20)

Modellierung des Spiels Table 4: Event Table for c_scores Name Mode Class c_scores selectedaction Modes saplaying @T(m_tamdirection = left) WHEN (m_lbutton = pressed) Events @T(m_tamdirection = right) WHEN (m_mbutton = pressed) NEVER sareset NEVER NEVER @T(m_mbutton = pressed OR m_lbutton = pressed OR m_rbutton = pressed) sasleep,sanoaction,sagames,safood,sasnacks,safoodandsnacks, sainformations,sahunger,sahappyness,saweightandage,sa Time NEVER NEVER @A c_scores' = c_scores + 1 c_scores + 1 0 14(20)

Erfahrungen Einarbeitung Aufwand: ca. 40 Stunden - Lesen des Tool Guides / Kennenlernen des Tools - Modellierung des Safety Injection Device Erlernbarkeit - Die Strukturen sind nicht besonders umfangreich -> Leichte Erlernbarkeit - Teile der Notation sind im Tool-Guide nicht beschrieben (Duration-Funktionalität zur Zeitüberwachung, @A-Event) Modellierung des Tamagotchi Aufwand: ca. 100 Stunden 15(20)

Erfahrungen Das Zyklus-Problem t_mametchi development mametchi Lösung durch Auftrennung m_mametchi t_minweight Benutzer c_mametchi development mametchi t_minweight 16(20)

Erfahrungen Wir haben unabhängig voneinander in unseren ersten Modellen (auf Papier) solche Zyklen eingebaut Zwei Herangehensweisen - Von vornherein sämtliche koppelnden Variablen auftrennen (Nachteil: sehr aufwendige Spezifikation) - Modell mit Zyklen eingeben und anschließend auftrennen Exklusiver Zugriff auf Term-Variablen - Term-Variablen nur von einer Modeclass beeinflußbar - Unser Problem: Frontend und Backend müssen beide Gewicht, Sättigung und Glücklichkeit beeinflußen. - Lösung: Offsets, die von einer dritten Modeclass zu den endgültigen Werten verarbeitet werden 17(20)

Erfahrungen Review / Simulation Im Vergleich zur reviewten Spezifikation (UML / Rhapsody) unübersichtlich Simulation kompliziert, Benutzer muß sich um viele Dinge kümmern (Zyklus-Problem mit Auftrennung) Grafische Darstellung der Zusammenhänge in Rhapsody wesentlich besser In unserer Spezifikation nur mit Tricks lösbare Probleme in Rhapsody einfacher umsetzbar (Timer, Zufallsgenerator) 18(20)

Abschließende Bewertung Aufteilung der Spezifikation gut möglich Schwierigkeiten beim Zusammenfügen der beiden Teile Das Tool ist zur Modellierung kleinerer Systeme (Safety Injection Device) gut geeignet Modellierung größerer Systeme (Tamagotchi) wird aufgrund der vorher beschriebenen Schwächen unnötig kompliziert und unübersichtlich Das Tool sollte im Hinblick auf Import und Simulation von Teilspezifikationen erweitert werden Austausch von Teilkomponenten schwierig Der Tool-Guide verdient eine Überarbeitung mit Aufnahme der bereits implementierten Notation Modellierung des Tamagotchi war sinnvoll, zum besseren Verständnis der Abhängigkeiten des Systems. 19(20)

Abschließende Bewertung Erstellte Spezifikation nicht besonders geeignet für Umsetzung in lauffähiges Produkt Eine erneute Modellierung mittels SCR würde schneller ein besseres Ergebnis bringen (Erfahrung aus der erstellten Spezifikation) Für kleine Systeme oder bei keiner Verfügbarkeit eines anderen Tools würden wir das Tool erneut verwenden Für größere Systeme wäre ein Tool mit einer größeren Nähe zu einer späteren Implementierung vorzuziehen 20(20)

Anhang Table 1: Mode Transition Table for selectedaction (Sheet 1 of 2) Source Mode Events Destination Mode sanoaction @T(m_lbutton = pressed) safoodandsnacks sanoaction @T(t_awake = FALSE) sasleep safoodandsnacks @T(m_mbutton = pressed) safood safoodandsnacks @T(t_awake = FALSE) sasleep safoodandsnacks safood @T(m_rbutton = pressed OR m_exit = Yes) @T(m_mbutton = pressed OR m_rbutton = pressed OR m_exit = Yes) sanoaction sanoaction safood @T(t_awake = FALSE) sasleep safood @T(m_lbutton = pressed) sasnacks sasnacks @T(m_mbutton = pressed OR m_rbutton = pressed OR m_exit = Yes) sanoaction sasnacks @T(t_awake = FALSE) sasleep safoodandsnacks @T(m_lbutton = pressed) sagames sagames @T(m_rbutton = pressed OR m_exit = Yes) sanoaction sagames @T(t_awake = FALSE) sasleep sagames @T(m_mbutton = pressed) saplaying saplaying @T((m_mbutton = pressed OR m_lbutton = pressed) AND (c_playedrounds < 5)) saplaying saplaying @T(m_rbutton = pressed) sanoaction saplaying @T(t_awake = FALSE) sasleep sagames @T(m_lbutton = pressed) sainformations sainformations @T(m_rbutton = pressed OR m_exit = Yes) sanoaction sainformations @T(t_awake = FALSE) sasleep - 1 -

Anhang Table 1: Mode Transition Table for selectedaction (Sheet 2 of 2) Source Mode Events Destination Mode sainformations @T(m_mbutton = pressed) saweightandage saweightandage @T(m_rbutton = pressed OR m_exit = Yes) sanoaction saweightandage @T(t_awake = FALSE) sasleep saweightandage @T(m_mbutton = pressed) sahunger sahunger @T(m_rbutton = pressed OR m_exit = Yes) sanoaction sahunger @T(t_awake = FALSE) sasleep sahunger @T(m_mbutton = pressed) sahappyness sahappyness @T(m_rbutton = pressed OR m_exit = Yes) sanoaction sahappyness @T(t_awake = FALSE) sasleep sasleep @F(t_awake = FALSE) sanoaction saplaying sareset @T(c_playedrounds >= 5 AND (m_mbutton = pressed OR m_lbutton = pressed)) @T(m_lbutton = pressed or m_mbutton = pressed) sareset saplaying sareset @T(t_awake = FALSE) sasleep sareset @T(m_rbutton = pressed) sanoaction sanoaction @T(m_mbutton = pressed) satime satime @T(m_exit = Yes) sanoaction satime @T(t_awake = FALSE) sasleep - 2 -