• Keine Ergebnisse gefunden

Automatische Transformation von Programmen in Statecharts Am Christian Doppler Labor für Automated Software Engineering wurde zusammen mit der Firma KEBA eine Domänenspezifische Sprache für die Automatisierungstechnik entwickelt (Monaco -

N/A
N/A
Protected

Academic year: 2022

Aktie "Automatische Transformation von Programmen in Statecharts Am Christian Doppler Labor für Automated Software Engineering wurde zusammen mit der Firma KEBA eine Domänenspezifische Sprache für die Automatisierungstechnik entwickelt (Monaco -"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Automatische Transformation von Programmen in Statecharts

Am Christian Doppler Labor für Automated Software Engineering wurde zusammen mit der Firma KEBA eine Domänenspezifische Sprache für die Automatisierungstechnik entwickelt (Monaco - Modeling Notation for Automation Control). Monaco erlaubt es, die Hardware- Komponenten einer Maschine durch Software-Komponenten zu modellieren, die jeweils auf Kommandos reagieren sowie Daten liefern und Ereignisse auslösen können. Damit lassen sich Maschinensteuerungen auf natürliche Weise in Software abbilden.

Ein Monaco-Programm ist eine textuelle Darstellung eines Statecharts [HKKR05, Har87]. Es besteht aus Arbeitsschritten (z.B. Berechnungen und Zuweisungen) und WAIT- Anweisungen, in denen es auf ein Ereignis oder eine boolesche Bedingung wartet. Im Zuge des Monaco-Projekts wurde auch eine auf Eclipse basierende visuelle Entwicklungsumge- bung (IDE) geschaffen, in der man Monaco-Programme in textueller und grafischer Form editieren kann, wobei die beiden Darstellungen jederzeit umgeschaltet werden können. Als grafische Form wurde eine Notation verwendet, die Ähnlichkeiten zu Struktogrammen hat.

Monaco-Programme, Monaco-Struktogramme und Statecharts sind ineinander transformier- bar, wie die folgende Abbildung zeigt:

BEGIN

Action1();

WAIT Cond1;

Action2();

WAIT Cond2;

Action3();

END

Monaco-Programm

/ Action1()

Cond1 / Action2()

Cond2 / Action3()

State Chart Action1();

Cond1 Action2();

Cond2 Action3();

Monaco-Struktogramm

Aufgabe dieses Projekts ist es, die Monaco-IDE so zu erweitern, dass neben Struktogram- men auch Statecharts angezeigt (allerdings nicht editiert) werden können. Dazu sind folgen- de Aufgaben zu lösen:

Institut für Systemsoftware

O.Univ.-Prof. Dr. Hanspeter Mössenböck

(2)

1. Statecharts haben das Problem, dass die mit Zustandsübergängen verbundenen Akti- onen oft aus mehreren Anweisungen bestehen, die im Diagramm neben den Bedin- gungen kaum Platz finden. Als Abhilfe könnte man die Aktionen durch ein spezielles Symbol (z.B. X) ersetzen, das man anklicken kann, worauf der Text der Aktionen in einem Popup-Fenster erscheint. Durch einen Rechtsklick könnte man das Symbol ex- pandieren, so dass die Aktionen vor dem nächsten Zustand eingeblendet werden:

/ X

Cond1

Cond2 Action2()

Action3()

2. Überlegen Sie sich für alle Monaco-Sprachkonstrukte äquivalente Statechart- Notationen, z.B.:

/ a a

PARALLEL b WAIT c1 d

||

e WAIT c2 f END;

g

/ b c1 / d

/ e c2 / f

/ g

a

IF x THEN b WAIT c1 d ELSE e WAIT c2 f END;

g

/ a x / b ¬x / e

c1 / d c2 / f

/ g

LOOP a WAIT c1 b WHILE x

/ a c1 / b x

¬x

3. Monaco-Programme können Blöcke mit ON-Handlern aufweisen. Wenn sich das Pro- gramm in einem WAIT-Zustand innerhalb dieses Blocks befindet und die im ON- Handler spezifizierte Bedingung eintritt, so wird der Block verlassen und der ON- Handler wird ausgeführt. Anschließend geht es nach dem Block weiter. Überlegen Sie sich eine adäquate Statechart-Notation dazu, z.B.:

(3)

BEGIN / a a WAIT c1 b WAIT c2 d ON e f END;

g

c1 / b e / f

/ g c2 / d

4. Studieren Sie die Implementierung der Monaco-IDE und implementieren Sie ein Ec- lipse-Plugin, das einzelne Monaco-Routinen aus der internen Zwischensprache der IDE in Statecharts transformiert und anzeigt. Achten Sie auf gefälliges und gut lesba- res Layout.

Die Arbeit ist in regelmäßigen Abständen mit dem Betreuer zu besprechen. Achten Sie bei der Implementierung Ihres Werkzeugs auf guten Programmierstil und ausführliche Kommen- tierung, damit es später auch von anderen Personen gewartet werden kann.

Betreuer: Dr. Herbert Prähofer Beginn: März 2007

Literatur

[HKKR05] Hitz, M., Kappel, G., Kapsammer, E., Retschitzegger, W.: UML@Work. 3. Auflage, dpunkt.verlag, 2005

[Har87] Harel, D.: Statecharts: A Visual Formalism for Complex Systems. Sci. Comput. Prog. 8, 231-274, 1987

Referenzen

ÄHNLICHE DOKUMENTE

Die neue Ackerkleesorte Monaco entstand durch fortgesetzte Auslese aus Zuchtmaterial der ältesten Schweizer Rotkleesorte Mt. Futterertrag und Resistenz gegenüber Stängelbrenner

La nouvelle variété de trèfle violet de courte durée résulte d’une sélection continue de matériel de sélection de la variété la plus ancienne de trèfle violet suisse Mt.

Monaco is the new variety of short leaved red clover which emerged from a continued selection of the breeding material of the oldest Swiss variety of red clover namely Mt. Monaco`s

Die neue Ackerkleesorte Monaco entstand durch fortgesetzte Auslese aus Zuchtmaterial der ältesten Schweizer Rotkleesorte Mt. Futterertrag und Resistenz gegenüber Stängelbrenner

La nouvelle variété de trèfle violet de courte durée résulte d’une sélection continue de matériel de sélection de la variété la plus ancienne de trèfle violet suisse Mt.

Monaco is the new variety of short leaved red clover which emerged from a continued selection of the breeding material of the oldest Swiss variety of red clover namely Mt. Monaco`s

Die eingereichten Arbeiten dürfen noch von keiner anderen Stelle prämiert und bei keiner anderen Stelle zur Prämierung eingereicht worden sein. Die Arbeiten sind bis

Somit können neue Wär- mebehandlungsverfahren entwi- ckelt und bestehende optimiert werden, um die Kosten zur Her- stellung dieser Werkstoffe zu verringern und einen unverzieht-