12.08.2013 Aufrufe

Hey, wir haben das Pflichtenheft komplett! - Datenbank- und ...

Hey, wir haben das Pflichtenheft komplett! - Datenbank- und ...

Hey, wir haben das Pflichtenheft komplett! - Datenbank- und ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Hey</strong>, <strong>wir</strong> <strong>haben</strong> <strong>das</strong><br />

<strong>Pflichtenheft</strong><br />

<strong>komplett</strong>!<br />

Cool!<br />

Figuren © Christopher B. Wright, ubersoft.net<br />

Endlich!<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 1


Und die letzten Teile<br />

gingen doch recht flott,<br />

besonders die Use Cases<br />

waren kinderleicht.<br />

Stimmt, die meisten<br />

von den Strichmännchen<br />

hat<br />

tatsächlich Mikes<br />

Sohn da reingemalt<br />

Figuren © Christopher B. Wright, ubersoft.net<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 2<br />

????


Haben <strong>wir</strong> da nicht<br />

was vergessen?<br />

Figuren © Christopher B. Wright, ubersoft.net<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 3


Zielbestimmung<br />

Modell des Problembereichs<br />

Geschäftsprozesse<br />

Produktfunktionen<br />

Produktcharakteristiken<br />

Wir <strong>haben</strong> alles!<br />

Figuren © Christopher B. Wright, ubersoft.net<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 4


Figuren © Christopher B. Wright, ubersoft.net<br />

Und die<br />

Qualität?<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 5


Wo sollen <strong>wir</strong> die denn noch<br />

hinschreiben?<br />

Figuren © Christopher B. Wright, ubersoft.net<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 6<br />

uh-oh


Software-Entwurf<br />

Software Entwurf<br />

Kapitel II: Das <strong>Pflichtenheft</strong><br />

Abschnitt II.5: Qualität des<br />

<strong>Pflichtenheft</strong>es<br />

Prof. Dr. Gregor Engels<br />

AG <strong>Datenbank</strong>- <strong>und</strong><br />

Informationssysteme


Über <strong>das</strong> Scheitern von IT-Projekten<br />

IT Projekte sind modern, toll, teuer <strong>und</strong> zum Scheitern<br />

verurteilt!<br />

Standish Group<br />

Research:<br />

CHAOS Report<br />

Untersuchung an<br />

>30.000 IT Projekten<br />

in den USA<br />

Quelle: The Standish Group: Extreme Chaos, 2001<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 8


Und warum ist <strong>das</strong> so?<br />

Antworten auf die Frage: Warum ist ihr Projekt gescheitert?<br />

1. Incomplete Requirements<br />

2. Lack of User Involvement<br />

3. Lack of Resources<br />

4. Unrealistic Expectations<br />

5. Lack of Executive Support<br />

7. Lack of Planning<br />

8. Didn't Need It Any Longer<br />

9. Lack of IT Management<br />

10. Technology Illiteracy<br />

Other<br />

Über <strong>das</strong> Scheitern von IT-Projekten<br />

Project Impaired Factors<br />

6. Changing Requirements & Specifications<br />

% of Responses<br />

13.1%<br />

12.4%<br />

10.6%<br />

9.9%<br />

9.3%<br />

8.7%<br />

8.1%<br />

7.5%<br />

6.2%<br />

4.3%<br />

9.9%<br />

Quelle: The Standish Group: The CHAOS Report, 1994<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 9


Und warum ist <strong>das</strong> so?<br />

Antworten auf die Frage: Warum ist ihr Projekt gescheitert?<br />

1. Incomplete Requirements<br />

2. Lack of User Involvement<br />

3. Lack of Resources<br />

4. Unrealistic Expectations<br />

5. Lack of Executive Support<br />

6. Changing Requirements & Specifications<br />

7. Lack of Planning<br />

8. Didn't Need It Any Longer<br />

9. Lack of IT Management<br />

Über <strong>das</strong> Scheitern von IT-Projekten<br />

Project Impaired Factors<br />

% of Responses<br />

13.1%<br />

12.4%<br />

10.6%<br />

