Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 6

Ähnliche Dokumente
Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 6

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 8

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Gezielt über Folien hinweg springen

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

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

Task: Nmap Skripte ausführen

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Sicherheitseinstellungen... 2 Pop-up-Fenster erlauben... 3

1. Einführung. 2. Weitere Konten anlegen

Was meinen die Leute eigentlich mit: Grexit?

Zimmertypen. Zimmertypen anlegen

Kostenstellen verwalten. Tipps & Tricks

Adminer: Installationsanleitung

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Beschaffung mit. Auszug aus dem Schulungshandbuch: Erste Schritte im UniKat-System

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Internet Explorer Version 6

Benutzeranleitung Superadmin Tool

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Kommunikations-Management

Anleitung Typo3-Extension - Raumbuchungssystem

Das Handbuch zu KNetAttach. Orville Bennett Übersetzung: Thomas Bögel

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Zeichen bei Zahlen entschlüsseln

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Die Dateiablage Der Weg zur Dateiablage

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

eduvote Ein Umfragesystem für Lehrveranstaltungen - PowerPoint Add-In -

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

Dokumentation: Selbstregistrierung

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

Bedienungsanleitung für den Online-Shop

ARCO Software - Anleitung zur Umstellung der MWSt

Live Update (Auto Update)

IBIS Professional. z Dokumentation zur Dublettenprüfung

Stammdatenanlage über den Einrichtungsassistenten

Leichte-Sprache-Bilder

Standard-Kontaktformular

Anzeige von eingescannten Rechnungen

Einrichtung einer Weiterleitung auf eine private Adresse in der Hochschule

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Kurzeinführung Excel2App. Version 1.0.0

Ihr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig?

Beispiel(unten ist der Spielfeldrand):

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Individuelle Formulare

Gruppenrichtlinien und Softwareverteilung

Eine Kurzanleitung in 10 Schritten

Der neue persönliche Bereich/die CommSy-Leiste

Der Kontowecker: Einrichtung

Karten-Freischaltung mit dem UNLOCK MANAGER

Eigenen Farbverlauf erstellen

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Java Projekt: Tic Tac Toe + GUI

Evident VDDS-Anbindung von MIZ

MINDMAP. HANDREICHUNG (Stand: August 2013)

Aufklappelemente anlegen

Übersicht... 2 Dateiupload... 3 Administratorfunktionen... 4

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

TYPO3-Zusatzkurs für

Anleitung für die Registrierung und das Einstellen von Angeboten

OSD-Branchenprogramm. OSD-Version Was ist neu? EDV-Power für Holzverarbeiter

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Anleitung Lernobjekt-Depot (LOD)

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Hinweise zur Recherche in der Suchmaschine der Bibliothek

Jederzeit Ordnung halten

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Internet online Update (Internet Explorer)

Kommunikations-Management

SANDBOXIE konfigurieren

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

104 WebUntis -Dokumentation

Qt-Projekte mit Visual Studio 2005

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

AUF LETZTER SEITE DIESER ANLEITUNG!!!

Arbeiten mit dem Outlook Add-In

PowerPoint 2010 Mit Folienmastern arbeiten

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Updatehinweise für die Version forma 5.5.5

SJ OFFICE - Update 3.0

Bedienungsanleitung für den SecureCourier

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Transkript:

Prof. Dr. Wilhelm Schäfer Paderborn, 24. November 204 Christian Brenner Tristan Wittgen Besprechung der Aufgaben:. - 4. Dezember 204 Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 204/205 Übungsblatt 6 Aufgabe Graphtransformationen In dieser Aufgabe haben Sie ein Klassendiagramm für ein Multiprozessor gegeben (Abbildung ), sowie ein Objektdiagramm, das den aktuellen Zustand eines solchen Systems beschreibt (Abbildung 2). Spezifizieren Sie nun die beiden Operationen starttask und switchtotask mithilfe von Graphtransformationen. MultiprocessorSystem Scheduler readytasks() : Collection<Task> starttask(t: Task, p: Processor) : boolean switchtotask(t: Task, p:processor) : boolean TaskState stateid: int {unmodifiable} READY_ID = 0 : int {final} RUNNING_ID = : int {final} SUSPENDED_ID = 2 : int {final} state processors..n * Processor 0.. 0.. Task runningon assignedtask Abbildung : Klassendiagramm Metamodell eines Multiprozessors Hinweis: Benutzen Sie die Syntax, die in der Vorlesung V 06 204--7 Graph Grammars verwendet wurde. Die Signatur der Operationen ist in Abbildung 3 angegeben. Die Knoten p und t sind nicht mit ihren entsprechenden Typen gekennzeichnet, weil sie der Funktion als Parameter übergeben werden. Damit definieren die Parameter bereits die Typen von p und t. Alle anderen Knoten werden mit ihren Typen gekennzeichnet, wie auf den Folien der Vorlesung dargestellt. Zusätzlich können Sie Attributbedingungen (z.b. stateid = ) zu jedem Knoten hinzufügen. Nutzen Sie dazu die Syntax der Objektdiagramme. Beachten Sie bitte, dass die drei TaskState-Objekte in Abbildung 2 einzigartig sind, d.h. Sie können keine weiteren Instanzen davon anlegen.

