Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Embedded Software Engineering - Fachwissen

Der Embedded Software Engineering Kongress - kurz ESE Kongress - wurde 2008 ins Leben gerufen und ist die einzige deutschsprachige Veranstaltung, die sich tiefgehend den Themen und Herausforderungen bei der Entwicklung von Geräte- und Systemsoftware für Industrieanwendungen, Kfz-Elektronik, Telekom sowie Consumer- und Medizintechnik widmet. MicroConsult ist Mitbegründer und Veranstalter dieses Events.

Der Kongress zeichnet sich besonders durch ein hochkaratiges Vortragsprogramm aus. An dieser Stelle veröffentlichen wir für Sie forlaufend Abstracts zu diversen Fachbeiträgen.

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


 

Vortragsreihe: Agil & Scrum

Agile Entwicklungsprozesse im normativ regulierten Umfeld

Die Rolle der Qualitätssicherung auf dem Weg zur Zertifizierung

Rosalinde Schuster, Christoph Lagat, Berner & Mattner Systemtechnik (ESE Kongress 2016)

Um in einem dynamischen, internationalen Markt wettbewerbsfähig zu bleiben, streben Unternehmen nach stets kürzeren und flexibleren Entwicklungszyklen. Im Zuge dieser Entwicklung gewinnen agile Entwicklungsmethoden zunehmend an Bedeutung. Entsprechend dem sogenannten Agilen Manifest wird dabei Individuen und deren Interaktionen, ein funktionierender Produktstand, die Zusammenarbeit mit dem Kunden und die Reaktion auf Veränderungen mehr Gewicht beigemessen als Prozessen und Werkzeugen, einer umfassenden Dokumentation und der Stabilität eines einmal erstellten Plans. Demgegenüber steht jedoch die Anforderung, spezifischen Normen für den Entwicklungsprozess und/oder Produkten zu entsprechen.

DevOps, Agile Entwicklung und Security

Passt das zusammen?

Dr. Ralf Huuck, Synopsys (ESE Kongress 2016)

Moderne Softwareprozesse sind stark von kurzen Produktzyklen, Modularität und schnellem Markteintritt angetrieben. Dieses spiegelt sich in den sogenannten DevOps Prozessen wider als auch in dem Trend zu zunehmend agileren Ansätzen, die eine flexible Antwort auf sich ändernde Anforderungen geben. Auf der anderen Seite sind die Sicherheitsanforderungen insbesondere im Embedded Software Bereich stark gestiegen. Sicherheit erfordert aber gründliches Planen, eine saubere Sicherheitsarchitektur und Spezialkenntnisse, die einem ad hoc Ansatz entgegenstehen. Dieser Vortrag beleuchtet diese scheinbaren Gegensätze und die sich daraus ergebenden Konsequenzen.


 

Vortragsreihe: Architektur

Adaptive Software-Architekturen für automatisierte Systeme

Fail-Operational: Wie hochautomatisierte Funktionen trotz Fehler funktionieren

Gereon Weiß, Philipp Schleiß, Fraunhofer ESK (ESE Kongress 2016)

Die zunehmende Automatisierung von Systemen erfordert neue Ansätze zur Steigerung deren Verlässlichkeit und Flexibilität. In zukünftig hochautomatisierten Fahrzeugen kann der Fahrer die Kontrolle über das Fahrzeug vollständig abgeben und muss erst nach 10 Sekunden wieder übernehmen können. Hierfür müssen die hochautomatisierten Fahrfunktionen auch im Fehlerfall weiter funktionieren, d.h. fail-operational sein. Der Beitrag stellt ein neues Konzept und Lösung für zukünftige adaptive Fahrzeugsoftware-Architekturen vor.

Wie treibt man die Herde wieder sicher zusammen?

Architekturanalyse für Software-Varianten

Prof. Dr. Rainer Koschke, Universität Bremen, Thomas Eisenbarth, Axivion GmbH (ESE Kongress 2016)