Das <strong>Pflichtenheft</strong> ist <strong>das</strong> F<strong>und</strong>ament jedes IT-Projektes.<br />

10. Technology Illiteracy<br />

4.3%<br />

Man sollte sicher sein, <strong>das</strong>s dieses F<strong>und</strong>ament tragfähig ist,<br />

Other<br />

9.9%<br />

bevor man weiterbaut!<br />

9.9%<br />

9.3%<br />

8.7%<br />

8.1%<br />

7.5%<br />

6.2%<br />

Quelle: The Standish Group: The CHAOS Report, 1994<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 10


0,1-0,2<br />

0,5<br />

1<br />

2-4<br />

20<br />

Anpassungen:<br />

Jetzt oder später?<br />

Anforderungsdefinition<br />

Relative Kosten einer Fehlerkorrektur<br />

Entwurf<br />

Implementierung<br />

[nach A.M. Davis, Software Requirements: Objects, Functions, and States. Prentice Hall, 1993.]<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 11<br />

Test<br />

Wartung


Was ist denn genau die<br />

Qualität des <strong>Pflichtenheft</strong>s?<br />

Figuren © Christopher B. Wright, ubersoft.net<br />

Dafür gibt<br />

es einen<br />

Standard!<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 12


IEEE Std. 830-1998:<br />

IEEE Recommended Practice for<br />

Software Requirements Specifications<br />

Qualität des <strong>Pflichtenheft</strong>s- IEEE 830<br />

http://kybele.escet.urjc.es/Documentos/ISI/IEEE-STD-830-1998.pdf<br />

„A good SRS should be:“<br />

Correct - Korrekt<br />

Complete - Vollständig<br />

Unambiguous - Eindeutig<br />

Consistent - Konsistent<br />

Ranked - Gewichtet (nach Wichtigkeit etc.)<br />

Verifiable - Überprüfbar<br />

Modifiable - Änderbar<br />

Traceable - Nachverfolgbar<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 13


Wann ist ein <strong>Pflichtenheft</strong> korrekt?<br />

Alle Diagramme/Texte sind syntaktisch korrekt<br />

Korrektheit des <strong>Pflichtenheft</strong>s<br />

Das <strong>Pflichtenheft</strong> stellt die Domäne/Anforderungen korrekt dar (semantisch korrekt)<br />

Specification<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 14


Korrektheit des <strong>Pflichtenheft</strong>s<br />

Syntaktische Korrektheit<br />

Wie stellt man syntaktische Korrektheit der<br />

Diagramme sicher?<br />

Einsatz von Tools (automatisch korrekt – in bestimmten Maßen)<br />

Durchsehen des <strong>Pflichtenheft</strong>es:<br />

Objektdiagramme<br />

Alle Namen unterstrichen?<br />

Beziehungen beschriftet?<br />

Aggregationsbeziehungen sinnvoll verwendet?<br />

Keine Klassendiagrammnotationen verwendet (Vererbung, Kardinalitäten)?<br />

Klassendiagramme<br />

Klassen im Singular benannt?<br />

Assoziationen sinnvoll beschriftet, inkl. Leserichtung?<br />

Aggregationen sinnvoll eingesetzt?<br />

Kardinalitäten konsequent angegeben?<br />

Vererbungen sinnvoll eingesetzt?<br />

Keine zirkulären Vererbungen?<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 15


Korrektheit des <strong>Pflichtenheft</strong>s<br />

Syntaktische Korrektheit<br />

Durchsehen des <strong>Pflichtenheft</strong>s (fortgesetzt)<br />

Aktivitätendiagramme<br />

Pfeilspitzen an allen Pfeilen? (sonst Richtung unklar)<br />

Start-/Endknoten eingefügt?<br />

Komplexe Aktionen verfeinert?<br />

Flow final nur in nebenläufigen Teilen?<br />

Use Case Diagramme<br />

Systemgrenze klar beschriftet?<br />

Richtung der <strong>und</strong> Pfeile korrekt?<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 16


Korrektheit des <strong>Pflichtenheft</strong>s<br />