: MultiproceessorSystem : Scheduler processors p: Proceessor runningon assignedtask t: Task processors p2: Proceessor t2: Task t3: Task state state state suspended: TaskState stateid = 2 running: TaskState stateid = ready: TaskState stateid = 0 Abbildung 2: Objektdiagramm Konkreter Zustand eines Multiprozessors starttask(p: Processor, t: Task) switchtotask(p: Processor, t: Task) p t p t...... Abbildung 3: Transformation Specification Syntax Vervollständigen Sie die Transformationsspezifikation aus Abbildung 3 und spezifizieren Sie folgende Aufgaben: a) Spezifizieren Sie eine Graphtransformation für die Operation starttask, welche einen bestimmten Task auf einem bestimmten Prozessor ausführt. Die Operation soll Task t auf Prozessor p aufrufen. b) Spezifizieren Sie eine weitere Graphtransformation für die Operation switchtotask. Die Operation führt einen Taskwechsel auf dem gegebenen Prozessor aus. Dazu setzt die Operation den Zustand des auf Prozessor p laufenden Tasks auf suspended, startet den neuen Task t und setzt dessen Zustand auf running. Nehmen Sie an, dass es immer einen laufenden Task auf dem Prozessor gibt, wenn die Operation switchtotask aufgerufen wird. Hinweise: Graphtransformationsspezifikationen wurden in der Vorlesung als spezielle Regeln eingeführt, die auf typisierten Graphen angewendet werden (in diesem Fall werden Objektstrukturen in Form von Objektdiagrammen beschrieben). Eine Regel ist eine deklarative Beschreibung einer exemplarischen Graphstruktur, auf die die Transformation angewendet werden soll (linke Regelseite, LHS), und der Transformation, die auf der Struktur ausgeführt werden soll (rechte Regelseite, RHS). Eine Regel wird auf alle Teile eines gegebenen Graphen (Wirtsgraph) angewendet, die der in der Regel spezifizierten Struktur entsprechen. Jedes Objekt und jede Assoziation in der Regel ist ein Repräsentant für ein konkretes Objekt oder eine 2

konkrete Assoziation. Die Repräsentanten werden isomorph auf Objekte und Assoziationen des Wirtsgraphen abgebildet. Dies bedeutet insbesondere, dass zwei Objekte der Regel nicht auf dasselbe Objekt des Wirtsgraphen abgebildet werden können. Aufgabe 2 Schach mit Graphtransformationen Für die Bearbeitung der Aufgaben benötigen Sie das Werkzeug GROOVE in der Version 4.0.2, mit welchem Graphen und Graphtransformationen modelliert und analysiert werden können. Dem Werkzeug liegt eine kurze Dokumentation bei (usermanual.pdf). Auf der Webseite zur Vorlesung finden Sie ein bereitgestelltes GROOVE-Projekt, in welchem das Brettspiel Schach modelliert ist. Es wurden folgende Einschränkungen zum normalen Schachspiel vorgenommen: Im Unterschied zu den normalen Regeln endet das Spiel erst, wenn ein König einer Farbe geschlagen wurde. Der Spieler dieser Farbe darf dann keinen Zug mehr machen. Er hat also verloren. Es wurde nicht modelliert, dass der König im Schach steht. Im Unterschied zu den normalen Regeln, darf der König sich daher auch auf ein Feld bewegen, auf dem er bedroht ist, also im Schach steht. Er kann dann vom Gegner im nächsten Zug geschlagen werden. Zusätzlich darf der König auch auf ein Feld ziehen, welches sich direkt neben dem gegnerischen König befindet. Bei der Rochade wird ebenfalls ignoriert, wenn der König durch ein Feld ziehen muss, bei dem er im Schach steht. Das En-Passant-Schlagen 2 des Bauern wird vereinfacht unterstützt (siehe Aufgabenteil 2.3). Es wird nur die Umwandlung eines Bauern in eine Dame unterstützt. 2. In der Abbildung 4 finden Sie den Typgraphen des Schachspiels. Die Abbildung 5 zeigt die Regel zum horizontalen Bewegen eines Springers. Beschreiben Sie die Regel aus Abbildung 5! Welche Bedingungen müssen erfüllt sein (LHS)? Welche Transformationen werden bei der Regelanwendung durchgeführt? Hinweis: Eine Beschreibung der verwendeten GROOVE-Notationen finden Sie im zweiten und dritten Kapitel der Dokumentation. Download: http://sourceforge.net/projects/groove/files/groove/4.0.2/, Projektseite: http://groove.sourceforge.net/groove-index.html Groove kann durch das Ausführen der Simulator.jar gestartet werden. 2 http://de.wikipedia.org/wiki/en_passant 3

