Variabilität im modellbasierten Engineering von eingebetteten Systemen



Ähnliche Dokumente
Product Line Engineering (PLE)

Comparing Software Factories and Software Product Lines

Application Requirements Engineering

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Reporting Services und SharePoint 2010 Teil 1

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Generatives Programmieren

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Kostenstellen verwalten. Tipps & Tricks

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Anleitungen zum KMG- -Konto

1. Zuerst muss der Artikel angelegt werden, damit später die Produktvarianten hinzugefügt werden können.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Bauteilattribute als Sachdaten anzeigen

1. EINLEITUNG 2. GLOBALE GRUPPEN Globale Gruppen anlegen

Installationsanleitung CLX.PayMaker Home

Variantenkonfiguration von Modellbasierter Embedded Automotive Software

Transfer von Prozessen des Software-Produktlinien Engineering in die Elektrik/Elektronik- Architekturentwicklung von Fahrzeugen

1. Einführung. 2. Archivierung alter Datensätze

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Data Lineage goes Traceability - oder was Requirements Engineering von Business Intelligence lernen kann

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mail-Account Unimail mit der Einstellungen für Outlook Express 5.0

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

So richten Sie Ihr Postfach im Mail-Programm Apple Mail ein:

Beschreibung des MAP-Tools

! " # $ " % & Nicki Wruck worldwidewruck

Microsoft SharePoint 2013 Designer

AUF LETZTER SEITE DIESER ANLEITUNG!!!

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Sichern der persönlichen Daten auf einem Windows Computer

Artikel Schnittstelle über CSV

Urlaubsregel in David

Lizenzen auschecken. Was ist zu tun?

Prozessoptimierung. und. Prozessmanagement

icloud nicht neu, aber doch irgendwie anders

Professionelle Seminare im Bereich MS-Office

Software- und Druckerzuweisung Selbstlernmaterialien

Grundlagen Software Engineering

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Hilfe zur Urlaubsplanung und Zeiterfassung

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

Einführung in die Modellierung

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Anbindung Borland CaliberRM

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

2.1 Erstellung einer Gutschrift über den vollen Rechnungsbetrag

IDA ICE - Konvertieren und Importieren von mit TRY_Effekte_aufpraegen.exe erzeugten Datensätzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Print2CAD 2017, 8th Generation. Netzwerkversionen

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Installationsanleitung CLX.PayMaker Office

Anleitung. Einrichten Ihres Postfaches. Mail (Mac OS X)

Anleitung zur Verwendung der VVW-Word-Vorlagen

Windows Server 2012 R2 Essentials & Hyper-V

Beispielhaft MDSD in der Praxis. Dr. Shota Okujava

Anwendungsbeispiele Buchhaltung

TELIS FINANZ Login App

Erstellen von x-y-diagrammen in OpenOffice.calc

Softwareentwicklungspraktikum Sommersemester Grobentwurf

SANDBOXIE konfigurieren

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

YouTube: Video-Untertitel übersetzen

Arbeiten mit UMLed und Delphi

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Wie richten Sie Ihr Web Paket bei Netpage24 ein

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihr vorhandenes PMS-System mit der IAC-BOX verbinden und konfigurieren.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Anwendungsbeispiele Buchhaltung

Durch Doppelklick auf die Zeile der entsprechenden Schnittstelle gelangt man in die Detaileingabe der Schnittstelle.

XT Großhandelsangebote

Carolo Knowledge Base

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Datenübernahme easyjob 3.0 zu easyjob 4.0

IAWWeb PDFManager. - Kurzanleitung -

PSRDesigner. Punkt und Streifenrasterplatinen Designer

Informationswirtschaft II Rational Unified Process (RUP)

tentoinfinity Apps 1.0 EINFÜHRUNG

Informationswirtschaft II

Orderarten im Wertpapierhandel

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Requirements Engineering für IT Systeme

Handbuch B4000+ Preset Manager

Anleitung zur Verwendung der VVW-Word-Vorlagen

etermin Einbindung in Outlook

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Transkript:

