Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Das Lastenheft zum Anfassen

Autoren: Andreas Lachenschmidt und Andreas Biberger, iNTENCE automotive electronics GmbH

Beitrag - Embedded Software Engineering Kongress 2015

 

iNTENCE zeigt mit der "Ausführbaren Spezifikation" eine Methode auf, mit der Funktionsverantwortliche Umfänge und Ausprägungen von kundensichtbaren Funktionen früh im Projekt beherrschen können. Erreicht wird dies durch die frühzeitige Erlebbarkeit der Funktion durch Modellbildung. In iterativen und inkrementellen Schritten werden die "Ausführbare Spezifikation" und die klassische Prosa Spezifikation zusammen erstellt und somit die Qualität der Spezifikation unter anderem in den Punkten Funktionsgestaltung, Vollständigkeit, Umsetzbarkeit und Testbarkeit erhöht.

Im Folgenden wird die Methodik der "Ausführbaren Spezifikation" näher erklärt sowie der erfolgreiche Einsatz der erstellten Modelle im Test erläutert. Die gewonnenen Erkenntnisse, nötigen Voraussetzungen, Chancen und Grenzen der Methodik werden abschließend zusammengefasst.


Idee und Einsatzbeispiele - Modell und Spezifikation Hand in Hand

Bei der Entwicklung von neuen Fahrzeugfunktionen gibt es eine Vielzahl von Tätigkeiten, die Entwickler vor Herausforderungen stellen. Es ist beispielsweise der Umfang der Funktion festzulegen, und die Systemgrenzen und Schnittstellen sind zu definieren. Dabei müssen stets Entscheidungen getroffen werden, welche Konzepte und Umsetzungsvarianten entwickelt werden. Die Entscheidungen müssen mit Projektbeteiligten getroffen oder zumindest abgestimmt werden.

Diese Schritte können durch die Erstellung einer "Ausführbaren Spezifikation" unterstützt werden. Gemeinsam mit der Prosa-Spezifikation werden Modelle der Funktion entwickelt, welche die funktionalen Anforderungen bereits umsetzen. Die Entwicklung der Modelle kann im Gegensatz zur späteren Serienentwicklung in einem agilen Prozess durchgeführt werden. Iterativ und inkrementell werden gemeinsam mit dem Kunden Anforderungen spezifiziert und im Modell umgesetzt. Dabei wird das Modell eine Ergänzung zur Prosa-Spezifikation darstellen, diese aber nicht ersetzen. Eine rechtliche Verbindlichkeit besitzt nur die Prosa-Spezifikation.

Zur Überprüfung unserer Ideen haben wir sie zum einen in Projekten aus der Fahrzeug-HMI und Bedienkonzept-Entwicklung umgesetzt. Die Abbildung von Designs, Animationen und Interaktionen in ausführbaren Modellen anstatt in Prosa-Spezifikationen lag durch die Komplexität moderner Systeme nahe. Bedienbare Simulation konnten somit als erlebbare Vorlage für die Serienentwicklung genutzt werden.

Zum anderen konnten wir den Mehrwert der Ideen für daten- und kommunikationsorientierte Funktionen ermitteln. Hier erstellten wir Soll-Modelle, die der Prosa-Spezifikation entsprachen, und konnten durch Feedbackschleifen aus der Modellentwicklung eine Qualitätsverbesserung der Spezifikation erreichen.

Einordnung in den Entwicklungszyklus

Abhängig davon, welche Rolle für die Erstellung der ausführbaren Spezifikation betraut wird, sind mehrere Einsatzszenarien möglich.

In der ersten Variante (siehe Abb. 1, PDF) werden die Modelle direkt beim Kunden entwickelt oder eine externe Firma, die nicht für die Serienumsetzung verantwortlich ist, beauftragt. Das Lastenheft (LH) kann zusammen mit den Modellen dem Serienentwickler als Anforderungen übergeben werden.

In der zweiten Variante (siehe Abb. 2, PDF) erstellt der Serienentwickler selbst die ausführbare Spezifikation während der Anforderungsanalyse und während der Erstellung seines Pflichtenheftes (PH). Die Modelle dienen als Kommunikationsmittel zwischen dem Kunden und Lieferanten. Die Qualität der Anforderung des Kunden kann in einem agilen Prozess überprüft und ergänzt werden. 

