Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Embedded Software Engineering Fachwissen: ESE 2015 (Teil 1)

MicroConsult bietet das ganze Jahr zu den auf dem Kongress besprochenen Themen Weiterbildungen, Kurse und Seminare sowie Coaching an.

Profitieren Sie von der Erfahrung unserer Spezialisten für Embedded Software Engineering und nehmen Sie mit uns Kontakt auf. Wir beraten Sie gerne.

MicroConsult Training & Coaching: Themen

Zum Kontaktformular


ESE Kongress 2015 Beiträge, Teil 1 - Themenbereiche:


Vortragsreihe: Agilität

Man kann nicht nicht planen

Wie man in agilen Projekten richtig plant

Markus Unterauer, Software Quality Lab GmbH (ESE Kongress 2015)

Agil wird vielfach als "ohne Planung" oder "einfach drauflos" interpretiert und gelebt. In Wirklichkeit ist das Gegenteil der Fall. In agilen Projekten wird auf mehreren Ebenen vom Produkt über Releases und Iterationen bis zu den durchzuführenden Aufgaben in einer Iteration sehr strukturiert und sorgfältig geplant. Grundlagen sind dabei eine rollierende Planung, welche umso genauer wird, je näher die Umsetzung rückt, und die permanente Anpassung der Pläne mit dem Feedback aus den Iterationen.

Embedded Clean Code

Der Softwerker als Zentrum der Industriesoftwareentwicklung

Thomas Winz, softwareimotion (ESE Kongress 2015)

Software ist ein wertvolles Gut, das im Umfeld größter Unsicherheit entsteht. Ohne eine ordentliche und vernünftige industrielle Softwareentwicklung sprengt dieser Spannungsbogen jewedige Kosten-/ Nutzung-Rechnung; genau hier setzt eCc (embedded Clean code) an.

Wie viel Agilität verträgt die Zertifizierung?

Agile Entwicklungsmethoden für sicherheitskritische Software

Ingo Nickles, VectorSoftware, Martin Heininger, HEICON (ESE Kongress 2015)

Das agile Manifest spricht Punkte in Software Entwicklungsprojekten an, denen man gerade bei langjähriger Projekterfahrung nahezu uneingeschränkt zustimmen kann. Ihren Ursprung haben die agilen Methoden in der Entwicklung von IT-Software. Bei der Entwicklung von sicherheitskritischen Embedded Systemen/Software stehen auf den ersten Blick andere Aspekte im Vordergrund. Gibt es Möglichkeiten, diese beiden Welten zusammenzubringen? Um beides vergleichen zu können, werden die zugrundeliegenden Prinzipien analysiert und daraus dann entsprechende Schlüsse gezogen.


Vortragsreihe: Architektur

Wie wird aus Anforderungen eine Software-Architektur?

Effizient eine verifizierte Produktarchitektur entwickeln

Peter Schedl, IBM Deutschland GmbH (ESE Kongress 2015)

Es wird die industrieerprobte Harmony Methode zur Erstellung von Architekturen für embedded Produkte vorgestellt. Im Vortrag wird das Zusammenspiel von Anforderungen, funktionalen Architekturen und dem Design beschrieben. Besonderes Augenmerk liegt auf der Bedeutung permanent begleitender Verfifikation der Entwicklungsschritte.

Designing and Maintaining a High-Performance Embedded Software Architecture

Erik Hons, National Instruments (ESE Kongress 2015)

Well-designed software architectures enable better reuse of software components and more rapid development of system variants than monolithic designs. Software architectures are necessarily abstractions, and therefore have to be carefully designed to perform well. This case study follows the design of such an architecture for large distributed embedded control systems with lessons on delivering and maintaining system performance as architectures are ported to new platforms.

Modellbasierte Architekturentwicklung und Simulation

Praxisbeispiel Fahrerassistenz mit AMALTHEA und chronSIM

Thomas Jäger, Robert Bosch GmbH, Ingo Houben, Dr.-Ing. Ralf Münzenberger, INCHRON GmbH (ESE Kongress 2015)

Ein modellbasierter Ansatz, bei dem aus einer Single-Source-Quelle weitere Prozessschritte abgeleitet werden, bietet viele Vorteile. Das Systemmodell von AMALTHEA dient hierbei als Ausgangspunkt, um eine robuste dynamische System- und Software-Architektur zu entwerfen sowie Source-Code und Testfälle zu erzeugen. In diesem Artikel wird ein Workflow vorgestellt, wie ausgehend von einem AMALTHEA-Systemmodell eine Architektur simuliert, analysiert und im Fehlerfall optimiert wird.


Vortragsreihe: Echtzeit

How to Measure RTOS Performance

Colin Walls, Mentor Graphics, Newbury UK (ESE Kongress 2015)

Desktop or laptop computers are extremely powerful and amazingly low cost. This means that developers of software for desktop systems assume that there is infinite CPU power, so they worry very little about the speed of their code. They also assume that indefinite amounts of memory are available, so they do not worry about code size either. Embedded systems are different. Typically, there is enough CPU power to do the job, but only just enough – there is no excess. Memory size is limited. It is not normally unreasonably small, but there is unlikely to be any possibility of adding more. Power consumption is usually an issue and the software – its size and efficiency – can have a significant bearing on the number of Watts burned by the embedded device. It is clear that, with an embedded system, it is vital that the RTOS has the smallest possible impact on memory footprint and makes very efficient use of the CPU.

Modellbasiertes Vorgehen bei Echtzeitanforderungen