Semantische Korrektheit<br />

Wie kann man semantische Korrektheit feststellen?<br />

„Even if you can prove that a program satisfies a mathematical<br />

specification, there is no way to prove that the mathematical specification<br />

meets the real requirements of the system.”<br />

(Martin Fowler)<br />

Abgleich von Realität <strong>und</strong> <strong>Pflichtenheft</strong> geht nur per Review:<br />

Geschulte Reviewer können mit Fragetechniken Lücken/Probleme aufdecken<br />

Domainexperten können die modellierten Informationen überprüfen<br />

Anwender können feststellen, ob ihre Bedürfnisse berücksichtigt wurden (ev. mit<br />

einem Prototyp)<br />

Allgemein wichtig: Mit anderen drüber reden!<br />

Man sieht die eigenen Fehler/Annahmen nicht<br />

Unterschiedliche Interpretationen helfen, Mehrdeutigkeiten <strong>und</strong> Lücken zu<br />

erkennen<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 17


K<strong>und</strong>e<br />

Adresse:Adresse<br />

Korrektheit des <strong>Pflichtenheft</strong>s<br />

Klassendiagramm-Review<br />

Adresse<br />

Entweder Attribut oder Assoziation, nicht beides!<br />

Achtung: Diese <strong>und</strong> die folgenden Folien zeigen teilweise Beispiele<br />

für schlechtes Klassendesign!<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 18<br />

1


Person<br />

K<strong>und</strong>e<br />

Korrektheit des <strong>Pflichtenheft</strong>s<br />

Klassendiagramm-Review<br />

Adresse<br />

Vererbte Assoziationen oder Attribute nicht wiederholen<br />

(es sei denn, diese sind zusätzlich)<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 19<br />

1<br />

1


Position<br />

<strong>wir</strong>d bestellt in <br />

Verfallsdatum<br />

1<br />

Korrektheit des <strong>Pflichtenheft</strong>s<br />

Klassendiagramm-Review<br />

Medikament<br />

Name:String<br />

Gewicht:Dezimal<br />

Darreichungsform<br />

Lagerfach<br />

Spinnenklassen (viele Verbindungen <strong>und</strong> Attribute):<br />

Möglicherweise Überladung mehrerer Konzepte! (Homonyme nicht<br />

aufgelöst?). Teilen?<br />

Hier: Medikamentensorte <strong>und</strong> Medikament.<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 20<br />

1<br />

1<br />

enthält


Spiegelklassen:<br />

Korrektheit des <strong>Pflichtenheft</strong>s<br />

Klassendiagramm-Review<br />

Lagersegment Lagerfeld<br />

Synonyme nicht erkannt -> integrieren<br />

26<br />

1..4<br />

Karussellager<br />

Lagerfach<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 21<br />

1..4<br />

26


Korrektheit des <strong>Pflichtenheft</strong>s<br />

Klassendiagramm-Review<br />

Auftrag<br />

Auftragsnummer:int<br />

Entsorgungsauftrag<br />

Geisterklassen (Klassen ohne Eigenschaften):<br />

Empfänger<br />

Können irrelevante Konzepte darstellen, können aber auch wichtige<br />

Strukturierungen sein. Beim Modellierer nachfragen!<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 22


Vererbung prüfen:<br />

Korrektheit des <strong>Pflichtenheft</strong>s<br />

Klassendiagramm-Review<br />

Lagerfeld<br />

zulässiges Gewicht: dezimal<br />

Lagerfach<br />

Die vererbte Klasse soll eine Spezialisierung der Oberklasse<br />

darstellen. Vererbung soll nicht eingesetzt werden, nur um<br />

Eigenschaften zu kopieren!<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 23


Korrektheit des <strong>Pflichtenheft</strong>s<br />

Modell des Problembereichs<br />

Beschreibt <strong>das</strong> Modell des Problembereichs <strong>wir</strong>klich den<br />

Problembereich oder bereits Datenstrukturen zu seiner<br />

Repräsentation im System ?<br />

Gegenbeispiel: Kommissioniervorgang<br />

