Technische Universität München Robotics and Embedded Systems
 

Entwicklung domänenspezifischer Werkzeuge für eingebettete Systeme / Development of Domain Specific Tools for Embedded Systems

 
Veranstalter / Organizer Dipl.-Inf. Gerd Kainz
Modul IN2106 IN8903
Typ / Type Praktikum / Lab Course
Semester SS 2011
ECTS 10.0
SWS 6
Sprache / Language Deutsch oder englisch nach Bedarf / German or English as needed
Vorbesprechung / Preliminar Meeting Bei eventuelle Fragen können Sie sich an Herrn Kainz (kainz@fortiss.org) wenden! / In case of any question contact Mr. Kainz (kainz@fortiss.org)!
Zeit & Ort / Time & Place Do / Thurs. 16:15 - 18:00 MI 03.05.012 (Beginn 5.5.2011)
Schein / Certificate Erfolgreiche Lösung aller Praktikumsaufgaben / Successful solutions for all exercises

Anmeldung / Registration

Aktuelles / News

Beschreibung / Description

Die Bedeutung von eingebetteten Systemen für unser tägliches Leben nimmt ständig zu. Immer mehr Geräte besitzen heutzutage bereits einen oder mehrere Mikrocontroller, die für die Umsetzung der Gerätefunktionalität verwendet werden. In zunehmender Weise ersetzen Mikrocontroller einstmals mechanische, hydraulische oder elektrische Komponenten unzähliger Systeme. Während früher viele Funktionen durch ausgeklügelte Steuerungen realisiert wurden, kommen heutzutage für diese in stark wachsendem Masse Softwarelösungen zum Einsatz. Dadurch kommt es zu einer Verlagerung der Komplexität bei der Entwicklung dieser Systeme weg von der Hardware und hin zur Software. The importance of embedded systems for our live is steadily growing. More and more devices contain nowadays one or more microcontrollers, which are used to realise the functionality. In a lot of systems former mechanical, hydraulic or electrical components are replaced by microcontrollers, which realise the component functionality via software. Thereby the complexity of the systems is moving from hardware to software.

Diverse Mikrocontroller-(Entwicklungs-)Boards
Diverse Mikrocontroller-(Entwicklungs-)Boards
Various microcontroller (development) boards

Im Softwarebereich wird es ständig schwieriger mit der steigenden Komplexität umzugehen. Mehr und mehr Aufwand ist erforderlich, um die Komplexität der zu entwickelnden Systeme angemessen zu beherrschen. Vor allem bei den eingebetteten Systemen sind damit hohe Kosten verbunden. Bedingt durch die limitierte Rechen- und Speicherfähigkeit der Systeme ist eine ressourcensparende Implementierung der Anwendung notwendig. Deshalb scheiden viele der üblicherweise verwendeten Entwicklungsansätze aus. Stattdessen wird der Großteil der eingebetteten Systeme durch mühsame und zeitintensive Einzelimplementierungen umgesetzt und das obwohl viele Systeme einen ähnlichen Aufbau besitzen. Die hohen Anforderungen an den Ressourcenverbrauch verhindern außerdem die Wiederverwendung bereits realisierter Komponenten in gleichartigen Anwendungen oder erfordern zusätzliche Anpassungen an die neuen Anwendungsanforderungen. The increasing complexity of software is getting harder and harder to master and results in much more work to construct the software. Particularly for embedded systems this means much higher development costs. Due to the restricted resources of embedded systems, most of the normal development approaches are inadequate. So most of the embedded systems are constructed each time from scratch, even if they share some common parts in their structure and functionality. The restricted resources also prevent the reuse of already existing components or require a special adaption to the new needs.

Zur Unterstützung der Programmierer während des Entwicklungsprozesses werden zunehmend modellbasierte Ansätze verwendet. Diese zielen vor allem auf eine Reduktion der Komplexität des Entwicklungsprozesses und eine Erhöhung der Wiederverwendung ab. Dadurch lässt sich einerseits die Qualität der erstellten Anwendungen verbessern. Auf der anderen Seite kann mittels Erhöhung der Wiederverwendung die Entwicklungszeit stark verkürzt werden. Model-driven approaches are used to support the developer during the development process. Thereby the complexity of the development process can be reduced and reuse of existing code is enforced. In addition, the development process can be accelerated and the quality of the generated code can be improved.

Modellgetriebene Softwareentwicklung
Modellgetriebene Softwareentwicklung
Model driven software development

Im Zentrum modellbasierter Softwareentwicklung stehen domänenspezifische Modelle, mit denen die Anwendung abstrakt beschrieben wird. Durch die Spezifikation der Anwendung mittels eigens entwickelter Modelle lässt sich die Komplexität bei der Entwicklung stark reduzieren. Anschließend lassen sich die Daten der Modelle dazu verwenden, große Teile der späteren Anwendung oder die gesamte Anwendung automatisch zu generieren. Bei den abschließenden Arbeiten besteht die Hauptaufgabe des Entwicklers in der Realisierung der noch fehlenden Anwendungslogik. The central point of model driven software development are domain specific models, which are used to describe the application in an abstract way. These models can than be used to generate major parts of the application automatically and thereby help to reduce complexity. Finally the main task of the developer is the completion of the application with the missing parts of the application logic.

Domänenspezifisches Modell für Mikrocontroller
Domänenspezifisches Modell für Mikrocontroller
Domain specific model of microcontrollers

Das Praktikum "Entwicklung domänenspezifischer Werkzeuge für eingebettete Systeme" vermittelt den Teilnehmer ein Grundverständnis von Mikrocontrollerprogrammierung und setzt den Fokus auf die Erstellung von domänenspezifischen Werkzeugen. Dazu werden zu Beginn domänenspezifische Modelle zur Beschreibung einer kleinen Anwendung entwickelt. Diese dienen in weiterer Folge als Ausgangspunkt von Modell-zu-Modell (M2M) Transformationen. Abschließend wird das Ergebnis dieser M2M Transformationen für die Generierung einer kleinen Mikrocontroller-Anwendung verwendet. Nach dem Praktikum sind die Teilnehmer in der Lage eigene domänenspezifische Werkzeuge (Codegeneratoren) zu erstellen. Voraussetzung für die Teilnahme am Praktikum sind Interesse an eingebetteten Systemen und Systementwurf. Erfahrungen in C und JAVA Programmierung sind sehr hilfreich. The "Entwicklung domänenspezifischer Werkzeuge für eingebettete Systeme" lab course aims to communicate the basic of microcontroller programming and focuses mainly on the construction of domain specific tools. Therefore domain specific models are going to be developed, which are the start point for different model-to-model (M2M) transformations (calculations). The outcome of the M2M transformations is then used to generate code for a small microcontroller application. After the lab course the participants will be able to construct their own domain specific tools (code generators). Prerequisite for the lab course is interest in embedded systems and system design. Experience in C and JAVA programming is very helpful.

Entwicklungsumgebung / Development Environment

Im Praktikum wird überwiegend mit Eclipse in Verbindung mit Eclipse Modeling Framework (EMF) und openArchitectureware (oAW) gearbeitet. Daneben kommt als Entwicklungsumgebung AVRStudio von ATMEL für die Microkontrollerprogrammierung zum Einsatz. The lab course will mainly use Eclipse in connection with Eclipse Modeling Framework (EMF) and openArchitectureware (oAW). Additionally the IDE AVRStudio by ATMEL will be used for the microcontroller part.

Material