Mastering Software Complexity

Modellierung und Generierung für Embedded Software mit eTrice

Das Open Source Projekt Eclipse eTrice stellt ein Modellierungswerkzeug für Embedded Software zur Verfügung. Modelleditoren, Codegeneratoren und Laufzeitbibliotheken für die Zielsprachen C, C++ und Java ermöglichen modellgetriebene Entwicklung von Embedded Systemen. Die verwendete Modellierungssprache ist Real-Time Object-Oriented Modelling (ROOM).

eTrice erleichtert durch seinen Fokus auf die Architektur und seine Beschränkung auf das Wesentliche die Beherrschung komplexer, nebenläufiger Embedded Software Systeme. PROTOS leitet das Eclipse Projekt und stellt den Großteil der Entwickler.

Warum Modellierung von Software?

Nach wie vor wird ein großer Teil neuer Software von Hand in der jeweiligen Zielsprache geschrieben. Diese Vorgehensweise erlaubt es, sehr spezifische Lösungen für vorliegende Programmieraufgaben umzusetzen.

Auf der anderen Seite gibt es seit mehreren Jahrzehnten den Ansatz, Software zu modellieren und den Quellcode aus diesen Modellen zu generieren. Als Beispiel hierfür sei die Familie der Matlab Werkzeuge genannt.

Voraussetzung für den sinnvollen Einsatz von Modellierung und Codegenerierung in der Softwareentwicklung ist, dass man es mit einer Klasse ähnlich gelagerter Probleme zu tun hat. Beispiele hierfür sind die Programmierung von Reglern oder das Erstellen und Gestalten von User Interfaces aus einer Bibliothek von Widgets und Layout-Komponenten.

Unter den genannten Voraussetzungen bietet Modellierung und Codegenerierung im Bereich der Software-Entwicklung im Allgemeinen folgende Vorteile

Abstraktion und Automation

Die Vorteile von Modellierung und Codegenerierung gehen letztlich auf ein Prinzip zurück, das wir „Abstraktion und Automation“ nennen können und das im folgenden Diagramm schematisch gezeigt wird:

Abstraktion und Automation mittels modellbasierter Entwicklung

Abstraktion und Automation

Nutzen von eTrice: Beherrschung von Komplexität

Die große Herausforderung bei der Entwicklung von Echtzeit-Software besteht in deren beträchtlicher Komplexität, die in einer ganzen Reihe verschiedener Aspekte zutage tritt. Das Eclipse Open Source Projekt eTrice hilft Ihnen durch seine Beschränkung auf das Wesentliche wie auch durch seine einfachen, klaren und gleichwohl mächtigen Konzepte, diese Komplexität zu bewältigen.

Besonderheiten von eTrice

Textueller Editor für Modelldateien

Die Modelle sind in rein textueller und leicht lesbarer Form gespeichert. Die textuelle Notation basiert auf ROOM. Es gibt einen reichhaltigen Editor mit Hervorhebung von Schlüsselworten, Inhaltsassistent, Überblicksansicht und einer Bibliothek an Textbausteinen.

Modelle können andere Modelle importieren und erlauben damit die Erstellung von Bibliotheken in beliebiger Granularität.

Ein weiterer Vorteil der textuellen Modelle besteht darin, dass sich bei der Arbeit mit einem Versionskontrollsystem gegebenenfalls entstehende Merge-Konflikte leicht auflösen lassen.

Graphischer Editor für die Struktur

Mit diesem Editor lässt sich alternativ zur textuellen Darstellung die Struktur auch bequem in einem Diagramm editieren. Das Diagramm basiert auf dem textuellen Modell und modifiziert dieses, das Layout wird jedoch separat gespeichert. Die grafische Notation ist Bestandteil von ROOM.

Graphischer Editor für State Machines

Zustandsautomaten, insbesondere hierarchische, sind in einer Diagrammdarstellung sehr viel übersichtlicher als in reinem Text. Hiermit lassen sich alle Elemente einfach erzeugen und arrangieren. Das Diagramm basiert auf dem textuellen Modell und modifiziert dieses, das Layout wird jedoch separat gespeichert. Die grafische Notation ist Bestandteil von ROOM.

Code Generatoren

eTrice besitzt Codegeneratoren in die Zielsprachen C, C++ und Java. Die Generierung in C ist dabei für Target Hardware mit knappen Ressourcen ausgelegt.

Laufzeitbibliotheken

Die Laufzeitbibliotheken beinhalten Infrastruktur wie Messaging und Debug-Unterstützung, wie etwa die Generierung von Sequenzdiagrammen aus der laufenden Anwendung. Da eTrice innerhalb der Eclipse IDE bestens mit JDT bzw. CDT integriert, sind sehr kurze Zyklen bei der Entwicklung möglich.

Integration und Erweiterbarkeit

Ein wesentliches Merkmal von eTrice ist seine Auslegung auf und Offenheit für Integration. Dies umfasst ganz unterschiedliche Apekte, auf die im Folgenden eingegangen werden soll.

Integration mit Matlab

eTrice eignet sich nicht nur für ereignisgetriebene Systeme. In Ergänzung zu der nachrichtenbasierten Kommunikation aus ROOM bietet eTrice die Möglichkeit, auch datenorientiert zu kommunizieren. Damit erlaubt eTrice die Kapselung regelungstechnischer Elemente in Aktoren und deren Integration in ein ansonsten ereignisgetriebenes System. So lassen sich etwa Modelle aus der Matlab Familie problemlos in mit eTrice modellierte Systeme integrieren,

Integration mit manuellem Code

