Скачать презентацию Vorlesung Software Engineering I Requirements Engineering Version Software Скачать презентацию Vorlesung Software Engineering I Requirements Engineering Version Software

68d72d272b8fe146e4c82b2fe1a293ee.ppt

  • Количество слайдов: 46

Vorlesung Software Engineering I Requirements Engineering Version Software Engineering I VE 03: Requirements Engineering Vorlesung Software Engineering I Requirements Engineering Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 1

Definition • Die Anforderungsanalyse ist üblicherweise die Startphase im Software-Lebenszyklus. • Requirements Engineering steht Definition • Die Anforderungsanalyse ist üblicherweise die Startphase im Software-Lebenszyklus. • Requirements Engineering steht für das systematische Vorgehen bei der Erfassung, Beschreibung, Prüfung und Verfolgung von Anforderungen für ein zu entwickelndes (Software-) System. • Der Systemanalytiker (Requirements Engineer) ist dafür zuständig. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 2

Literatur • Pohl, Klaus; Rupp, Chris: Basiswissen Requirements Engineering Aus und Weiterbildung zum Certified Literatur • Pohl, Klaus; Rupp, Chris: Basiswissen Requirements Engineering Aus und Weiterbildung zum Certified Professional for Requirements Engineering Foundation Level nach IREB-Standard. dpunkt, Heidelberg, 2009. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 3

Anforderungsphasen • Kundenanforderungen – Definition der Systemeigenschaften (WAS) Lastenheft • Systemanforderungen – Technische Spezifikation Anforderungsphasen • Kundenanforderungen – Definition der Systemeigenschaften (WAS) Lastenheft • Systemanforderungen – Technische Spezifikation des Systems (WIE) Pflichtenheft • Pflichtenheft wird Vertragsgrundlage! Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 4

Analysephase Designphase Analyse Anforderungs. Ermittlung Anforderungs. Spezifikation (Lastenheft) Anforderungsanalyse, Systemmodellierung Design “Projektstart“ - WAS Analysephase Designphase Analyse Anforderungs. Ermittlung Anforderungs. Spezifikation (Lastenheft) Anforderungsanalyse, Systemmodellierung Design “Projektstart“ - WAS für ein System sollen wir bauen, bzw. WAS für Aspekte eines Systems sollen verändert werden? - WAS sind die Anforderungen des Kunden? - Ist es möglich, das geforderte System zu realisieren ? Version Produkt. Spezifikation (Pflichtenheft) Architektur entwurf Architektur. Spezifikation Detailentwurf Modul-/Klassen. Spezifikationen Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 5

Relevanz von RE • Requirements Engineering (RE) ist eine Schlüsseldisziplin der Systementwicklung und entscheidet Relevanz von RE • Requirements Engineering (RE) ist eine Schlüsseldisziplin der Systementwicklung und entscheidet maßgeblich über den Erfolg oder Misserfolg eines Projekts. • Die perfekte Analyse ist nicht möglich, aber sie muss das Ziel sein !!! • Ein guter Requirements-Engineer benötigt bestimmte persönliche Eigenschaften: Analytisch, Selbstbewusst, Emphatisch, Abstraktes Denken, Neugierig, Kommunikativ, Penetrant, präziser schriftlicher Ausdruck. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 6

Definition • Eine Anforderung (Requirement) ist eine funktionale oder nichtfunktionale Vorgabe, die ein System Definition • Eine Anforderung (Requirement) ist eine funktionale oder nichtfunktionale Vorgabe, die ein System erfüllen soll bzw. eine technische oder formale Restriktion, die von außen vorgegeben und zu beachten ist. • Die Definition der Anforderung muss als Übereinkunft zwischen Auftraggeber und Auftragnehmer formuliert sein. Eindeutigkeit ist dabei ein wesentliches Kriterium. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 7

Anforderungen an Anforderungen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Anforderungen an Anforderungen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 8