Variabilität im modellbasierten Engineering von eingebetteten Systemen Andreas Polzer RWTH Aachen University polzer@embedded.rwth-aachen.de Iris Wangerin RWTH Aachen University wangerin@embedded.rwth-aachen.de Goetz Botterweck Lero, University of Limerick goetz.botteweck@lero.ie Stefan Kowalewski RWTH Aachen University kowalewski@embedded.rwth-aachen.de Abstract: Die modellbasierte Entwicklung eingebetteter Systeme (MBE) mit Hilfe von Werkzeugen wie Simulink ist eine bekannte Vorgehensweise und in der industriellen Praxis weit verbreitet. Wenn diese Vorgehensweise auf eine Menge gleichartiger Systeme angewandt wird, können Ansätze aus der modellbasierten Entwicklung und dem Produktlinien-Engineering kombiniert werden. Dabei stellen sich jedoch Herausforderungen bezüglich der Handhabung von Komplexität und Integration bei bestehenden Werkzeugketten. In diesem Artikel diskutieren wir, wie Konzepte und Techniken für modellgetriebene Software-Entwicklung dazu eingesetzt werden können, um diese Herausforderungen zu bewältigen. Wir präsentieren unseren Ansatz einschließlich Techniken zur Integration von Simulink, Eclipse-basierten Frameworks und Variabilitätsmechanismen für Simulink-Modelle. Wir diskutieren den vorgestellten Ansatz und berichten über erste Erfahrungen aus der Erprobung mit einem autonomen Einparkassistenten sowie einem Rapid-Control-Prototyping System. 1 Einleitung Bei der Entwicklung eingebetteter Systemen müssen die Entwickler immer komplexere Systeme entwerfen und implementieren. Die steigende Komplexität wird unter anderem durch vermehrten Funktionsumfang sowie eine zunehmende Verteilung und Vernetzung einschließlich den dafür notwendigen Kommunikationsmechanismen verursacht. Es werden also Ansätze benötigt, welche die Entwickler dabei unterstützen, auch komplexe Systeme zu beherrschen und gleichzeitig Anforderungen und Qualitätskriterien wie z. B. Performanz und Zuverlässigkeit zu erfüllen. Ein Möglichkeit ist hier die Verwendung von Modellen, mit den einhergehenden Mechanismen zur zweckgerichteten Abstraktion (Konzentration auf das Wesentliche, Ausblenden von Nicht-Relevantem) und zur visuellen Repräsentation, die als Mittel zur Komplexitätsbeherrschung eingesetzt werden können. So ist inzwischen die modellbasierte Entwicklung mit Werkzeugen wie Matlab / Simulink in der industriellen Praxis weit verbreitet. Sollen nun ganze Familien von ähnlichen Systemen entwickelt werden, ist eine systematische Vorgehensweise, welche die Gemeinsamkeiten, aber auch die Unterschiede der

