Entwicklungswerkzeuge

mbeddr - Embedded-Entwicklung mit erweiterbarem C

| Autor / Redakteur: Bernd Kolb, Markus Völter * / Franz Graser

Verfolgung der Anforderungen (Requirements Tracing)

Neben der eigentlichen Implementierung spielen in vielen Projekten die Erfassung Nachverfolgung von Anforderungen eine wichtige Rolle. Auch hierfür bietet mbeddr Unterstützung. Nachdem die Anforderungen in mbeddr erfasst oder importiert wurden können Traces an beliebigen Programmteilen angebracht werden. Diese Traces werden direkt am jeweiligen Programmelement angezeigt.

Da diese Traces das Programm unübersichtlich machen können und nicht ständig benötigt werden, ist es möglich, deren Anzeige ein- und auszuschalten. Bei einem Kopier-, Lösch- oder Änderungsvorgang werden jedoch selbst bei abgeschalteter Anzeige die Traces entsprechend mit verändert. Dies ist ein wesentlicher Vorteil im Vergleich zu heutigen, meist recht fragilen Ansätzen.

mbeddr bietet die Möglichkeit der Navigation von Traces in beide Richtungen. So wird beispielsweise eine Suche angeboten, mit deren Hilfe es möglich ist, alle Stellen zu finden, die zur Erfüllung eines Requirements beitragen. Natürlich kann auch von dort wieder zurück zur Anforderung navigiert werden. Traces können außerdem typisiert werden. Somit ist beispielsweise eine Unterscheidung zwischen einem Trace zu Testzwecken oder einem Trace zur eigentlichen Implementierung möglich. (Bild 9)

Domänenspezifische Erweiterung – OSEK-Unterstützung

Wie eingangs erwähnt, benutzen wir OSEK als Betriebssystem für unseren Roboter. Um Tasks, Events und weitere Betriebssystemresourcen zu allokieren, müssen diese in einem speziellen Format in einer .oil-Datei vorab bekannt gemacht werden. Im C-Code gibt es zahlreiche Verweise auf Namen, die in dieser Datei vergeben wurden. Um späteren Compilerfehlern vorzubeugen, die durch diese Art von Namenskonventionen entstehen können, haben wir uns für dieses Beispiel entschlossen, den OSEK-Support in mbeddr einzubauen. Dafür wurde die oil-Sprache in mbeddr eingebaut. Diese erlaubt es, den Inhalt von oil-Dateien in mbeddr zu erfassen.

Danach wurden der C-Basissprache neue Sprachkonstrukte hinzugefügt, um bspw. einen OSEK-Task zu implementieren. Hierbei wird direkt die Taskbeschreibung im .oil-File referenziert. Durch die entsprechenden Änderungen wird nun nicht nur Tippfehlern vorgebeugt. Durch das Einführen von Task, Event und Resource als eigener Typ (und nicht der Benutzung des Präprozessors wie sonst in C üblich) werden nun auch Typfehler beim falschen Aufruf von APIs erkannt. Der Nutzer bekommt somit direkt in der IDE Informationen über mögliche Fehler. Der Bau einer derartigen Spracherweiterung lässt sich mit etwas Erfahrung im Umgang in MPS innerhalb einer halben Stunde umsetzen.

Aktueller Stand

mbeddr wird im Rahmen eines KMU Innovativ-Projektes des BMBF unter Beteiligung von itemis, ForTISS und Sick entwickelt. Der Großteil von mbeddr ist Open Source. Es kommt die Eclipse Public License zum Einsatz, die eine gewerbliche Verwendung des Codes erlaubt.

Wir sind derzeit dabei, erste Industrieprojekte mit mbeddr umzusetzen. Dabei haben wir unter anderem viel Arbeit in das Importieren existierender Header-Files gesteckt, so dass eine Integration mit existierenden Bibliotheken leicht möglich ist.

Weitere Informationen zu mbeddr sowie Download-Packages und das Repository finden sich unter http://mbeddr.com sowie dem von dort verlinkten github-Repository.

* Bernd Kolb ist als Softwarearchitekt und Trainer für die itemis AG in Stuttgart tätig. Seine Schwerpunkte sind Eclipse, OSGi und Modellierung.

* Markus Völter arbeitet als freiberuflicher Berater und Coach für die itemis AG in Stuttgart. Seine Schwerpunkte liegen auf Architektur, modellgetriebener Softwareentwicklung und domänenspezifischen Sprachen sowie Produktlinien-Engineering..

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 38022700 / Embedded Software Entwicklungswerkzeuge)