Arne Noyer, Padma Iyenghar, Elke Pulvermüller, Universität Osnabrück; Joachim Engelhardt, Jürgen Kreyßig, Ostfalia Hochschule; Jonas Diemer, Symtavision; Michael Uelschen, Hochschule Osnabrück (ESE Kongress 2015)

Beim Embedded Software Engineering gehören Zeitanforderungen zu den wichtigsten nicht-funktionalen Anforderungen. Deshalb sind spezialisierte Werkzeuge erforderlich, die das Zeitverhalten eines realisierten Embedded Software-Systems analysieren und validieren können. Unabhängig davon nimmt die modellbasierte Softwareentwicklung weiter an Bedeutung zu, um die steigende Komplexität der Embedded Software zu beherrschen. Etabliert haben sich als Modellierungssprachen u.a. die Unified Modeling Language (UML) und Matlab/Simulink. Es ist auch möglich, Zeitverhalten für Modell-Elemente zu definieren. Darüber hinaus ist es immer noch von Vorteil, Anforderungen in spezialisierten Werkzeugen für das Anforderungsmanagement zu verwalten. Es wird ein Workflow zur Integration von Zeitanforderungen von der Spezifikation bis zur Validierung präsentiert. Dieser schließt die Lücken zwischen den unterschiedlichen Entwurfsdomänen.

Programmierung zur Compilezeit

Rainer Grimm (ESE Kongress 2015)

Was haben klassische Template-Metaprogrammierung, die Funktionen der Type-Traits-Bibliothek und konstante Ausdrücke gemein? Sie werden alle zur Compilezeit ausgeführt. Damit vereinen sie höhere Performanz mit erweiterter Funktionalität. Höhere Performanz, da Berechnungen zur Lauf- auf die Compilezeit verlegt werden. Erweiterte Funktionalität, da Programmierung zur Compilezeit den resultierenden C++-Sourcecode modifizieren kann. Doch wie funktioniert die ganze Magie?

Health Check für die Entwicklung von Echtzeitsystemen

Woran es im Entwicklungsprozess krankt

Ralf Münzenberger, INCHRON, Friedhelm Stappert, Technische Hochschule Nürnberg (ESE Kongress 2015)

Viele SW-Projekte für eingebettete Systeme haben Probleme bzgl. Budget- oder Terminüberschreitung. Gründe sind z.B., dass wichtige Anforderungen nicht früh genug berücksichtigt und dadurch Fehler zu spät erkannt werden, insbesondere beim dynamischen Verhalten eines Systems. Basierend auf vielen Entwicklungsprojekten wurde ein kompakter Fragenkatalog (Real-Time Health Check) entwickelt, der Schwachpunkte im Entwurfsprozess aufdeckt. Auf dieser Basis können Empfehlungen abgeleitet werden, wie das dynamische Verhalten von Echtzeitsystemen besser beherrscht werden kann. Typische Probleme sind: unvollständige Spezifikation von Echtzeitanforderungen, wenig robuste Architekturen, unvollständige Betrachtung des Gesamtsystems in frühen Designphasen. Vielen erfahrenen Architekten ist die Wichtigkeit dieser Aspekte durchaus bewusst. Trotzdem hat sich gezeigt, dass Timing-Fehler oft zu spät in der Testphase aufgedeckt werden.

Dynamic Memory Allocation: Justifiably Taboo?

Avoiding Risks Using New Memory Management Strategies

Steven Graves, McObject LLC (ESE Kongress 2015)

Developers of fault-tolerant embedded systems must identify and eliminate possible failure points. Dynamic memory allocation is one key concern. A sound approach contributes to predictable and robust systems, while inattention can lead to instability, slow and/or unpredictable performance or failure. This paper argues that dynamic allocation is acceptable only in non-critical portions of fault-tolerant embedded systems, and then only when the technique’s risks can be successfully mitigated. Fault-tolerant systems should instead employ custom memory allocators that are more precisely suited to the application’s specific allocation patterns. Custom memory managers presented in the paper include block, stack, bitmap and thread-local allocators. The solutions presented retain the power and flexibility of dynamic memory management while mitigating common risks such as fragmentation and memory leaks, and improving efficiency and performance.

Timing-Architektur-Patterns und Anti-Pattern

Wie können Timing-Gaps geschlossen werden? Ein Praxisbericht

Karsten Schmidt, Audi Electronics Venture GmbH, Kai Richter, Symtavision GmbH (ESE Kongress 2015)

Neue Technologien wie Multicore und Ethernet bieten ein Vielfaches der bisher bekannten Rechen- und Kommunikationskapazitäten. Die verfügbaren Ressourcen in den Steuergeräten und im Netzwerk müssen auch auf die Vielzahl der zu integrierenden Teilfunktionen und deren Software aufgeteilt werden. Einen wichtigen Beitrag zur effizienten Umsetzung liefert eine gute Timing-Architektur.

Dynamische Softwarearchitektur für eingebettete Systeme

Softwaredynamik fest im Griff

Frank Slomka, Christian Hausner, Institut für Eingebettete Systeme/Echtzeitsysteme Universität Ulm (ESE Kongress 2015)

Mit der UML und den dazugehörigen Erweiterungen SysML und MARTE kann die statische Architektur einer Software gut beschrieben werden. Ein Problem im Rahmen eines ganzheitlichen Entwicklungsprozesses für eingebettete Software stellt die Dynamik des Systems dar. Insbesondere das dynamische Zusammenspiel zwischen der Hardware, dem Speichermodell, dem Betriebssystem und der Anwendungssoftware kann nur unzureichend strukturiert und beschrieben werden. Ausgehend von einem neuen Entwicklungsprozess wird eine zu UML kompatible Beschreibungsform vorgestellt, die die Besonderheiten des dynamischen Verhaltens eingebetteter Software berücksichtigt. Ein besonderes Augenmerk gilt dabei der Dynamik der Hardware/Software-Schnittstelle.