Systeme berücksichtigt, vorteilhaft [Par76]. Hier erscheint es sinnvoll, Ansätze der modellbasierten Entwicklung eingebetteter Systeme auf der einen Seite und Ansätze aus dem Produktlinien-Engineering (PLE) zu kombinieren. Daher stellen sich, nach unserer Ansicht, folgende Herausforderungen: Integration Die etablierten Sprachen der modellbasierten Entwicklung eingebetteter Systeme müssen mit den Mechanismen des PLE (Variabilität, Produktableitung) integriert werden. Dabei sollen bewährte MBE-Verfahren (z.b. Simulation, Codegenerierung und -optimierung) anwendbar bleiben. Zusätzliche Komplexität durch Variabilität Durch die Einführung von Variabilität steigt wieder die Komplexität. Wenn beispielsweise ein Regelungssystem in verschiedenen Produkten mit unterschiedlichen Sensoren verwendet wird, muss die steuernde Software zahlreiche Varianten und Spezialfälle berücksichtigen und wird dadurch komplexer. Konsistenz trotz Variabilität Ein entwickeltes Produkt und die darin enthaltene Software wird durch eine Vielzahl von Artefakten (z. B. Modellen, Tests oder Codefragmenten) beschrieben. Werden nun bei der Produktableitung Variabilitätsentscheidungen getroffen, beeinflusst dies unter Umständen zahlreiche Artefakte, die durch Abhängigkeiten miteinander verbunden sind. Trotzdem sollen, im Sinne einer systematischen Vorgehensweise, alle produktrelevanten Artefakte konsistent (miteinander) bleiben. Zur Beantwortung dieser Herausforderungen diskutieren wir, wie bekannte Verfahren der modellbasierten Entwicklung eingebetteter Systeme mit Ansätzen aus dem Produktlinien- Engineering kombiniert werden können. Unser Ansatz basiert auf einer Integration von Simulink und Eclipse-basierten Frameworks. Dies ermöglicht uns (1) die Überführung eines Simulink-Modells in die Eclipse-Welt (2) die Anwendung von vorhandenen Mechanismen (z. B. zur Realisierung von Variabilität und Produktableitung) und (3) die Rücktransformation zur Erzeugung eines nativen Simulink-Modells. Wir diskutieren den vorgestellten Ansatz und berichten über erste Erfahrungen aus der Erprobung mit einem autonomen Einparkassistenten sowie einem Rapid-Control-Prototyping System. 2 Grundlagen Ziel des (Software-) Produktlinien-Engineerings (PLE) ist es, mit einem Minimum an technischer Varianz die spezifischen Anforderungen jedes einzelnen Anwenders bzw. Produktes zu erfüllen. Dabei wird auf eine strategische Wiederverwendung (im Gegensatz zu einer opportunistischen) gezielt. Bei PLE Ansätzen werden die Aktivitäten häufig in zwei Bereiche unterteilt, vergleiche Abbildung 1. So unterscheiden Pohl et al. [PBvdL05] in Domänenentwicklung (engl. Domain Engineering, Entwicklung der Produktlinie) und Applikationsentwicklung (engl. Application Engineering, Ableitung des Produkts). Ähnlich identifizieren Clements und Northrop [CN02] Core Asset Development und Product Development und ergänzen zusätzlich das Management als separaten Aktivitätsbereich. In der Domänenentwicklung werden zweierlei Artefakte erstellt: Erstens ein Modell, wel-

Features Implementierung Domänenentwicklung Anforderungen an die Produktlinie Featureanalyse Featuremodell Feature Implementation Implementierte Produktlinienkomponenten Applikationsentwicklung Anforderungen an das Produkt Featurekonfiguration Produktkonfiguration Produktableitung Produkt Abbildung 1: Software-Produktlinien-Engineering ches die potentiellen Wahlmöglichkeiten und Variabilität für Produkte beschreibt (z. B. ein Feature-Modell oder ein Variabilitätsmodell) und zweitens die eigentliche Implementation der Produktlinie (z. B. durch Software-Komponenten und eine Architektur, welche diese Komponenten in Beziehung gesetzt). In der Applikationsentwicklung wird auf Grundlage der Anforderungen an das Produkt zunächst entschieden, welche Merkmale gewünscht sind und entsprechende Variabilitätsentscheidungen getroffen. Mit Hilfe der so entstandenen Konfiguration wird aus den Produktlinien-Komponenten ein entsprechendes Produkt abgeleitet. Je nach Ansatz können dabei unterschiedliche Strategien zur Anwendung kommen (z. B. Codegenerierung, Assemblierung vom Komponenten oder selektives Entfernen von Elementen). 3 Ansatz Im Folgenden werden wir unseren Ansatz zur modellbasierten Ableitung von Produktlinien mit Hilfe von Eclipse-basierten Frameworks vorstellen. Als Grundlage dient der in Abbildung 2 dargestellte Prozess. Grundlage für die Beschreibung und Verarbeitung der notwendigen Modelle sind Sprachen. Diese sind teilweise durch das Framework vorgegeben (Features, Mappings). Zusätzlich dazu haben wir mit Hilfe einer Grammatik für unseren Ansatz eine Sprache SL beschrieben. Mittels des aus der Grammatik generierten Parsers sind wir in der Lage, Instanzen der proprietären Sprache von Simulink zu lesen und weiterzuverarbeiten. In der Domänenentwickung wird zunächst im Rahmen der Featureanalyse ein Featuremodell erstellt und dann in weiteren Prozessschritten - implementiert und mit der Implementation verknüpft.