LoslisteKarussell1 : Array<br />

LoslisteKarussell2 : Array<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 24


Korrektheit des <strong>Pflichtenheft</strong>s<br />

Zielbestimmung<br />

Stehen in der Zielbestimmung <strong>wir</strong>klich Ziele, die allein<br />

durch die in diesem Projekt zu entwickelnde Software zu<br />

erreichen sind ?<br />

Gegenbeispiel:<br />

Mit der Umstellung des Medikamentenlagers auf <strong>das</strong><br />

horizontale Karusselllager soll es möglich sein,<br />

Aufträge mit weniger Personal schneller zu bearbeiten.<br />

Ziel der Einführung des Karusselllagers, nicht<br />

der Entwicklung der Lagerverwaltungssoftware<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 25


Nimmt eine Produktfunktion keine<br />

Entwurfsentscheidungen vorweg ?<br />

Gegenbeispiel:<br />

Name:<br />

Beschreibung:<br />

Korrektheit des <strong>Pflichtenheft</strong>s<br />

Produktfunktionen<br />

Beschränkte Benutzung<br />

Der Lagerist muss sich über die<br />

Eingabe eines Passwortes<br />

identifizieren.<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 26


Korrektheit des <strong>Pflichtenheft</strong>s<br />

Produktfunktionen<br />

Wird <strong>das</strong> Ziel jedes Use Cases von irgendeinem<br />

Nutzer tatsächlich als erwünscht angesehen ?<br />

Gegenbeispiel:<br />

Name des Use Cases:<br />

Ziel des Use Cases:<br />

Lagerfachoptimierung<br />

Eingelagerte Waren<br />

einer Charge sollen so<br />

dicht wie möglich<br />

beieinander lagern.<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 27


Review mit Domainexperten<br />

Ware<br />

Hat jeder Medikamententyp ein Verfallsdatum?<br />

Kann ein Lagerfach nur eine Ware enthalten?<br />

Ist die Darreichungsform im Medicode erkennbar?<br />

Bestellen die Stationen Waren einer bestimmten Charge?<br />

1..*<br />

Charge<br />

Verfallsdatum:Datum<br />

Chargennummer:Int<br />

Korrektheit des <strong>Pflichtenheft</strong>s<br />

Review mit Domainexperten<br />

Lagerfach<br />

Darreichungsform<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 28<br />

0..1<br />

1..*<br />

enthält <br />

1<br />

1<br />

Medikamententyp<br />

Name:String<br />

Medicode:Int<br />

Gewicht:Decimal<br />

1


Suchen nach (relevanten) Spezialfällen:<br />

Korrektheit des <strong>Pflichtenheft</strong>s<br />

Review mit Domainexperten<br />

Die Zahl der Passagiere auf einem Flug bleibt konstant!<br />

„Wenn aber nun einer mit dem Fallschirm abspringt?“<br />

Die Zahl der Passagiere auf einem Flug ist konstant oder fallend!<br />

„Wenn aber nun eine Schwangere ein Baby an Bord bekommt?“<br />

Die Zahl der Passagiere auf einem Flug ist variabel zwischen Start <strong>und</strong><br />

Landung!<br />

Das Suchen nach Spezialfällen sollte sich auf relevante Situationen<br />

beschränken!<br />

z.B.: Krücken <strong>haben</strong> kein Verfallsdatum, werden aber auch im Lager<br />

verwaltet<br />

Im Glossar gut dokumentieren<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 29


Korrektheit des <strong>Pflichtenheft</strong>s<br />

Review mit Anwendern/Nutzern<br />

(nur) Anforderungen beschrieben, die auch Bedürfnissen<br />

der Nutzer entsprechen?<br />

nicht korrekte Anforderungen führen zu Funktionalität,<br />

die keiner braucht!<br />

fehlende Akzeptanz durch den Nutzer<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 30


IEEE Std. 830-1998:<br />

IEEE Recommended Practice for<br />

Software Requirements Specifications<br />

Qualität des <strong>Pflichtenheft</strong>s- IEEE 830<br />

