• Keine Ergebnisse gefunden

1 Interface Spezifikation mit Modell-Variable

N/A
N/A
Protected

Academic year: 2021

Aktie "1 Interface Spezifikation mit Modell-Variable"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

VU Qualit¨atssicherung in der Softwareentwicklung LV-Nr. 716.066, SS 2012

Aufgabenblatt 2

Ass.-Prof. Dr. Bernhard Aichernig

Sandra Fruhmann,sandra.fruhmann@student.tugraz.at Stefan Tiran,stiran@ist.tugraz.at

8.05.2012, Graz

1 Interface Spezifikation mit Modell-Variable

Frist:bis Di 5. 6. 2012, 10:00 MESZ

Modell-Variablen bieten die M¨oglichkeit, Spezifikationen abstrakter zu formulieren und auf we- niger Implementierungsdetails R¨ucksicht nehmen zu m¨ussen.

Bei unserem Bahnhof aus Aufgabenblatt 1 hatten wir den Zustand des Systems auf sehr viele Objekte verteilt. So hatten wir die Information, ob ein bestimmtes Gleisst¨uck f¨ur eine Fahrstraße verwendet wird, als Flag am jeweiligen Gleisst¨uck selbst gespeichert. Die Spezifikation war somit eine Beschreibung des Verhaltens der Implementierung.

Nun wollen wir weg von komplizierten Datentypen, welche die Informationen kapseln und hin zu einfachen Datentypen wie Listen und Mengen, ¨uber die man Spezifikationen abstrakter formulieren kann.

Erg¨anzen Sie die im Framework vorhandene KlasseAbstractElementManager, um eine modell- basierte Spezifikation eines Element-Containers! Abstrakte Elemente implementieren das Interface JMLValue und besitzen eine eindeutige ID, welche ein Integer ist. Der abstrakte Element-Manager soll dabei aus zwei Mengen von abstrakten Elementen bestehen. Die MengefreeElementsenth¨alt alle freien Elemente, die MengeusedElementsenth¨alt alle Elemente, die gerade verwendet werden.

Neu hinzugef¨ugte Elemente werden als frei angesehen und landen daher in der Menge freier Ele- mente. Weiters gibt es eine MethodesetAllUsed(), welche alle vorhandenen, freien Elemente aus der Menge freier Elemente entfernt und in die Menge verwendeter Elemente verschiebt.

Aufgrund einer Einschr¨ankung von OpenJML, die nur das Mapping einer einzigen Variable zul¨asst, m¨ussen diese zwei Mengen jedoch zu einer Klasse namens ModelState zusammengefasst werden.

Erg¨anzen Sie weiters die KlasseConcreteElementManager, welche eine konkrete Implementie- rung enth¨alt. Diese Implementierung soll dabei die objekt-orientierte Architektur besitzen. Das bedeutet, dass an statt zweier Mengen, die Objekte der KlasseAbstractElement nun ein Vector existiert, der Objekte der KlasseConcreteElemententh¨alt. Die KlasseConcrete Elementist da- bei vonAbstractElementabgeleitet und enth¨alt ein zus¨atzliches Flag namensinUse, welches die Information speichert, ob das Element in Verwendung ist.

1

(2)

Abbildung 1: Klassendiagramm

Kopieren Sie die modellbasierte Spezifikationen des abstrakten Bahnhofes in die Klasse und definieren sie mit einerrepresents-Clause und einer Modell-Methode das Mapping zwischen Modell und konkreter Implementierung!

Abzugebende Dateien:AbstractElement.java, ConcreteElement.java

AbstractElementManager.java, ConcreteElementManager.java, ModelState.java Erreichbare Punkte:5

Verwendetes Tool:OpenJML

2 Kombinatorisches Testen

Frist:bis di 5. 6. 2012, 10:00 MESZ

ur das kombinatorische Testen enth¨alt das Framework von der LV-Homepage auch eine Im- plementierung eines Bahnhofes. Diese entspricht im wesentlichen der Musterl¨osung f¨ur das 1. Auf- gabenblatt, wobei eine zus¨atzliche Methode trainHasLeft(TrackElement te)eingef¨uhrt wurde, mit der ein Zug dem Bahnhof mitteilen kann, dass er das TrackElementteverlassen hat, und somit dieses Element nicht mehr verwendet wird. Außerdem wird im Konstruktor ein konkreter Gleisplan geladen. Es existieren weiters vier m¨ogliche Fahrstraßen,AB,AC,BAundCA.

2.1 Zustandsautomat