Problem: Widersprüchliche Anforderungen Nicht realisierbar ! Version Software Engineering I VE 03: Requirements Engineering Problem: Widersprüchliche Anforderungen Nicht realisierbar ! Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 9

Problem: Mehrdeutige Anforderungen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Problem: Mehrdeutige Anforderungen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 10

Problem: Mehrdeutige Anforderungen • Mehrere Interpretationen möglich Was ist richtig ? Version Software Engineering Problem: Mehrdeutige Anforderungen • Mehrere Interpretationen möglich Was ist richtig ? Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 11

Problem: Unscharfe Anforderungen Nicht interpretierbar ! Version Software Engineering I VE 03: Requirements Engineering Problem: Unscharfe Anforderungen Nicht interpretierbar ! Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 12

Prägnant • Schlecht: Das geplante System soll sowohl von Experten als auch von unerfahrenen Prägnant • Schlecht: Das geplante System soll sowohl von Experten als auch von unerfahrenen Personen (Nutzerinnen und Nutzern) benutzbar sein. Unerfahrene User sollen auch ohne große Vorkenntnisse der Bedienerführung oder des Vorgängersystems die vorgesehene Systemfunktionalität nutzen können. Zur Benutzung des Systems sollen die Anwender also keinerlei Schulungen oder spezielle Hilfestellungen benötigen. Der Umgang mit dem System muss daher leicht verständlich sein und ohne große Erfahrung mit dem Vorgängersystem oder vergleichbaren Systemen erfolgen können. 1. 2. 3. 4. 5. 6. 7. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ • Besser: Ein unerfahrener Benutzer soll das System ohne spezielle Schulung verwenden können Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 13

Aktiv • Schlecht: Die Dauer für die Erfassung und Verarbeitung der Messdaten soll halbiert Aktiv • Schlecht: Die Dauer für die Erfassung und Verarbeitung der Messdaten soll halbiert werden. Dadurch soll die Wartezeit bis zum Vorliegen von Ergebnissen verkürzt werden. 1. 2. 3. 4. 5. 6. 7. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ • Besser: Das System erfasst und verarbeitet die Messdaten im Vergleich zum System xy doppelt so schnell. Dadurch muss der Nutzer kürzer auf das Vorliegen von Ergebnissen warten Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 14

Überprüfbar (Quantitativ) • Schlecht: Das System soll besser sein als das Vorgängersystem. 1. 2. Überprüfbar (Quantitativ) • Schlecht: Das System soll besser sein als das Vorgängersystem. 1. 2. 3. 4. 5. 6. 7. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ • Besser: Das System soll folgende Verbesserungen gegenüber dem System xy bieten: –… –… Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 15

Verfeinerung von Zielen • Schlecht: Die Benutzung des Systems soll selbsterklärend sein 1. 2. Verfeinerung von Zielen • Schlecht: Die Benutzung des Systems soll selbsterklärend sein 1. 2. 3. 4. 5. 6. 7. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ • Besser: Das System soll selbsterklärend sein, d. h. ein durchschnittlicher Nutzer soll durchschnittlich nach 2 Min. folgende Funktionen aufrufen können: … • Das System soll selbsterklärend sein, d. h. den Vorgaben nach W 3 C… in Bezug auf … folgen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 16

Mehrwertbildung • Schlecht: Das System soll leicht benutzbar sein. 1. 2. 3. 4. 5. Mehrwertbildung • Schlecht: Das System soll leicht benutzbar sein. 1. 2. 3. 4. 5. 6. 7. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ • Besser: Das System soll … so dass sich die Nutzer auf andere Aufgaben konzentrieren können Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 17

Nachvollziehbare Begründungen • Schlecht: Das System soll auch von ungeschulten Benutzern intuitiv benutzbar sein. Nachvollziehbare Begründungen • Schlecht: Das System soll auch von ungeschulten Benutzern intuitiv benutzbar sein. 1. 2. 3. 4. 5. 6. 7. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ • Besser: … weil es auch in Mietfahrzeugen einsetzbar sein soll Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 18