http://kybele.escet.urjc.es/Documentos/ISI/IEEE-STD-830-1998.pdf<br />

„A good SRS should be:“<br />

Correct - Korrekt<br />

Complete - Vollständig<br />

Unambiguous - Eindeutig<br />

Consistent - Konsistent<br />

Verifiable - Überprüfbar<br />

Modifiable - Änderbar<br />

Traceable - Nachverfolgbar<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 31


Vollständigkeit des <strong>Pflichtenheft</strong>es<br />

Wie stelle ich fest, ob <strong>das</strong> <strong>Pflichtenheft</strong> vollständig ist?<br />

In den Texten: auf Ungenauigkeiten achten (verstecken häufig<br />

Lücken)<br />

„ungefähr“, „meistens“, „häufig“, „normalerweise“<br />

Was ist in den anderen Fällen?<br />

In Klassendiagrammen:<br />

Ergeben zwei relevant unterschiedliche Situationen zwei<br />

unterschiedliche Objektdiagramme?<br />

Kann ich 0..* Kardinalitäten genauer fassen?<br />

In Aktivitätendiagrammen:<br />

Sind alle möglichen Abläufe abgebildet? Insbesondere „im Prinzip<br />

könnte man <strong>das</strong> auch so…“ vs. „Wir machen <strong>das</strong> immer so…“<br />

Unabhängige Aktionen durch Nebenläufigkeit entkoppeln<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 32


Vollständigkeit des <strong>Pflichtenheft</strong>es<br />

Produktfunktionen<br />

Wie stelle ich fest, ob <strong>das</strong> <strong>Pflichtenheft</strong> vollständig ist?<br />

Produktfunktionen<br />

Review mit Anwender: Anwendung simulieren (Prototyp oder Mockup)<br />

Da müsste ich doch<br />

jetzt eine Bestätigung<br />

drucken können... Warum kann ich denn<br />

jetzt nicht auf die Liste<br />

zurück?<br />

Kann ich auch eine Übersicht<br />

nach Bestelldatum bekommen?<br />

Woher soll ich denn jetzt<br />

hier den Medicode wissen?<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 33


Name:<br />

Vorbedingung:<br />

Nachbedingung bei erfolgreicher<br />

Ausführung:<br />

...<br />

Name:<br />

Vorbedingung:<br />

...<br />

Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels 26<br />

Vollständigkeit des <strong>Pflichtenheft</strong>es<br />

Produktfunktionen<br />

Zusammenhang (Konsistenz)<br />

zwischen Produktfunktionen<br />

Auftrag zur Kommissionierung einstellen<br />

keine<br />

Es existiert ein KV mit diesem Auftrag.<br />

KV durchführen<br />

KV vorhanden <strong>und</strong> zur Bearbeitung<br />

freigegeben<br />

Gibt es zu jeder<br />

Vorbedingung<br />

eine andere<br />

Funktion, die<br />

diese herstellt?<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 34


IEEE Std. 830-1998:<br />

IEEE Recommended Practice for<br />

Software Requirements Specifications<br />

Qualität des <strong>Pflichtenheft</strong>s- IEEE 830<br />

http://kybele.escet.urjc.es/Documentos/ISI/IEEE-STD-830-1998.pdf<br />

„A good SRS should be:“<br />

Correct - Korrekt<br />

Complete - Vollständig<br />

Unambiguous - Eindeutig<br />

Consistent - Konsistent<br />

Verifiable - Überprüfbar<br />

Modifiable - Änderbar<br />

Traceable - Nachverfolgbar<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 35


Eindeutigkeit des <strong>Pflichtenheft</strong>es<br />

Werden dieselben Begriffe an allen Stellen des <strong>Pflichtenheft</strong>es<br />

verwendet?<br />

Medikamententyp<br />

Name:String<br />

Medicode:Int<br />

Gewicht:Decimal<br />

vs.<br />

Gibt es nur eine Interpretation für Aussagen im PH?<br />

z.B. im Glossar oben: Kann oder muss eine Medikamentsorte einen<br />

Identcode <strong>haben</strong>?<br />