Standardmäßig wird das Verhalten von eTrice-Aktoren über Finite State Machines modelliert. Es ist jedoch ebenso möglich, das Verhalten manuell zu implementieren. Eine einfache Annotation im Modell weist den Codegenerator an, den Code entsprechend zu erzeugen.

Integration mit anderen Eclipse-basierten Werkzeugen

Die Eclipse IDE ist nicht zuletzt eine Plattform zur Integration von Werkzeugen. So lässt sich eTrice bequem im Verein mit CDT bzw. JDT (je nach Zielsprache) verwenden. Aber da z.B. auch Chip-Hersteller häufig eine Eclipse-basierte IDE anbieten, lässt sich eTrice auch dort integrieren.

Basis für andere Werkzeuge

Selbstverständlich integriert eTrice auch mit anderen Modellierungswerkzeugen. So baut etwa CaGe, das Modellierungswerkzeug für Tests aus dem Protos miniHIL Produkt, auf eTrice auf. Testabläufe werden von diesem als ROOM-Modell generiert, woraus eTrice dann den Target Code generiert.

Das Open Source Projekt Eclipse Franca erlaubt aus spezifizierten Interfaces eTrice-Aktoren zu generieren, die diese Interfaces als mock-up implementieren. Gleichzeitig wird ein Aktor als Testtreiber generiert.

Aber auch auf Source Code-Ebene lässt sich eTrice in andere Tools einbinden, z.B. die grafischen und textuellen Editoren für Finite State Machines.

 

Consulting und Engineering mit eTrice anfragen




Einwilligung



Es gilt die PROTOS Datenschutzvereinbarung

Bitte stimmen Sie der Kontaktaufnahme zu, bevor Sie das Formular absenden können.


eTrice Consulting und Engineering

PROTOS bietet Ihnen professionelle Dienstleistungen zur modellgetriebenen Entwicklung von Embedded Systemen mit dem Open Source Werkzeug eTrice:

Kunde

Pari GmbH

Schlagworte: Produktion in der Medizintechnik, Traceability, Modellbasierte Automatisierung und Produktionssteuerung, Fertigungsoptimierung, SAP-Anbindung

Technologien: ROOM, Trice, eTrice, UML2, Rhapsody, Linux, Interbus-S, Sercos-III, Modbus, EtherCAT, Codegenerierung für C++ und Java, Eclipse EMF und RCP

Partner

Embedded for You

Embedded for You ist ein Verein von deutschen Anbietern für Software- und Hardwarelösungen im Bereich der Embedded Systeme. Mit unseren Partnern erstellen wir kundenspezifische Gesamtlösungen für alle Arten von Embedded Systemen.

Partner

Eclipseina

Die Eclipseina GmbH ist ein Beratungs- und Dienstleistungsunternehmen, das sich auf embedded Softwareentwicklung spezialisiert hat. Dabei bedient sie alle Disziplinen, die für eine erfolgreiche Softwareentwicklung sowohl in technischer als auch in organisatorischer Hinsicht notwendig sind.

Partner

oose.

oose bietet Ihnen exzellente Seminare, Workshops, Beratung und Projektunterstützung für Software & Systems Engineering, neue Arbeitswelten und Innovation.

Kunde

Visteon

Schlagworte: Entwicklung von domänenspezifischen Sprachen für Infotainmentsysteme, DSL-Entwicklung auf der Basis von Xtext, Middleware in C++ für verschiedene Architekturen, Tooling für Entwickler, GUI-Entwicklung für Eclipse-basierte Tools, Integration der eTrice Statemachine Editoren und Code Generatoren

Technologien:  Xtext, Xtend, Eclipse, C++, Java, eTrice, Statemachines

Kunde

Siemens

Schlagworte: Maschinensteuerungen, Barcode, Netzwerkapplikationen, Traceability in der Produktion, Datenbank Integration

Technologien: C++, XML

Kunde

SCHAEFFLER

Schlagworte: Entwicklung einer modellgetriebenen Toolchain für Mechatronik und Elektro-Mobilität auf Basis von Eclipse eTrice, Aufbau des technischen Entwicklungsprozesses mit hohem Automatisierungsgrad

Technologien: ROOM, Eclipse eTrice, Codegenerierung und Transformationen für verschiedene Sprachen und Formate (Eclipse Xtend, EMF), Entwicklung domänenspezifischer Sprachen (Eclipse Xtext), Continuous Integration (Hudson), C, Python, A2L, CAN

Kunde

HARMAN

Harman Automotive ist weltweit führender Hersteller von In-Car Premium Audio- und Infotainmentsystemen.

Schlagworte: Automatiserte Auswertung von Tracedaten aus Tests, Systemstabilität, Performance

Technologien: QNX, Perl, C++

Kunde

ept

Schlagworte: Automatisierungstechnik, Modellbasierte Steuerungslösungen für Serienanlagen, Harte Echtzeitsysteme, numerische Optimierung

Technologien: ROOM, Trice, Codegenerierung für C++ und C, CAN

Kunde

Infineon

Schlagworte: Modellbasierte Konfiguration für Microcontroller Varianten

Technologien: Eclipse-EMF, Xtext, JET, Codegenerierung für C, Java

Kunde

BMW Group

Schlagworte: Software Architektur für Bordnetze, Spezifikationen für elektronische Fahrzeugfunktionen, Modellbasiertes Rapid Prototyping für Steuergeräte, Modellbasierte Entwicklung, Automatisierte Steuergerätetests, Model und Hardware in the Loop

Technologien: ROOM, Trice, Codegenerierung, Java, C++, C, CAN, MOST, Flexray, Eclipse-EMF