UNIVERSIT¨AT POTSDAM Institut für Informatik

Werbung
Übungen zur Vorlesung
Formale Methoden im Systementwurf
UNIVERSITÄT POTSDAM
Institut für Informatik
WS 06/07
Prof. Dr. T. Margaria
C. Winkler, C. Renner
M. Bakera, W. Jansen, et.al.
[email protected]
Übung 11: Zusatzaufgaben (Theorie, Praxis)
29.01.2007
Abgabe: Bitte senden Sie Ihre Abgabe bis zum 16.02.2007, 08:00 Uhr (morgens) per E-Mail an die
o.a. Adresse. Vermerken Sie immer alle Gruppenmitglieder auf den Abgaben. Einzelabgaben werden nicht
gewertet. Jede Abgabe muss genau zwei oder drei Teilnehmern zugeordnet werden. Die Abgabe besteht
aus einem Projekt in einer ZIP-Datei1 , das für den Übungszettel angelegt wird und die erstellten Modelle
bzw. schriftlichen Lösungen der Aufgaben beinhaltet. Schriftliche Lösungen geben Sie bitte im PDF-Format
(oder zumindest einem gängigen Grafikformat) ab. Benennen Sie diese ZIP-Datei bitte nach dem Schema
Nachname1 Nachname2 Nachname3.zip mit den Nachnamen der Gruppenmitglieder. Lösen Sie Umlaute bitte in zwei Buchstaben auf.
Bei den Aufgaben auf diesem Zettel handelt es sich um Zusatzaufgaben, mit denen Sie Ihre Note verbessern können, die Sie aber
nicht bearbeiten müssen.
Aufgabe 11.1.
[Modellsynthese]
(10 Zusatzpunkte)
Aktivität
Mediator
startService
obtCustomerID
Eingabetyp
Ausgabetyp
None
PurOrderReq
PurOrderReq
SearchString
createOrderUCID
buildTuple
sendLineItem
CustomerObject
Order
Tuple
CustomerID
Tuple
LineItem
closeOrderMed
confirmLIOperation
Moon
searchCustomer
SubmConfObj
Order
Order
PurOrderCon
SearchString
CustomerObject
createOrder
addLineItem
closeOrderMoon
confRefLineItem
CustomerID
LineItem
Order
Timeout
Order
SubmConfObj
TimeoutOut
Order
Beschreibung
Maps Googol Corp. messages to the backend
Receives a purchase order request message
Obtains a customer search string
from the req. message
Gets the customer id out of the customer object
Builds a tuple out of an order and the POR
Gets a LineItem incl. orderID,
articleID and quantity
Closes an order on the mediator side
Receives an order and sends a conf.
The backend system
Gets a customer object
out of the backend database
Creates an order
Submits a line item to the backend database
Closes an order on the backend side
Sends a conf. or ref. of a prev. subm. LineItem
Abbildung 1: Mediation Aktivitäten
Ihre Firma Redundant Technologies Inc. hat einen großen Auftrag an Land gezogen, für den es sich anbietet,
ein in die Jahre gekommenes, altes, aber funktionierendes System Moon wiederzuverwenden. Unglücklicherweise akzeptiert Moon nur Anfragen in einem veralteten Standard PIP3A4. Aktuelle Clients von Googol
Corp. arbeiten jedoch mit einem dazu nicht kompatiblen neuartigen Standard CVC3N4.
Nun kommt ihre Firma ins Spiel und soll eine Mediationsschicht zwischen den neuartigen Clients und dem
alten System zur Verfügung stellen.
Einer Ihrer Mitarbeiter hat die Idee, diese Mediationsschicht per Hand zu modellieren. Diese Lösung wäre
ihrer Meinung nach jedoch nicht genügend flexibel, um auf Änderungen bzw. Anpassungen im alten System
reagieren zu können.
Also schlagen Sie einen alternativen Ansatz vor, der diese Mediationsschicht nicht explizit in einer Modellierung beschreibt, sondern nur temporal-logisch spezifiziert. Die eigentliche Mediationsschicht soll aus dieser
Spezifikation und der Spezifikation der verschiendenen Dienste (Aktivitäten) mit ihren zugehörigen Ein- und
Ausgabetypen, die in Abbildung 1 gegeben ist, automatisch synthetisiert werden.
1 Bitte
verwenden Sie kein BZIP, RAR, GZ oder ähnliche Formate.
Übung 11
Übungen zu FMiS
Seite 2
1. Bilden Sie das Configuration Universe, das der Spezifikation der Aktionen aus Tabelle 1 zugrundeliegt
und geben Sie eine graphische Repräsentation davon an.
(2 Punkte)
2. Verwenden Sie den in der Vorlesung vorgestellten Algorithmus und stellen Sie für die Spezifikation
φ = hstartServicei true < PurOrderCon
einen zugehörigen Beweisbaum auf, der die synthetisierte Mediationsschicht enthält. φ < ψ ist hierbei
eine verkürzende Schreibweise für F (φ ∧ F (ψ)).
(7 Punkte)
Hinweis: Gehen Sie bei Ihrem Beweisbaum von der Wurzel (N one, φ) aus. Das Verständnis der genauen
Funktionsweise der einzelnen Aktivitäten ist zum Lösen dieser Aufgabe nicht notwendig2 . Wichtig ist
nur, welche Aktivitäten sich bzgl. ihres Eingabe-Ausgabe-Verhaltens miteinander kombinieren lassen.
3. Geben Sie den synthetisierten Ablauf als Transitionssystem an.
Aufgabe 11.2.
[jMosel, Zweierkomplement]
(1 Punkt)
(10 Zusatzpunkte)
Die jMosel-Syntax bietet mit dem Prädikat X<Y die Möglichkeit, zwei Bitvektoren als Binärzahlen zu interpretieren und diese bezüglich ihrer Größe zu vergleichen. Allerdings liegt diesem Vergleich stets die Interpretation
der Vektoren als vorzeichenlose bzw. positive Zahlen zu Grunde.
Eine Variante zur Darstellung vorzeichenbehafteter, ganzer Zahlen stellt das Zweierkomplement dar. Hierbei
werden positive Zahlen wie gewohnt“ in das Binärsystem übertragen. Zur Darstellung einer negativen
”
Zahl −X hingegen wird zunächst der entsprechende positive Wert X als Binärzahl dargestellt, in welcher
daraufhin alle Bits invertiert werden. Abschließend wird zu der resultierenden Binärzahl noch der Wert 1
addiert. Eine ausführliche Beschreibung des Zweierkomplementes finden Sie im Informatikgrundlagenbuch
Ihres Vertrauens (z.B. im Informatik-Handbuch von Rechenberg und Pomberger).
1. Definieren Sie ein Prädikat less2nd(X,Y), welches X und Y als vorzeichenbehaftete Binärzahlen im
Zweierkomplement interpretiert und überprüft, ob der Wert von X kleiner ist als der Wert von Y.
Setzen Sie Ihre Definition in folgende Formel an der mit ...“ markierten Stelle ein:
”
let less2nd(X,Y) = ... in less2nd(A,B).
Ihre Abgabe besteht aus einer Textdatei mit der Lösungsformel.
(8 Punkte)
2. Übersetzen Sie die Formel aus der voherigen Aufgabe mit dem jMosel-Plugin und ordnen Sie den
Automaten auf der Zeichenfläche möglichst übersichtlich an.
Ihre Abgabe besteht aus einer Grafikdatei mit einem Screenshot des berechneten Automaten.
(2 Punkte)
Tipps
• Versuchen Sie, das Prädikat less2nd(X,Y) auf das Prädikat X<Y zurückzuführen.
• In der Definition des Prädikates less2nd(X,Y) müssen Sie eine Fallunterscheidung bezüglich der Vorzeichen von X und Y treffen.
• Zwar enthält die Definition des Zweierkomplementes keinen Hinweis auf ein ausgezeichnetes Bit, welches
das Vorzeichen kodiert; dennoch kann das Vorzeichen einer Binärzahl im Zweierkomplement allein durch
Betrachtung des höchstwertigen Bits bestimmt werden.
2 Mehr Informationen über das Projekt finden Sie unter http://sws-challenge.org/wiki/index.php/Scenario:_Purchase_
Order_Mediation
Herunterladen