Fehlende Eindeutigkeit führt zu<br />

Glossar:<br />

Software, die nicht dem PH oder den Anforderungen entspricht<br />

Streit zwischen Auftraggeber <strong>und</strong> Auftragnehmer<br />

Medikamentensorte: Eine bestimmte<br />

Packungsgröße <strong>und</strong> Darreichungsform von<br />

einem Medikament bezeichnet man als<br />

Medikamentensorte. Diese kann über einen<br />

Identcode eindeutig bestimmt werden.<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 36


Konsistenz des <strong>Pflichtenheft</strong>es<br />

Widersprechen sich verschiedene Teile des<br />

<strong>Pflichtenheft</strong>es?<br />

Karussell<br />

26<br />

Lagerfeld<br />

Ware entnehmen<br />

Entnahme<br />

bestätigen<br />

vs.<br />

vs.<br />

Glossar:<br />

Karussell: Ein Karussell besteht aus einer<br />

variablen Anzahl von Lagerfeldern.<br />

Glossar:<br />

Entnahme: Bei der Entnahme <strong>wir</strong>d über<br />

einen Gewichtssensor die Menge der<br />

entnommenen Ware bestimmt.<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 37


Konsistenz des <strong>Pflichtenheft</strong>es<br />

Klassen- <strong>und</strong> Objektdiagramme<br />

Sind eventuelle Objektdiagramme konsistent zu den<br />

Klassendiagrammen? (siehe II.2)<br />

Allgemeines Modell:<br />

Klassendiagramm<br />

Auftrag<br />

Auftragsnummer : Dezimal<br />

Bestelldatum : Datum<br />

Einlagerungsauftrag<br />

1<br />

1..*<br />

Position<br />

Instanziierung<br />

Konkretes Modell:<br />

Objektdiagramme<br />

A131:Einlagerungsauftrag<br />

Auftragsnummer = D214V7<br />

Bestelldatum = 3.11.2004<br />

P1:Position P2:Position<br />

Softwareentwurf 2004/05 Universität Paderborn - Gregor Engels 40<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 38


Schri<br />

tt<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

Konsistenz des <strong>Pflichtenheft</strong>es<br />

Szenarien <strong>und</strong> Aktivitätendiagramme<br />

Sind die Szenarien im Aktivitätendiagramm enthalten?<br />

Nutzer<br />

Lagerist<br />

DHC<br />

DHC<br />

DHC<br />

Lagerist<br />

Lagerist<br />

Beschreibung der Aktivität<br />

Anzeigen, <strong>das</strong>s 3 Aufträge im KV enthalten sind<br />

3 Kisten auf Packpositionen stellen<br />

DHC in Position 16 drehen<br />

Entnahmemenge 12 für Fach 1 anzeigen<br />

Tür öffnen<br />

12 Packungen aus Fach 1 entnehmen<br />

Entnahme bestätigen<br />

...<br />

[Menge in Fach<br />

ausreichend]<br />

Ware entnehmen<br />

Entnahme<br />

bestätigen<br />

Tür öffnen<br />

Tür schließen<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 39<br />

[Menge in Fach nicht<br />

ausreichend]<br />

Entnehmbare<br />

Menge in V-DHC<br />

eintragen<br />


IEEE Std. 830-1998:<br />

IEEE Recommended Practice for<br />

Software Requirements Specifications<br />

Qualität des <strong>Pflichtenheft</strong>s- IEEE 830<br />

http://kybele.escet.urjc.es/Documentos/ISI/IEEE-STD-830-1998.pdf<br />

„A good SRS should be:“<br />

Correct - Korrekt<br />

Complete - Vollständig<br />

Unambiguous - Eindeutig<br />

Consistent - Konsistent<br />

Verifiable - Überprüfbar<br />

Modifiable - Änderbar<br />

Traceable - Nachverfolgbar<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 40


Überprüfbarkeit des <strong>Pflichtenheft</strong>s<br />

Das <strong>Pflichtenheft</strong> ist ein Vertragsbestandteil!<br />

Alle Angaben/Aussagen sollten so konkret wie möglich <strong>und</strong> ihre<br />