Vortragsreihe: Implementierung

The Magic of Macros - Using a C-Preprocessor as Code Generator?

András Gáspár, Dr. Lászlí Gianone, Dr. Gábor Tevesz (ESE Kongress 2015)

Developing software for embedded systems restricts the usage of possibilities trivially available in a PC environment. One field is the handling of consistent data structures, e.g. identifying all CAN messages and applying their attributes consistently. One way of managing this type of configuration constructions is to create PC based configurator applications that generate all required embedded code constructions. But there is another way to use the preprocessor for the same purpose.

Embedded Software as an Integrated Product

Start Development at the API

Giancarlo Parodi, Renesas Electronics Europe (ESE Kongress 2015)

Bei der Auswahl kommerzieller Software wird erwartet, dass diese vom Zulieferer qualifiziert und nach kommerziellen Standards getestet wird und kompatibel mit der Ziel-Mikrocontroller-Plattform ist. Dieser Vortrag wird in ein Konzept eines integrierten Softwarepakets einführen, dass ein Echtzeitbetriebssystem, optimierte Stacks, Applikationsanwendungssoftware, Treiber und Konfigurationspakete für Hardware-Plattformen beinhaltet. All diese wurden nach dem IEC/ISO/IEEE-12207 Standard entwickelt, integriert und getestet.

Middleware - die Zukunft für Test und Automatisierung?

Dipl.-Ing. Robert Schachner, RST Industrie Automation (ESE Kongress 2015)

Das Thema "Industrie 4.0" ist als Zukunftsvision der verarbeitenden Industrie in aller Munde. Obwohl – oder gerade weil – die Definitionen schwammig bleiben und viele Firmen versuchen, ihre eigenen "Standards" zu platzieren, ist es umso wichtiger, sich jetzt mit den damit einhergehenden Herausforderungen auseinanderzusetzen und Lösungen zu suchen.

Stack & Heap: Die großen Unbekannten der Embedded-Software verstehen und beherrschen

Martin Gisbert, IAR Systems (ESE Kongress 2015)

Stack und Heap werden oft in einem Atemzug genannt, da es sich in beiden Fällen um nicht-statischen Speicher handelt. Eine weitere unangenehme Gemeinsamkeit ist der begrenzte Determinismus beim Zugriff und die Risiken bei Überläufen. Der folgende Artikel gibt eine Übersicht über die Funktionsweise des Stack und Tipps zur richtigen Dimensionierung. Da der Heap im Gegensatz zum obligatorischen Stack in Embedded-Systemen relativ wenig eingesetzt wird, fällt die Beleuchtung dieses dynamischen Speichers kürzer aus.

C++11/14 Multithreading

Überblick, Highlights und Fallstricke

Karl Nieratschker, SKT Nieratschker (ESE Kongress 2015)

Seit der Einführung von C++11 bietet die Standardbibliothek von C++ auch Unterstützung für die Entwicklung von Multithread-Applikationen. Im neuesten Standard C++14 wurde diese Funktionalität sogar noch erweitert. Die Verwendung des C++-Multithread-APIs vereinfacht zwar die Portierung derartiger Anwendungen, führt aber gleichzeitig auch dazu, dass man sich auf die Möglichkeiten der Standardbibliothek beschränken muss, wenn man davon profitieren möchte. Nicht nur bei der Entwicklung von neuen Applikationen, sondern auch für existierende Anwendungen, die noch auf plattformspezifischen Multithread-Lösungen basieren, stellt sich deshalb die Frage, ob es sinnvoll ist, dieses API einzusetzen bzw. darauf umzustellen. Der Vortrag gibt einen Überblick über den Leistungsumfang des C++-Multithread-APIs und zeigt, was bei der Portierung von Applikationen zu beachten ist.

Zuverlässige und sichere Gerätetreiber

Das System ist so sicher wie der schwächste Treiber

André Schmitz, Green Hills Software (ESE Kongress 2015)

Seit der Einführung von C++11 bietet die Standardbibliothek von C++ auch Unterstützung für die Entwicklung von Multithread-Applikationen. Im neuesten Standard C++14 wurde diese Funktionalität sogar noch erweitert. Die Verwendung des C++-Multithread-APIs vereinfacht zwar die Portierung derartiger Anwendungen, führt aber gleichzeitig auch dazu, dass man sich auf die Möglichkeiten der Standardbibliothek beschränken muss, wenn man davon profitieren möchte. Nicht nur bei der Entwicklung von neuen Applikationen, sondern auch für existierende Anwendungen, die noch auf plattformspezifischen Multithread-Lösungen basieren, stellt sich deshalb die Frage, ob es sinnvoll ist, dieses API einzusetzen bzw. darauf umzustellen. Der Vortrag gibt einen Überblick über den Leistungsumfang des C++-Multithread-APIs und zeigt, was bei der Portierung von Applikationen zu beachten ist.

Modulare Applikationsentwicklung für Arm Cortex-M

Schneller entwickeln mit Softwarekomponenten

Johannes Bauer, Arm Germany (ESE Kongress 2015)