Die Variante drei (siehe Abb. 3, PDF) sieht eine Aufteilung der Pflichtenheft- und Modellerstellung auf Integrationsstufen vor. Eine Erweiterung der Funktionsumfänge wird für jedes Release geplant. Diese Variante kann bei neu zu entwickelnden Funktionen schnell zu vorzeigbaren Ergebnissen in der Serienentwicklung führen.

Ziele der Modellbildung

Der Einsatz der ausführbaren Spezifikation führt zur Verbesserung der Qualität der Prosa-Spezifikation. Im Folgenden werden Eigenschaften, die potenziell durch Modellbildung verbessert werden können, beschrieben.

a) Erlebbarkeit:
Die ausführbare Spezifikation gibt uns die Möglichkeit die Funktion früh im Projekt erlebbar zu machen. Das kann durch eine Ausführung des Modells am PC geschehen, durch den Einsatz des Modells in Demonstratoren, durch die Integration des Modells in Fahrzeugmodelle von Fahrsimulatoren oder durch die Integration des Modells in Prototypenfahrzeuge. Konzept- und Umsetzungsentscheidungen sind durch das Erleben der Funktion leichter zu treffen als aufgrund einer textuellen Beschreibung. 

b) Funktionsgestaltung:
Modelle helfen uns, die Idee der zu erstellenden Funktion zu konkretisieren. Durch die parallele Entwicklung der Spezifikation und der Modelle erhalten die Entwickler bereits auf einer ersten Umsetzungsebene ein Bild von der Funktion. Es ist leichter bewertbar, welche Umfänge nötig sind, um den Nutzer oder Nachbarsysteme zu bedienen.

c) Vollständigkeit:
Bei der Entwicklung der ausführbaren Spezifikation können nicht-beschriebene Aspekte, die aber für die Umsetzung notwendig sind, gefunden werden. Danach kann bewertet werden, ob es sich um Spezifikationslücken handelt oder um Implementierungsdetails, die bewusst durch den Softwarelieferanten gestaltet werden sollen. Widersprüche zwischen Anforderungen können bei der Modellerstellung aufgedeckt werden. Durch die stetige Verifikation der Spezifikation während der parallelen Modellerstellung wird die Korrektheit überprüft.

d) Umsetzbarkeit:
Die frühe Erlebbarkeit der Funktion bringt die Möglichkeit zu überprüfen, welche Aspekte sowohl relevant als auch technisch machbar sind und in der Seriensoftware umgesetzt werden sollen.

e) Testbarkeit:
Die Modelle können zudem direkt in der Testumgebung verwendet werden. Die Einsatzmöglichkeiten sollen im Folgenden dargestellt werden.

Einsatz im Test - Verwendung des Modells in der Testumgebung

Aus der Spezifikation von Funktionen wird in der Regel ein erheblicher Anteil der Tests für den System- und Abnahmetest abgeleitet. Da die Modelle der ausführbaren Spezifikation ein funktionales Abbild der Spezifikation darstellen, lag der Schluss nahe, dass diese Modelle einen Mehrwert in den beiden Teststufen leisten können. Wir haben drei Varianten der Verwendung der Modelle im Test betrachtet und durch eine Umsetzung in Projekten untersucht.

Die erste erprobte Variante des Einsatzes der ausführbaren Spezifikation im Test ist die Verwendung der Modelle als Testobjekt in einer Testumgebung. Statt gegen die spätere Seriensoftware-Komponente werden Testfälle und die Testumgebung wie in Abbildung 1 (siehe PDF) gezeigt gegen die Modelle implementiert. Somit kann ohne das eigentliche Testobjekt mit der Entwicklung der Testumgebung begonnen werden. Eine Verifizierung der Testumgebung ist früh im Projekt möglicht (siehe Abb. 4, PDF). 

In der zweiten Variante wurden Testfälle und Testdaten (Testharness) aus dem Modell toolgestützt generiert. Somit war eine schnelle Ableitung von Testfällen möglich. Das Testset konnte mit geringem Aufwand erweitert werden (siehe Abb. 5, PDF).

