Suchen

Softwareentwicklung Änderungen während der Softwareentwicklung leicht gemacht

| Autor/ Redakteur: Roger Aarenstrup und Gaurav Tomar / Stefanie Michel

Die herkömmliche Softwareentwicklung hatte zwei Nachteile: Fehler erst spät zu erkennen und auf Änderungen nicht reagieren zu können. Heute ergänzen agile Methoden Model-based Design, um die Komplexität technischer Systeme überhaupt zu bewältigen.

Firmen zum Thema

Für die Entwicklung von Software in technischen Anwendungen setzten Teams vermehrt agile Methoden mit Model-based-Design ein, um flexibler auf veränderte Anforderungen reagieren zu können.
Für die Entwicklung von Software in technischen Anwendungen setzten Teams vermehrt agile Methoden mit Model-based-Design ein, um flexibler auf veränderte Anforderungen reagieren zu können.
(Bild: TippaPatt)
  • In der heutigen Softwareentwicklung für technische Systeme nutzen die Entwicklungsteams agile Methoden, kombiniert mit Model-based Design. Damit kann man Bedürfnisse der Kunden besser erfüllen.
  • Schon zu Beginn lässt sich eine funktionierende Version des Systems entwickeln – auch wenn Zielhardware, Strecke, Sensoren oder sonstige Hardware nicht verfügbar sind. Es kann später zur Code-Generierung und für die Dokumentation verwendet werden.
  • Müssen Änderungen implementiert werden, lässt sich das Modell nach Tests und Analysen modifizieren. Anschließend wird der Code erneut generiert.

Die meisten Teams, die heute Software für technische Anwendungen entwickeln, erkennen die Nachteile herkömmlicher Methoden (Wasserfallmodell): Fehler und Entwurfsprobleme werden erst in späteren Projektphasen erkannt, Änderungen der Anforderungen können nicht berücksichtigt werden und es besteht das Risiko, ein System zu erstellen, das die Bedürfnisse der Kunden nicht erfüllt. Um diese Nachteile zu vermeiden, verwenden viele Teams heute einen Ansatz, der agile Methoden mit Model-based Design kombiniert.

Bildergalerie

Model-based Design ergänzt agile Methoden für technische Anwendungen – ermöglicht sie sogar. Wie der agile Ansatz wurde Model-based Design konzipiert, um schnelle Iterationen zu unterstützen. Außerdem können mit Model-based Design Herausforderungen der Systementwicklung bewältigt werden, für die agile Methoden allein nicht ausreichen:

  • frühes Testen ohne Verfügbarkeit von Geräten
  • Bewältigung der Komplexität technischer Systeme
  • Verringerung des Risikos, beim Testen ungeprüfter Software auf teurer Hardware
  • Einhaltung der Anforderungen an die funktionale Sicherheit und andere Standards, einschließlich DO-178B/C und ISO 26262

In diesem Artikel wird erläutert, wie Model-based Design die zentralen Werte der agilen Entwicklung unterstützt. Als Beispiel wird die Entwicklung eines adaptiven Tempomats vorgestellt, für die Model-based Design mit agilen Methoden und dem Scrum-Framework kombiniert wird.

Zuordnung der zentralen Werte agiler Methoden zum Model-based Design

Im Agile Manifesto, dem Manifest für agile Softwareentwicklung, werden vier zentrale Werte definiert:

  • Individuen und Interaktionen werden mehr geschätzt als Prozesse und Werkzeuge,
  • funktionierende Software mehr als umfassende Dokumentation,
  • Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung,
  • Reagieren auf Veränderung mehr als das Befolgen eines Plans.

Die Autoren des Manifests betonen, dass „mehr als“ nicht „ausschließlich“ bedeutet. Sie schlagen eine Veränderung der Prioritäten vor: „Obwohl wir die Werte auf der rechten Seite wichtig finden, schätzen wir die Werte auf der linken Seite höher ein.“ Sehen wir uns nun an, wie diese agilen Werte dem Model-based Design zugeordnet werden können.

Fokussierung auf Individuen und Interaktionen