Moderne, auf Arm Cortex-M basierende Mikrocontroller eignen sich aufgrund ihrer hohen Rechenleistung, vielseitiger Peripheriefunktionen und des geringen Energieverbrauchs für immer mehr Anforderungen. Für diese komplexen Anwendungen werden fortgeschrittene Methoden in der Softwareentwicklung benötigt, um hochwertige Produkte und kurze Entwicklungszeiten sicherzustellen. Der Ansatz von Arm für modulare Entwicklung sind standardisierte Softwarekomponenten im CMSIS-Pack-Format.

Wer hat Angst vorm bösen "++"?

Warum C++ bis auf Treiberebene sinnvoll ist

Matthias Bauer, redlogix Software & System Engineering GmbH (ESE Kongress 2015)

Manche Vorurteile halten sich hartnäckig. Zum Beispiel dieses: C++ ist für extrem ressourcenarme Systeme nicht geeignet. Dabei stimmt das schlichtweg nicht! Vielmehr bringt der Einsatz der richtigen C++-Sprachmittel gerade für Systeme mit extrem begrenzten Ressourcen unschätzbare Vorteile.

Easier and Safer Configuration of Source Code Libraries

GUI for easier configuration of software libraries

Oreste Bernardi, Infineon Technologies AG (ESE Kongress 2015)

Increasingly complex libraries are being developed for microcontrollers to accommodate the rising performance levels of microcontroller peripherals and applications. The usual configuration methods using #defines and/or data structures can be time-consuming and result in configuration errors. A graphical user interface coupled with a configuration generator offers a number of advantages here. Besides the obvious readability and parameter description benefits, a GUI could check and validate user input in real time. Unfortunately, GUI programming know-how is beyond the usual sphere of competence of microcontroller developers and acquiring this knowledge could be time-consuming. This article explores a novel approach to creating a user interface and a code generator to support the configuration of source code libraries. This approach is suitable for developers who do not have GUI programming expertise as it implements a new UI execution model that simplifies development and debugging.

Hardwarenahe Softwareentwicklung

Wie entwickle ich Software mit Rücksicht auf Hardware?

Christian Siemers, Technische Universität Clausthal, Institut für Prozess- und Produktionstechnik (ESE Kongress 2015)

Ein Thema wie Hardwarenahe Programmierung (in einer Hochsprache) sollte es eigentlich gar nicht geben, denn Hochsprache impliziert Hardwareunabhängigkeit – und nicht ein spezifisches Eingehen auf die Eigenheiten selbiger. Dennoch ist dieses Thema aus der Praxis aus folgenden Gründen nicht wegzudenken: Ressourcenbeschränkungen (gerade in eingebetteten Systemen); umständliche Konfiguration von Peripherieelementen (diese ist eher auf Bit- und Byte-Ebene zu sehen); extreme Anpassung der Software auf Hardwaregegebenheiten, z.B. bei spezialisierter Hardware oder fehlenden Hardwarekomponenten; Echtzeitprogrammierung bei sehr knappen Rechenzeiten.

Basic UI/UX Guide

Grundlagen für UI-Entwickler

Jürgen Messerer, Patrick Labud, bbv Software Services AG (ESE Kongress 2015)

Im Zeitalter von Smartphones und Tablets wird auch im industriellen Umfeld zunehmend mehr Wert auf eine optisch schöne sowie leicht und geschmeidig zu bedienende Oberfläche gelegt. Damit das User Interface, kurz UI, auch von den Kunden akzeptiert wird, müssen einige Punkte in Betracht gezogen werden. Aber wie erreicht man das Ziel, wenn ein UI/UX-Experte fehlt? In diesem Artikel wird gezeigt, wie Stolpersteine für die Nutzer verhindert werden. Zusätzlich wird gezeigt, wie ein effizientes und für die Nutzer nachvollziehbares User Interface konzipiert wird.

Wie HMI-Lösungen kulturell angepasst werden können

Dr.-Ing. Peter Rössger, Founder, beyond HMI (ESE Kongress 2015)

Im Rahmen dieses Papers werden die interkulturellen Unterschiede bei der Wahrnehmung und Beurteilung von Mensch-Maschine-Schnittstellen (Human Machine Interfaces, HMIs) diskutiert. Kulturelle Prägung trägt viel zu den Erwartungen der Nutzer an ein technologisches Artefakt bei (Rößger & Rosendahl, 2002; Heimgärtner, 2010). Herangehensweise, Lösungsstrategien, Informationsverarbeitung und die Verbindung von Farben, Symbolen und Icons unterscheidet sich deutlich zwischen Kulturen (Marcus et al., 2003; Honold, 2000). Rößger (2014) diskutiert das Thema anhand von Infotainmentsystemen in Fahrzeugen.

Best Practices der toolgestützten Embedded GUI-Entwicklung

Manuel Melic, TARA Systems GmbH (ESE Kongress 2015)

Der Spagat zwischen Low-End-Hardware und High-End Anforderungen und wie man trotz kurzer Produkteinführungszeit die UI-Software zukunftssicher gestaltet, stellt Embedded-GUI-Entwickler, insbesondere, wenn sie zum ersten Mal eine optisch ansprechende Benurteroberfläche umsetzen müssen, vor eine nicht zu unterschätzende Herausforderung. Diese Abhandlung stellt Prinzipien vor, die zum Erreichen einer optimale User Experience bei embedded Plattformen wichtig sind: Was gilt es zu beachten, wenn die GUI-Entwicklung kosteneffizient sein soll und trotzdem so flexibel, dass sie schnell auf sich ändernde Anforderungen reagieren kann? Wie kann es gelingen, dass die UI-Applikation erweiterbar und skalierbar konzipiert ist, so dass sie in folgenden Produktgenerationen mit neuen Features und neuer Hardware weiter verwendet werden kann? Die in diesem Beitrag vorgestellten Best Practices basieren auf über 20 Jahren Berufspraxis in der Embedded GUI Entwicklung.