Wenn man sehr variantenintensive Software-Produkte zu betreuen hat, bietet sich eine Entwicklung in einer sogenannten Software-Produktlinie (SPL) an. Eine Produktlinie ist eine Familie von Programmen, die eine große Anzahl gleicher Anforderungen erfüllt, von denen aber jedes einzelne Programm nicht genau das Gleiche tut wie die anderen – sei es weil es etwas andere funktionale Anforderungen hat oder weil es etwas andere nicht-funktionale Eigenschaften aufweist (z.B. andere Algorithmen mit unterschiedlichem Ressourcenbedarf implementiert). Manche Autoren bezeichnen SPL deshalb auch als Software-Produktfamilien.

Was macht Ihr Prozessor jetzt gerade?

Techniken zur Messung von Software-Aktivitäten in Echtzeit

Ulrich Dreher, iss innovative software services GmbH (ESE Kongress 2016)

Obwohl Debugger, Emulatoren und andere Entwicklungshilfsmittel in den ver­gangenen Jahrzehnten gewaltige Fortschritte gemacht haben, fehlt ihnen eine Funktion, die die Entwicklung, Fehlersuche und Validierung von Echtzeitsyste­men erheblich erleichtern würde: die Möglichkeit, Software-Events und Ereig­nisse der "realen Welt" in "harter Echtzeit" miteinander zu verknüpfen. Dieser Beitrag beschäftigt sich damit, diese Schwachstellen zu überwinden.


 

Vortragsreihe: Echtzeit

Hard- und Softwareaspekte zur Optimierung von embedded Systemdesigns

Erhöhung der Systemsicherheit durch die Wahl ECC-geeigneter Prozessoren und Speicher

Kei Thomsen, MicroSys Electronics GmbH (ESE Kongress 2016)

Mit hochintegrierten und leistungsfähigen System on Chip Lösungen wandert zunehmend Intelligenz bis auf die Sensorebene von komplexen embedded Anwendungen. Wie Zuverlässigkeit im Design auch bei kleinen Systemstrukturen zu erreichen ist, gepaart mit hoher Performance und geringer Leistungsaufnahme, ist nach wie vor eine wichtige Kompetenz modernen Systemengineerings.

Mixed-Criticality Systeme durch Echtzeitfähigkeitsklassen

Echtzeitanwendungen im Kontext paralleler Programmiermodelle

Tobias Langer, Lukas Osinski, Jürgen Mottok, OTH Regensburg,
Tobias Schüle, Siemens AG, Ralph Mader, Continental AG (ESE Kongress 2016)

Moderne eingebettete Systeme erfordern die parallele Ausführung von Anwendungen mit variierenden Kritikalitäten hinsichtlich funktionaler Sicherheit und Echtzeitverhalten. Echtzeitfähigkeitsklassen bilden eine Basis, mit der solche Systeme entworfen werden können. Wir präsentieren eine erste Beschreibung des Echtzeitfähigkeitsklassenmodells sowie seine Referenzimplementierung auf Basis der Embedded Multicore Building Blocks (EMB²), einer Bibliothek für die parallele Programmierung eingebetteter Systeme.


 

Vortragsreihe: Implementierung

Anpassbare Software geschickt umgesetzt?!

Implementierungsmechanismen anpassbarer Software im Vergleich

Martin Becker, Bo Zhang, Fraunhofer IESE (ESE Kongress 2016)

Bei der erfolgreichen Realisierung von wiederverwendbaren und konfigurierbaren Softwaremodulen ist einer der wichtigsten Schritte die Auswahl von geeigneten Variabilitätsmechanismen. Prominente Vertreter sind hier die bedingte Kompilierung mit dem Präprozessor, die Modulauswahl oder die Parametrierung in Verbindung mit bedingter Ausführung. Der Blick in den Entwicklungsalltag zeigt, dass die Mechanismen oftmals leichtfertig ausgewählt und willkürlich eingesetzt werden. Die Konsequenz sind dann oftmals schlecht verständliche und wartbare Software-Ungetüme. Der Beitrag gibt einen Überblick über gängige Variabilitätsmechanismen, zeigt Stolperfallen und Best-Practices anhand von Praxisbeispielen auf.