Features Mapping Implementierung DSLs (als EMF Modell) Textuelle DSL Applikationsentwicklung Domänenentwicklung Sprache Product Line Requirements Produkt Anforderungen Feature Metamodell 1 A d B Mappingmodell Mapping Metamodell 4 6 Produktableitung SL Metamodell C d Domain Simulinkmodell (*.sl) Featuremodell A a Featurekonfiguration 5 Featurekonfiguration Featureanalyse C a Applikations Simulinkmodell (*.sl) 3 mdl2sl Transformation 7 sl2mdl Generator Simulink 2 Feature Implementation D d Domain Simulinkmodell (*.mdl) D a Applikations Simulinkmodell (*.mdl) Featuremapping 8 Codegenerierung Legende Instanz von Datenfluss Prozess Artefakt ausführbares Programm Abbildung 2: Schematische Darstellung der modellbasierten Produktableitung Die Applikationsentwicklung beginnt mit dem Prozess der Konfiguration der eine Featurekonfiguration liefert, welche das gewünschte Produkt spezifiziert. Die eigentliche a Produktableitung findet im C-förmigen Datenfluss (Prozesse, und ) statt: Die Implementation der Features wird zunächst durch das Domain Simulinkmodell (D d) beschrieben. Die Transformation überführt das Modell aus der proprietären Simulink-Sprache in ein äquivalentes SL-Modell C d. Dieses wird dann, entsprechend den Angaben in der Konfiguration und dem Mapping-Modell, in ein produktspezifisches Applikationsmodell a C a abgeleitet. Zum Abschluss lässt die Transformation daraus wieder ein Matlab / Simulink konformes Modell D a entstehen. 3.1 Integration von Simulink und Eclipse-basierten Frameworks Um die Transformationen vom variantenreichen Simulinkmodell in ein produktspezifisches Simulinkmodell durchzuführen verwenden wir Mechanismen aus Eclipse-basierten Frameworks, insbesondere dem Eclipse Modeling Framework (EMF) und openarchitectureware (oaw).

oaw Xtext ermöglicht die Definition einer textuellen domänenspezifischen Sprache (DSL). Wir nutzen diesen Mechanismus um eine Grammatik für die proprietäre Sprache zu definieren, in der Simulink-Modelle gespeichert werden. Auf dieser Grundlage können dann folgende Artefakte generiert bzw. Mechanismen verwendet werden: Ecore Metamodell Aus der Grammatik wird automatisch auch ein Ecore-Metamodell erzeugt, welches wiederum in anderen EMF-Mechanismen eingesetzt werden kann. Editoren Es werden Editoren für Simulink-Modelle abgeleitet. Diese bieten viele Funktionen professioneller Editoren, wie Syntax Highlighting, Code Completion oder einen Strukturüberblick. Import/Export durch die Grammatik und das Metamodell ist es möglich, ein Simulink- Modell aus dem proprietären Simulinkformat in eine Repräsentation innerhalb der Eclipse-Welt zu überführen und so für die Anwendung diverser EMF-basierter Mechanismen zu öffnen. Ebenso ist eine Rücktransformation zur (Neu-) Erzeugung eines nativen Simulink-Modells möglich. Modelltransformationen Sind die Simulink-Modell erstmal in ein EMF-Modell überführt können diverse Mechanismen angewendet werden. Beispielsweise können wir eine Modelltransformationen verwenden, um Elemente hinzuzufügen oder zu manipulieren. Diese Komponenten sind wichtige Grundlage für unseren Ansatz. Herzstück für die Produktableitung ist jedoch die Anwendung der Konfigurationsentscheidungen auf das Simulink-Modell. Den dafür verwendeten Mechanismus werden wir im folgenden Abschnitt diskutieren. 3.2 Negative Variabilität durch Modelltransformation (Xvar) Ein möglicher Ansatz zur Transformation einer variantenreichen Implementierung einer Produktlinie in ein Produkt ist negative Variabilität [VG07]. Ausgehend von einem Modell, dass alle möglichen Implementierungen enthält, wird durch Löschen bestimmter Teile das fertige Produkt abgeleitet. Entscheidung, welche Elemente entfernt werden müssen basiert dabei auf einer Konfiguration, welche die gewünschten Features festlegt. In unserem Ansatz wird die Produktlinie durch ein Simulink-Modell repräsentiert, welches alle Varianten vereint (150%-Modell). Die verschiedenen Feature werden durch Blöcke innerhalb des Modells implementiert. Alternative Features werden mit einen Switch-Block verbunden, der den entsprechenden Ausgang wählt. Optionale Features, die ohne Alternative im Produkt vorhanden sein können, werden gegebenenfalls ohne Ersatz gelöscht. Mittels oaw Xvar haben wir diese Löschung von Blöcken im Simulink-Modell realisiert. Dazu ist es notwendig, eine Konfiguration als pure::variants Variantenmodell oder als einfache Textdatei zu erstellen. Die Zuordnung der dort gewählten Features zu den entsprechenden Elementen im Simulink-Modell erfolgt durch ein weiteres Modell (Mappingoder auch Dependency-Modell).

