09:00 Uhr
Gute Legacy? Schlechte Legacy?
Woran man gute Legacy erkennt
Details anzeigen
Autor:in:
Dr. Carola Lilienthal | WPS - Workplace Solutions | Germany
Sprache:
Deutsch
Zielgruppe:
Entwickler:innen, Architekt:innen, Projektleiter:innen, Manager:innen
Voraussetzungen:
Den Schmerz von Softwareentwicklung erlebt haben
Überblick und Zusammenfassungen:
Seit über sechzig Jahren bauen wir Software, die immer größer und komplexer wird. Inzwischen haben wir nicht nur Mainframe-Altsysteme, sondern auch die Systeme in objektorientierten Programmiersprachen sind in den letzten zwanzig Jahren so schnell und immer wieder unkontrolliert gewachsen, dass sie zu einem großen Knäul geworden sind. All dieser Legacy Code treibt die Entwicklungskosten in die Höhe und führt dazu, dass wir diese alten Softwaresysteme nicht mehr gerne anfassen. Ist das unvermeidbar? Oder gibt es auch gute Legacy?
Art der Vermittlung:
Vortrag
Nutzen:
Verständnis von guter Legacy
09:50 Uhr
Finding and Fixing Design Debt
Theoretical Foundations and Practical Experience
Details anzeigen
Autor:in:
Prof. Rick Kazman | University of Hawaii | Germany
Sprache:
English
Zielgruppe:
Software engineers, software architects/designers, software project managers
Voraussetzungen:
Basic software engineering and programming knowledge
Überblick und Zusammenfassungen:
This talk describes the root causes of design debt, how design debt inevitably grows and, if not managed, can overwhelm a software-intensive system. It then discusses tools and approaches for locating this debt and for making the economic case for its removal.
Art der Vermittlung:
Standard talk with Powerpoint, including many examples and experiences from real-world projects.
Nutzen:
Attendees will learn that design debt is worth paying attention to and managing. And they will learn that there are practical techniques for doing this. Finally, they will learn that there is a strong practical, financial motivation to do so.
10:40 Uhr
Wirkketten-zentrierter Architekturentwurf von Fahrerassistenzsystemen
Beherrschung technischer Kom-plexität durch Architekturebenen-übergreifende Methodik
Details anzeigen
Autor:innen:
Dr. Ralf Münzenberger | INCHRON AG | Germany
Frieder Heckmann | Valeo Schalter und Sensoren GmbH | Germany
Sprache:
Deutsch oder Englisch
Zielgruppe:
Manager, Architekten, Integratoren, Tester, Softwarenentwickler
Voraussetzungen:
Grundlagen Entwicklung von eingebetteten Systemen
Überblick und Zusammenfassungen:
Moderne Fahrerassistenzsysteme (ADAS) bieten dem Fahrer eine Vielzahl verschiedener Kundenfunktionen, deren Teilfunktionen auf einer oder mehreren ECUs integriert werden. Die Komplexität dieser ECUs steigt durch den Einsatz immer leistungsfähigerer SoC kontinuierlich an. In diesem Artikel wird eine Methodik anhand eines ADAS Serienentwicklungsprojektes vorgestellt, um die steigenden Herausforderungen beim Entwurf solcher Systeme zu beherrschen. Wirkketten werden als zentrales Konzept des Architekturentwurfs zum Ableiten von Anforderungen und von Testfällen eingesetzt. Eine Wirkkette beschreibt den Datenfluss vom Sensor über die an der Funktion mitwirkenden Teilfunktionen bis zum Aktuator inklusive Kommunikation über den Fahrzeugbus.
Um von technischen Details zu abstrahieren, ist der Ausgangspunkt die logische Architekturebene. Berücksichtigt werden u.a. End-to-End Latenzzeiten und die Aktivierungen der log. Elemente. Die Wirkketten spezifizieren den echtzeitkritischen Datenfluss über mehrere logische Elemente. Hierdurch lassen sich bereits in einem sehr frühen Projektstadium Architekturvarianten effizient analysieren, ohne dass die konkrete HW-Architektur bekannt sein muss, und daraus validierte Anforderungen an die technische Architektur ableiten.
Eine korrekte Umsetzung der Anforderungen in Hard- und Software wird im Systemintegrationstest durch die Analyse von Traces nachgewiesen und Abweichungen gegenüber den Soll-Vorgaben der logischen Architektur erkannt. Da die Methodik ein iteratives und inkrementelles Vorgehen über mehrere Architekturebenen ermöglicht, kann auf Change Requests flexibel und effizient reagiert werden.
Art der Vermittlung:
Der Vortrag bietet einen fundierten Gesamtüberblick über eine in der Praxis bewährten Methodik anhand einer Anwendungsstudie.
Nutzen:
- Ableitung von Echtzeitanforderungen während der Requirement-Analyse
- Formale Beschreibung der Anforderungen von Teilfunktionen
- Entwurf und Test von Architekturvarianten bereits in einem frühen Projektstadium
- Validierung der Echtzeitanforderungen gegen den Architekturentwurf mit Hilfe von Trace-Daten
11:30 Uhr
Dependency Injection - einfache Anwendung in der Praxis
Den Verdrahtungsaufwand (wiring) mittels Header-Include minimieren
Details anzeigen
Autor:in:
Alexander Weber | Siemens Energy AG | Germany
Sprache:
Deutsch
Zielgruppe:
Softwareentwickler, Softwarearchitekten
Voraussetzungen:
Er sollte wissen was ein Konstruktor ist.
Überblick und Zusammenfassungen:
Die "Dependancy Injection" ist eine Technik, bei der die Abhängigkeiten einer Klasse zu anderen Klassen mittels eines Konstruktors übergeben (injiziert) werden. Die Abhängigkeiten sollten möglichst aus Interfaces bzw. aus abstrakten Klassen bestehen. Dadurch wird oft eine zentrale Stelle benötigt, um die konkreten Objekte zu erzeugen. Der Verdrahtungsaufwand, das sogenannte "wirering" ist lästig und kann mittels eines einfachen Header-Includes vereinfacht bzw. automatisiert werden. Es werden Beispiele aus der Praxis gezeigt. Die Idee ist die Präsentation mit einer Live-Demo zu verschmelzen.
Art der Vermittlung:
Methodenerklärung, praktische Demonstration
Nutzen:
Die Abhängigkeiten zu konkreten Klassen werden reduziert (loosely coupled). Dadurch sind Klassen viel besser austauschbar und wieder verwendbar.
Durch den Einsatz eines "Header Includes" (Boost.di Library) wird der Verdrahtungsaufwand kompilerunterstüzt minimiert.