Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Embedded Software Engineering Fachwissen: ESE 2016 (Teil 2)

MicroConsult bietet das ganze Jahr zu den auf dem Kongress besprochenen Themen Weiterbildungen, Kurse und Seminare sowie Coaching an - im Präsenz- sowie Live-Online-Format!

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 (Präsenz und Live-Online)

Zum Kontaktformular


 ESE Kongress 2016 Beiträge, Teil 2 - Themenbereiche:


Vortragsreihe: Multicore

Software Design Automation für effiziente Multicore-Nutzung

Software-Verteilung under Leistungs- und Energieeinschränkungen

Maximilian Odendahl, CEO, Silexica GmbH (ESE Kongress 2016)

Die Entwicklung von Software für neuartige Multicore-Systeme stellt zahlreiche Industrien im Embedded High-Performance Bereich vor neuartige Herausforderungen. Im Vergleich zu bestehenden Singlecore-Systemen erfordert der Einsatz moderner Multicore-Systeme neben der funktionalen Verifikation und Singlecore-Optimierung eine optimale Verteilung der Software auf die verschiedenen Prozessorkerne der Zielplattform. Dabei gilt es nicht nur, zeitliche und funktionale Vorgaben zu berücksichtigen, sondern idealerweise auch den Leistungs- und Energieverbrauch zu minimieren. Selbst für kleine Anwendungen und Zielsysteme ergibt sich daher eine Vielzahl von möglichen Lösungen, deren Entwicklung und Bewertung bisherige, hauptsächlich manuelle, Entwicklungsansätze an ihre Grenzen bringen. Abhilfe können neuartige Algorithmen und Tools aus dem Bereich der Software Design Automation schaffen. Im Beitrag werden hierzu ein neuartiger Tool-basierter Lösungsansatz näher vorgestellt und die Vorteile anhand eines Anwendungsbeispiels aus der drahtlosen Telekommunikation demonstriert.

Plattformübergreifende Software für Multicore & FPGAs

Portable MATLAB®, Simulink und Scilab-Softwareentwicklung

Timo Stripf, Michael Rückauer, Oliver Oey, emmtrix Technologies GmbH (ESE Kongress 2016)

Neuste eingebettete Systeme werden zunehmend mit leistungsfähigen Multicore-Prozessoren sowie FPGA-Beschleunigern ausgestattet. Das ist notwendig, um die immer höheren Performanzanforderungen von Anwendungen bei möglichst niedrigem Energieverbrauch zu erfüllen. Die Programmierung solcher heterogenen Multicore-Systeme in Unternehmen wird derzeit überwiegend manuell realisiert. Dies ist sehr komplex, teuer und zeitaufwändig und stellt Software-Entwickler vor eine große Herausforderung. Viele Unternehmen scheuen aus diesem Grund den Einsatz von Multicore sogar gänzlich. Im Markt für eingebettete Systeme wird händeringend nach Programmierlösungen für Multicore-Systeme gesucht. In diesem Vortrag werden Werkzeuge für die automatisierte C-Code Generierung und Parallelisierung aus MATLAB®, Simulink und Scilab für heterogene eingebettete Multicore-Systeme vorgestellt.

Multicore-Hardware-Tracing in der Praxis

Eine industrielle Fallstudie

Felix Martin, Maximilian Hempe, Michael Deubzer, Timing-Architects Embedded Systems GmbH (ESE Kongress 2016)

In der Automobilbranche ist ein stetig wachsender Bedarf an immer komplexeren eingebetteten Systemen getrieben von innovativen Funktionen gegeben. Auch in Zukunft wird die Anzahl neuer Funktionen, die vollständig durch Software umgesetzt werden steigen, insbesondere für die Themen ADAS, Connected Cars, automatisches Fahren und Mobility Services. Dieser Bedarf wird durch performantere eingebettete Systeme gedeckt, welche Multi- und Many-Core-Controller enthalten und zunehmend auch in den klassischen Fahrzeugdomänen eingesetzt werden. Diese Fallstudie ist in der klassischen Domäne Lenkung angesiedelt, jedoch lässt sie sich auch auf andere klassische Domänen übertragen.

