Title: Software Engineering I
1Vorlesung Software Engineering I
2Definition
- 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.
3Literatur
- Pohl, Klaus Rupp, ChrisBasiswissen
Requirements Engineering - Aus und Weiterbildung zum Certified
Professional for Requirements Engineering
Foundation Level nach IREB-Standard. dpunkt,
Heidelberg, 2009.
4Anforderungsphasen
- Kundenanforderungen
- Definition der Systemeigenschaften (WAS)
- ? Lastenheft
- Systemanforderungen
- Technische Spezifikation des Systems (WIE)
- Pflichtenheft
- Pflichtenheft wird Vertragsgrundlage!
5Analysephase ? Designphase
Analyse
Anforderungs-Spezifikation (Lastenheft)
Anforderungs-Ermittlung
Produkt-Spezifikation (Pflichtenheft)
Anforderungsanalyse, Systemmodellierung
Design
Architektur-Spezifikation
Projektstart
Architekturentwurf
- 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 ?
Detailentwurf
Modul-/Klassen-Spezifikationen
6Relevanz 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.
7Definition
- 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.
8Anforderungen an Anforderungen
9Problem Widersprüchliche Anforderungen
10Problem Mehrdeutige Anforderungen
11Problem Mehrdeutige Anforderungen
- Mehrere Interpretationen möglich
12Problem Unscharfe Anforderungen
13Prä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.
- Prägnant
- Aktiv
- Überprüfbar
- Verfeinerbar
- Wertschöpfend
- Begründbar
- Deklarativ
- Besser Ein unerfahrener Benutzer soll das System
ohne spezielle Schulung verwenden können
14Aktiv
- 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.
- 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
15Überprüfbar (Quantitativ)
- Schlecht Das System soll besser sein als das
Vorgängersystem.
- Prägnant
- Aktiv
- Überprüfbar
- Verfeinerbar
- Wertschöpfend
- Begründbar
- Deklarativ
- Besser Das System soll folgende Verbesserungen
gegenüber dem System xy bieten -
16Verfeinerung von Zielen
- Schlecht Die Benutzung des Systems soll
selbsterklärend sein
- 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 W3C in Bezug auf folgen
17Mehrwertbildung
- Schlecht Das System soll leicht benutzbar sein.
- 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
18Nachvollziehbare Begründungen
- Schlecht Das System soll auch von ungeschulten
Benutzern intuitiv benutzbar sein.
- Prägnant
- Aktiv
- Überprüfbar
- Verfeinerbar
- Wertschöpfend
- Begründbar
- Deklarativ
- Besser weil es auch in Mietfahrzeugen
einsetzbar sein soll
19Keine Lösungsvorwegnahme
- Schlecht Durch komprimierte Datenübertragung im
Cache soll das geplante System um 10 kürzere
Antwortzeiten aufweisen
- Prägnant
- Aktiv
- Überprüfbar
- Verfeinerbar
- Wertschöpfend
- Begründbar
- Deklarativ
- Besser Das System soll um 10 kürzere
Antwortzeiten aufweisen als System xy.
20Problem 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 n1
21Problembeispiel 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 und eine ebenso reiche Erbtante.
- Hierarchische Verzahnung von Problem und Lösung !
- ?Übergeordnete Entwurfsentscheidungen
beeinflussen untergeordnete Anforderungen !
22Lö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
23WAS 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 !
24Prozesse 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.
25Teilgebiete
- 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?
26Standards
- 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.
27Anforderungsermittlung Methoden
- engl. Requirements Elicitation
- http//www.software-kompetenz.de/?6926
28Beobachtungstechniken
- 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.
29Befragungstechniken
- 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.
30Vergangenheitsorientierte 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.
31Feedback-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).
32Unterstü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.
33Kundenorientierung im RE
34Anforderungsarten
- Visionen und Ziele
- Rahmenbedingungen
- z.B. Juristische Vorgaben
- Kontext und Überblick
- Systemumgebung
- Nichtfunktionale Anforderungen
- Qualitätsmerkmale
- Funktionale Anforderungen
- Funktionen
35Funktionale 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
36Funktionale 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!
37Nichtfunktionale Anforderungen
38Struktur 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, die 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
39Anforderungsbeschreibung
- Verbal
- Fließtext, strukturierte Texte
- Non-Verbal
- Grafische Notationen
- Formale Sprachen
40Natü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
41Natürlichsprachliche Anforderungen
- Die Anforderungsschablone der SOPHISTen
Darstellung der englischen Version
42Sprachliche Abhängigkeiten
43Vor- 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
44(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
45Requirements Management
46Requirements Coverage Traceability