In einer dritten Variante wurden die erstellten Modelle als Testorakel verwendet. In einem Soll-Ist Vergleich zwischen Softwarekomponente und Modell wurden beide mit den gleichen Eingangsdaten stimuliert (Input). Im Anschluss wurden die Ausgaben (Output) der Softwarekomponente und des Modells miteinander verglichen, um Abweichungen festzustellen. Um einen Vergleich möglich zu machen, sind in der Regel Abstrahierungs- oder Konkretisierungsfunktionen notwendig. Eingaben und Ausgaben sind in diesen Funktionen so aufzubereiten, dass sie von der Softwarekomponente und dem Modell verarbeitet werden können. Indem das Testorakel die erwarteten Ausgaben liefert, müssen diese nicht in den Testfällen implementiert werden. Das Modell wurde in einer Model-in-the-Loop-Umgebung verwendet, um ein Modell einer Seriensoftwarekomponente lauffähig auf ein Steuergerät integriert auf Kommunikationsbus-Ebene zu testen (siehe Abb. 6, PDF). 

Erkenntnisse - Vorteile und Grenzen

Der Einsatz der Idee der ausführbaren Spezifikation in mehreren Projekten zeigte, dass der Mehrwert der Methodik bei neu entwickelten Funtkionen ohne Vorgängergeneration am größten ist. Dennoch können eine Überprüfung und Ergänzung bestehender Spezifikationen sinnvoll sein, sofern deren Qualität angezweifelt wird oder die Spezifikation als Basis für eine neue Generation der Funktion dienen soll.

Bei der Umsetzung der Spezifikation in Modelle war es stets eine Herausforderung, den geeigneten Abstraktionsgrad beziehungsweise die richtige Detailtiefe zu finden. Die Erfahrung zeigt, dass zum Funktionsverständnis und zur Überprüfung der Vollständigkeit und Umsetzbarkeit der Anforderungen ein relativ abstraktes Modell ausreichen kann. Soll das Modell auf eine der gezigten Weisen im Test verwendet werden, wird mehr Aufwand enstehen, um die für den Einsatz im Test nötigen Details im Modell abzubilden.

Es konnte festgestellt werden, dass ein agiler Ansatz bei der Spezifikations- und Modellentwicklung zu besseren Ergebnissen führt. Es sollten mehrere Iterationen und Rückkopplungen zwischen Spezifikations- und Modellerstellung vorgesehen und eine enge Zusammenarbeit mit den OEM-Funktionsverantwortlichen etabliert werden. Abstimmungen sowie ein im 1-2 Wochen-Zyklus durchgeführtes gemeinsames Baselining der Modelle zusammen mit der Spezifikation sind dabei essentiell.

Die Grenzen der Methodik haben sich gezeigt, wenn es um die Abbildung von Aspekten abseits der erlebbaren Funktion geht. Das geforderte zeitliche Verhalten auf der embedded Zielplattform konnte größtenteils nicht exakt modelliert werden. Verhalten von Hardware und Basissoftware und hardwarenaher Softwareanteile kann mit gewissen Aufwand nachgebildet werden, hier sollte aber im Einzelfall entschieden werden, ob dies wirklich notwendig ist oder ob eine höhrere Abstraktionsstufe ausreicht.

Die gezeigte Methode kann bei Kunden auf Widerstand stoßen, da oftmals nur ein Mehraufwand durch die Modellbildung und die Abstimmung zwischen Prosa-Spezifikation und der ausführbaren Spezifikation gesehen wird. Eine objektive Einschätzung, ob die Methode im konkreten Fall einen Mehrwert liefert, sollte gemeinsam mit dem Kunden getroffen werden, um Transparenz und Akzeptanz zu schaffen. Die Vorteile müssen dem Kunden klar kommuniziert werden.

Folgende Erkenntnisse konnten wir in Bezug der vorgestellten Eigenschaften einer Spezifikation gewinnen:

a) Erlebbarkeit:
Die frühe Erlebbarkeit führt zu einem besseren Verständnis der Funktion. Konzepte können bis zu einer Reife entwickelt werden, die ohne die Modellbildung nur schwer zu erreichen ist. Die Modelle unterstützen bei der Kommunikation unter den Stakeholdern und insbesondere auch zwischen dem Kunden und dem späteren Seriensoftware-Lieferanten. Entscheidungen können fundierter getroffen werden, da Lösungsvarianten greifbar dargestellt werden und schnell gegeneinander verglichen werden können.