Abbildung 3: Modell des autonomen Einparkassistenten Bei normaler Vorgehensweise referenzieren diese Mappings auf einzelne Instanzen von Simulink-Elementen. Das Erstellen dieser Mappings kann sich aber als sehr aufwendig herausstellen. Um eine Vereinfachung dieser Vorgehensweise zu erreichen, haben wir auch mit Mechanismen experimentiert, die Feature nicht einzelnen Instanzen, sondern Gruppen oder Typen von Simulink-Elementen zuordnen. Beispielsweise können auf diese Weise alle Scope oder Display Blöcke im Produkt belassen oder entfernt werden, um eine Debugfunktion zu aktivieren oder zu entfernen. 4 Anwendungsbeispiel Der im Kapitel 3 vorgestellte Ansatz wurde am Beispiel eines modellbasiert entwickelten Einparkassistenten umgesetzt. Der Assistent wurde mit dem Modellierungs- und Simulationswerkzeug Matlab/Simulink entwickelt und enthält die notwendige Anbindung an Sensoren und Aktuatoren, ein Modell des Assistenten realisiert im Werkzeug Stateflow und ein Modell der Strecke zur Simulation (siehe Abblidung 3). Das Modell ist hierarchisch aufgebaut und enthält auf verschiedenen Ebenen Scope- Blöcke um das Modellverhalten während der Simulation überprüfen zu können. Während der Simulation kann das Modell mit einem Eingabegerät beeinflusst werden. Das Streckenmodell (Plant) simuliert eine Umgebung mit Parklücken. Die Simulation beschränkt sich auf die Länge der Parklücke. Das Modell wird mit Hilfe des Werkzeugs XText in eine xmi-datei umgewandelt. Dazu wurde eine Grammatik entwickelt, die zwischen allgemeinen Blöcken, Subsystemen und Debug-Blöcken unterscheidet. Diese Grammatik dient als Eingabe um eine Transformation von einer Simulink Datei.mdl nach der.xmi zu definieren. Zusätzlich wird noch ein Metamodell generiert, welches in Form einer ecore-datei abgespeichert wird. Um Variabilität im xmi-modell zu binden und damit einen konkreten Einparkassistenen abzuleiten wird das Werkzeug xvar verwendet. Diese Werkzeug transformiert eine xmi-

Datei in eine angepasste xmi-datei, aufgrund von Verknüpfungen zwischen ausgewählten Feature und Implementierungselementen. Ein Metamodell definiert die Verknüpfung als ein Element eines Dependency-Modells, das ein modelelements und einem feature enthält. Das modelelements wird in dem xmi-implentierungsmodell bestimmt und dient zur Identifizierung von Simulinkblöcken (repräsentiert der xmi-datei). Das feature wird als Zeichenkette (Name) hinterlegt. Die Steuerung der Produktableitung erfolgt über eine Konfigurationsdatei. Diese enthält den Featurename und ein Steuerzeichen, das kennzeichnet, ob ein Feature aktiviert ist (z. B.: FeatureName + ). Die Rücktransformation erfolgt mit dem Werkzeug xpand. Als Eingabe wird ein beliebiges xmi-modell verwendet, dass dem ecore Metamodell entspricht. Die einzelnen Elemente des Modells werden regelbasiert wieder in Elemente eines Simulinkmodells übersetzt und in einer Datei gespeichert. 5 Related Work In früheren Arbeiten [PKB09] haben sich die Autoren bereits mit Variabilitätsmanagement im Zusammenhang mit dem modellbasierten Entwurf von eingebetteten Systemen beschäftigt. Der dortige Ansatz fokussiert spezielle Techniken für die Handhabung von Variabilität in mikrocontroller-basierten Regelungssysteme und verwendet Mechanismen des kommerziellen Werkzeugs pure::variants [Pur]. Im Gegensatz dazu zielt der hier vorgestellte Ansatz auf die Verwendung von Open-Source-Frameworks. Völter und Groher [VG07] nutzen aspektorientierte und modellgetriebene Techniken, um Produkte abzuleiten. Sie verwenden, ähnlich wie der hier vorgestellte Ansatz, Mechanismen von openarchitectureware [ope] und demonstrieren dies anhand einer Beispiel-SPL von Smart Home Anwendungen. Bei der Handhabung von Variabilität in Modellen und domänen-spezifischen Sprachen, ist eine wichtige Herausforderung die Zuordnung von Features (bzw. Variationspunkten) zu den entsprechenden Elementen in den Implementationsartefakten (z. B. Teilen eines Modells oder Codefragmenten). Czarnecki und Antkiewicz [CA05] benutzen dazu Modelltemplates, bei denen Filterregeln für Modellelemente mit Hilfe von OCL beschrieben werden. In früheren Arbeiten haben die Autoren dieses Beitrags [BLT09, BOT07] Modelltransformationen in ATL [EFa] genutzt, um ähnliche Zuordnungen zu realisieren. FeatureMapper [HKW08] erlaubt die Zuordnung von Features zu beliebigen EMF-basierten Modellen [EFb]. Kästner et al. [KAK08] verwenden, um Codefragmente entsprechende ihrer Zuordnung zu Features entsprechend einzufärben. 6 Diskussion Der in diesem Bericht vorgestellte Ansatz kombiniert Verfahren aus den Bereichen Produktlinien und modellgetriebene Software-Entwicklung zur Entwicklung eingebetteter

