Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Embedded Software Engineering Fachwissen: ESE 2017 (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 2017 Beiträge, Teil 1 - Themenbereiche:


 

Vortragsreihe: Architektur & Design

Controlling Software Complexity with Architectural Design

Keeping code and architecture consistent - approaches and benefits

Moritz Neukirchner, Guillaume Cordon, Elektrobit Automotive GmbH, Andreas Gaiser, Axivion GmbH (ESE Kongress 2017)

Managing the complexity of a software project becomes increasingly difficult as the project grows and evolves over time. Software architectural design shall control this complexity by defining clear cut interfaces between components and permitted interactions among them. Still, ensuring that the code adheres to the architecture specification is hard, even in the presence of reviews and integration testing. This challenge is even aggravated if multiple software variants must be taken into consideration and when portions of the code are being generated.

Keine Angst vor der Spritze!

Mit Dependency Injection zu einem flexiblen Software-Design

Stephan Roth, oose Innovative Informatik eG (ESE Kongress 2017)

Abhängigkeiten (engl. dependencies) im Softwaredesign sind prinzipbedingt eigentlich immer schlecht, aber um ein funktionierendes und modulares Softwaresystem zu erhalten, sind sie bis zu einem gewissen Grad unvermeidlich. Daher ist es vielmehr die Aufgabe der Softwareentwickler und vor allem auch die Verantwortung der Softwarearchitekten, Abhängigkeiten derart zu gestalten, dass sie möglichst wenig "Schmerzen" verursachen. Mit dem Entwurfsmuster Dependency Injection (DI) können Abhängigkeiten sogar externalisiert, also aus dem Entwurf herausgezogen und erst zur Laufzeit aufgelöst werden.

Funktionsorientierte Entwicklung mit Rapid Control Prototyping

Entwurf einer Entwicklungsumgebung für Antriebssteuerungen

Moritz Olbrich, Dr. Fritz Faulhaber GmbH & Co. KG (ESE Kongress 2017)

Das Implementieren und Testen neu zu entwickelnder Funktionen (z.B. Antriebsregler) für Antriebssteuerungen können fehlerhaft und zeitintensiv sein. Durch den Einsatz einer Rapid Control Prototyping (RCP) Umgebung soll das Entwickeln von neuen Funktionen effizienter werden. Mit dieser Umgebung lassen sich direkt angeschlossene Antriebe auf Modellebene betreiben. Durch bessere Analysemöglichkeiten und dem zuvor direkten Abgleichen mit der Antriebssteuerung lassen sich Aussagen zur Funktionalität der Erweiterung zu einem frühen Zeitpunkt treffen.


 

Vortragsreihe: Automotive

Beiträge folgen


 

Vortragsreihe: Echtzeit

Software in Echtzeitsystemen korrekt verteilen

Typische Fehler nebenläufiger Software vermeiden

Dr. Jochen Härdtlein, Kramer Simon, Peter Häfele, Dr. Dirk Ziegenbein, Robert Bosch GmbH (ESE Kongress 2017)

Die Lösung der Fehlerfälle, die durch nebenläufige bzw. parallele SW-Ausführung entstehen, mit traditionellen Mitteln - wie etwa Locks - führt zu großem System-Overhead und schränkt die Verteilbarkeit bzw. die effektive Nutzung der parallelen Rechenleistung massiv ein. Mit dem konstruktiven Ansatz der Logical Execution Time wird die Kommunikation von den Berechnungen entkoppelt und systemweit zeitlich strukturiert. Im vorliegenden Beitrag werden die typischen Fehlerfälle nebenläufiger Echtzeit-SW analysiert und konstruktive Mechanismen zu deren Vermeidung zusammengefasst [6]. Ebenso wird ein Ausblick auf toolgestützte korrekte Softwareverteilung gegeben.

SysWCET: Ende-zu-Ende-Antwortzeiten für OSEK-Systeme

Zeitkritische Pfade durch das gesamte System

Christian Dietrich, Leibniz Universität Hannover, Peter Wägemann, Friedrich-Alexander Universität Erlangen-Nürnberg (ESE Kongress 2017)

Um die Rechtzeitigkeit von Aufgaben in Echtzeitsystemen garantieren zu können, ist die Bestimmung von schlimmstmöglichen Antwortzeiten unerlässlich. Hierbei ist die Herausforderung die präzise Analyse aller Aktivitäten des Gesamtsystems, wie synchrone Systemaufrufe und asynchrone Interrupts, ohne allzu pessimistische Annahmen zu treffen. Zur Lösung dieses Problems haben wir den Analyseansatz SysWCET entwickelt, der die erste integrierte Formulierung des Antwortzeitproblems ermöglicht. Diese Formulierung umfasst dabei das vollständige Rechensystem unter Berücksichtigung aller Aufgaben, aller Interrupts und der Ablaufplanung.

How to Measure RTOS Performance

And how to read data sheets

Colin Walls, Mentor Graphics (ESE Kongress 2017)

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.

Auswahl und Einsatz eines Betriebssystems für Mikrocontroller

NuttX - ein Erfahrungsbericht auf Arm Cortex-M7

Frank Benkert, FRB Computersysteme GmbH (ESE Kongress 2017)

Entwicklungsprojekte für neue embedded Produkte sehen sich zu Beginn meist mit der immer gleichen, grundlegenden Frage konfrontiert:  Mit oder ohne Betriebssystem? Wenn ohne, wie dann? Wenn mit, welches? Es gibt für diese Frage natürlich keine allgemeingültige Antwort. Betrachtet man jedoch die Anforderungen an das neue Produkt genauer, so ergibt sich die Antwort oft von selbst. Welche Fakten helfen aber wirklich bei der Entscheidung? Wie erarbeitet man diese Informationen? Welche Fragen muss man stellen? Wer kann diese beantworten? Im Folgenden soll anhand eines Projektes aus der Praxis aufgezeigt werden, wie dieser Auswahlprozess und die spätere Integration erfolgreich gelingen kann.


 

Vortragsreihe: Implementierung

C++ Core Guidelines Reloaded

Automatische Code-Reparatur und kritische Betrachtung der Guidelines

Prof. Peter Sommerlad, HSR Rapperswil (ESE Kongress 2017)

The C++ Core Guidelines are an effort led by Bjarne Stroustrup. They intend to show how to use modern C++ effectively. "Following the rules will lead to code that is statically type-safe, has no resource leaks, and catches many more programming logic errors than is common in code today. And it will run fast -- you can afford to do things right." In addition to the freely adaptable core guidelines, there also exists an open source support library providing features for code transition and support that might not be yet in your C++ standard library, or even standardized.

Should I Use C++14 in My Next Embedded Design?

What does C++14 get me in embedded systems?

Bertil Spolander, IAR Systems (ESE Kongress 2017)

EETimes and Embedded.com has an annual market survey which, amongst other things, surveys what programming language the respondents use in their current project and what they are planning to use in their next project. In 2017, C is used by 56% in their current projects and 52% in their next project. The corresponding numbers for C++ is 22% and 24%. No other languages are over 5%.

C++: Schnell und klein

Was kostet ein Sprach-Feature?

Andreas Fertig, Philips Medizin Systeme Böblingen (ESE Kongress 2017)

Mit dem Standard C++ 11 und seinen Nachfolgern können C++-Entwickler von spannenden neuen Eigenschaften der Sprache profitieren. Features sind stets mit Kosten verbunden, entweder Geschwindigkeit oder Code-Größe. Um die Sprache C++ mit dem Motto "you pay only for what you use" effektiv nutzen zu können, ist es für Entwickler wichtig zu wissen, was die jeweiligen Kosten eines Features sind.

Boost Your State Machines

Create state machines that are easy to read and maintain

Pawel Wiśniewski, Pawel Wiśniewski Consulting (ESE Kongress 2017)

State Machines sind ein wichtiger Bestandsteil von Software. Leider sind sie zu oft per Hand implementiert, z.B. unter Verwendung von if-else oder switch-case Konstruktionen. Solche Konstruktionen sind schwer zu verstehen und schwierig zu erweitern. Zusätzlich sehen sie immer ein bisschen anders aus, weil sie stets wieder von vorne geschrieben werden. Der Vortrag zeigt eine Lösung auf Basis der Bibliothek Boost.SML. Die mit der Bibliothek erstellten State Machines sind nicht nur einfacher zu verstehen und zu erweitern, sie sind auch oft effizienter als die handgeschrieben Varianten.

Grafische objektorientierte C-Programme mit Simulink

Simulink-Scripts aus Headerfiles generiert

Dr. Hartmut Schorrig, vishia (ESE Kongress 2017)

Im Beitrag wird die Anwendung der grafischen Programmierung in einer Matlab-Simulink-Umgebung gezeigt. Dabei werden Kern-Module in sogenannten S-Functions genutzt, die in C programmiert sind. Der Vorteil dieser Herangehensweise ist einerseits, dass in C hardwarenahe Schichten oder Betriebssystemanbindungen direkt formuliert werden können. Andererseits finden sich die Aufrufe der Kern-Module in dem aus Simulink generierten Code wieder, was die Navigation im Code auch für eine langzeitliche Pflege erleichtert. Dem bisher weitgehend in der zeilenorientierten Programmierung arbeitetenden Entwickler sollen die Vorteile der grafischen Programmierung und die einfache Einbindung bestehender Codes nahegebracht werden.


 

Vortragsreihe: Industrie 4.0

Beiträge folgen

 


 

Vortragsreihe: Internet of Things

Beiträge folgen

 


 

Vortragsreihe: Machine Learning

Beiträge folgen

 


 

Vortragsreihe: Management

Beiträge folgen

 


 

Vortragsreihe: Modellierung

Oft falsch verstanden: Modellierung von Anforderungen

Egal ob agil oder V-Modell - ein Treiber für Effektivität

Dr. Michael Jastram, Formal Mind (ESE Kongress 2017)

Anforderungsmodellierung ist eine Technik, die in vielen Unternehmen nicht oder nur ansatzweise praktiziert wird, und die vergleichsweise einfach und iterativ eingeführt werden kann. Da der Kosten- und Zeitdruck in vielen Unternehmen enorm ist, befinden sich hier "low hanging fruit", mit denen die Entwicklung effektiver gestaltet werden kann. Da es viele unterschiedliche Ansätze gibt, werden hier sowohl die Konzepte vermittelt, die einem helfen, was in die eigene Arbeit passt, als auch konkrete Taktiken, die mit wenig Aufwand Ergebnisse bringen.

Ein Modell sagt mehr als 1000 Bilder!

Mit Modellen die Zukunft vorwegnehmen

Andreas Willert, Willert Software Tools (ESE Kongress 2017)

Dieser Artikel soll aufzeigen, dass modellgetriebenes Engineering weit mehr ist als eine grafische Repräsentanz. Er soll auch aufzeigen, dass die reine Erstellung einer grafischen Repräsentanz in einer Sackgasse mündet. Sie erhöht die Verstehbarkeit auf Kosten von erhöhter Redundanz und damit erhöhtem Pflegeaufwand.  Damit verbunden sinkt die Arbeitseffizienz. Nur wenn redundante Anteile durch Werkzeuge automatisiert angepasst, Änderungen einer Komponente gegenüber dem Gesamtsystem automatisch korreliert, Tests automatisiert und Code generiert … also wo immer möglich Abläufe und Arbeitsschritte automatisiert werden, kann sich modellgetriebene Entwicklung langfristig erfolgreich durchsetzen.

Modellbasiert zum Seriencode

Zwei Projekte, zwei Tools, viele Erkenntnisse

Joachim Terasa, coming GmbH (ESE Kongress 2017)

Zwei Werkzeuge für MBSE, die sich durch ihre Eigenheiten und einzigartigen Features unterscheiden, haben dabei aber auf den ersten Blick eine Menge Gemeinsamkeiten. In der Praxis entpuppen sich einige als durchaus relevant. Im den hier betrachteten Fällen sind besonders die "polled Statemachines" gegenüber den "eventgetriebenen Statemachines" die hervorstechendsten Unterschiede, die zu einem nicht vergleichbaren Verhalten des generierten embedded Systems führen.

Modellierung mit CIRO

Eine UML-Erweiterung zur Modellierung reaktiver Systeme

Johannes Scheier, Zürcher Hochschule für angewandte Wissenschaften (ESE Kongress 2017)

Modellgetriebene Software-Entwicklung ist ein Ansatz mit enormem, nur teilweise ausgeschöpftem Potential. Je verständlicher und lesbarer die Modelle, desto größer ist ihr Nutzen. UML (Unified Modelling Language) sieht die Möglichkeit vor, die Sprache durch eigene Abstraktionen zu erweitern. Nachfolgend wird CIRO (Communicating Interacting Reactive Objects), eine auf diesem Me­chanismus basierende Erweiterung, vorgestellt.


Beiträge ESE 2017, Teil 2