Immer schön der Reihe nach!

Konstruktive und analytische Verfahren zum Verhindern von Race Conditions

Gunther Vogel, Robert Bosch GmbH, Dr. Daniel Simon, Axivion GmbH (ESE Kongress 2016)

Zur Steuerung eingebetteter Systemen werden häufig Interrupts eingesetzt, die ab einer gewissen Komplexität gründlich geplant und überwacht werden müssen. Gleichzeitig finden auch Multicore-Prozessoren immer weitere Verbreitung in sonst "ressourcenarmen Umgebungen", so dass auch durch die technische Entwicklung das Thema nebenläufiges Programmieren als ein neues Paradigma für viele (Embedded) Programmierer immer wichtiger wird. Mit der Nebenläufigkeit von Software steigt die Gefahr von Race Conditions und folglich von obskurem, schwer nachvollziehbarem Laufzeitfehlverhalten der Systeme. Dieser Beitrag stellt einen methodischen Rahmen vor, um Race Conditions mit konstruktiven Maßnahmen im Design und bei der Codierung zu bekämpfen. Um sicherzustellen, dass das Produkt bei seiner Auslieferung keine Race Conditions enthält, sind ergänzend auf analytische Werkzeuge gestützte Maßnahmen zu verwenden. Die konstruktiven und analytischen Maßnahmen werden erläutert und es wird gezeigt, wie die Ergebnisse über den Verlauf eines Entwicklungsprojekts effizient verwaltet werden können.

Successful Multicore Certification with Software Partitioning

Efficient Implementation for DO-178C, EN 50128, ISO 26262

Sven Nordhoff, SYSGO AG (ESE Kongress 2016)

The usage of multi-core processors (MCPs) in modern systems is state-of-the art and will also come to reality in safety-critical domains like railway, automotive and avionic industry in near future. This fact is driven by different aspects. More and more functions traditionally implemented as separated electronic hardware units will be hosted on platforms where different functionality will be combined into one hardware. The industry wants to reach with the future family of high performance platforms larger scale integration on function level. Additionally new safety and security functions, information services and comfort features will increase the demand for more processing performance. Furthermore the industry has to deal with the fact that most of the manufacturers of CPUs will reduce the number of mono-core CPUs because the mass market does not demand this piece of hardware anymore. The possible technology improvements on mono-core CPUs has reached its limit to provide even more processing bandwidth with higher CPU clock frequencies, increase pseudo-parallel processing on instruction level through instruction pipelines and speculative program executions and by increasing the cache size and number of cache levels. Therefore the chip industry has switched to a multi-core design to accelerate the performance of processors. The question is: "Can a multi-core based platform reach the same level of determinism as a single core platform and can this be demonstrated?" 


 

Vortragsreihe: Requirements

Wenn Ideen Sex haben

Wie kann ich wilde Kundenanforderungen einfangen?

Maik Pfingsten, Der Troubleshooter (ESE Kongress 2016)

In meiner aktiven Zeit als Troubleshooter habe ich über 10 Jahre lang internationale Entwicklungsprojekte gerettet. Das Ziel war stets, ein Projekt in den nächsten sechs Monaten wieder auf die Gleise zu stellen und zum Erfolg zu führen. Dafür habe ich zunächst das Team wieder aufgebaut und die Lasten an das zu entwickelnde System geprüft. Schließlich brauchte ich für eine sinnvolle Strategie, die in den folgenden, harten Verhandlungen mit den Stakeholdern notwendig war, Klarheit über die Anforderungen.

Debugging Embedded Systems Requirements before the Design Begins

Fabien Gaucher, Yves Génevaux, ARGOSIM SA (ESE Kongress 2016)