Einhaltung muss überprüfbar sein (Existenz eines endlichen,<br />

machbaren Prozesses, so <strong>das</strong>s eine Person oder Maschine überprüfen<br />

kann, ob Anforderung in Implementierung erfüllt wurde)<br />

Name:<br />

Typ:<br />

Beschreibung:<br />

Optimierte Kommissionierung<br />

EFFIZIENZ<br />

Das Ansteuern des Karussellagers <strong>wir</strong>d zeitlich<br />

optimiert.<br />

Zugeordnete(r)<br />

KV durchführen<br />

Use Case(s) Ungenau <strong>und</strong> nicht überprüfbar! Besser: Das Ansteuern<br />

des Karusselllagers dauert max. 4 Sek pro<br />

Bewegungsvorgang (plus Öffnen der Türen)<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 41


IEEE Std. 830-1998:<br />

IEEE Recommended Practice for<br />

Software Requirements Specifications<br />

Qualität des <strong>Pflichtenheft</strong>s- IEEE 830<br />

http://kybele.escet.urjc.es/Documentos/ISI/IEEE-STD-830-1998.pdf<br />

„A good SRS should be:“<br />

Correct - Korrekt<br />

Complete - Vollständig<br />

Unambiguous - Eindeutig<br />

Consistent - Konsistent<br />

Verifiable - Überprüfbar<br />

Modifiable - Änderbar<br />

Traceable - Nachverfolgbar<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 42


Änderbarkeit des <strong>Pflichtenheft</strong>s<br />

„The requirements will change whether they’re<br />

allowed to or not.” Edward H. Bersoff<br />

Maßnahmen um <strong>das</strong> <strong>Pflichtenheft</strong> änderbar zu halten:<br />

Klare Struktur, Inhaltsverzeichnis etc.<br />

Querverweise<br />

Red<strong>und</strong>anzfreiheit<br />

-> Nachverfolgbarkeit<br />

nicht änderbare Anforderungen führen zu<br />

nicht mehr benutztem <strong>Pflichtenheft</strong><br />

<strong>Pflichtenheft</strong> von schlechter Qualität<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 43


Nachverfolgbarkeit des <strong>Pflichtenheft</strong>s<br />

Es gibt Beziehungen innerhalb des <strong>Pflichtenheft</strong>s (siehe Konsistenz)<br />

Es sollte Beziehungen zwischen dem PH, der Realität <strong>und</strong> dem<br />

fertigen Produkt geben (sehr wünschenswert!)<br />

Diese Beziehungen sollten nachverfolgbar sein<br />

Welches Quellmaterial liegt einer Anforderung zu Gr<strong>und</strong>e?<br />

Welche andere Elemente des PH hängen mit dieser Anforderung zusammen?<br />

Welche Teile des fertigen Systems realisieren diese Anforderung?<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 44


IEEE Std. 830-1998:<br />

IEEE Recommended Practice for<br />

Software Requirements Specifications<br />

Qualität des <strong>Pflichtenheft</strong>s- IEEE 830<br />

http://kybele.escet.urjc.es/Documentos/ISI/IEEE-STD-830-1998.pdf<br />

„A good SRS should be:“<br />

Correct - Korrekt<br />

Complete - Vollständig<br />

Unambiguous - Eindeutig<br />

Consistent - Konsistent<br />

Verifiable - Überprüfbar<br />

Modifiable - Änderbar<br />

Traceable - Nachverfolgbar<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 45


Bist du jetzt endlich<br />

zufrieden!?<br />

Figuren © Christopher B. Wright, ubersoft.net<br />

Ja, Danke für<br />

eure Mitarbeit!<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 46


Ich bringe <strong>das</strong> Ding ins Archiv<br />

<strong>und</strong> du fängst schon mal an, zu<br />

programmieren?<br />

Let‘s go!<br />

Figuren © Christopher B. Wright, ubersoft.net<br />

wenn ihr<br />

wüsstet….<br />

Softwareentwurf 2007/08 Universität Paderborn - Gregor Engels 47

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!