Abbildung 4: Typgraph des Schachspiels Abbildung 5: Regel zum horizontalen Bewegen eines Springers 4

2.2 Im vorgegebenen GROOVE-Projekt sind die Regeln promotion black pawn to queen und promotion white pawn to queen noch nicht ausmodelliert. Diese Regeln sollen den Fall modellieren, dass, falls ein Bauer die gegnerische Grundlinie erreicht, er sich in eine Dame gleicher Farbe umwandelt. Modellieren Sie diese Regeln in GROOVE! Begründen oder widerlegen Sie, warum die Umwandlung nicht in einer Regel zusammengefasst werden kann. Hinweis: Alle benötigten Attribute und Typen sind bereits definiert. Eine Regel können Sie im Simulator über Rechtsklick Edit Rule bearbeiten. 2.3 Des Weiteren fehlen im Projekt Regeln für das En-Passant-Schlagen eines Bauern. Diese Schachregel erlaubt es, einen gegnerischen Bauern, der von der zweiten bzw. siebten Reihe einen Doppelschritt gemacht hat, im direkt darauffolgenden Zug diagonal mit einem Bauern zu schlagen (siehe Abbildung 6). Das Schlagen wird dabei ausgeführt, als ob der Bauer keinen Doppelschritt, sondern einen einfachen Schritt gemacht hätte (also ein Feld weiter hinten stehen würde). Da im En-Passant-Schlag die Figur, die zu schlagen ist, nicht auf dem selben Feld steht, auf das die schlagende Figur zieht, kann die caputurepiece Regel nicht angewandt werden. Das Entfernen der Figur muss somit in der Regel selbst durchgeführt werden. Abbildung 6: En-Passant-Schlagen eines Bauern Um die Regel zu vereinfachen, soll unsere Transformationsregel nicht beachten, ob der Bauer im letzten Zug einen Doppelschritt, einen einfachen Schritt oder keinen Schritt gemacht hat. Es soll nur überprüft werden, dass der zu schlagende weiße bzw. schwarze Bauer auf der vierten bzw. fünften Reihe steht und dass die Felder hinter dem Bauern in der zweiten, dritten bzw. sechsten, siebten Reihe leer sind. Modellieren Sie eine oder mehrere Regeln in GROOVE, um das En-Passant-Schlagen in dieser vereinfachten Form zu unterstützen! 5

2.4 Sie finden im vorgegebenen Projekt einen Startgraphen, der die Stellung aus Abbildung 7 modelliert. Simulieren Sie die animierte Zugfolge, die Sie online finden unter Moves Diagramm.gif. Die Animation geht bis einschließlich des Damenzuges, welcher Schachmatt ergibt (5. Qg8#). Damit in unserem Regelsatz einer der Spieler verloren hat und somit keine Regel mehr anwendbar ist, müssen noch zwei weitere Züge getätigt werden. Simulieren Sie deshalb, dass der schwarze König die Dame schlägt und im Anschluss der weiße König den schwarzen König schlägt. Nutzen Sie für die Simulation den Startgraphen, die von Ihnen erstellten und die bereit gestellten Regeln. In Schachnotation 3 sieht die Zugfolge wie folgt aus:.... a5 2. bxa6 Kh7 3. a7 Kh8 4. a8=q+ Kh7 5. Qg8# Kxg8 6. Kxg8. Abbildung 7: Stellung modelliert im Startgraph Hinweis: Eine Simulation starten Sie im unteren linken Dialog, in dem Sie einen Startgraphen auswählen und auf Use as Start Graph klicken. Die möglichen anzuwendenden Regeln werden im Dialog darüber angezeigt. Diese können Sie über Rechtsklick Apply active match anwenden. 3 http://de.wikipedia.org/wiki/schach#notation 6