Keine Lösungsvorwegnahme • Schlecht: Durch komprimierte Datenübertragung im Cache soll das geplante System um Keine Lösungsvorwegnahme • Schlecht: Durch komprimierte Datenübertragung im Cache soll das geplante System um 10% kürzere Antwortzeiten aufweisen 1. 2. 3. 4. 5. 6. 7. Prägnant Aktiv Überprüfbar Verfeinerbar Wertschöpfend Begründbar Deklarativ • Besser: Das System soll um 10% kürzere Antwortzeiten aufweisen als System xy. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 19

Problem: Trennung von Anforderung und Lösung • WAS = Spezifikation, WIE = Entwurf • Problem: Trennung von Anforderung und Lösung • WAS = Spezifikation, WIE = Entwurf • /REQ 1/ „Das System druckt eine wahlweise nach Namen oder Land alphabetisch sortierte Liste von Teilnehmern mit Nummer, Name, Vorname, Affiliation und Land. Auf jeder Seite sind unten links das Erstellungsdatum und unten rechts die Seitenzahl aufgedruckt. “ • Ist dieser Satz eine Anforderung oder eine Entwurfsentscheidung? • ➜ WAS vs. WIE ist kontextabhängig und liefert keine brauchbare Abgrenzung zwischen Anforderungen und Entwurfsentscheidungen. Die gleiche Sache kann je nach Kontext beides sein. • Probleme (beschrieben als Anforderungen) und Lösungen (das Ergebnis von Entwurfsentscheidungen) sind hierarchisch miteinander verzahnt! • ➜ WAS vs. WIE ist stufenabhängig: Eine Entwurfsentscheidung auf Stufe n wird zur Aufgabe (=Anforderung) auf Stufe n+1 Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 20

Problembeispiel: WAS versus WIE • • • Problem: Julia Meier hat ihr Studium abgeschlossen Problembeispiel: WAS versus WIE • • • Problem: Julia Meier hat ihr Studium abgeschlossen und erhält keine Unterstützung von ihren Eltern mehr. Sie ist daher mit der Anforderung konfrontiert, ihren Lebensunterhalt zu sichern. Sie wohnt in Adorf und hat ein Stellenangebot bei einer Firma in Befingen. Ferner hat sie einen reichen Freund eine ebenso reiche Erbtante. Hierarchische Verzahnung von Problem und Lösung ! Übergeordnete Entwurfsentscheidungen beeinflussen untergeordnete Anforderungen ! Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 21

Lösung: WAS versus WIE • Sind Spezifikation von Anforderungen und Entwurf von Lösungen voneinander Lösung: WAS versus WIE • Sind Spezifikation von Anforderungen und Entwurf von Lösungen voneinander trennbar? • Ja, mit operationaler Abgrenzung: – Anforderungsänderungen brauchen die Zustimmung des Auftraggebers – Entwurfsänderungen kann der Auftragnehmer autonom vornehmen Braucht eine Veränderung eines Satzes, eines Modellelements, eines Konstrukts, etc. die Zustimmung des Auftraggebers/Kunden? ja ➜ Anforderung nein ➜ Entwurfsentscheidung Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 22

WAS versus WIE • Ist die Trennung zwischen Anforderungen und Lösungen notwendig ? Ja WAS versus WIE • Ist die Trennung zwischen Anforderungen und Lösungen notwendig ? Ja ! • Die Kompetenz zur Festlegung von Anforderungen liegt fast immer bei anderen Personen als die Kompetenz zum Treffen von Entwurfsentscheidungen Anforderungen und Entwürfe sind daher getrennt zu dokumentieren ! Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 23

