Sprungmarken

Servicenavigation

Hauptnavigation

Sie sind hier:

Bereichsnavigation

Hauptinhalt

PG AgES

PG AgES: Aspektgetriebene Entwicklung sicherer Steuerungssysteme

 

aspectman_in_action

                                                Aspectman in Action

 

Ziel der Projektgruppe ist die Illustration und Evaluation der Flexibilität und Effektivität modellbasierter, aspektorientierter Programmierung. Konkret soll dazu eine sichere Steuerung von Quadrocoptern konzipiert und umgesetzt werden, die durch zwei Merkmale charakterisiert ist:

 
  • Modell-Basierheit: Um leicht an sich ändernden Anforderungen anpassbar zu sein, soll die Steuerungslogik auf Modellebene beschrieben werden.
  • Aspekt-Orientierung: Sicherheitskonzepte sollen orthogonal dazu als Aspekte modelliert und dann über Modelltransformationen automatisch den jeweils aktuellen Steuerungslogiken überlagert werden.

 

Nach einem "Proof of Concept" in einer Simulationsumgebung soll die Mächtigkeit des Ansatzes durch die Einfachheit demonstriert werden, mit der kollisionsfreies Fliegen eines realen Quadrocopters in wechselnden Szenarien realisiert werden kann.

 

Einzelpräsentation: 28.11.2012 um 10:15 Uhr in OH 14, R 105

Kontakt:

 


PG-Antrag

Folien der Infoveranstaltung

Folien der Einzelpräsentation


 

 

Aspektorientierung und Model Driven Design

Aspektorientierte Programmierung

Aspektorientierte Programmierung (AOP) bietet gegenüber Objektorientierter Programmierung (OOP) den Vorteil einer sauberen Trennung von sogenannten 'Crosscutting Concerns' welche orthogonal zur eigentlichen Geschäftslogik stehen. Anstatt sich stets wiederholenden Code direkt im Sourcecode zu integrieren werden über Pointcuts Stellen spezifiziert an denen ein entsprechender Aspekt im eigentlichen Programm 'eingewebt' (Weaving) werden soll.

AOP ist somit durch seinen Modularisierungsansatz eine Möglichkeit um verschiedene Funktionalitäten an getrennten Orten zu halten ("Separation of Concerns"-Prinzip). Beispiele für Crosscutting Concerns sind zum Beispiel Sicherheitsabfragen in Enterprise Applikationen mit verschiedenen Nutzergruppen, Laufzeitmessungen verschiedener Methoden bei hoch optimierten Algorithmen oder Traceingausgaben für debugging-Zwecke.

Abbildung
Abbildung 1: Mögliches Vorgehen bei AspectJ für Laufzeitmessungen von Fremdbibliotheken

In Java existieren verschiedene Frameworks um die Sprache um Konzepte der AOP zu erweitern wie zum Beispiel AspectJ, JBoss AOP oder Spring AOP.

 

Model-Driven Software Development

Modellgetriebene Softwareentwicklung (MDD für Model-Driven Software Developement) erlaubt einen schnellen und flexiblen Entwicklungsprozess inklusive der Möglichkeit von Codegenerierung und Ausführung von Modellen. Durch die Entwicklung entlang eines Modells bieten sich, neben der einfachen Wiederverwendung von Services, die direkte Möglichkeit für Verifikationsmethoden mit beispielsweise Model-Checking (gerade dieser Vorteil wird oft unterschätzt; bei "herkömmlicher" Softwareentwicklung sind fehlende Modelle oft ein entscheidender Nachteil!).

Am Lehrstuhl für Programmiersysteme existieren mit dem jABC und weiteren Plugins (wie dem Genesys-Plugin) entwickelte Produkte um Software entlang von Modellen zu erstellen, zu verifizieren, auszuführen, zu testen und zu Code zu generieren.

 

Aspektorientierte Modellierung

Aspektorientierte Modellierung (AOM) verbindet die Vorteile von AOP und MDD und erlaubt so eine Vielfalt an neuen Möglichkeiten um Software zur erstellen.
Abbildung
Abbildung 2: Mögliches Vorgehen bei AOM