b) Funktionsgestaltung:
Durch die Umsetzung der Spezifikation in ein Modell konnte die nötige Detailtiefe der Anforderungen vor Übergabe an die Serienentwicklung besser beurteilt werden. Die "Idee" der Funktion konnte konkreter entwickelt werden; damit konnten Unschärfen im Lösungsraum reduziert werden. Die Chance, dass Themenbereiche bedacht werden, die oftmals außerhalb des Fokus der Funktionsentwickler liegen, wie beispielsweise Robustheitsmaßnahmen an Schnittstellen, stieg, da diese Themen in der Regel bereits zur Modellerstellung betrachtet werden mussten.

c) Vollständigkeit:
Beim Einsatz der Methodik zeigte sich, dass eine Vielzahl an Anforderungen bezüglich Widersprüchen oder Interpretationsmöglichkeiten diskutiert wurden. Dies ist natürlich auch ohne den Einsatz der ausführbaren Spezifikation der Fall; bei diesem Ansatz wurde diese Diskussion aber bereits früh im Projekt vor der Serienentwicklung geführt. Weiterhin wurden Aspekte aufgedeckt, die den Funktionsentwicklern aus ihrer Sicht als "völlig klar" erschienen und somit nicht explizit spezifiziert wurden. Für die Serienentwickler der Funktion war die Spezifikation dieser Aspekte aber durchaus notwendig und nicht "völlig klar". Nach Abstimmung fanden auch diese Punkte Einzug in die Prosa-Spezifikation.

d) Umsetzbarkeit:
Die Überprüfung der Machbarkeit anhand der ausführbaren Spezifikation führt zu stabileren Anforderungen. Herausforderungen, die meist erst bei der Serienentwicklung bewusst werden, können erkannt werden. Änderungen an der Funktion, die erst während der Serienentwicklung beschlossen werden, können wiederum an den Modellen überprüft werden, um Machbarkeit und Auswirkungen auf die Funktion abzuschätzen. Diese Änderungsschleife stellte sich als kürzer und kostengünstiger dar, als die Änderung sofort in die Serienentwicklung einzubringen.

e) Testbarkeit:
Durch den Einsatz der Modelle im System- und Abnahmetest konnte früh im Projekt mit der Entwicklung der Testumgebung begonnen werden. Der Einsatz der Modelle als Testorakel beziehungsweise als Basis zur Generierung von Testfällen führte zu Einsparungen bei der Erstellung der Testumgebung.

Mit der Idee der ausführbaren Spezifikation erhalten wir eine wertvolle Methode, um früh in einem Projekt die Qualität der Anforderungen sicherzustellen. Die Erlebbarkeit der Anforderungen hilft den Funktionsentwicklern, ihre Softwarekomponente besser zu verstehen. Es entsteht eine stabile Anforderungsbasis, bevor mit der Serienentwicklung begonnen wird. Ein Einsatz der erstellten Modelle im Test helfen, Aufwand und Kosten bei der Testentwicklung zu reduzieren.

Quellen

Dr. Grimm, Christoph, "Modellierung, Simulation, Entwurf heterogener Systeme",
http://www.ti.informatik.uni-frankfurt.de/lehre/ws0405/modellierung_simulation/v11.pdf
(Stand 03.12.2014)

Biberger, Andreas, "Modellbasiertes Entwickeln und Testen einer AUTOSAR Software Komponente"

 

Beitrag als PDF downloaden

 


Requirements - MicroConsult Trainings & Coachings

Wollen Sie sich auf den aktuellen Stand der Technik bringen?

Dann informieren Sie sich hier zu Schulungen/ Seminaren/ Trainings/ Workshops und individuellen Coachings von MircoConsult zum Thema Requirements /Embedded- und Echtzeit-Softwareentwicklung.

 

Training & Coaching zu den weiteren Themen unseren Portfolios finden Sie hier.


Requirements - Fachwissen

Wertvolles Fachwissen zum Thema Requirements/Embedded- und Echtzeit-Softwareentwicklung steht hier für Sie zum kostenfreien Download bereit.

Zu den Fachinformationen

 
Fachwissen zu weiteren Themen unseren Portfolios finden Sie hier.