This paper describes the major innovation offered by the STIMULUS tool in the field of requirements engineering. It will present its operating principles which will be illustrated with a specification item relating to the automobile domain, starting with the definition and the development of the requirements through their simulation up to the embedded code validation tests against those requirements.


 

Vortragsreihe: Safety und Security

Technik trifft Recht

Produktqualität und Wettbewerbsvorteil durch Kenntnis der rechtlichen Haftungssystematik

Susanne Meiners, NewTec GmbH (ESE Kongress 2016)

Technische Innovationen prägen unseren Alltag. Diese müssen mit dem bestehenden Recht in Einklang gebracht werden, um die Rechte der Betroffenen zu schützen. Aktuell sind viele Fragen offen, vor allem, wenn es um autonome oder sich selbst entwickelnde Systeme geht. Ebenso, wenn Datenschutz und Datensicherheit betroffen sind. "Industrie 4.0" ist geprägt von Unsicherheit und Hoffnung: Medien berichten von Hackerangriffen und Unfällen mit autonomen Fahrzeugen, aber auch von technischen Erfindungen, die unseren Alltag erleichtern und unseren Wirtschaftsstandort stärken. Ziel ist es, mit Einblick in das rechtliche Haftungssystem weiter mit Innovationskraft voran zu schreiten und sichere technische Systeme zu entwickeln.

Safety ist anders, Security auch

Wie begegnet man emergenten Systemeigenschaften?

Dr. Thomas Liedtke, ICS AG (ESE Kongress 2016)

Der steigende Anteil an Software-realisierter Anforderungen führt zu einer immer größer werdenden Anzahl von Verwundbarkeiten und möglichen Angriffsvektoren, um Schwachstellen auszunutzen. Safety-Risiken werden häufig durch deduktive (ofmtals mathematische) Ansätze unter Anwendung bewährter Methoden und Wahrscheinlichkeiten bestimmt. Sehr unwahrscheinliche und damit in ihrer Auswirkung kaum einschätzbare Risiken können aufgrund ihrer geringen Auftretenswahrscheinlichkeit vernachlässigt werden. "Nur" mit aller Vernunft vorstellbare Ursachen müssen in Risikoanalysen betrachtet werden. Im schlimmsten Fall wird versucht, einen als Fail-Safe definierten Zustand einzunehmen. Bei der Betrachtung von Security-Risiken gehören auch sehr unwahrscheinliche Bedrohungen und kompexe Verwundbarkeiten zu potentiellen Gefährdungen. Durch den Interessenkonflikt bei Angriffen müssen zur Risikoanalyse insbesondere auch induktive und zufällige Szenarien durchdacht werden. Dazu kommen mögliche Sicherheitslücken durch emergente Systemeigenschaften. Antifragilität wird zur notwendigen Eigenschfat, um vorbereitet zu sein.


 

Vortragsreihe Software Engineering Management

The V-Model is Dead. Long Live the V-Model!

Dr. Royce Recommends an Iterative and Incremental Approach

Colin Hood, Colin Hood Systems Engineering (ESE Kongress 2016)

This paper explains that a V-model documents relationships between information and does not restrict the sequence of creation of information. It also explains that a V-model shows that larger systems can be considered to be a number of sub-systems to aid specification, and that sub-systems can be further considered to consist of a number of components to aid specification.  A V-model also shows that components can be integrated to create sub-systems, and that sub-systems can be integrated to create systems.

Software-Analytics in komplexen Software-Produkten

Verwertbares Wissen aus Daten über Software und Entwicklung

Professor Dr. Rainer Koschke, Universität Bremen (ESE Kongress 2016)

Dieser Artikel beschreibt Techniken, Methoden und Werkzeuge der Software-Analytics. Software-Analytics ist die Wissenschaft zur Gewinnung und Auswertung von Daten über ein Software-Produkt oder dessen Entwicklung. Folgende Fragen werden geklärt: Welche verwertbaren Daten fallen im Entwicklungsprozess an? Wie identifziert man die relevanten Daten für eine gegeben Fragestellung? Wie können die Daten erhoben werden? Mit Hilfe welcher Data-Mining-Techniken lassen sich die Daten auswerten? Welche Werkzeuge gibt es für das Data-Mining? Wie können Daten sinnvoll visualisiert werden? Was sind ihre Chancen und Gefahren?


 