Nutzen Sie die Macht der Sprache

Programmieren einmal anders

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

Programmieren ist heute ein Leichtes. Es gibt dutzende Programmiersprachen und viele Möglichkeiten, sie zu erlernen. Ein wichtiger Teil des Wortes Programmiersprache: die Sprache. Meist konzentrieren wir uns darauf, den Teil "Programmieren" zu erledigen. Im Embedded-Umfeld haben Programme eine Lebensdauer von vielen Jahren. Das fehlerfreie Programmieren ist deshalb eine wichtige Aufgabe. Oft vernachlässigt wird, dass es beim Programmieren noch ein weiteres wichtiges Ziel gibt, und zwar die Kommunikation mit den anderen Entwicklern. Mithilfe der Sprache können wir unsere Intention über Jahre hinweg kommunizieren. Durch Sprache wird die Fehlersuche unterstützt, und das bestehende Programm lässt sich leichter erweitern. Mit der Weiterentwicklung des C++ Standards zu C++11 und 14 ergeben sich neue Möglichkeiten, unsere Ausdrucksweise weiter zu verbessern.

Virtualisierung im industriellen Umfeld

Grundlagen, Lösungen, Erfahrungen

Frank Erdrich, Jan von Wiarda, emtrion (ESE Kongress 2016)

Virtualisierung bietet eine Lösung, um mehrere Softwareinstanzen, etwa Betriebssysteme, auf einem System zu betreiben. Dabei laufen die einzelnen Systeme getrennt voneinander ab, ohne zu wissen, dass andere Instanzen auf demselben physikalischen System ausgeführt werden. Durch diese Trennung kann eine gewisse Sicherheit erreicht werden, da beispielsweise eine komprommitierte Instanz nicht auf die Ressourcen, etwa den Hauptspeicher, anderer Instanzen zugreifen kann.


 

Vortragsreihe: Industrie 4.0

Wir bauen eine Maschine - und bauen das IoT gleich mit ein!

Scherz beiseite - wie kann man IoT-Methoden im Maschinenbau sinnvoll nutzen?

Robert Schachner, RST Industrie Automation GmbH bzw. Embedded4You e.V. (ESE Kongress 2016)

IoT - das "Internet of Things" und "Industrie 4.0": Diese zwei Gespenster geistern derzeit überall durch Veranstaltungen und Messen. Das Gesagte klingt dann oft verheißungsvoll; das Ziel der Träume, der große Erfolg werden angekündigt. Meistens bleibt es jedoch bei diversen Schlagworten, deren tieferer Sinn sich aber nicht so recht erschließen will. Dieser Vortrag klärt auf, was sich dahinter verbirgt, und zeigt am Beispiel einer Maschine, wie man diese Technologien wirklich sinnvoll umsetzen kann.

Szenarien für Industrie 4.0

Visionen, Anwendungsbeispiele und Entwicklungsziele

Dr. Irmhild Rogalla, Institut für praktische Interdisziplinarität

Szenarien spielen in der Arbeit der Plattform Industrie 4.0 der Bundesregierung eine große Rolle. Sie werden zur Sammlung von Anforderungen an das "RAMI – Referenzarchitekturmodell Industrie 4.0", als Anwendungsbeispiele wie als Visionen genutzt.


 

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?

Autor: Maik Pfingsten, Der Troubleshooter

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

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.


 

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)

Aims of the Paper: To explain that a V-model documents relationships between information and does not restrict the sequence of creation of information. To explain 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-Projekten

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 & Qualität

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?

Konsistente Metriken zur Ermittlung der Testaktivitäten

Jederzeit wissen, wie weit die Entwicklung wirklich ist

Ingo Nickles, Vector Software

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.

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.

Evaluierung von Software-Verifikationswerkzeugen

Was können und leisten sie?

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.

Merkzettel


Sie haben derzeit keine Trainings auf dem Merkzettel.