Systeme. Ziel ist es, (1) die modellbasierte Entwicklung eingebetteter Systeme um Mechanismen für Variabilität zu erweitern und (2) Grundlagen für eine gleichzeitige Komplexitätsbeherrschung zu legen. Die Umsetzung der Produktlinienmechanismen erfolgt auf Grundlage des Eclipse Modeling Frameworks (EMF) [EFb] sowie openarchitectureware (oaw) [ope]. Mit Hilfe dieser Frameworks wurde eine Grammatik implementiert, die es erlaubt, die proprietäre Sprache der Simulink-Modelle in ein EMF-Modell umzuwandeln. Das dabei zusätzlich generierte Metamodell dient weiteren Werkzeugen als Grundlage, z. B. bei der Umsetzung von Variabilitätsmechanismen und der Rücktransformation in Simulink-Modelle. Der gezeigte Ansatz wurde an einem modellbasierten autonomen Einparkassistenten getestet. Das zugehörige Simulink-Modell besteht aus 10.000 Zeilen Quelltext und wurde mit Subsystemen und Busstrukturen modelliert. Der Einparkvorgang ist mittels eines Stateflow-Automaten umgesetzt, der eine feste Trajektorie abfährt und diese dynamisch an die Umgebung anpasst. Ein Versuchsträger kann mit diesem Modell autonom einparken. Bei unserem Vorgehen hat sich gezeigt, dass man durch die Transformation von Matlab / Simulink-Modellen in ein offenes Modell einfache Transformationsmechanismen verwenden kann, um Variabilitätsmechnismen bei eingebetteten Systemen zu realisieren. Durch die Definition von Grammatiken für verschiedene Sprachen ist es möglich, die Mechanismen konsistent auf alle Modelle anzuwenden. Dies ist notwendig, da bei der modellbasierten Entwicklung eingebetteter Systeme fast immer eine Werkzeugkette eingesetzt wird, die Informationen und Fragmente aus verschiedenen Quellen zur lauffähigen Implementation zusammensetzt. Eine konsistente Anwendung der Variabilitätsmechanismen (gleichzeitige Beeinflussung von Simulink-Modell, Schnittstellenbeschreibung und Dokumentation) haben wir bereits in früheren Arbeiten [PKB09] zeigen können. Als weitere Vorteil hat sich gezeigt, dass durch geeignete Beeinflussung des Metamodells die Verknüpfung von Feature und Implementierung vereinfacht werden kann. So können etwa Variabilitätsmechanismen alle Instanzen eines Typs von Blöcken beeinflussen, z. B. um alle Debugblöcken zu entfernen. Die Beschränkungen des Ansatzes sehen wir in der noch unzureichenden Unterstützung der Entwicklung von Produktlinien durch die verwendeten Werkzeuge. So ist etwa eine direkte Integration unseres Ansatzes in das Modellierungswerkzeug bisher nicht vorgesehen, so dass eine gleichzeitige Beeinflussung von Simulink-Modellen durch Matlab / Simulink und das Variantenmanagementframework nicht möglich ist. Weiterhin haben wir beim Entwurf der Grammatik eine Abwägung zwischen Wiederverwendbarkeit und semantischem Niveau zu treffen. Entweder wir nutzen allgemeine Konzepte (System, Block) oder spezifischere Konzepte auf einem höheren semantischen Niveau (Oszilloskop). Im ersteren Fall ist die Wahrscheinlichkeit höher, dass die Grammatik auch noch mit der nächsten Simulink-Version funktioniert. Im zweiten Fall sind mächtigere Operationen möglich, da auf spezifischere Konzepte referenziert werden kann. Durch die Integration von Simulink und EMF/oAW können nun weitere Mechanismen auf Simulink angewendet werden. Diese Möglichkeiten werden wir in weiteren Arbeiten weiter ausloten. Dazu gehören beispielsweise Verfahren zur automatischen Prüfung der Modellstruktur, zur Beeinflussung von Schnittstellen und zur einfacheren Verknüpfung