Berechnen Sie alle m¨oglichen abstrakten Zust¨ande und Transitionen (siehe Vorlesung) des Bahnho- fes und stellen Sie die Zustandsmaschine grafisch dar.

2

(3)

Abzugebende Datei:Automat.pdf Erreichbare Punkte:5

2.2 Testen mit JMLUnitNG

Testen Sie diesen Automaten nach den folgenden Gesichtspunkten mit Hilfe von JMLUnitNG:

1: Abdeckung aller Zust¨ande: Alle Zust¨ande des Automaten sollen mindestens einmal besucht werden.

2: Abdeckung aller Transitionen: Es soll jede Transition des Automaten einmal getestet werden.

3: Abdeckung aller Paare von Transitionen: Jedes aufeinanderfolgende Paar von ¨Uberg¨angen soll getestet werden.

Hinweis:Die Abdeckung aller Transitionen enth¨alt die Abdeckung aller Zust¨ande. Die Abde- ckung aller Paare von Transitionen enth¨alt die Abdeckung aller Transitionen.

Tipp:Denken Sie an die Eigenschaften des kombinatorischen Testens!

Passen Sie dazu die von JMLUnitNG generierten Package- und Instance- Stragies an und tragen Sie die jeweils ben¨otigten Objekte, welche vom SingletonTrainStationDatazur Verf¨ugung gestellt werden ein. F¨uhren Sie die Tests der KlasseTrainStation JML Testmit Hilfe des Testframeworks TestNG aus und stellen Sie sicher, dass die Tests entweder durchlaufen (pass), oder aufgrund der Vorbedingung ¨ubergangen werden (skip).

Abzugebende Dateien:Alle von JMLUnitNG erstellten Dateien Erreichbare Punkte:5

Verwendete Tools:jml4c und JMLUnitNG

3 Abgabedetails

Frist:bis Di 24.4.2012,10:00 MESZ

Art der Abgabe: Per SVN, weleches vom OnlineSystem erzeugt wird Die Dateien m¨ussen sich in einem Verzeichnis NamensA2befinden. Die Verzeichnisstruktur des Framework soll beibehalten werden. Korrigiert wird die letzte in Zeit eingecheckte Version.

Da keine Unterverzeichnisse erlaubt sind, ist auch das Anlegen von Packages nicht erlaubt. Jeglicher Code zur L¨osung der Aufgaben ist innerhalb der Gruppe geheim zu halten. Es wird dringend dazu geraten, den Code ausschließlich ¨uber das SVN-Repository und nicht ¨uber E-Mail auszutauschen.

Sollte Code unerlaubterweise in die Newsgroup oder auf einen Webserver gelangen, darf er von keiner Gruppe verwendet werden. Dies gilt auch f¨ur die Gruppe, die den Code zwar geschrieben, aber nicht ordnungsgem¨aß verwahrt hat.

3

Abbildung

Abbildung 1: Klassendiagramm

Referenzen

ÄHNLICHE DOKUMENTE

Eine hinreichende Bedingung f¨ ur ein lokales Minimum (Maximum) in einem kritischen Punkt x ∗ im Innern des Definitionsbereichs D ist, dass ebenfalls die zweiten partiellen

[r]

Die Menge aller Elemente wird in drei Teilmengen partitioniert: U enth¨ alt die Kandidaten f¨ ur den Median, G enth¨ alt Elemente, die sicher gr¨ oßer als der Median sind, und L

Zusammen mit (17) zeigen sie, daß in einer Booleschen Algebra jede der beiden zweistelligen Verkn¨ upfungen zusammen mit der Komplementbildung die andere zweistellige Verkn¨ upfung

Man bestimme die Koordinaten aller Ecken, wenn eine Ecke im Ursprung liegt und ⃗a,⃗b, ⃗ c als Ortsvektoren aufgefasst werden.. h , welche C und D enth¨ alt, in Parameterform und

Um die Umkehrung dieses Satzes zu zeigen, muss man zu jedem Hartogs-konvexen Gebiet eine globale holomorphe Funktion konstruieren, die in jedem Randpunkt vollst¨ andig singul¨ ar

Volles Modell enth¨ alt alle m m¨ oglicherweise erkl¨ arenden Gr¨ oßen (Pr¨ adiktoren) Suche nach dem besten Modell, das nur eine Teilmenge dieser Pr¨ adiktoren enth¨ alt1.

Man beweise, dass jeder algebraisch abgeschlossene Korper unendlich viele Elemente hat..