Hübsch zu sein reicht nicht

Requirements-Spezifikation für User-Interfaces

Johannes Bergsmann, Software Quality Lab (ESE Kongress 2015)

In der heutigen, von hübschen Smartphone-Apps geprägten Zeit verkauft sich Software, die zwar gut ist, jedoch kein modernes ansprechendes User-Interface (UI) hat, kaum mehr. Jedoch reicht eine hübsche Oberfläche alleine auch nicht aus, um Benutzer nachhaltig zu beeindrucken. Worauf muss man achten, wenn man UI-Design durchführt? Welche Techniken und Methoden kann man anwenden, um benutzertaugliche UIs zu erstellen? Wo soll das UI-Design im Requirements-Prozess positioniert werden? Welche Spezifikationstechniken sind von der ersten Idee bis zum fertigen UI-Design hilfreich? Diese Fragen werden im folgenden Beitrag behandelt.


Vortragsreihe: Internet of Things

Energiewende: Neue Geschäftsmodelle durch IoT-Technologie

Energieriese verkauft Know-how statt Strom

Christine Mitterbauer, MicroDoc GmbH (ESE Kongress 2015)

Im Rahmen der Energiewende werden die klassischen Modelle der zentralen Energiegewinnung revolutioniert. Während früher Energieversorger mit der Herstellung und Verteilung von elektrischer Energie beschäftigt waren, bieten neue Konzepte wie Solar- oder Windstrom die Möglichkeit zur dezentralen Energiegewinnung und Einspeisung ins Netz. Durch moderne Batteriekonzepte bekommen private Haushalte die Möglichkeit, elektrische Energie zu speichern, intelligent selbst zu nutzen oder in das Stromnetz einzuspeisen und zu verkaufen.

Securing the Internet of Things

Evolving Threats & Developing Countermeasures

Haydn Povey, Secure Thingz (ESE Kongress 2015)

The current Internet of Things has been described by the critical infrastructure industry as a slow-motion train wreck, with potentially catastrophic consequences for any industry or individual that relies on it. As an industry it is therefore critical that we re-evaluate the importance of security in out products, where security needs to be integrated, the value of the services security can deliver, and the consequences of being compromised to our customers and our shareholders.

Was steckt hinter dem Internet der Dinge?

Alles neu oder doch nur Embedded Business as usual?

Dipl.-Ing. Günter Oblitschnig, Applied Informatics Software Engineering (ESE Kongress 2015)

Das Internet der Dinge (Internet of Things, kurz IoT) ist derzeit das Trendthema schlechthin. Doch was steckt dahinter? Sind es doch nur netzwerkfähige Embedded Systeme, oder steckt doch mehr dahinter? Dieser Artikel vermittelt die wichtigsten Grundlage, Begriffe und Technologien zum Internet der Dinge und gibt Antworten auf folgende Fragen: Wie unterscheiden sich "Dinge" von normalen Embedded Systemen? Welche neuen Technologien sind für das Internet der Dinge relevant? Was braucht man neben Embedded Systemen noch, um das Internet der Dinge zu realisieren? Wie sieht eine typische Architektur eines IoT-Systems aus? Wie steht es um die Sicherheit? Welche neuen Geschäftsmodelle werden möglich?

Interoperabilität vom Sensor bis zur Cloud

Einstieg in den offenen Datenaustausch-Standard OPC UA (skalierbar für Embedded Systeme)

Günther Trautzl, Euros-Embedded (ESE Kongress 2015)

Wir leben in einer hochdynamischen Welt, wo die komplexe Technik im Hintergrund bleibt und einfach nur zu funktionieren hat, aber mit der Erwartungshaltung einer umfassenden und fehlerfreien Kommunikation. Jeder kann heute mit jedem mit stationären Geräten oder mobil Informationen jeder Art (Sprache, Musik, Bilder, Videos, Fitness-Daten u.a.) austauschen, und zwar sofort, an nahezu jedem Ort der Welt, ohne technische Kenntnisse, ohne Unterbrechungen, zu geringsten Kosten.

Was IoT für die Embedded-Softwareentwicklung bedeutet

Eine Analyse zu Trends, Chancen und Risiken

Prof. Dr. Dr.-Ing. Matthias König, Fachhochschule Bielefeld, Campus Minden (ESE Kongress 2015)

Die Softwareentwicklung für eingebettete Systeme umfasst ein breites Feld von Anwendungen, bei denen Internet of Things (IoT) eine relativ neue Kategorie bildet. Bei IoT-Anwendungen spielt die Vernetzung und die Kommunikation mit dem "Thing" eine wesentliche Rolle, beispielsweise werden Nutzer einen webbasierten Zugriff oder eine mobile Applikation einfordern. Derzeitige Trends zeigen auf, dass der Einsatz von SDKs mit mächtigen APIs zunehmend Einfluss auf die Entwicklung im Bereich IoT nehmen werden, vergleichbar mit der Entwicklung, die bei Smartphones beobachtet werden konnte. Ferner wird die zukünftige Entwicklergeneration geprägt durch die Vorteile des Einsatzes von oft offenen SDKs und APIs mit umfangreicher Dokumentation. In diesem Beitrag findet eine Bestandsaufnahme aktueller Strömungen statt, die die Softwareentwicklung für IoT beeinflussen. Das sich ergebene Spannungsfeld zwischen derzeitigen und zukünftigen "idealen" Entwicklerkompetenzen wird aufgezeigt.