Prozesse im Requirements Engineering • Kennen lernen der Anwendungsdomäne – Identifikation von Konzepten, Beziehungen, Prozesse im Requirements Engineering • Kennen lernen der Anwendungsdomäne – Identifikation von Konzepten, Beziehungen, grundlegendem Verhalten • Bestimmung der Anforderungen an das System – Identifikation der Geschäftsprozesse, die das System unterstützen soll – Identifikation der Funktionen die das System dafür bieten soll Das Ganze geschieht auf zwei Ebenen, aus denen sich die zwei verschiedenen "Workflows" des RE-Prozesses ergeben: • Anforderungserhebung („Requirements Elicitation“): – Definition des Systems in einer Form, die Kunden und Entwickler verstehen • Anforderungsanalyse („Requirements Analysis“): – Technische Spezifikation des Systems in einer für die Entwickler verständlichen und umsetzbaren Form. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 24

Teilgebiete • Wie komme ich zu den richtigen Anforderungen? • Wie dokumentiere ich Anforderungen Teilgebiete • Wie komme ich zu den richtigen Anforderungen? • Wie dokumentiere ich Anforderungen verständlich? • Wie vermeide ich inkonsistente, unvollständige Anforderungen? • Wie manage ich Änderungen der Anforderungen? • Wie beschleunige ich mit Templates und Patterns den Analyseprozess? • Wie sichere ich die Testbarkeit der Anforderungen? • Wie messe ich den Projektfortschritt? • Welchen Faktor spielt der Mensch im Analyseprozess? • Wie verwalte ich Anforderungen? Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 25

Standards • Standards für das Requirements Management • Ein sehr bekannter Standard zum Requirements Standards • Standards für das Requirements Management • Ein sehr bekannter Standard zum Requirements Management ist der IEEE 830 (Recommended Practice for Software Requirements Specifications). Er ist ein konkreter praxisnaher Standard für die Beschreibung und die Definition von Softwareanforderungen. Es werden Strukturen vorgeben für den Aufbau der Dokumentation, den Aufbau der einzelnen Anforderungen und sogar zur Formulierung der Anforderungen. • Eine gute Ergänzung hierzu ist der Standard IEEE 1362 (Guide for Information Technology – System Definition, Definition - Concept of Operations Document), der letztendlich ein Standard für Anforderungsdokumente (Lastenhefte) darstellt. • Eine weitere sinnvolle Ergänzung zu den beiden genannten Standards sind die Spezifikationen aus VDI 2519 – Blatt 1 (Vorgehensweise bei der Erstellung von Lasten-/Pflichtenheften). Hier wird definiert was Lasten- und Pflichtenhefte sind, was sie enthalten sollten und wie sie erstellt werden sollten. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 26

Anforderungsermittlung: Methoden • engl. „Requirements Elicitation“ • http: //www. software-kompetenz. de/? 6926 Version Software Anforderungsermittlung: Methoden • engl. „Requirements Elicitation“ • http: //www. software-kompetenz. de/? 6926 Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 27

Beobachtungstechniken • Der Systemanalytiker beobachtet, welche Prozesse die Stakeholder während ihrer Arbeit ausführen. Er Beobachtungstechniken • Der Systemanalytiker beobachtet, welche Prozesse die Stakeholder während ihrer Arbeit ausführen. Er erfasst diese Abläufe und ermittelt daraus die Vorgänge sowie Verbesserungsansätze für das zu entwickelnde System. Beobachtungstechniken eignen sich dazu, sowohl Anforderungen auf sehr detailliertem Niveau als auch unterbewusste Anforderungen zu ermitteln. Beispiele hierfür sind Feldbeobachtung und Apprenticing. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 28

Befragungstechniken • Diese Ermittlungstechniken basieren darauf, Stakeholder nach ihren Wünschen und Bedürfnissen zu befragen. Befragungstechniken • Diese Ermittlungstechniken basieren darauf, Stakeholder nach ihren Wünschen und Bedürfnissen zu befragen. Hierbei stellt ein Systemanalytiker dem Stakeholder gezielte Fragen und lässt sich Sachverhalte, Abläufe und Wünsche schildern. Die Befragungstechniken Fragebogen, Interview, Selbstaufschreibung und On-Site-Customer sind zur Ermittlung von Anforderungen beliebiger Detaillierungsgrade geeignet. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 29

