• Keine Ergebnisse gefunden

Werkzeugunterstützung für die Validierung von UML- und OCL-Modellen durchautomatische SnapshotGenerierung

N/A
N/A
Protected

Academic year: 2022

Aktie "Werkzeugunterstützung für die Validierung von UML- und OCL-Modellen durchautomatische SnapshotGenerierung"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Werkzeugunterst ¨utzung f ¨ur die Validierung von UML- und OCL-Modellen durch automatische Snapshot-Generierung

Martin Gogolla, Mark Richters, J¨orn Bohling, Arne Lindow, Fabian B¨uttner, Paul Ziemann

Universit¨at Bremen

1 Einleitung

Eines der ersten Systeme, die OCL unterst¨utzten, war das UML Specification Environ- ment (USE). USE erlaubt das ¨Uberpr¨ufen von UML/OCL-Modellen durch Erzeugen von Snapshots, d.h. von Zust¨anden des modellierten Systems mit Objekten, Attribut- werten und Links zu einem bestimmten Zeitpunkt. Diese Snapshots k¨onnen als UML- Objektdiagramme dargestellt werden.

Um Systemzust¨ande zu erzeugen, war man bisher gezwungen, explizit eine Folge von Kommandos anzugeben. Die aktuelle Arbeit ist durch den Wunsch motiviert, System- zust¨ande auf eine deklarative Art und Weise zu erzeugen, indem man lediglich Eigen- schaften dieser Zust¨ande angibt. Zu diesem Zweck haben wir die Sprache ASSL[GBR03]

(A Snapshot Sequence Language) entwickelt, die eben dies m¨oglich macht. Des Weiteren wurde USE um die F¨ahigkeit erweitert, Invarianten dynamisch zu laden. USE und dessen ASSL-Erweiterung erlauben somit das ¨Uberpr¨ufen von Eigenschaften eines Modells an- hand von als relevant angesehenen Testf¨allen. Unsere Ideen werden im Kontext von USE vorgestellt, die grundlegenden Punkte unseres Ansatzes k¨onnten aber in anderen Werkzeu- gen ebenso eingesetzt werden.

2 USE-Modelle, ASSL-Prozeduren und dynamisch ladbare Invarianten

Der Zweck von USE ist es, ein UML-Klassendiagramm und dazugeh¨orige OCL- Constraints zu animieren, zu testen und zu validieren. Dabei liegt der Schwerpunkt auf den fr¨uhen Phasen des Entwicklungsprozesses. So k¨onnen Fehler im Modell fr¨uhzeitig er- kannt werden noch bevor die Implementierung begonnen hat. Die Erweiterung von USE um die Erzeugung von Systemzust¨anden erlaubt das Testen großer Mengen von Zust¨anden in Bezug auf Klassendiagramm und OCL-Bedingungen.

Ein USE-Modell, beschrieben in einer.use-Datei, besteht aus Klassen, Assoziationen und Constraints (Invarianten sowie Vor- und Nachbedingungen f¨ur Klassen bzw. ihre Ope-

(2)

rationen). Seiteneffektfreie Operationen k¨onnen durch OCL-Ausdr¨ucke spezifiziert wer- den. USE erlaubt das ¨Uberpr¨ufen von Systemzust¨anden bez¨uglich des Modells. Diese k¨onnen durch die graphische Oberfl¨ache oder ¨uber die USE-eigene Kommandosprache (.cmd-Dateien) eingegeben werden.

Die aktuelle Erweiterung von USE erlaubt die automatische Erzeugung von g¨ultigen Zust¨anden mithilfe der ASSL (A Snapshot Sequence Language).

ASSL-Prozeduren dienen der Erzeugung von Snapshots oder Teilen von Snapshots.

W¨ahrend ¨uber die urspr¨ungliche Kommandosprache im Wesentlichen nur Objekte und Links erzeugt und gel¨oscht werden konnten, unterst¨utzt ASSL das Finden von g¨ultigen Zust¨anden durch Backtracking und Schleifen. Durch die ASSL-Anweisung

var := Try(M)

wird die Entscheidung, welches Element aus einer MengeMder Variablevarzugewiesen wird, dem Backtracking-Mechanismus ¨uberlassen.

F¨ur die Ausf¨uhrung einer ASSL-Datei k¨onnen Invarianten zum Modell nachgeladen wer- den (.invs-Dateien) und individuell ein- und ausgeschaltet werden. Einzelne Invari- anten k¨onnen dar¨uber hinaus negiert werden. Auf diese Weise kann validiert werden, ob eine bestimmte InvarianteX immer erf¨ullt ist: Falls f¨ur ein Modell, zu dem ein g¨ultiger Zustand gefunden wurde, nach Hinzuf¨ugen der Invariante¬Xkein Zustand mehr gefun- den wird, istX bzgl. des Suchraums redundant.

3 Anwendungen und Skalierbarkeit

Unsere Motivation, den Einsatz komplexer Testf¨alle in fr¨uhen Entwicklungsphasen zu un- tersuchen, ist, die Qualit¨at der entwickelten Beschreibungen sicherzustellen und dem Ent- wickler eines Modell bereits fr¨uh Feedback geben zu k¨onnen. Wir sehen dar¨uber hinaus die M¨oglichkeit, Testf¨alle auch in sp¨ateren Entwicklungsphasen weiterzuverwenden, wenn die Implementierung entsteht. Wir haben auch gr¨oßere Snapshots betrachtet, und unser Ansatz scheint diesbez¨uglich skalierbar zu sein. Um ein Beispiel zu geben: Wir haben Snapshots mit 200 Objekten und 300 Links in akzeptabler Zeit mit einer leicht ver¨anderten Prozedur gefunden.

Wir glauben, dass der Aufwand, der in fr¨uhen Entwicklungsphasen mehr investiert wird, sich in h¨oherer Qualit¨at des Ergebnisses niederschl¨agt.

Literatur

[GBR03] Gogolla, M., Bohling, J., und Richters, M.: Validation of UML and OCL Models by Automatic Snapshot Generation. In: Booch, G., Stevens, P., und Whittle, J. (Hrsg.), Proc.

6th Int. Conf. Unified Modeling Language (UML’2003). S. 265–279. Springer, Berlin, LNCS 2863. 2003.

2

Referenzen

ÄHNLICHE DOKUMENTE

Sie beschreiben die Anzahl der Meter, mit denen die einzelnen Bohrk¨ opfe, welche zur Verf¨ ugung stehen, bohren bevor sie ausfallen.. Dieser sagt, dass f¨ ur große n das

Bei einer Multipliktion wird das wahre Er- gebnis wenig verf¨alscht, wenn man den einen Faktor etwas aufrundet und den anderen zum Ausgleich etwas abrundet.. Dagegen bei der

• platzieren die zu sortierenden Werte in den Knoten von oben nach unten und in jeder Ebene von links nach rechts. • Wir ¨uberpr¨ufen die Heap-Definition von unten nach oben und

dividiert werden, wenn sie entweder dieselbe Basis und/oder denselben Exponenten

die

Stichtenoth 11.01.2006. Mathematik f¨ ur

Zeiterfassung (2 Punkte) Deklarieren und definieren Sie eine Funktion time, die aus einer Sequenz von Auf- tr¨ agen, die Summe der Wartezeiten f¨ ur alle Schalter liefert.. Benutzen

eines Verzeichnisses (2 Punkte) Deklarieren und definieren Sie eine Funk- tion umbenennen, die eine struktur (Datei oder Verzeichnis) umbenennt, wenn das Zugriffsrecht (schreibend)