von Features und Implementation. Auf Grundlage von Erfahrungen in anderen Projekten, sehen für diese Mechanismen Potential bei Modellen, die viele Eingänge und Ausgänge haben, welche der Produktkonfiguration beeinflusst werden. In diesem Bereich rechnen wir damit, dass sich durch die Anwendung der genannten Mechanismen die Qualität eines Produktes und der Aufwand für die Produktableitung günstig beeinflussen lassen. Literatur [BLT09] [BOT07] [CA05] [CN02] Goetz Botterweck, Kwanwoo Lee und Steffen Thiel. Automating Product Derivation in Software Product Line Engineering. In Proceedings of Software Engineering 2009 (SE09), Kaiserslautern, Germany, March 2009. Goetz Botterweck, Liam O Brien und Steffen Thiel. Model-driven Derivation of Product Architectures. In Proceedings of ASE 2007, Seiten 469 472, Atlanta, GA, USA, 2007. Krzysztof Czarnecki und Michal Antkiewicz. Mapping Features to Models: A Template Approach Based on Superimposed Variants. In GPCE 05, 2005. Paul Clements und Linda M. Northrop. Software Product Lines: Practices and Patterns. The SEI series in software engineering. Addison-Wesley, Boston, MA, USA, 2002. [EFa] Eclipse-Foundation. ATL (ATLAS Transformation Language). http://www. eclipse.org/m2m/atl/. [EFb] Eclipse-Foundation. EMF - Eclipse Modelling Framework. http://www. eclipse.org/modeling/emf/. [HKW08] [KAK08] Florian Heidenreich, Jan Kopcsek und Christian Wende. FeatureMapper: mapping features to models. In ICSE Companion 08: Companion of the 13th international conference on Software engineering, Seiten 943 944, New York, NY, USA, 2008. ACM. Christian Kästner, Sven Apel und Martin Kuhlemann. Granularity in Software Product Lines. In Proceedings of the 30th International Conference on Software Engineering (ICSE), Seiten 311 320, New York, NY, USA, Mai 2008. ACM. [ope] openarchitectureware.org - Official Open Architecture Ware Homepage. http:// www.openarchitectureware.org/. [Par76] D. Parnas. On the Design and Development of Program Families. IEEE Transactions on Software Engineering, SE-2(1):1 9, March 1976. [PBvdL05] Klaus Pohl, Guenter Boeckle und Frank van der Linden. Software Product Line Engineering : Foundations, Principles, and Techniques. Springer, New York, NY, 2005. [PKB09] [Pur] [VG07] Andreas Polzer, Stefan Kowalewski und Goetz Botterweck. Applying Software Product Line Techniques in Model-based Embedded Systems Engineering. In MOMPES 2009, Workshop at ICSE 2009, Vancouver, Canada, May 2009. Pure::systems. pure::variants Connector for Simulink. http://www.mathworks. com/products/connections/product_main.html?prod_id=732. Markus Voelter und Iris Groher. Product Line Implementation using Aspect-Oriented and Model-Driven Software Development. In SPLC 2007, Kyoto, Japan, September 2007.