Die Prozesse und Tools in Model-based Design – insbesondere die Modellierung und die Simulation – fördern produktive Interaktionen zwischen Individuen und Teams. Das Modell kann direkt in Simulink, in einem Bericht oder als Webseite weitergegeben werden, sodass es alle Beteiligten als gemeinsamen Bezugspunkt und als verbindliche Informationsquelle verwenden können. Simulationsergebnisse sind klar und sichtbar und können Entwurfsentscheidungen, die Scrum-Planung und Diskussionen mit allen Beteiligten erleichtern.

Fokussierung auf die Zusammenarbeit mit dem Kunden

Die Zusammenarbeit mit dem Kunden steht im Zentrum agiler Methoden. Jeder Sprint beginnt mit einem Planungs-Meeting und endet mit einem Review-Meeting, zu dem häufig auch Kunden beitragen. Modellierung und Simulation unterstützen nicht nur die produktive Zusammenarbeit mit Kunden, sondern auch zwischen unterschiedlichen Teams, Aufgabenbereichen und Disziplinen. Ingenieure aus Hardwareentwurf, Systementwurf sowie Funktions- und Komponentenentwicklung haben eine gemeinsame Sprache und können sich auf ihre Zusammenarbeit konzentrieren, statt über Tools nachzudenken.

Fokussierung auf funktionierende Software

Einer der wesentlichen Vorteile von Model-based Design für ein Team, das agile Methoden verwendet, ist die Möglichkeit, von den ersten Sprints an eine funktionierende Version des Systems zu entwickeln – auch wenn Zielhardware, Strecke, Sensoren oder sonstige Hardware nicht verfügbar sind. Ein durch Simulation verifiziertes Simulink-Modell kann während des gesamten Projekts als funktionierende Software verwendet werden. Ein Modell dient als ausführbare Spezifikation des zu entwickelnden Systems. In frühen Sprints, in denen Hardware möglicherweise nicht zur Verfügung steht, können dem Kunden Simulationsergebnisse statt Ergebnisse von Hardwaretests übergeben und dazu genutzt werden, den Fortgang der Arbeit einzuschätzen, um Unterstützung zu bitten oder den nächsten Sprint zu planen. Außerdem ermöglichen Modelle eine klare und einfache Messung der Fortschritte. Wenn das Modell weiter ausgearbeitet wird, kann es verwendet werden, um Code für Software-in-the-Loop-(SIL-), Processor-in-the-Loop-(PIL-) und Hardware-in-the-Loop-(HIL-)Tests sowie für Echtzeit-Prototypen und Produktionssysteme zu generieren.

Außerdem dient das Modell als Grundlage für eine umfassende Dokumentation. Im Model-based Design ist die Dokumentation ein Ergebnis des Entwurfsprozesses statt einer separaten Aufgabe, da Dokumentation und Berichte bei Bedarf aus dem Modell generiert werden können.

Fokussierung auf das Reagieren auf Veränderung

Ein wesentliches Erfolgshindernis bei der Entwicklung nach dem Wasserfallmodell ist die Unmöglichkeit, angemessen zu reagieren, wenn Anforderungen und Bedingungen sich verändern. Bei Agiler Entwicklung und Model-based Design hingegen können Teams effektiver auf Veränderungen reagieren. Jede nicht triviale Änderung einer technischen Anwendung kann ein Ingenieur im Model-based Design durch Modifikation des Modells umsetzen und anschließend einfach den Code erneut generieren. Vor der Implementierung von Änderungen kann das Team Was-wäre-wenn-Analysen durchführen, um die beste Möglichkeit zu ermitteln, eine bestimmte Anforderung umzusetzen. Nachdem Änderungen am Modell vorgenommen wurden, lässt sich über Simulationen als Regressionstests sicherstellen, dass die Änderungen kein unbeabsichtigtes Systemverhalten verursachen. Außerdem kann das Team Auswirkungsanalysen durchführen, um zu verstehen, wie eine Änderung an einem Teil des Modells andere Teile beeinflussen wird.

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de (ID: 46059494)