Projekt-Prototyping mit IoT-Entwicklerbaukasten

Wie vorgehen bei einer IoT-Entwicklung?

Klaus-Dieter Walter, SSV Software Systems GmbH (ESE Kongress 2015)

Was genau kennzeichnet eigentlich ein IoT-Entwicklungsvorhaben, und wo liegen die funktionalen Schwerpunkte? Welche Ressourcen benötigt eine Embedded-Systems-Hardware in einer IoT-Anwendung? Wie wird diese Hardware mit der Cloud verbunden, und welche Protokolle bzw. APIs kommen dabei zum Einsatz? Hier einige grundlegende Betrachtungen zu den erforderlichen Bausteinen, die sich zu einem IoT-Entwicklerbaukasten zusammenfügen lassen, um die Risiken und Entwicklungszeiten zu reduzieren. 

Monitoring-Plattformen im IoT

Nutzungsszenarien zur Erfassung und Auswertung von Biosignalen

Volkhard Klinger, FHDW Hannover, Arbeitsbereich Eingebettete Systeme (ESE Kongress 2015)

Modulare und mobile Systeme sind notwendige Voraussetzung für das mittel- und langfristige Monitoring von Biosignalen. Die Realisierung eines modularen Plattform-Systems zur Erfassung und Auswertung von Biosignalen und dessen Ergänzung durch Sensoren und Aktoren, die über eine Funktionalität nach dem Prinzip des Internet of Things (IoT) verfügen, ermöglichen dabei neue Anwendungsszenarien. In diesem Beitrag werden zwei Anwendungsbeispiele vorgestellt, und die korrespondierenden Anpassungen des plattformbasierten Konzeptes verdeutlicht. Die anwendungsfallabhängige Ergänzung der Plattform durch zusätzliche Geräte oder Sensoren vergrößert Einsatzbereich und Flexibilität der Plattform. Werden externe IoT-Systeme verwendet, ergeben sich Anforderungen an diese Systeme, die zusammenfassend benannt werden. Es wird deutlich, dass nur unter Einhaltung dieser Randbedingungen die Vorteile des Plattformansatzes erhalten bleiben können.


Vortragsreihe: Management

Erfolgreicher Projekte leiten mit gehirngerechter Führung

Was wir von Hirnforschern für Projekte lernen können

Dorothée Putzier, Putzier Consulting (ESE Kongress 2015)

Führung in Projekten ist eine besondere Herausforderung, da oftmals die organisatorischen Strukturen nicht so klar sind wie in Linienpositionen. Wo eindeutige Machtpositionen fehlen, ist Motivation umso wichtiger. Hier können die neuesten Erkenntnisse der Hirnforschung helfen, besser zu verstehen, wie Menschen motiviert werden können und wie erfolgreiche Führung funktioniert.

Erfolgreiche Teamstrukturen für Projekte mit langer Laufzeit

Praxiserfahrungen aus der Luftfahrt

Christian Glatzel, Zodiac Cabin Controls GmbH (ESE Kongress 2015)

Dieser Vortrag vermittelt Ihnen einen Einblick in interdisziplinäre Teamstrukturen, die sich als erfolgreich herausgestellt haben, wenn ein Projektteam über mehrere Jahre zusammenarbeitet. Die Praxiserfahrungen beziehen sich auf Entwicklungsprogramme in der Luftfahrtindustrie inklusive der Interaktion mit Flugzeugherstellern wie Airbus, Boeing, Bombardier etc. Ziel ist es, Klarheit darüber zu erhalten, welche u.U. unerwarteten Faktoren ein Projekt vorantreiben oder zerstören können.

Zur Innovation geführt

Was hat Führung mit Innovation zu tun?

Andreas Pfeiffer, Ginzinger electronic systems (ESE Kongress 2015)

Innovation ist das zentrale Thema jeder Organisation. "Wir müssen innovativer werden" heißt es nur allzu oft. In einer Zeit stetigen Wandels ist nicht Größe das relevante Kriterium für die Stärke eines Unternehmens, sondern Anpassungsfähigkeit an sich ändernde Rahmenbedingungen. Führungskräfte stehen heute vor der Wahl, entweder auf Veränderungen zu reagieren oder aber den Wandel selbst aktiv zu gestalten.

Fit für die Digitale Transformation?

Von der Softwareentwicklung lernen

Dr. Anja Mentrup, Beratung Judith Andresen (ESE Kongress 2015)

In der Software-Entwicklung hat sich durchgesetzt, dass sich komplexe Themen nicht mit einem umfassenden Plan angehen lassen, der dann 1:1 umgesetzt wird. Wir haben gelernt, Software so zu erstellen, dass uns neue Erkenntnisse und geänderte Anforderungen nicht aus der Bahn werfen. Komplexe IT-Projekte lassen sich am Besten in einem iterativen, inkrementellen und lernenden Vorgehen meistern. Organisationen und ein möglicher Organisationsumbau sind ebenfalls ein komplexes Vorhaben. Der Alltag fordert eine flexible Organisationskultur. Kommunikation, Wissenstransfer und die organische Einbindung der IT in die Organisation sind überlebenswichtig. Das ist komplex! Ein umfassender Plan mit einer 1:1-Umsetzung wird nicht funktionieren. Aus der Software-Entwicklung lernen heißt, den Umbau iterativ, inkrementell und lernend zu gestalten.


Vortragsreihe: Modellierung

Model Driven Software Engineering 2.0:

Manifest zur erfolgfreichen Anwendung der MDSE

