Anforderungen sind ein zentrales Arbeitsprodukt im Entwicklungsprozess, mit dem Stakeholder mit sehr unterschiedlichen Bedürfnissen arbeiten müssen. Hierbei kann man vereinfachend unterscheiden zwischen eher informell denkenden und arbeitenden Stakeholdern (beispielsweise Kunden, Marketing, Schulungspersonal), die Anforderungen meist natürlichsprachig formulieren, weil dies die gemeinsame Sprache ist, die alle beteiligten Stakeholder gleichermaßen souverän verstehen und benutzen können, und eher formal geschulten und arbeitenden Stakeholdern, die Anforderungen gerne in einer formal modellierten Form bekommen würden, die sich möglichst nahtlos in ihre Design- oder Testmodelle übertragen lässt. In der Praxis ist es schwer, eine Darstellungsform für Anforderungen zu finden, die den Bedürfnissen beider Gruppen gleichermaßen gerecht wird: Entweder werden Anforderungen informell notiert, sind dadurch inhärent missverständlich, eine systematische Qualitätssicherung ist schwierig und der Übergang zum Design fehleranfällig; oder die Anforderungen werden formal notiert, wodurch eine Validierung durch viele Stakeholder unmöglich wird. In dieser Arbeit wurde daher ein Ansatz zur Formalisierung von Anforderungen entwickelt, der sich dadurch auszeichnet, dass er einerseits informell formulierte Anforderungen schrittweise in eine formalere Form bringt (so dass Anforderungen präziser formuliert sind und Konsistenzsicherung und Vervollständigung leichter ausgeführt werden können) und andererseits die Verständlichkeit der Anforderungen erhält (so dass die Anforderungen weiterhin von informell denkenden Stakeholder verstanden und validiert werden können). Dazu wurde für eine geeignete Teilmenge der Anforderungen für in Fahrzeuge eingebettete Softwaresysteme (nämlich funktionale Nutzeranforderungen) das zugrundeliegende Denkmodell identifiziert und formal definiert, dann eine für die im Requirements Engineering anfallenden Aufgaben geeignete semiformale Darstellungsform des Modells definiert und die Anforderungen entsprechend modelliert. Auf der Grundlage des formalen Modells und der für das Anforderungsmanagement zugeschnittenen semiformalen Darstellungsform konnte eine pragmatische und wirkungsvolle Formalisierungsmethodik für funktionale Nutzeranforderungen erarbeitet werden. Dieses Vorgehen wurde zusammen mit führenden deutschen Automobilherstellern und -zulieferern entwickelt und an einer Fallstudie aus dem Automobilbereich erprobt.
Inhaltsverzeichnis
Teil I: Einführung
1. Motivation und Zielsetzung
1.1 Bedeutung der Anforderungen
1.2 Herausforderungen für die Dokumentation von Anforderungen
1.3 Zielsetzung und Nutzen der Arbeit
1.4 Aufbau der Arbeit
2. Grundlagen
2.1 Requirements Engineering
2.2 Modellbasierung
2.3 Formalisierung
2.4 Eingebettete Systeme im Automotive Bereich
2.4.1 Eingebettete Systeme
2.4.2 Automotive-Spezifika
3. Wissenschaftliche Vorgehensweise und Fallstudie
3.1 Vorarbeiten
3.2 Wissenschaftliche Vorgehensweise und Validierungsansatz
3.3 Fallstudien
3.3.1 Abstandsgeregelter Tempomat (ACC)
3.3.2 Türsteuergerät (TSG)
Teil II: Formalisierungskonzept
4. Auswahl der zu formalisierenden Anforderungen
4.1 Notwendigkeit einer formalisierungsspezifischen Klassifizierung
4.2 Kriterien für eine formalisierungsspezifische Klassifizierung
4.2.1 Durchgängigkeit zur Klassifikation im Design
4.2.2 Durchgängigkeit zur Klassifikation der Elicitation
4.2.3 Spezifische Eignung für die Formalisierung
4.3 Definition der formalisierungsspezifischen Klassifizierung
4.3.1 Prozessanforderung
4.3.2 Geschäftsanforderung
4.3.3 Nutzeranforderung
4.3.4 Systemanforderung
4.4 Konsequenzen dieser Klassifikation
4.4.1 Verzahnung von Anforderungsmanagement und Design
4.4.2 Atomarisierung von Anforderungen
4.4.3 Seiteneffekte einer Klassifikation
4.5 Auswahl der Klasse der funktionalen Nutzeranforderungen
5. Formale Definition des zugrundeliegenden Modells
5.1 Bedeutung des Modells für die Formalisierung
5.2 Informelle Beschreibung des Modells
5.2.1 Unterscheidung in Nutzer- und Systemsicht
5.2.2 Die Nutzersicht
5.2.2.1 Ereignisse, Aktivitäten, Zustände
5.2.2.2 Parameter und Variablen
5.2.2.3 Reaktionsverhalten, Situationsverhalten und Invarianten
5.2.3 Systemsicht und Übergang zum Designmodell
5.3 Formale Definition des Modells
5.3.1 Zeit
5.3.2 Variablen
5.3.3 Zustände
5.3.4 Zustandsraum
5.3.5 Ereignisse
5.3.6 Zustandsübergänge
5.3.7 Aktivitäten und ihre Parameter
5.4 Aussagen auf dem formalen Modell
5.4.1 Reaktionsverhalten
5.4.2 Situationsverhalten
5.4.3 Invarianten
5.5 Zusammenfassung des formalen Modells
6. Definition einer geeigneten Darstellungsform
6.1 Qualitätskriterien für die Darstellung von Anforderungen
6.2 Dimensionen der verwendeten Darstellungsform
6.3 Darstellung der Anforderungsbestandteile
6.3.1 Darstellung von Ereignissen und Zuständen
6.3.1.1 Verwaltung/Strukturierung von Ereignissen und Zuständen
6.3.1.2 Formatierung und Formulierung von Ereignissen und Zuständen
6.3.2 Darstellung von Aktivitäten und ihren Parametern
6.3.2.1 Verwaltung/Strukturierung von Aktivitäten und Parametern
6.3.2.2 Formulierung und Formatierung von Aktivitäten und Parametern
6.3.3 Darstellung von Variablen
6.4 Darstellung der Anforderungen
6.4.1 Schlüsselworte
6.4.2 Darstellung von Reaktionsverhalten
6.4.3 Darstellung von Situationsverhalten
6.4.4 Darstellung von Invarianten
6.5 Strukturierung von Anforderungen
6.5.1 Darstellung einzelner Dienste
6.5.2 Darstellung der Diensthierarchie
6.6 Mächtigkeit der Sprache
6.7 Zusammenfassung
Teil III: Formalisierungsmethodik
7. Klassifikation
7.1 Kurzbeschreibung
7.2 Datenelemente
7.2.1 Informelle Anforderung
7.2.2 Klassifizierte Anforderung
7.2.3 Prozessanforderung
7.2.4 Geschäftsanforderung
7.2.5 Nutzeranforderung
7.2.6 Systemanforderung
7.3 Aktivitäten
7.3.1 Anforderungen aus der Elicitation übernehmen
7.3.2 Anforderung klassifizieren
7.3.3 Anforderung atomarisieren
7.3.4 Anforderung filtern
7.3.5 Formalisierungsziel festlegen
7.4 Demonstration und Diskussion anhand der Fallstudie
7.5 Zusammenfassung
7.6 Steckbrief „Klassifikation“
8. Formulierung
8.1 Kurzbeschreibung
8.2 Datenelemente
8.2.1 Logische Aktion
8.2.1.1 Ereignis
8.2.1.2 Zustand
8.2.1.3 Zustandsraum
8.2.1.4 Aktivität
8.2.1.5 Variable
8.2.1.6 Parameter
8.2.2 Katalog logischer Aktionen
8.2.3 Anforderungsmuster
8.2.3.1 Systemreaktion
8.2.3.2 Systemveränderung
8.2.3.3 Ereignisabhängiges Verbot
8.2.3.4 Situationsverhalten
8.2.3.5 Situationseinschränkung
8.2.3.6 Ereignisunabhängiges Verbot
8.2.3.7 Invariante
8.3 Aktivitäten
8.3.1 Extraktion der logischen Aktionen
8.3.2 Anwendung der Anforderungsmuster
8.4 Demonstration und Diskussion anhand der Fallstudie
8.4.1 Ausgangssituation
8.4.2 Demonstration des gesamten Ablaufs im Überblick
8.4.3 Extraktion von logischen Aktionen im Detail
8.4.4 Anwendung der Anforderungsmuster im Detail
8.5 Zusammenfassung
8.6 Steckbrief „Formulierung“
9. Strukturierung
9.1 Kurzbeschreibung
9.2 Datenelemente
9.2.1 Dienst
9.2.2 Diensttabelle
9.2.3 Lastenheft
9.3 Aktivitäten
9.3.1 Diensttabelle erstellen
9.3.2 Anforderungen den Diensten zuordnen
9.3.3 Dienste analysieren
9.3.4 Lastenheft generieren
9.4 Demonstration und Diskussion anhand der Fallstudie
9.5 Zusammenfassung
9.6 Steckbrief „Strukturierung“
10. Übergabe ans Design
10.1 Referenzmodell für das modellbasierte Design
10.2 Datenelemente
10.2.1 Design.Aktion
10.2.2 Design.Dienst
10.2.3 Design.Invariante
10.3 Übersetzung der Anforderungs- in Designelemente
10.3.1 Übersetzen von logischen Aktionen
10.3.2 Übersetzen von Verhaltensanforderungen
10.3.3 Übersetzen von Invarianten
10.4 Rückkopplung vom Design ins Anforderungsmanagement
10.5 Aktivitäten
10.5.1 Logische Aktionen und Invarianten ans Design übergeben
10.5.2 Anforderung ans Design übergeben
10.6 Zusammenfassung
10.7 Steckbrief „Übergabe ans Design“
Teil IV: Einbettung in den Entwicklungsprozess
11. Datenmodell
11.1 Datenmodell der Formalisierung
11.2 Einordnung in das Referenz-Datenmodell
12. Aktivitätenmodell
12.1 Aktivitätenmodell der Formalisierung
12.2 Einordnung in das Referenz-Aktivitätenmodell
12.3 Verzahnung von Anforderungserarbeitung und -dokumentation
13. Reifegradmodell
13.1 Referenzmodelle für die Reife einer Anforderung
13.2 Einordnung der Formalisierung in ein Reifegradmodell
13.2.1 Specification
13.2.2 Agreement
13.2.3 Representation
Teil V: Bewertung und Ausblick
14. Diskussion ähnlicher Arbeiten
14.1 Das Sophist Regelwerk
14.2 ATTEMPTO CONTROLLED ENGLISH
14.3 Sicherheitsfachsprache der Uni Cottbus
14.4 Modellbasierte Erfassung von Anforderungen mit UML
14.5 Formalisierungsansatz nach AUTORAID
14.6 Anforderungserfassung in OCTOPUS/UML
14.7 Die Spezifikationssprache SALT
15. Zusammenfassung
16. Ausblick
16.1 Formalisierung von Zeiteigenschaften
16.2 Formalisierung von Systemanforderungen
16.3 Vorverlagerung der Modellbasierung
16.4 Werkzeugunterstützung
16.5 Verknüpfung zu einer umfassenden Methodik
Zielsetzung & Themen
Die vorliegende Arbeit befasst sich mit der Herausforderung, Anforderungen für eingebettete Systeme im Automotive-Bereich präzise, strukturiert und verständlich zu dokumentieren. Ziel ist die Entwicklung einer fundierten, modellbasierten Formalisierungsmethodik, die den Interessenskonflikt zwischen informeller Flexibilität und notwendiger formaler Strenge auflöst, um einen nahtlosen Übergang vom Anforderungsmanagement zum Design zu ermöglichen.
- Entwicklung eines formalen Modells zur präzisen Definition funktionaler Nutzeranforderungen.
- Konzeption einer semiformalen Darstellungsform, die sowohl für Stakeholder verständlich als auch für technische Designs verwertbar ist.
- Erarbeitung einer vierstufigen Formalisierungsmethodik (Klassifikation, Formulierung, Strukturierung, Übergabe).
- Validierung der Methodik durch Fallstudien aus der Automobilindustrie (ACC, Türsteuergerät).
- Integration in bestehende Referenzmodelle für das Requirements Engineering.
Auszug aus dem Buch
4. Auswahl der zu formalisierenden Anforderungen
Um angesichts der großen Heterogenität der Anforderungen Formalisierungsmethoden definieren zu können, die konkret genug sind, um tatsächlich anwendbar zu sein, beschränkt sich diese Arbeit auf eine prominente Teilmenge von Anforderungen, die Klasse der funktionalen Nutzeranforderungen. Grundlage für diese Auswahl ist eine formalisierungsspezifische Klassifikation aller Anforderungen; die unter einer Vielzahl möglicher Klassifikationen gewählte inhaltlich orientierte Klassifikation in Prozess-, Geschäfts-, Nutzer- und Systemanforderungen ist für die Formalisierung gut geeignet, weil die Inhalte über alle Formalisierungsschritte hinweg grundsätzlich unverändert bleiben, und weil so auf den Klassifikationen in Elicitation und Design, die üblicherweise ähnlich inhaltsorientiert sind, aufgebaut werden kann.
Zusammenfassung der Kapitel
1. Motivation und Zielsetzung: Einführung in die Problematik widersprüchlicher Anforderungen an die Dokumentation von eingebetteten Systemen und Vorstellung des Ziels, ein modellbasiertes Formalisierungskonzept zu entwickeln.
2. Grundlagen: Erläuterung der Kernbegriffe Requirements Engineering, Modellbasierung und Formalisierung im Kontext von eingebetteten Systemen.
3. Wissenschaftliche Vorgehensweise und Fallstudie: Darlegung der methodischen Vorgehensweise anhand von Vorarbeiten und der Verwendung zweier repräsentativer Fallstudien (ACC, Türsteuergerät).
4. Auswahl der zu formalisierenden Anforderungen: Begründung der Fokussierung auf funktionale Nutzeranforderungen und Definition der formalisierungsspezifischen Klassifikation.
5. Formale Definition des zugrundeliegenden Modells: Detaillierte mathematische Spezifikation des zugrunde liegenden Denkmodells (Ereignisse, Zustände, Aktivitäten, Variablen, Zeit).
6. Definition einer geeigneten Darstellungsform: Entwurf einer semiformalen, textuellen Darstellungsform für Anforderungsbestandteile und Anforderungsmuster.
7. Klassifikation: Einführung des ersten Formalisierungsschrittes zur Einteilung von Anforderungen in homogene Klassen.
8. Formulierung: Beschreibung des Schrittes zur Extraktion logischer Aktionen und Anwendung standardisierter Anforderungsmuster.
9. Strukturierung: Erläuterung der Strukturierung von Anforderungen in Dienste (Diensthierarchie) zur Steigerung von Konsistenz und Vollständigkeit.
10. Übergabe ans Design: Definition des Übergangs von formalisierten Anforderungselementen in die Zielsprache des Designs (CAR-DL).
Schlüsselwörter
Requirements Engineering, Modellbasierte Formalisierung, Eingebettete Systeme, Automotive-Bereich, Funktionale Nutzeranforderungen, Anforderungsmuster, Logische Aktionen, Diensthierarchie, Anforderungsqualität, Konsistenz, Vollständigkeit, Durchgängigkeit, Lastenheft, Systemmodellierung.
Häufig gestellte Fragen
Was ist das Hauptanliegen dieser wissenschaftlichen Arbeit?
Die Arbeit untersucht, wie Anforderungen für eingebettete Systeme im Automotive-Bereich so dokumentiert werden können, dass sie einerseits für nicht-technische Stakeholder verständlich bleiben und andererseits präzise genug für den direkten Übergang in ein modellbasiertes Design sind.
Welche Herausforderungen bei der Anforderungsdokumentation werden adressiert?
Im Fokus steht der Interessenskonflikt zwischen der notwendigen freien Notation für kreative Phasen, der strukturierten Darstellung für Konsistenz und Vollständigkeit, sowie der formalen Notation für die präzise technische Implementierung.
Was ist das primäre Ziel des entwickelten Formalisierungsansatzes?
Ziel ist es, informell formulierte Anforderungen schrittweise in eine semiformale Form zu überführen, die eine systematische Qualitätssicherung ermöglicht, ohne dabei die Verständlichkeit für beteiligte Stakeholder zu opfern.
Welche wissenschaftliche Methode kommt zur Anwendung?
Es wurde eine vierstufige Methodik entwickelt, bestehend aus Klassifikation, Formulierung, Strukturierung und Übergabe an das Design. Diese wurde fallstudiengetrieben im Rahmen des Forschungsprojekts Mobilsoft unter Einbeziehung von Industriepartnern evaluiert.
Welche Schwerpunkte behandelt der Hauptteil der Arbeit?
Der Hauptteil gliedert sich in die formale Definition des zugrundeliegenden Modells, die Gestaltung einer geeigneten Darstellungsform (semiformal) und die praktische Umsetzung der Formalisierungsschritte, ergänzt durch die Einbettung in den gesamten Entwicklungsprozess.
Durch welche Schlüsselwörter lässt sich der Kern der Arbeit beschreiben?
Zu den zentralen Begriffen zählen Requirements Engineering, modellbasierte Formalisierung, funktionale Nutzeranforderungen, Anforderungsmuster, Dienste und Durchgängigkeit.
Warum wurde bei der Fallstudie "Abstandsgeregelter Tempomat" (ACC) eine Klassifikation vorgenommen?
Aufgrund der großen Heterogenität der Anforderungen konnte keine universelle Formalisierungsmethode definiert werden. Die Klassifikation ermöglicht es, für homogene Anforderungsgruppen (wie die funktionalen Nutzeranforderungen) spezifische und anwendbare Regeln festzulegen.
Welche Rolle spielen "Dienste" bei der Strukturierung der Anforderungen?
Dienste fungieren als Container für Anforderungen, die unter bestimmten Preconditions gültig sind. Sie dienen dazu, die gesamte Anforderungsmenge in handhabbare Einheiten zu zerlegen, die systematisch auf Konsistenz und Vollständigkeit hin analysiert werden können.
- Quote paper
- Andreas Fleischmann (Author), 2008, Modellbasierte Formalisierung von Anforderungen für eingebettete Systeme im Automotive-Bereich, Munich, GRIN Verlag, https://www.grin.com/document/115406