Vergangenheitsorientierte Techniken • Um bestehende Lösungen in ein neues System zu integrieren, sind vergangenheitsorientierte Vergangenheitsorientierte Techniken • Um bestehende Lösungen in ein neues System zu integrieren, sind vergangenheitsorientierte Techniken geeignet. Durch diese Techniken wird die Möglichkeit geschaffen Erfahrungen aus bereits erfolgreich abgeschlossenen Systementwicklungen wiederzuverwenden. Beispiele hierfür sind Systemarchäologie und Reuse. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 30

Feedback-Techniken • Missverständnisse, Fehlinterpretationen oder Fehler bei der Formulierung können bei der Ermittlung der Feedback-Techniken • Missverständnisse, Fehlinterpretationen oder Fehler bei der Formulierung können bei der Ermittlung der Anforderungen durch einen Systemanalytiker auftreten. Um die Qualität der Anforderungen sicherzustellen, muss der Stakeholder das Ergebnis überprüfen. Hierzu verwendet er Feedback-Techniken wie Simulationsmodelle und Anforderungsreview (Anforderungsprüfung und Akzeptanz). Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 31

Unterstützende Techniken • Es gibt unterstützende Techniken, die in Kombination mit den bisher beschriebenen Unterstützende Techniken • Es gibt unterstützende Techniken, die in Kombination mit den bisher beschriebenen Ermittlungstechniken eingesetzt werden. Zu diesen unterstützenden Techniken gehören z. B. Workshops, Snowcards, CRC-Karten, Modellierung etc. Diese Techniken dienen nicht primär der Ermittlung von Anforderungen, sondern der Optimierung der Ergebnisse. Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 32

Kundenorientierung im RE Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Kundenorientierung im RE Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 33

Anforderungsarten • Visionen und Ziele • Rahmenbedingungen – z. B. Juristische Vorgaben • Kontext Anforderungsarten • Visionen und Ziele • Rahmenbedingungen – z. B. Juristische Vorgaben • Kontext und Überblick – Systemumgebung • Nichtfunktionale Anforderungen – Qualitätsmerkmale • Funktionale Anforderungen – Funktionen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 34

Funktionale und nichtfunktionale Anforderungen • Funktionale Anforderungen – Beschreibung der Dienste des Systems, z. Funktionale und nichtfunktionale Anforderungen • Funktionale Anforderungen – Beschreibung der Dienste des Systems, z. B. wie es auf bestimmte Eingaben reagiert oder sich in bestimmten Situationen verhält – z. B. was passiert wenn ein bestimmter Knopf gedrückt wird • Nicht-funktionale Anforderungen – Randbedingungen für die Dienste, z. B. zeitliche Einschränkungen, Entwicklungseinschränkungen, usw. – z. B. Lebensdauer oder Leistung • Domänen-Anforderungen – allgemeine Anforderungen für alle Systeme einer bestimmten Anwendungsdomäne (Medizintechnik, Schienenverkehr. . . ) – z. B. anwendbare Standards Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 35

Funktionale Anforderungen –Funktionalität oder Dienste des Systems – Funktionale Nutzeranforderungen: Abstrakte Außensicht – Funktionale Funktionale Anforderungen –Funktionalität oder Dienste des Systems – Funktionale Nutzeranforderungen: Abstrakte Außensicht – Funktionale Systemanforderungen: Abstrakte Innensicht –Formulierung hängt ab von der zu erwartenden Nutzung und dem Einsatzbereich des Systems –BLACK BOX VIEW! Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 36

Nichtfunktionale Anforderungen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Nichtfunktionale Anforderungen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 37