Andreas Foltinek, IMACS GmbH (ESE Kongress 2015)

Immer komplexere Strukturen, Funktionen und das Zusammenspiel technischer Systeme bestimmen unseren Alltag. Die einhergehende fortwährende Aufgabenverlagerung von Mechanik- und Elektronikkomponenten auf die Software rückt diese immer stärker in den Fokus der Innovationen und erhöht damit deren Bedeutung und Aufwendungen. Leider wird dieser Entwicklung nicht immer Rechnung getragen, und der Software lastet - auch auf Leitungs- und Führungsebene - immer noch oft der Aspekt eines notwendigen Beiwerks an. Hinzu kommt, dass ein allgemeines Bewusstsein eines immer möglichen und vermeintlich kostenlosen Software-Updates in den Köpfen besteht und dieses Verständnis durch Nutzer und Konsumenten, die dies mittlerweile als selbstverständlich akzeptieren, noch gefördert wird.

Beschleunigt oder bremst MBSE die Entwicklung von 500 kW Bremsleistung?

MBSE in knapp kalkulierten Projekten

Thomas Rogalski, enders Ingenieure (ESE Kongress 2015)

Kern des Beitrags ist ein Erfahrungsbericht über den Einsatz von model-based Systems Engineering (MBSE) in einem durchgeführten Kundenprojekt. Ziel des Projekts war die Entwicklung und Bereitstellung eines Bremsfahrzeugs mit einer Bremsleistung von 500 Kilowatt. Bereits zum Projektstart wurde kontrovers diskutiert, ob MBSE eingesetzt werden soll, welche Erwartungen an das Modell gestellt werden und welche Ausprägung der Einsatz der Methode haben soll und darf. Diese Fragen wurden besonders durch das straffe Projekt-Budget geprägt. Somit war klar, dass ein Einsatz der Methodik möglichst pragmatisch und effektiv ablaufen muss. Der Beitrag geht auf die frühe Projektphase, die Umsetzung von MBSE sowie auf ein Resümee des Ganzen ein.

Codegenerierung - was man damit (nicht) machen kann

Varianten, Möglichkeiten und Einschränkungen

Horatiu O. Pilsan, Robert Amann, FH Vorarlberg (ESE Kongress 2015)

Die Codegenerierung ist ein wesentlicher Teil eines modellbasierten Entwicklungsprozesses. Der Vortrag vermittelt die wichtigsten Informationen darüber, was man sich von der Codegenerierung in Embedded Systems erwarten soll und was nicht. Ausgehend von der Grundlage, dem (Struktur-, Ablauf-, oder Regler-) Modell, werden die Varianten (signalfluss- und kontrollfluss-, zeit- und ereignisbasiert) in ihren Unterschieden durchleuchtet. Die dafür notwendigen Laufzeitsysteme werden analysiert und deren mögliches Zusammenspiel in einem Gesamtsystem betrachtet.

Architekturprüfung für Modelle

Modell-Erosion effektiv verhindern

Ingo Battis, Sennheiser electronic GmbH & Co. KG, Thomas Eisenbarth, Axivion GmbH (ESE Kongress 2015)

Die Versprechungen der UML-Modellierung mit anschließender Codegenerierung sind signifikant höhere Wartbarkeit, Fehlerfreiheit und Flexibilität im Vergleich zur manuellen Codierung. In diesem Szenario übernimmt das UML-Modell als Implementierungsmodell Aufgaben aus der Codierung. Damit muss man das UML-Modell so behandeln, als ob es die Stelle von Code einnähme und es entsprechend vor Software-Erosion und Implementierungsfehlern schützen. Eine Implementierung muss immer einer Architektur folgen, die folglich nicht im Implementierungsmodell selbst enthalten sein kann. Erst dadurch kann das Modell auf verschiedene Arten von Korrektheit geprüft werden.

Versionierung: Die Herausforderung bei der Modellierung

Praktische Lösungen für den Vergleich und die Zusammenführung von Modellen

Dr. Konrad Wieland, LieberLieber Software (ESE Kongress 2015)

Sowohl die zunehmende Komplexität als auch immer kürzere Release-Zyklen moderner eingebetteter Softwaresysteme machen es notwendig, verschiedene Versionen parallel zu entwickeln. Dazu addiert sich die Herausforderung, dass diese Systeme in immer größeren und verteilten Teams entwickelt werden. Bei Verwendung eines modellgetriebenen Ansatzes müssen solche Teams die Möglichkeit erhalten, an paralleln Versionen eines Modells effizient zu arbeiten. Bei der Generierung von Source Code werden die Vorteile von Versionierungssystemen seit Jahren erfolgreich genutzt. Die wichtigste Funktion ist hier der Vergleich und die Zusammenführung von verschiedenen Versionen. Herkömmliche Ansätze verwenden dafür zeilen- und textbasierte Anwendungen, die jedoch bei grafischen Modellen nicht ausreichend sind. In diesem Betrag wird aufgezeigt, wie Modelle praxistauglich verglichen und zusammengeführt werden können, um so eine effiziente Versionierung zu ermöglichen.

OO und modellbasierte Werkzeuge

Ein Werkstattbericht

Dr. Andreas Wagener, Dr. Fritz Faulhaber GmbH & Co. KG, Robert Stemplinger, Markus Pauls, b1 Engineering Solutions GmbH (ESE Kongress 2015)

