Lastenheft (Universität Paderborn, Softwaretechnikpraktikum SS 2006) Projekt: Auftraggeber: Integration mehrerer Plugins in eine Entwurfsumgebung für verteilte eingebettete Systeme Universität Paderborn Institut für Informatik Fachgebiet Softwaretechnik Herr Juniorprofessor Dr. Holger Giese Warburger Straße 100 33098 Paderborn sp2006@zitmail.uni-paderborn.de Auftragnehmer: Softwaretechnikpraktikum 2006 Gruppe 16 Raum N3.237 (donnerstags 11:00 12:30 Uhr) Warburger Straße 100 33098 Paderborn swtpra16@uni-paderborn.de Ansprechpartner: Herr Lars Kasper, kasper@upb.de Version Datum Autor(en) 1 1.1 2006-05-11 SwtPra16 370 2006-05-15 SwtPra16 371 2006-05-15 SwtPra16 372 2006-05-15 SwtPra16 381 2006-05-16 SwtPra16 382 2006-05-16 SwtPra16 390 2006-05-17 SwtPra16 393 2006-05-17 SwtPra16 401 2006-05-18 SwtPra16 434 2006-05-20 SwtPra16 439 2006-05-21 SwtPra16 1 SwtPra16: Sebastian Elsner, Nicolai Hähnle, Kai Michael Hamich, Lars Kasper, Alexander Klass, Peter Kling, Tobias Knieper, Jannis Weide
1 Zielbestimmung Verteilte eingebettete Systeme werden zunehmend in der Automobilbranche genutzt, um in Autos intelligentes Verhalten einzubauen, zum Beispiel zur (computerisierten und automatischen) Steuerung von Fensterscheiben und Türschlössern. Zum Testen dieser Steuerungssysteme, deren Komplexität immer weiter zunimmt, benötigen ihre Entwickler entsprechende Software-Werkzeuge. Dazu existieren drei Plugins, die in diesem Projekt zu einer Entwurfsumgebung integriert werden sollen: Ein Komponenteneditor ermöglicht es dem Entwickler, Komponenten zu erstellen. Mit dem Verteilungseditor können Verbindungen zwischen ihnen eingerichtet werden, um sie miteinander kommunizieren lassen zu können. In diesen Editoren ist es möglich, neue Bauteile einzufügen oder bestehende Bauteile zu verändern oder zu entfernen. Das Diagnosewerkzeug ermöglicht dem Entwickler, das Verhalten seines Systems zu untersuchen. Unser Ziel ist die Entwicklung und Vermarktung einer solchen integrierten Entwurfsumgebung, die es dem Entwickler ermöglicht, beliebig viele Verteilungen und Komponentenmodelle zu erstellen, diese zu bearbeiten und gezielt zu testen. Die Zielgruppe dieses Projektes umfasst erfahrene Entwickler von eingebetteten Systemen, beispielsweise Ingenieure aus der Automobilbranche. 2 Produkteinsatz Ein verteiltes eingebettetes System besteht aus einer Vielzahl von Komponenten. Es gibt drei Arten von Komponenten: Sensoren empfangen Daten aus der Umwelt, zum Beispiel ob eine Tür geöffnet wird. Aktoren wirken auf die Umwelt des Systems ein; so kann ein Aktor beispielsweise für das Ver- und Entriegeln eines Schlosses zuständig sein, oder für das Licht im Innenraum. Andere Komponenten enthalten die eigentliche Intelligenz des Systems in Form von Zustandsmaschinen. Komponenten können über mehrere Ports verfügen. So können sie mit anderen Komponenten via Nachrichten interagieren. Zum Beispiel könnte ein Sensor registrieren, dass die Fahrertür geöffnet wurde und eine entsprechende Nachricht verschicken. Eine dafür vorgesehene Komponente empfängt diese Nachricht und entscheidet daraufhin, dass das Licht im Innenraum angeschaltet werden soll. Dazu schickt sie ihrerseits wieder eine Nachricht an einen Aktor, der diese Entscheidung realisieren soll. Diese Kommunikation spielt sich lokal in Knoten und über größere Entfernungen auf Bussen ab. Nachrichten, die über Busse versendet werden sollen, werden in Nachrichtenpuffern gespeichert. Dann werden diese basierend auf ihren Prioritäten eingeordnet und verschickt. Universität Paderborn, Softwaretechnikpraktikum SS 2006 2
Um solch ein eingebettetes System zu entwerfen, definiert der Entwickler in einem Komponenteneditor die benötigten Komponenten mit ihrem Verhalten in Form von Zustandsmaschinen und Schnittstellen zum Nachrichtenaustausch mit anderen Komponenten. In einem Verteilungseditor wird die Netzwerkstruktur angelegt: Konkrete Instanzen von Komponenten werden in Knoten (welche die Embedded Control Units darstellen) angeordnet und diese über Busse verbunden, um sie miteinander kommunizieren lassen zu können. Das so entworfene System muß auf Funktionsfähigkeit getestet werden können, wofür ein Diagnosewerkzeug verwendet wird, welches Simulationen visualisiert. Es werden zeitliche Veränderungen im System veranschaulicht, aktuelle Zustände der Komponenten angezeigt oder eigene Nachrichten zu Testzwecken in das System eingeschleust. Das Diagnosewerkzeug ist für die Steuerung der Simulation verantwortlich: Von einem einzigen Simulationsschritt bis zum Eintritt gewisser Bedingungen, die vom Entwickler über Watchdogs zur Überwachung von Komponenten oder Bussen festgelegt werden. Die Simulation selbst gliedert sich in zwei Teile: Die SystemSimulation simuliert das Verhalten der Komponenten sowie den Austausch von Nachrichten über Knoten und Bussen. Die EnvironmentSimulation (Umweltsimulation) simuliert die Umgebung des Systems, indem sie aus dem Verhalten der Aktoren neue Eingabewerte für die Sensoren berechnet. Beide Teile werden nacheinander in einem Simulationsschritt ausgeführt und die Ergebnisse einzelner Simulationsschritte werden im Diagnosewerkzeug angezeigt. Alle diese Möglichkeiten stellt die integrierte Entwurfsumgebung zur Verfügung. 3 Produktfunktionen 3.1 Use-Case-Diagramm Abbildung 1 auf Seite 4 zeigt die vier übergreifenden Anwendungsfälle der integrierten Entwicklungsumgebung. Um mit Komponenten- und Verteilungseditor sowie Diagnosewerkzeug arbeiten zu können, muß zuvor ein entsprechendes Projekt angelegt werden. Beschreibung zu 001: Projekt anlegen Der Entwickler legt ein neues Projekt an, in welchem dann Komponenten und deren Verteilung eingerichtet sowie die Diagnose dieses Entwurfs eines eingebetteten Systems vorgenommen werden kann. Beschreibung zu 002: Komponenten bearbeiten Der Entwickler kann in der integrierten Entwurfsumgebung den Komponenteneditor verwenden, um ein neues Komponentendiagramm zu erstellen bzw. ein bereits vorhandenes zu verändern. Dazu gehören Komponenten mit ihren Schnittstellen und Zuständen. Mehr Informationen dazu in der Dokumentation des Komponenteneditor-Plugins. Universität Paderborn, Softwaretechnikpraktikum SS 2006 3
Abbildung 1: Use-Case-Diagramm mit den übergreifenden Produktfunktionen Der Entwickler kann dieses Komponentendiagramm im Verteilungseditor bearbeiten und anschließend im Diagnosewerkzeug testen. Beschreibung zu 003: Verteilung bearbeiten Der Entwickler kann in der integrierten Entwurfsumgebung den Verteilungseditor verwenden, um ein neues Verteilungsdiagramm zu erstellen bzw. ein bereits vorhandenes zu verändern. Dazu werden beispielsweise Komponenten in Knoten zusammengefaßt, die wiederum über Busse miteinander verbunden werden. Mehr Informationen dazu in der Dokumentation des Verteilungseditor-Plugins. Der Entwickler kann dieses Verteilungsdiagramm im Diagnosewerkzeug testen. Bei Bedarf kann er wieder in den Komponenteneditor zurückkehren, um das Komponentendiagramm zu verändern. Beschreibung zu 004: Diagnose durchführen Der Entwickler kann in der integrierten Entwurfsumgebung das Diagnosewerkzeug verwenden, um ein vorhandenes Verteilungsdiagramm zu testen. Dazu stehen mehrere Beobachtungs- und Simulationsmöglichkeiten zur Verfügung. Man kann einen oder mehrere Schritte simulieren oder die Simulation ausführen, bis ein gewisser Zustand eintritt oder alle Komponenten ihre Endzustände erreicht haben. Mehr Informationen dazu in der Dokumentation des Diagnosewerkzeug-Plugins. Bei Bedarf kann der Entwickler wieder in den Komponenteneditor oder Verteilungseditor zurückkehren und das Komponentendiagramm bzw. Verteilungsdiagramm verändern. Universität Paderborn, Softwaretechnikpraktikum SS 2006 4
4 Produktdaten Die integrierte Entwurfsumgebung arbeitet auf drei Modellen bzw. Dateitypen. Eine cbm-datei (ComponentBehaviorModel) enthält Daten des Komponenteneditors, die ndm-datei (NetworkDeploymentModel) Informationen für den Verteilungseditor und in einer sdm-datei (SimulationDiagnosisModel) werden Informationen des Diagnosewerkzeugs abgelegt. 5 Produktcharakteristiken 5.1 Systemumgebung 5.1.1 Hardwareumgebung Wir empfehlen aus unserer Erfahrung mit Eclipse als Mindestplattform einen Pentium- III-kompatiblen Prozessor oder PowerPC G4 mit 1 Gigahertz Taktfrequenz, 1 Gigabyte Arbeitsspeicher, 1 Gigabyte freiem Festplattenspeicher, einer Bildschirmauflösung von 1280 960 Pixeln sowie Tastatur und Maus (oder äquivalente Eingabegeräte). Diese Anforderungen können sich noch ändern, da wir zwei zu integrierende Plugins Komponenten- und Verteilungseditor noch nicht vorliegen haben. 5.1.2 Softwareumgebung Wir setzen als installierte Software voraus: Java Runtime Environment, Version 1.4.2 Eclipse SDK 3.1.2 Graphical Editing Framework (GEF) 3.1.1 Eclipse Modeling Framework (EMF) 2.1.2 Universität Paderborn, Softwaretechnikpraktikum SS 2006 5
5.2 Nicht-funktionale Anforderungen Name: Typ: Beschreibung: Zugeordnete(r) Use Case(s): Name: Typ: Beschreibung: Zugeordnete(r) Use Case(s): Internationalisierung Pflege Die Umgebung lässt sich einfach in deutsche Sprache übersetzen. Alle Übersichtliche Oberfläche Use Die Oberflachen vom Komponenteneditor, Verteilungseditor und Diagnosewerkzeug sind übersichtlich und einfach zu bedienen. Alle Universität Paderborn, Softwaretechnikpraktikum SS 2006 6