Vortragsreihe Test und Debug

Evaluierung von Software-Verifikationswerkzeugen

Was können und leisten sie?

Autoren: Ralf Gerlich, Dr. Rainer Gerlich, BSSE System and Software Engineering (BSSE), Christian R. Prause, Deutsches Zentrum für Luft- und Raumfahrt e. V. (DLR) (ESE Kongress 2016)

Mit Softwareverifikationswerkzeugen sollen Fehler in Software gefunden werden. Doch gibt es nur spärliche Information über das, was die Werkzeuge wirklich leisten. Meistens liegt nur die Beschreibung des Herstellers vor, an der sich ein Anwender (grob) orientieren kann. So werden Werkzeuge eher nach Bedienerfreundlichkeit oder Verbreitung in der Software-Community ausgewählt als nach ihren tatsächlichen Fähigkeiten, Fehler zu finden – die von den Herstellerangaben abweichen können.

Einsatz von Debuggern im Hardware-in-the-Loop-Test

Test vom Modultest bis zum Systemtest

Kristian Trenkel, iSyst Intelligente Systeme GmbH (ESE Kongress 2016)

Dieser Beitrag erläutert den Einsatz von Debuggern für den Hardware-in-the-Loop (HIL)-Test. Es werden dabei zwei Einsatzbereiche vorgestellt: zum einen der Zugriff auf die Variablen der Software des zu testenden Steuergerätes während der Laufzeit. Damit ist die Realisierung von White Box- und Grey Box-Tests im HIL-Test möglich. Und zum anderen die Messung der Codecoverage der Testfälle ohne Eingriff in die Software des Steuergerätes. Durch die realisierte abstrakte Schnittstelle ist der Einsatz verschiedener Debugger ohne Änderung an den Testfällen realisierbar. Es steht dabei einerseits eine generische Schnittstelle für den Zugriff auf die Variablen der Software zur Verfügung. Auf der anderen Seite ist auch die Ausführung der Codecoverage von den eigentlichen Testfällen getrennt.

Konsistente Metriken zur Ermittlung der Testaktivitäten

Jederzeit wissen, wie weit die Entwicklung wirklich ist

Ingo Nickles, Vector Software (ESE Kongress 2016)

In der modernen Softwareentwicklung gilt es, neue Funktionalitäten in immer kürzeren Zeitabständen zu implementieren. Der Quellcode wird immer umfangreicher und komplexer, dennoch wird erwartet, dass die Software Qualität gleich bleibt oder sich sogar noch verbessert. Die größte Herausforderung ist sicherlich, Release-Zyklen zuverlässig vorherzusagen und einzuhalten. Oft werden Aufwände falsch eingeschätzt und Ressourcen ungünstig verteilt, denn die Projektleiter wissen häufig nicht genau, welche Codeänderungen welche Ressourcen benötigen.

Effizient zum Unit-Test unter C++ und C

Praxiserprobte Wege, Embedded-Code zu isolieren und testen

Franco Chiappori, Schindler Aufzüge AG (ESE Kongress 2016)

Continuous Integration und automatisierte Tests sind erprobte Mittel, um die Qualität von Software zu fördern. Gerade den automatisierten Unit-Tests kommt große Bedeutung zu, garantieren sie doch als Basis der Testpyramide auch die Basis der Qualität. Als Entwickler schätzt man zudem die schnellen Feddbackzyklen von Unit-Tests. In der Praxis fangen die Probleme aber oftmals schon beim Isolieren des zu testenden Codes an. Wie löse ich meine C++ Klasse oder meine C Funktion aus ihren Abhängigkeiten?


Beiträge ESE 2016, Teil 1