Über Tools wie Rhapsody kann aus der Modellierung direkt Code auch für Embedded Systeme generiert werden. Im betrachteten Projekt wird das gesamte System derart in Rhapsody entworfen und implementiert. Stacks und signalverarbeitender Code werden mit eingebunden. Dazu sind einige Vorarbeiten nötig, das Abstraktionsniveau steigt für alle Beteiligten - verbunden mit der Chance, bis zum Produkt eine klar erkennbare Architektur umzusetzen und damit ein gut wartbares Produkt zu erhalten.

 


Vortragsreihe: Multicore

Automatische Multi-Core Echtzeitvalidierung

Ein Prozess für modellbasierte Softwareentwicklung

Felix Martin, Andreas Sailer, Michael Deubzer, Timing-Architects Embedded Systems GmbH, Jürgen Mottok, Ostbayerische Technische Hochschule (ESE Kongress 2015)

Der Trend zum Einsatz von Multi-Core Prozessoren, um den steigenden Leistungsanforderungen in eingebetteten Echtzeitsystemen gerecht zu werden, ist ebenso klar erkennbar wie die damit einhergehenden Herausforderungen hinsichtlich Zeitverhalten, Datenabhängigkeiten, Performanz und Zuverlässigkeit. Dieser Beitrag zeigt am Beispiel des freien Echtzeitbetriebssystems Erika Enterprise einen modellbasierten Ansatz, um die Einhaltung von sicherheitskritischen Echtzeitanforderungen mittels Tracing über den kompletten Entwicklungsprozess zu überwachen.

Effiziente Embeddded-Multicore-Programmierung

Automatische Parallelisierung von Scilab/MATLAB-Anwendungen

Oliver Oey, Timo Stripf, emmtrix Technologies (ESE Kongress 2015)

Durch immer weiter steigende Performanzanforderungen wird in immer mehr Bereichen anstelle von Einkernprozessoren auf Mehrkernprozessoren gesetzt. Dieser Wechsel ist im Bereich von Desktop-PCs oder Smartphones bereits vollzogen, im Bereich der eingebetteten Systeme ist der Umbruch jedoch noch im Gange. Durch die parallele Ausführung von Programmen kann sowohl die Performanz gesteigert als auch die Leistungsaufnahme reduziert werden. Bis heute verursacht die parallele Programmierung jedoch einen hohen Zeit- und Kostenaufwand und erfordert spezielles Wissen über die Zielsysteme. Innerhalb des ALMA-EU-Projekts hat ein Konsortium aus Forschung und Industrie eine Werkzeugkette entwickelt, die die parallele Programmierung erheblich vereinfacht. Mittels automatischer Parallelisierung wird sequentieller Scilab/MATLAB-Code für eingebettete Multicore-Prozessoren parallelisiert. Dadurch kann nicht nur die aufwändige manuelle Parallelisierung eingespart, sondern auch der Code auf verschiedenen Prozessoren wiederverwendet werden.

Sicherheit auf allen Kernen

Entwicklung einer Safety-Architektur auf dem AURIX TC27x

Prof. Dr.-Ing. Peter Fromm, Thomas Barth, Hochschule Darmstadt, Mario Cupelli, HighTec EDV Systeme GmbH (ESE Kongress 2015)

Multi-Core Controller bieten neben einem Performancegewinn auch die Möglichkeit, redundante Applikationen auf einem einzelnen Chip zu realisieren. Da die physikalische Kopplung zwischen den einzelnen Cores jedoch deutlich "enger" ist als bei diskreten Mehrcontrollerlösungen, werden besondere Anforderungen an die Softwarearchitektur, das Speicherlayout, das Betriebssystem und an die Treiberschicht gestellt. Dieser Aufsatz zeigt die Herausforderungen und die Herangehensweise bei der Entwicklung einer Safety-Architektur für Gabelstaplersteuerungen mit dem Infineon AURIX Multi-Core-Baustein TC27x unter Verwendung des Betriebssystems PxROS der Firma HighTec. Insebsondere werden die Entwicklung einer sicheren und erweiterbaren Basisarchitektur, das Design einer Multi-Core-Laufzeitumgebung und die Anwendung geeigneter Designpattern für die Applikationsentwicklung dargestellt.

EMB² = Parallel + Heterogen

Parallele Programmierung von Systems-on-a-Chip

Tobias Schüle, Siemens AG (ESE Kongress 2015)

Die Embedded Multicore Building Blocks (EMB²) sind eine als Open-Source-Software zur Verfügung stehende Bibliothek für die parallele Programmierung von eingebetteten Systemen. EMB² basiert auf MTAPI (Multicore Task Management API), einem Standard für das Task-Management in mit C/C++ implementierten Applikationen. Im Folgenden geben wir einen Überblick über EMB² und zeigen auf, wie sich Parallelität über die Grenzen von klassischen Multicore-Prozessoren hinaus mittels MTAPI nutzen lässt.

Und wieder bockt der Multicore

Hilfsmittel und Werkzeuge für das Multicore-Debugging

Jens Braunes, PLS Programmierbare Logik & Systeme GmbH (ESE Kongress 2015)

Beim Debugging tief eingebetteter Multicore-Systeme geht es nicht mehr nur um das Aufspüren von falschen Variablenwerten. Auf der Tagesordnung stehen vielmehr Deadlocks, Ressourcenkonflikte oder Timing-Probleme. Für den Entwickler bedeutet das eine große Herausforderung, die nur durch geeignete Unterstützung durch On-Chip-Debugfunktionen im engen Zusammenspiel mit leistungsfähigen Softwarewerkzeugen gemeistert werden kann. Der folgende Beitrag stellt solche Lösungen vor und zeigt ihre Möglichkeiten, aber auch ihre Grenzen.  


Beiträge ESE 2015, Teil 2