Struktur einer Anforderung Typischerweise besteht eine Anforderung aus folgenden Attributen: • • Identifikator (Requirement Struktur einer Anforderung Typischerweise besteht eine Anforderung aus folgenden Attributen: • • Identifikator (Requirement Number): Identifiziert die Anforderung eindeutig. Beschreibung (Description) Problembeschreibung (Rationale): Beschreibt das die Anforderung verursachende Problem. Priorität (Priority): Ein numerischer Wert, der die Priorität dieser Anwendung definiert und dann wichtig wird, wenn nicht alle Anforderungen erfüllt werden können. Quelle (Originator): Identifiziert die anfordernde Person oder ein Dokument, aus dem sich die Anforderung ergibt, beispielsweise eine Rechtsvorschrift. Abnahmekriterium (Fit Criterion): Beschreibt eine messbare Bedingung, mit der später geprüft wird, ob die Anforderung erfüllt wurde. Konflikte (Conflicts): Hier können Anforderungen aufgeführt werden, dieser Anforderung widersprechen, sodass zwischen ihnen abgewägt werden muss. Informationen zum Lebenszyklus: • • • Status: Identifiziert den aktuellen Zustand der Anforderung, beispielsweise ob sie vom Auftragnehmer bereits akzeptiert wurde. Offene Punkte: Bietet Platz für noch zu klärende Sachverhalte. History: Versionsgeschichte der Anforderung: Wann wurde sie von wem erstmals formuliert, wann von wem geändert usw. I Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 38

Anforderungsbeschreibung • Verbal – Fließtext, strukturierte Texte • Non-Verbal – Grafische Notationen – Formale Anforderungsbeschreibung • Verbal – Fließtext, strukturierte Texte • Non-Verbal – Grafische Notationen – Formale Sprachen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 39

Natürlichsprachliche Anforderungen • Anforderungen werden meist in natürlicher Sprache beschrieben • Vorteil: – Einfach, Natürlichsprachliche Anforderungen • Anforderungen werden meist in natürlicher Sprache beschrieben • Vorteil: – Einfach, flexibel, universell • Nachteil: – Gefahr der Mehrdeutigkeit, Vermischung etc. Erstellung eines Glossars Verwendung von Schablonen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 40

Natürlichsprachliche Anforderungen • Die Anforderungsschablone der SOPHISTen SHALL <process> SHOULD PROVIDE <whom? > THE Natürlichsprachliche Anforderungen • Die Anforderungsschablone der SOPHISTen SHALL SHOULD PROVIDE THE ABILITY TO The SYSTEM WILL BE ABLE TO Darstellung der englischen Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 41

Sprachliche Abhängigkeiten… Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Sprachliche Abhängigkeiten… Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 42

Vor- und Nachteile der Sprachschablone Vorteile: • • • Einfach lesbar Übersichtlich Sehr genau Vor- und Nachteile der Sprachschablone Vorteile: • • • Einfach lesbar Übersichtlich Sehr genau Einfach zu erstellen Semiformal, daher maschinell analysierbar Nachteile: • Muss der Grammatik der verwendeten Sprache angepasst werden • Möglicherweise Akzeptanzprobleme Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 43

(Semi-) Formale Konzepte • Anwendung von Modellierungskonzepten zur Anforderungsspezifikation, die das System aus verschiedenen (Semi-) Formale Konzepte • Anwendung von Modellierungskonzepten zur Anforderungsspezifikation, die das System aus verschiedenen Sichten beschreiben (Statik, Dynamik, Logik) • Nachteil: Auftraggeber und Auftragnehmer müssen diese Notationen verstehen. • Weitverbreitet: UML-Diagramme Nächste Vorlesung Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 44

Requirements Management Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Requirements Management Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 45

Requirements Coverage & Traceability Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Requirements Coverage & Traceability Version Software Engineering I VE 03: Requirements Engineering Dozenten: Markus Rentschler Andreas Stuckert 46