or (2).

Werbung
Software Engineering
16 Analyse und Spezifikation
16.1 Die Bedeutung der Spezifikation im Entwicklungsprozess
16.2 Die Analyse
16.3 Begriffslexikon und Begriffsmodell
16.4 Anforderungen
16.5 Die Spezifikation im Überblick
16.6 Die Darstellung der Spezifikation
16.7 Konzepte und Komponenten der Spezifikation
16.8 Muster und Normen für die Spezifikation
16.9 Regeln für Analyse und Spezifikation
© Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010.
Stellenwert der Anforderungen
The hardest single part of building a software system is deciding
precisely what to build. No other part of the conceptual work is as
difficult as establishing the detailed technical requirements … No
other part of the work so cripples the resulting system if done wrong.
No other part is as difficult to rectify later.
Fred Brooks, 1987
Die Anforderungen des Kunden an die Software sind die wichtigsten
Informationen in einem Software-Projekt.
2
16.1 Die Bedeutung der Spezifikation
im Entwicklungsprozess
Kunde und Anforderungen
Der Kunde erwartet, dass ihm die Software über einen gewissen
Zeitraum hinweg als williger und billiger Diener zur Verfügung steht,
ihm also
● bestimmte Leistungen erbringt,
● ohne von ihm umgekehrt erhebliche Leistungen (in Form von
Kosten, Aufwand, Mühe, Arger) zu fordern.
Die Software soll ihm dienen, nicht umgekehrt.
Werden die Erwartungen, die Anforderungen des Kunden, nicht
vollständig und präzise erfasst, ist damit zu rechnen, dass das
entwickelte Produkt die Anforderungen nicht (vollständig) erfüllt.
Die vollständige und präzise Erfassung der Anforderungen ist die
allerwichtigste technische Voraussetzung für eine erfolgreiche
Software-Entwicklung.
4
Analyse und Spezifikation im Überblick
Die Anforderungen werden erhoben, in der Spezifikation formuliert,
geprüft und anschließend in den Entwurf umgesetzt. Schließlich wird
implementiert, auf verschiedenen Ebenen geprüft und korrigiert. Das
Resultat geht zurück an den Klienten.
Der Klient bekommt nur dann, was er haben will, wenn seine
Anforderungen sorgfältig erhoben und unterwegs nicht verfälscht
wurden.
5
Der Nutzen der Spezifikation
In der Praxis gibt es viele schlechte Spezifikationen; oft gibt es gar
keine.
Die Spezifikation ist aber notwendig für
1. die Abstimmung mit dem Kunden bzw. mit dem Marketing,
2. den Entwurf und die Implementierung,
3. das Benutzungshandbuch,
4. die Testvorbereitung,
5. die Abnahme,
6. die Wiederverwendung,
7. die Klärung späterer Einwände, Regressansprüche usw.,
8. eine spätere Re-Implementierung.
6
Nachteile bei fehlender Spezifikation - 1
1. Die Anforderungen bleiben ungeklärt, sie werden darum auch
nicht erfüllt.
2. Den Entwicklern fehlt die Vorgabe, darum fragen sie „auf dem
kurzen Dienstweg“ Bekannte, die beim Kunden arbeiten, oder sie
legen mangels Kontakten die eigenen Erfahrungen und
Erwartungen zu Grunde.
3. Die Basis für das Handbuch fehlt, es wird darum
phänomenologisch, d.h. experimentell, verfasst.
4. Ein gutes Handbuch ist ein umformulierter Auszug aus der
Spezifikation! Darum taugt es auch als Spezifikation.
5. Ein systematischer Test ist ohne Spezifikation unmöglich, denn
es ist nicht definiert, welche Daten das System akzeptieren muss
und welche Resultate es liefern soll.
7
Nachteile bei fehlender Spezifikation - 2
6. Wenn bei der Abnahme nicht entschieden werden kann, ob das
System richtig arbeitet, wird die Korrektheit zur Glaubensfrage.
7. Oft zeigen sich echte oder vermeintliche Mängel der Software
erst nach längerem Gebrauch. Ohne Spezifikation kann diese
Unterscheidung aber nicht getroffen werden.
8. Wer eine Software(-Komponente) wiederverwenden will, muss
wissen, was sie leistet. Das ist in der Spezifikation dokumentiert.
9. Wenn ein System ausgemustert und ersetzt wird, ist
Aufwärtskompatibilität gefordert (vgl. Heninger et al., 1978).
„Spezifikation im Kopf“ gibt es nicht!
8
16.2 Die Analyse
Analyse und Jewish motherhood
Introspection showed three main techniques
that were applied beyond normal common sense:
abstract data typing, strong typing, Jewish motherhood.
D. M. und O. Berry (1980)
10
Grundbegriffe der Analyse
requirement — (1) A condition or capability needed by a user to solve a
problem or achieve an objective.
(2) A condition or capability that must be met or possessed by a
system or system component to satisfy a contract, standard,
specification, or other formally imposed documents.
(3) A documented representation of a condition or capability as in
(1) or (2).
requirements analysis — (1) The process of studying user needs to
arrive at a definition of system, hardware, or software
requirements.
(2) The process of studying and refining system, hardware, or
software requirements.
IEEE Std 610.12-1990
11
Lastenheft /Anforderungssammlung
Die Analyse ist die Vorarbeit und Voraussetzung der Spezifikation;
ihr Ergebnis wird auch als Lastenheft bezeichnet.
Obwohl es Definitionen für diesen Begriff gibt (z.B. in DIN 69905),
bleibt er in der Praxis unscharf, weil der Inhalt des Lastenhefts von
Firma zu Firma stark variiert.
Wir sprechen nachfolgend nicht vom Lastenheft, sondern von der
Anforderungssammlung.
● Beschreibt die fachlichen Anforderungen aus Klientensicht.
● Lücken, Unklarheiten und Widersprüche sind darin normal.
Erst die Anforderungsspezifikation sollte vollständig, klar und
konsistent sein.
12
Das Begriffslexikon
Bei der Analyse wird auch das Begriffslexikon angelegt; dieses wird
während der gesamten Software-Entwicklung verwendet und
ergänzt.
Oft kommt während der Entwicklung oder bei der Abnahme die
Frage auf, woher eine Anforderung gekommen ist. Konsequent
dokumentieren, welcher Klient hinter welcher Anforderung steht!
Diese Zuordnung bei Besprechungen regelmäßig überprüfen!
13
Die Ist-Analyse - 1
Ziel der Analyse: Soll-Zustand feststellen
Es sollte also genügen, die Klienten nach ihren Wünschen zu fragen.
Aber: Die Klienten konzentrieren sich auf das, was ihnen derzeit
nicht gefällt.
Wir sind also bei jeder Umstellung auf die Schwachpunkte des
bestehenden Systems fixiert
● Seine Stärken nehmen wir erst wahr, wenn sie uns fehlen.
Implizit erwarten die Klienten, dass alles, was bisher akzeptabel oder
gut war, unverändert bleibt oder besser wird. Die Anforderungen an
das neue System bestehen also nur zum kleinsten Teil aus
Änderungswünschen, die allermeisten Anforderungen gehen in
Richtung Kontinuität.
14
Die Ist-Analyse - 2
Darum hat die Ist-Analyse, also die Feststellung des bestehenden
Zustands, große Bedeutung für die erfolgreiche Projektdurchführung.
Bei Widersprüchen ist der Ist-Zustand zudem ein sicherer Halt!
Der Analytiker muss sich also gut einfühlen und genau beobachten,
um vom Kunden zu erfahren, welche Aspekte des Ist-Zustands für
ihn wichtig sind und beibehalten werden sollten.
Die Ist-Analyse ist eine undankbare Tätigkeit!
15
Beispiel
Sie öffnen also morgens das Schloss am Haupteingang?
Ja, habe ich Ihnen doch gesagt.
Jeden Morgen?
Natürlich.
Auch am Wochenende?
Nein, am Wochenende bleibt der Eingang zu.
Und während der Betriebsferien?
Da bleibt er natürlich auch zu.
Und wenn Sie krank sind oder Urlaub haben?
Dann macht das Herr X.
Und wenn auch Herr X ausfällt?
Dann klopft irgendwann ein Kunde ans Fenster, weil er nicht reinkommt.
Was bedeutet „morgens“? ...
16
Die Soll-Analyse
Gefahr: Der Analytiker wird zum Prellbock zwischen
● den Klienten (mit großen Wünschen) und
● den Entwicklern (mit der Sorge, die Wünsche nicht erfüllen zu
können, und dem Wunsch, eigene Vorstellungen zu realisieren).
Aber der Analytiker sollte sich nicht als deus ex machina fühlen, der
die unlösbaren Probleme löst.
Sinnvoll:
● Alle Wünsche sammeln, nicht kritisieren („Wunschzettel“)
● Widersprüche offenlegen
Wünsche sind technisch nicht realisierbar oder zu teuer: →
● Anforderungen müssen reduziert oder Mittel aufgestockt werden.
Konflikte zwischen Wünschen der Klienten: →
● Probleme vor Klienten ansprechen und auf Einigung drängen.
17
Die Spielräume der Soll-Analyse
In aller Regel haben die Kunden kein absolut festes Bild des
Produkts. Das verschafft dem Analytiker Spielräume.
● Ein System, das nicht völlig autonom arbeitet, kann seine
Benutzer mehr oder minder stark in Anspruch nehmen.
Wenn eine bestimmte Funktion schwierig zu implementieren ist,
aber nur selten gebraucht wird, kann man sie auch von Hand
ausführen.
● Die zentrale Komponente des Systems hat Vorrang; andere Teile
werden nicht sofort benötigt. → Entwicklung in Ausbaustufen.
Vorteile: Zentrale Funktion steht schnell zur Verfügung, und die
weitere Entwicklung kann auch erste Erfahrungen und neue
Fakten berücksichtigen.
● Wenn käufliche (oder vorhandene) Komponenten integriert
werden, sinken die Kosten und die Entwicklungszeit. Der Kunde
muss den Preis „handgeschmiedeter“ Lösungen kennen.
18
Regeln für die Analyse
Die Ausgangslage der Analyse ist extrem unterschiedlich:
● Anwendungsgebiet der Software
● Umgebung des Zielsystems
● Aufgabenstellung
● Vorkenntnisse des Analytikers
● Verständnis der Gesprächspartner usw.
Folge: Es gibt kaum allgemeine Regeln für die Analyse.
Immer wichtig und richtig:
● Die Analyse als Tätigkeit wahr- und ernst nehmen!
● Aufwand und Personal dafür im notwendigen Maße einplanen!
● Resultate in eine (auch dem Kunden) verständliche Form bringen!
19
Techniken der Analyse - 1
20
Techniken der Analyse - 2
Natürlich sollte der Analytiker sollte die einschlägigen Vorschriften
und Regeln kennen und beachten.
● Auswertung der Dokumente
Wenn möglich, direkt am Alltag derer teilnehmen, die später mit der
Software umgehen werden oder deren Funktion später von der
Software übernommen wird.
● Über die Schulter schauen oder, besser noch, selbst mitarbeiten.
Dann kann der Analytiker die Klienten systematisch befragen
● geschlossene und strukturierte, auch offene Fragen
● Gespräch bringt mehr als Fragebogen-Versand!
21
Techniken der Analyse - 2
Wenn die abstrakte Vorstellung vom Zielsystem nicht ausreicht,
muss etwas ausprobiert oder gezeigt werden.
● Modell-Entwicklung
● Experiment
● ausführbarer Prototyp
Bei der partizipativen Entwicklung wird die Trennung zwischen
Analyse und Entwicklung bewusst aufgehoben. Die neue Software
wächst in den sozialen Kontext hinein.
● Vergleiche auch die Ansätze der „agilen Software-Entwicklung“!
22
Schwierigkeiten der Analyse - 1
● Der Klient kann sehr viele Anforderungen nicht nennen, weil er sie
nicht hat. Er hat nur Wünsche und Ziele, die sich im Gespräch mit
dem Analytiker auf Anforderungen abbilden lassen.
● Der Analytiker hat (bewusst oder unbewusst) eigene Interessen,
die er durchsetzen möchte (eine „hidden agenda“).
● Der Klient hat Anforderungen, die er nicht sagen will (also auch
eine hidden agenda)
● Der Klient hat Anforderungen, die ihm so selbstverständlich
scheinen, dass er sie nicht erwähnt.
Am Ende der Analyse und Spezifikation sollte eine Vision
entstanden sein, in der
● der Kunde die Erfüllung seiner (reduzierten) Wünsche,
● der Entwickler ein realisierbares Produkt sieht.
Beschrieben durch ein Dokument evtl. auch durch einen Prototypen.
23
Schwierigkeiten der Analyse - 2
Warum wird die Analyse (und besonders die Ist-Analyse) in der
Praxis oft vernachlässigt oder falsch fokussiert?
● Wo die Spezifikation keine Rolle spielt, wird auch die Analyse
keine Bedeutung haben.
● Der Kunde will keine Veränderung, sondern eine Verbesserung.
Entwickler, die das nicht begreifen, vernachlässigen die IstAnalyse.
● Entwickler sind oft der (grundfalschen) Überzeugung, bereits zu
wissen, was gewünscht oder benötigt wird.
● Kunden legen der Analyse Steine in den Weg:
● Den Analytikern stehen die Klienten (insbesondere die
Fachleute auf Kundenseite) nicht zur Verfügung.
● Die Analyse-Aktivität wird als unproduktiv denunziert.
● Kunden sabotieren den Prozess durch späte Änderungen.
24
Aus einem Praxisbericht
● Analyse wird vom Kernteam durchgeführt (ca. 3-4 Leute). Die
Mitglieder kommen teilweise aus der Anwendung, teilweise
handelt es sich um Entwickler. Die Anforderungen an diese Leute
sind sehr hoch.
● An der Analyse müssen Entscheidungsträger, Fachleute und
Anwender beteiligt sein. Die Anwender werden typisch durch
Interviews beteiligt. (Zwei Leute befragen eine Person ca. 90 min
lang).
● Abstimmung der Analyse in „Workshops“ mit 6 bis 10
Teilnehmern, ein halber bis ganzer Tag.
● Es ist aussichtslos, den Kunden mit formalen Darstellungen zu
kommen.
● Resultat der Analyse ist ein Begriffslexikon.
25
16.3 Begriffslexikon und
Begriffsmodell
Das Begriffslexikon
In der Analyse wird ein Begriffslexikon angelegt.
In den frühen Phasen wird dieses Dokument aufgebaut und
weiterentwickelt.
Das Begriffslexikon enthält solche Begriffe, die
● wichtig sind und
● von verschiedenen Leuten, v.a. von Klienten, Analytikern und
Entwicklern, unterschiedlich ausgelegt werden könnten.
Dazu gehören häufig Begriffe, die auf den ersten Blick völlig klar zu
sein scheinen.
Beispiel: Informationssystem für die Prüfungsdaten von Studenten
● „Student“, „Prüfung“, „Note“, „Erstprüfung“
27
Informationen im Begriffslexikon
a)
b)
c)
d)
e)
f)
g)
Begriff und Synonyma (im Sinne der Spezifikation)
Bedeutung (Definition, Erklärung)
Abgrenzung (wo ist dieser Begriff nicht anzuwenden?)
Gültigkeit (zeitlich, räumlich, sonst)
Fragen der Bezeichnung, Eindeutigkeit u. A.
Unklarheiten, die noch nicht beseitigt werden konnten
verwandte Begriffe (Querverweise)
Die Angaben werden aus den Gesprächen und Interviews abgeleitet
oder, wenn sie von den Analytikern kommen, sorgfältig mit den
Klienten überprüft.
Typische Quellen sind im genannten Beispiel die Angestellten in der
Verwaltung, die Juristen der Uni, die Gesetze und Ordnungen der
Universität.
28
Beispiel
Begriff
Student, synonym Studentin, Studierender, Studierende
Bedeutung
Eine Person, die an der Universität Stuttgart immatrikuliert ist und noch
nicht
exmatrikuliert wurde, die folglich legal einen Studentenausweis der
Universität Stuttgart hat oder haben könnte.
Abgrenzung
Gasthörer und Studierende anderer Hochschulen sind im Sinne dieses
Systems keine Studenten.
Gültigkeit
Mit der Immatrikulation an der Universität Stuttgart entsteht ein neuer
Student; er existiert bis zur Exmatrikulation, gleichgültig, wie sie zustande
kommt. Ein Fachwechsel oder eine Namensänderung implizieren keine
Exmatrikulation.
Hat sich eine Person im Laufe ihres Lebens mehrfach an der Universität
Stutt-gart immatrikuliert, so handelt es sich um mehrere, nicht identische
Studenten.
Bezeichnung
Ein Student ist durch die Matrikelnummer und einen Zeitpunkt (zu dem die
Matrikelnummer gültig war oder ist) eindeutig bestimmt, alle anderen
Attribute, insbesondere der Name, können mehrfach vorkommen.
Unklarheiten
Es ist noch ungeklärt, wie Namen aus anderen Schriftsystemen (z. B.
Russisch, Arabisch, Chinesisch) dargestellt werden.
Querverweise
Gasthörer, Matrikelnummer, Studentenausweis
29
Hinweis
Im Begriffslexikon klar unterscheiden zwischen
● Objekten der realen Welt,
● Rollen oder Typen der realen Welt und
● Daten der Software.
30
Begriffsmodell
Durch Vernetzung der Begriffe entsteht ein anwendungsfachliches
Begriffsmodell. Darin gibt es allgemeine Assoziationen,
Generalisierungs- und Kompositionsbeziehungen.
Begriffsmodell (Ausschn.) eines Prüfungsdaten-Verwaltungssystems
Begriffsmodelle helfen, den Anwendungsbereich zu erfassen und die
Begriffe im Kontext zu verstehen.
31
16.4 Anforderungen
Offene, latente Anforderungen
Allgemein kann man die Anforderungen am Qualitätenbaum
festmachen. Jede Forderung nach einer bestimmten Qualität ist eine
Anforderung.
In der Praxis kommen die Wartbarkeit kaum und die Prozessqualität
gar nicht vor (in diesem Dokument!).
Offene und latente Anforderungen, Entwickler-Optionen
● Offene Anforderungen: vom Kunden selbst brauchbar formuliert
● Latente Anforderungen: dem Kunden nicht bewusst.
● Entwickler-Optionen: Der Kunde hat den Punkt offengelassen, es
ist ihm gleich. Auch das dokumentieren!
Hier kann „Kunde“ ggf. durch „Klient“ ersetzt werden!
33
Harte und weiche Anforderungen
Lehrbuchbeispiele enthalten typisch harte Anforderungen.
• Beispiele: Resultat einer Kontostandsberechnung,
Obergrenze für den Umfang der installierbaren Software.
In der Praxis sind fast alle Anforderungen weich.
Weiche Anforderungen sind schwer zu erheben und ebenso schwer
zu formulieren.
Prinzipiell möglich: Kosten- oder Nutzenfunktionen.
34
Weitere Arten von Anforderungen
Objektivierbare und vage Anforderungen
● Anforderungen dienen nicht zuletzt als Referenz bei der Prüfung
der Software.
● Dazu müssen die Anforderungen objektivierbar sein.
● Harte Anforderungen sind typisch objektivierbar, weiche nicht.
Funktionale und nichtfunktionale Anforderungen
● Funktion der Software = Beziehung zwischen Ein- und Ausgaben,
im weiteren Sinne auch das Zeitverhalten.
● Alle Anforderungen, die sich auf diese Funktion beziehen, sind
funktionale Anforderungen, alle anderen sind nichtfunktionale
Anforderungen (non-functional requirements, NFRs).
● Achtung, das Wort „funktional“ ist mehrdeutig!
35
Funkt. vs nichtfunktionale Anforderungen
Die Kurzbeschreibung eines Systems, also eine auf wenige Worte
reduzierte Spezifikation, ist stets eine grobe Charakterisierung der
Funktion.
● Beispiel: „Das System sichert nachts die Inhalte aller Festplatten.“
Die Abgrenzung funktional – nichtfunktional ist unscharf;
Anforderungen, die zwar die Funktion betreffen, aber nicht präzise
formuliert werden können, werden vielfach als nichtfunktional
eingeordnet.
● Beispiele: Robustheit, Bedienbarkeit
● Auch das Zeitverhalten wird meist als NFR behandelt.
Funktionale und nichtfunktionale Anforderungen werden gebraucht.
Praktisch alle Aussagen zur Wartbarkeit sind nichtfunktional.
● „Das System muss leicht portierbar sein.“
36
Nichtfunktionale Anforderungen
Die Formulierung nichtfunktionaler Anforderungen bereitet uns große
Probleme. Die NFRs werden entsprechend stiefmütterlich behandelt,
meist ganz weggelassen oder nur durch Schlagwörter ausgedrückt.
Das ist aber ihrer großen Bedeutung nicht angemessen.
NFRs lassen sich am besten mit Hilfe von Normen spezifizieren.
Vgl. DIN EN ISO 9241
● Teile 1 bis 9: Ergonomie, Technik der Dialoggestaltung
● Teil 10: Grundsätze der Dialoggestaltung
● Teile 11 bis 17: Details der Dialoggestaltung
Allerdings bietet keiner der Standards harte Vorschriften, deren
Einhaltung einfach und objektiv zu prüfen wäre.
In keinem Falle sollte man auf einen Versuch zur Präzision
verzichten!
37
Beispiele
Schlagwort
bessere Anforderung
einfach bedienbar
Das Programm soll auch von Laien ohne weitere
Einweisung benutzt werden können.
robust
Eine Bedienung über die Tastatur darf unter keinen
Umständen zu
einem irregulären Abbruch des Programms führen.
portabel
Das Programm muss von einem Entwickler in höchstens
6h von Windows XP auf Linux portiert werden können.
übersichtlich
kommentiert
Die Module des Programms müssen einen
Kopfkommentar nach Std. xyz enthalten.
plattformunabhängig
Alle prozessorspezifischen Teile des Programms müssen
in einem speziellen Modul liegen.
nicht zu große
Module
Module dürfen max. 300 Zeilen ausführbaren Code
enthalten.
angemessenes
Handbuch
Das Benutzungshandbuch wird gemäß Richtlinie ABC
aufgebaut.
Es wird vom Gutachter N.N. geprüft.
38
Anforderungen zur Benutzbarkeit - 1
Aspekt
Erklärung
Beispiel
Metapher,
Benutzungsmodell
Das System sollte dem Benutzer
eine bekannte Metapher anbieten,
die es gestattet, die Operationen am
System und Änderungen im System
nachzuvollziehen. Die Operationen
müssen so realisiert werden, dass
sie mit der Metapher konsistent sind.
Informationen, die der Nutzer verwaltet,
werden als logische Objekte behandelt, die
eingegeben, angezeigt und gelöscht
werden können (Prinzip des Zettelkastens).
Der Nutzer hat jederzeit eine Vorstellung,
wo sich die Information befindet, z. B. im
Arbeitsbereich oder in der Datenbank.
Übersichtlichkeit
Die Benutzungsoberfläche sollte so
gestaltet sein, dass der Nutzer alle
rele-vanten Informationen leicht
erkennt.
Irrelevante Informationen werden nicht
angezeigt; alle angezeigten Informationen
sind logisch gruppiert.
Konsistenz
Gleiche oder ähnliche Operationen
sollten auch mit gleichen oder
ähnlichen Eingaben ausgelöst
werden; ähnliche Inhalte sollten
ähnlich dargestellt werden.
Eine bestimmte Tastenkombination hat
stets die gleiche Bedeutung, z. B. Löschen
der markierten Information. Die geschätzte
Ausführungszeit längerer Operationen wird
stets mit den gleichen Symbolen angezeigt.
Sicherheit
Die Bedienung sollte so angelegt
sein, dass der Nutzer irrtümlich
keinen Schaden anrichtet.
Operationen, die den internen Zustand
verändern, werden erst wirksam, wenn der
Nutzer die Änderung bestätigt hat.
39
Anforderungen zur Benutzbarkeit - 2
Aspekt
Erklärung
Beispiel
Ästhetik
Die Benutzungsoberfläche sollte
nach dem Empfinden des Nutzers
schön (angenehm) sein.
Unangenehme Kontraste (z. B. durch gelbe
Schrift auf blauem Grund) werden nicht
erzeugt, es sei denn, sie signalisieren eine
besonders kritische Situation.
Effizienz
Der Aufwand für die Bedienung sollte
so gering wie möglich sein.
Es genügt, wenn der Nutzer einmal sein
Passwort eingibt, um eine Folge von
Operationen auszulösen, die jeweils ein
Passwort erfordern.
Erlernbarkeit
Dem Nutzer sollte es leicht fallen, die
Bedienung des Systems zu erlernen.
Das System verhält sich ähnlich wie
andere Systeme, die dem Nutzer bereits
vertraut sind. Alle Unklarheiten des Nutzers
werden durch Hilfe-Funktionen geklärt.
Weitere Themen zur Benutzbarkeit:
● Methoden zur Verbesserung der Usability
● Personas
40
Praktischer Umgang mit Anforderungen
Wie man es nicht machen sollte!
Stark vereinfachtes Bild von den Anforderungen in der Praxis:
● Wenn der Klient eine Anforderung nicht von selbst genannt hat,
dann hat er diese Anforderung nicht.
● Wenn eine Anforderung funktional oder quantifizierbar ist, wird sie
dokumentiert.
● Alle anderen Anforderungen werden pauschal als nichtfunktionale
Anforderungen bezeichnet und kaum erwähnt. Das gilt auch für
● die Gebrauchsqualität (z.B. der Bedienbarkeit)
● die Wartungsqualität (z.B. der Erweiterbarkeit).
Empfehlung:
● Anforderungen nicht „vergessen“, nur weil sie Mühe machen.
41
16.5 Die Spezifikation im Überblick
Spezifikationsbegriffe - 1
specification — A document that specifies, in a complete, precise,
verifiable manner, the requirements, design, behavior, or other
characteristics of a system or component, and, often, the procedures
for determining whether these provisions have been satisfied.
specification language — A language, often a machine-processible
combination of natural and formal language, used to express the
requirements, design, behavior, or other characteristics of a system
or component. For example, a design language or requirements
specification language.
Contrast with: programming language; query language.
IEEE Std 610.12-1990
43
Spezifikationsbegriffe - 1
requirements specification language — A specification language with
special constructs and, sometimes, verification protocols, used to
develop, analyze, and document hardware or software
requirements.
software requirements specification (SRS) — Documentation of the
essential requirements (functions, performance, design constraints,
and attributes) of the software and its external interfaces.
IEEE Std 610.12-1990
Aus den Definitionen zu specification und SRS folgt:
● Die Anforderungsspezifikation dokumentiert die wesentlichen
Anforderungen an eine Software und ihre Schnittstellen, und zwar
präzise, vollständig und überprüfbar.
44
Angestrebte Eigenschaften
Die Spezifikation ist im Idealfall inhaltlich
1. zutreffend: Sie gibt die Vorstellungen des Kunden richtig wieder.
2. vollständig: Jede (in einem Kopf oder in einem Dokument)
vorhandene Anforderung ist in der Spezifikation enthalten.
3. widerspruchsfrei (oder konsistent): Jede Anforderung ist mit allen
anderen Anforderungen vereinbar.
Eine inkonsistente Spezifikation ist nicht realisierbar, denn kein
System kann widersprüchliche Anforderungen erfüllen.
4. neutral (oder abstrakt): Die Spezifikation schränkt die
Realisierung nicht über die wirklichen Anforderungen hinaus ein.
5. nachvollziehbar: Die Quellen der Anforderungen sind
dokumentiert, die Anforderungen sind eindeutig identifizierbar.
6. objektivierbar: Das realisierte System kann gegen die
Spezifikation geprüft werden. auch (missverständlich) „testbar“.
45
Darstellung und Form
Eine ideale Spezifikation ist
1. leicht verständlich: Alle Interessenten sind in der Lage, die
Spezifikation zu verstehen.
2. präzise: Die Spezifikation schafft keine Unklarheiten und
Interpretationsspielräume.
3. leicht erstellbar: Die Anfertigung und Nachführung der Spezifikation sind einfach und erfordern keinen nennenswerten Aufwand.
4. leicht verwaltbar: Die Speicherung der Spezifikation und der
Zugriff darauf sind einfach und erfordern keinen nennenswerten
Aufwand.
Diese Merkmale konkurrieren!
Auch hier suchen wir also einen Kompromiss.
46
Abgrenzung Spezifikation-Entwurf - 1
Die Forderung nach Neutralität war in der Frühzeit des Software
Engineerings radikal:
Idee: Die Spezifikation soll aussagen, was das System leistet,
aber nicht, wie diese Leistung erbracht wird („What, not how!“).
Beispiel: Programm zur Ermittlung der Nullstellen einer Funktion
kann ohne Aussagen zum Algorithmus spezifiziert werden.
Inzwischen wurde die Forderung nach Neutralität aufgeweicht.
Als Ideal bleibt sie aber gültig. Denn in der Praxis kann man immer
wieder beobachten, dass eine Spezifikation gefordert, aber ein
Entwurf geliefert wurde. Auf diese Weise wird (evtl.) die optimale
Lösung ausgeschlossen.
47
Abgrenzung Spezifikation-Entwurf - 2
Die geforderte Neutralität der Spezifikation ist als Ideal sinnvoll, aber
praktisch nicht durchzuhalten. Dafür gibt folgende Gründe:
1. Vorhandene Komponenten sind einzubeziehen.
2. Vorgaben von außen betreffen die Struktur und Details
3. Die Beschreibung des Lösung ist einfacher.
4. Erst das gegliederte System ist überschaubar.
5. Die Konsistenz der Spezifikation wird erst durch die Realisierung
geklärt.
6. Die Fragen an die Spezifikation entstehen erst im Entwurf.
7. Die reale Welt ist strukturiert, die Software am besten ebenso.
Darum kann eine abstrakte Spezifikation nur unter Idealbedingungen
entstehen: Das Problem ist gut verstanden, sicher lösbar, stabil und
relativ „flach“.
48
16.6 Die Darstellung der
Spezifikation
Formal, graphisch, natürlichsprachlich
Eine Spezifikation soll einerseits präzise und einer Bearbeitung mit
Werkzeugen zugänglich, andererseits auch für Laien handhabbar,
mindestens aber verständlich sein.
Da die Informatik starke Wurzeln in der Mathematik hat, war es
naheliegend, für die Spezifikation formale Notationen zu entwickeln.
Mit diesen Notationen verwandt sind grafische Darstellungen der
Spezifikation.
● Dabei steht aber weniger die formale Präzision als die
Anschaulichkeit im Vordergrund.
Wer weder formal noch grafisch spezifiziert, bedient sich der
natürlichen Sprache.
● Diese hat den Vorteil, für jeden Menschen verständlich zu sein
und ganz ohne spezielle Regeln und Werkzeuge auszukommen..
50
Formale Spezifikation
Vorteile:
● Unklarheiten und Missverständnisse sind ausgeschlossen
● Eine Implementierung kann mit mathematischen Methoden (und
das heißt automatisch) auf Konsistenz mit der Spezifikation, also
auf Korrektheit, geprüft werden.
Selbst wenn sich die formalen Techniken nicht auf jede Software
anwenden ließen, wäre es eine erhebliche Verbesserung, wenn sie
für größere Bereiche der Software-Entwicklung tauglich würden.
● Beispielsweise könnten viel benutzte Modul- oder
Klassenbibliotheken formal spezifiziert, verifiziert und dann
risikolos in andere Software eingebunden werden.
51
Probleme der Formalen Spezifikation
Erstellung, Prüfung und Verwendung formaler Spezifikationen
● Formale Beschreibungen sind schwer zu erstellen und zu prüfen.
Sie taugen damit nicht für die Kommunikation mit Kunden und
Anwendern.
Die Beschränkung auf funktionale Anforderungen
● Funktionalen Anforderungen lassen sich formal spezifizieren. Für
die vielen anderen Anforderungen stehen uns keine formalen
Modelle zur Verfügung, sie lassen sich darum – mit unserem
heutigen Wissen – nicht formalisieren.
52
Grafische Darstellungen der Spezifikation
Pionier war Douglas Ross mit der »Structured Analysis and Design
Technique« (SADT); SADT hatte jedoch keinen anhaltenden Erfolg.
»Structured Analysis« von Tom DeMarco beruht auf den Konzepten
aus SADT.
● SA war bis zum Aufkommen der Objektorientierung sehr populär
und wurde durch viele Werkzeuge unterstützt.
Anfang der Neunzigerjahre wurde eine Vielzahl von Notationen für
die »objektorientierte Analyse« vorgestellt.
Heute sind die meisten dieser Notationen vergessen, weil sie durch
UML-Notationen verdrängt wurden.
● UML bietet Notationen, die in der Analyse verwendet werden
können, insbesondere die Anwendungsfalldiagramme.
53
Natürlichsprachliche Spezifikation
Wegen der oben beschriebenen Probleme mit formalen und
grafischen Spezifikationen sind Texte meist das beste oder einzige
Mittel zur Kommunikation mit den Klienten.
Wie kann man die Nachteile der Verwendung natürlicher Sprachen
vermindern oder beseitigen?
Die Firma SOPHIST hat ein Regelwerk entwickelt, das diese
Probleme
● Es definiert einige besonders wichtige Regeln.
● Dabei geht es immer darum, Lücken und Unschärfen zu
vermeiden und deutlich zu machen, wer wann was tut.
54
Einige Sprachregeln - 1
Regel
Erläuterung, Beispiel
R1
Formulieren Sie jede
Anforderung im Aktiv.
Der Akteur wird angegeben, und es wird sichtbar, ob das System
oder der Benutzer etwas tut. Fordert man, dass etwas »gelöscht
wird«, so bleibt das unklar.
R2
Drücken Sie Prozesse
durch Vollverben aus.
Vollverben (wie »liest«, »erzeugt«, nicht »ist«, »hat«) verlangen
weitere Informationen (Objekte, Ergänzungen), die den Prozess
genauer beschreiben. Nicht: »Wenn die Daten konsistent sind«,
sondern »Wenn Programm ABC die Konsistenz der Daten geprüft
hat«. Und natürlich muss auch spezifiziert sein, was geschehen
soll, wenn sie nicht konsistent sind (R4).
R3
Entdecken Sie unvollständig spezifizierte
Prozesswörter (Verben).
Fehlen Angaben (Objekte), dann wird nach diesen Angaben
gesucht, um vollständige Aussagen zu erhalten. Wenn eine
Komponente einen Fehler meldet, fragt sich, wem.
R4
Ermitteln Sie unvollständig
spezifizierte Bedingungen.
Für Bedingungen der Form »Wenn-dann-sonst« müssen
sowohl der Dann- als auch der Sonst-Fall beschrieben sein (vgl.
das Beispiel für R2).
R5
Bestimmen Sie
die Universalquantoren.
Sind Sätze mit »nie«, »immer«, »jedes«, »kein«, »alle« wirklich
universell gültig, oder gibt es Einschränkungen? Sind »alle
Personen« wirklich alle Personen, oder nur die Anwesenden, die
Mitarbeiter, die Besitzer einer Eintrittskarte?
55
Einige Sprachregeln - 2
Regel
Erläuterung, Beispiel
R6
Überprüfen Sie
Nominalisierungen.
Nomen (z. B. »Generierung«, »Datenverlust«) weisen oft
auf einen komplexen Prozess hin, der beschrieben werden
muss. Verwendet man das Substantiv »Anmeldung«, dann
fehlen meist die Ergänzungen, die beim Verb »anmelden«
erwartet werden: Wer meldet sich wo und wofür an?
R7
Erkennen und präzisieren
Sie unbestimmte
Substantive.
Oft bleibt unklar, ob es sich um einen generischen Begriff oder
um ein bestimmtes Objekt handelt. Ist vom »Bediener« die
Rede, so fragt es sich, ob es nur einen gibt oder welcher
gemeint ist. Ähnliches gilt für viele Begriffe (Gerät, Meldung).
R8
Klären Sie die
Zuständigkeiten bei
Möglichkeiten und
Notwendigkeiten.
Ein Zwang muss realisiert werden. Steht in einer Anforderung,
dass etwas möglich oder unmöglich ist, passieren kann, darf
oder muss, so ist zu klären, wer dies erzwingt oder verhindert.
R9
Erkennen Sie implizite
Annahmen.
Begriffe in den Anforderungen (»die Firewall«), die nicht
erläutert sind, deuten oft auf implizite Annahmen (hier
vermutlich auf die, dass es eine Firewall gibt).
56
Beispiel
»Es soll geprüft werden, dass neben Autor und Titel des Dokuments
auch immer der Aufbewahrungsort eingegeben wird.«
● R1: Die Anforderung ist im Passiv formuliert (»... soll geprüft
werden«, »... eingegeben wird«), die Akteure fehlen.
● R7: Es muss klar sein, welcher Autor gemeint ist. Ähnliche Fragen
gibt es zum Aufbewahrungsort.
● R3: Die Prozesswörter »prüfen« und »eingeben« sind unvollständig spezifiziert. Wer prüft wann, wer gibt wann etwas ein?
● R4: In der Anforderung steckt eine unvollständig spezifizierte
Bedingung. Was soll geschehen, wenn der Aufbewahrungsort
nicht eingegeben wurde?
● R5: Es muss nachgefragt werden, ob der angegebene
Sachverhalt auch wirklich immer gelten soll.
57
Sprachschablonen
Die SOPHISTen geben dafür das Schema A B C D E F vor:
● A klärt, wann und unter welchen Bedingungen die Aktivität
stattfindet.
● B ist MUSS (Pflicht), SOLL (Wunsch) oder WIRD (Absicht).
● C ist immer »das System« oder eine konkrete Nennung des
Systems.
● D ist eine von drei Möglichkeiten: Die erste beschreibt eine
selbständige Systemaktivität (»tut«), die zweite eine vom System
angebotene Funktion (»bietet jemandem die Möglichkeit, zu tun«),
die dritte die Inanspruchnahme einer von Dritten angebotenen
Funktion (»ist fähig zu tun, wenn bestimmte Voraussetzungen
gegeben sind«).
● E enthält Ergänzungen, insbesondere ein Objekt.
● F ist das eigentliche Prozesswort (was passiert).
58
Beispiel
Nach Ende der Bürozeiten (=A) soll (=B) das System (=C) dem
Operator die Möglichkeit bieten (=D), alle neuen Anmeldungen auf
einem externen Datenträger (=E) zu sichern (=F).
Bei einem automatischen Backup fiele Teil D (und das Wort »zu«)
weg.
Natürlich ist zu prüfen, ob im Satz noch implizite Annahmen stecken;
beispielsweise scheint es definierte Bürozeiten zu geben.
Ebenso ist der Allquantor »alle« zu prüfen.
59
16.7 Konzepte und Komponenten der
Spezifikation
Die Ausrichtung auf die Anforderungen
Sehr oft enthält ein Dokument, das als Spezifikation bezeichnet wird,
tatsächlich eine Beschreibung der Realisierung auf mehr oder
minder hohem Niveau, also einen Entwurf.
● Wenn Programmierer ohne entsprechende Ausbildung eine
Spezifikation verfassen, kommt dabei meist ein schlecht getarnter
Entwurf heraus.
● Denn sie sind daran gewöhnt, in Lösungen zu denken,
Auch wenn eine strikte Trennung zwischen Spezifikation und
Entwurf unmöglich ist, sollte man versuchen, in der Spezifikation die
Anforderungen zu sammeln, also die Perspektive des Klienten
beizubehalten.
61
Spezifikation der Funktion - 1
Die Funktion einer Software ist die in der Zeit ablaufende
Transformation von Eingabedaten in Ausgabedaten.
Die Funktionsbeschreibung sagt also aus,
● wann welche Daten benötigt werden,
● wann welche Daten erzeugt werden,
● welche Mittel in welcher Menge dazu beansprucht werden.
Ist der Zeitpunkt der Ausführung oder die zeitliche Ordnung der
Ausgabe irrelevant, so wird der Zeitaspekt auf die Reihenfolge
beschränkt oder ganz weggelassen.
Dabei wird unterstellt, dass die Effizienz insgesamt ausreicht.
Nicht leichtfertig auf den Zeitaspekt verzichten!
62
Spezifikation der Funktion - 2
Die Daten, um die es bei einem Software-System letztlich geht, sind
die Ausgaben des Systems.
Die Eingaben sind erforderlich, um die Ausgaben zu erzeugen, sie
sind kein Selbstzweck.
● Wenn eine Eingabe nicht zur Erzeugung der Ausgabe benötigt
wird, sollten wir sie auch nicht spezifizieren.
Wir gehen also von den Daten aus, die unser System liefern soll.
● Natürlich schließt der Begriff der Daten alle Außenwirkungen des
Systems ein.
Die Kommunikation zwischen dem zu entwickelnden System und
seiner Umgebung steht darum am Anfang aller Überlegungen, wie
Anforderungen formuliert und formalisiert werden können.
● Es ist sinnvoll, von idealer Technologie auszugehen, also
Systemaspekte, die nicht aufgabenbezogen sind, auszuklammern.
63
Beispiele
● Context Diagram von Structured Analysis
● Use-Case-Diagramme in UML
● Actigrams und Datagrams in SADT, wobei auch die Betriebsmittel
erfasst werden
● Vernetzungsphase in Jackson System Development (JSD)
● Die Vernetzungsphase folgt in JSD auf die
Modellierungsphase, in der der Ist-Zustand erfasst wird.
In jedem Fall gilt:
Eine genaue Übersicht der Daten, die aus dem System kommen
oder in das System fließen, mit ihren logischen Zusammenhängen
ist der Kern jeder Spezifikation.
64
Anwendungsfälle (Use Cases)
use case — A sequence of interactions between an actor (or actors)
and a system triggered by a specific actor, which produces a result
for an actor.
Jacobson et al. (1992)
Wesentliche Merkmale eines Anwendungsfalls (AF) sind:
● Neben dem System ist immer mind. ein Akteur (actor) beteiligt.
(=Rolle eines mit dem System interagierenden Benutzers oder
eines externen Systems)
● Anstoß durch ein spezielles Ereignis (einen Trigger), das ein
Akteur – der Hauptakteur – auslöst.
● Ein AF ist zielorientiert, der Akteur möchte das Ziel erreichen.
● Ein AF beschreibt alle Interaktionen zwischen dem System und
den beteiligten Akteuren.
● Ein AF endet, wenn das angestrebte Ziel erreicht ist oder wenn
klar ist, dass es nicht erreicht werden kann.
65
Beispiel: Use Case - 1
Name
Authentifizieren
Ziel
Der Kunde möchte Zugang zu einem Bankautomaten BA42 erhalten
Vorbedingung
– Der Automat ist in Betrieb, die Willkommen-Botschaft wird angezeigt
– Karte und PIN des Kunden sind verfügbar
Nachbedingung
– Der Kunde wurde akzeptiert
– Die Leistungen des BA42 stehen dem Kunden zur Verfügung
Nachbedingung
im Sonderfall
Der Zugang wird verweigert, die Karte wird entweder zurückgegeben oder
einbehalten, die Willkommen-Botschaft wird angezeigt
Akteure
Kunde (Hauptakteur), Banksystem
66
Beispiel : Use Case - 2
Normalablauf
1. Der Kunde führt eine Karte ein
2. Der BA42 liest d. Karte und sendet d. Daten z. Prüfung ans Banksystem
3. Das Banksystem prüft, ob die Karte gültig ist
4. Der BA42 zeigt die Aufforderung zur PIN-Eingabe
5. Der Kunde gibt die PIN ein
6. Der BA42 liest die PIN und sendet sie zur Prüfung an das Banksystem
7. Das Banksystem prüft die PIN
8. Der BA42 akzeptiert den Kunden und zeigt das Hauptmenü
67
Beispiel : Use Case - 3
2. Der BA42 liest d. Karte und sendet d. Daten z. Prüfung ans Banksystem
3. Das Banksystem prüft, ob die Karte gültig ist
Sonderfall
2a
Die Karte kann nicht gelesen werden
2a.1 Der BA42 zeigt die Meldung »Karte nicht lesbar« (4 s)
2a.2 Der BA42 gibt die Karte zurück
2a.3 Der BA42 zeigt die Willkommen-Botschaft
Sonderfall
2b
Die Karte ist lesbar, aber keine BA42-Karte
2b.1 Der BA42 zeigt die Meldung »Karte nicht akzeptiert« (4 s)
2b.2 Der BA42 gibt die Karte zurück
2b.3 Der BA42 zeigt die Willkommen-Botschaft
Sonderfall
2c
Das Banksystem ist nicht erreichbar
2c.1 Der BA42 zeigt die Meldung »Banksystem nicht erreichbar« (4 s)
2c.2 Der BA42 gibt die Karte zurück
2c.3 Der BA42 zeigt die Willkommen-Botschaft
Sonderfall
3a
Die Karte ist nicht gültig oder gesperrt
3a.1 Der BA42 zeigt die Meldung »Karte ungültig oder gesperrt« (4 s)
3a.2 Der BA42 zeigt die Meldung »Karte wird eingezogen« (5 s)
3a.3 Der BA42 behält die Karte ein
3a.4 Der BA42 zeigt die Willkommen-Botschaft
68
Beispiel : Use Case - 4
5. Der Kunde gibt die PIN ein
6. Der BA42 liest die PIN und sendet sie zur Prüfung an das Banksystem
7. Das Banksystem prüft die PIN
Sonderfall
5a
Der Kunde bricht den Vorgang ab
5a.1 Der BA42 zeigt die Meldung »Vorgang wird abgebrochen« (2 s)
5a.2 Der BA42 gibt die Karte zurück
5a.3 Der BA42 zeigt die Willkommen-Botschaft
Sonderfall
5b
Der Kunde reagiert nach 5 Sekunden nicht
5b.1 Der BA42 zeigt die Meldung »Keine Aktivität, Abbruch« (2 s)
5b.2 Der BA42 gibt die Karte zurück
5b.3 Der BA42 zeigt die Willkommen-Botschaft
Sonderfall
6a
Das Banksystem ist nicht erreichbar
→ Schritt 2c.1
Sonderfall
7a
Die erste oder zweite eingegebene PIN ist falsch
7a.1 Der BA42 zeigt die Meldung »Falsche PIN« (4 s)
→ Schritt 4
Sonderfall
7b
Die dritte eingegebene PIN ist falsch
7b.1 Der BA42 zeigt die Meldung »PIN dreimal falsch« (5 s)
→ Schritt 3a.2
69
Merkmale / Use Case Diagramme
Anwendungsfälle beschreiben also aus der Außensicht, was das
System leisten soll und welche Interaktionen dazu notwendig sind.
● Jeder Anwendungsfall muss das Systemverhalten für eine
konkrete Situation vollständig spezifizieren (inkl. Ausnahmefälle).
Charakteristisch
● Aufbau auf Basis eines Formulars mit bestimmten Feldern
● Normalablauf (normal = Ziel wird erreicht)
● Sonder- und Ausnahmefälle
● Klarheit über den aktiven Teil (Akteur oder System)
Use-Case-Diagramme mit
● Generalisierungsbeziehung zwischen Use Cases bzw. Akteuren
● Benutzt-Beziehung (include)
● Erweitert-Beziehung (extend)
70
Beispiel: Use-Case-Diagramm
71
Strukturierung von Use Cases
Aus fachlicher Sicht hat es sich bewährt, zwischen Hauptfunktionen
und Basisfunktionen zu unterscheiden.
● Hauptfunktionen beschreiben die geforderte fachliche
Funktionalität des Systems.
● Beispiele: »Kontostand abfragen«, »Auszug drucken«,
● Basisfunktionen werden typisch in Hauptfunktionen verwendet
und liefern dort einen Beitrag zur Funktionalität.
● Beispiel: »Authentifizieren«
Die Akteure stehen außerhalb des modellierten Systems.
Die Anwendungsfälle sind als Pakete gruppiert und durch
Beziehungen (include und extend) miteinander verknüpft.
72
Aktivitäten - 1
Aktivität
Anmerkungen
Bestimme alle Akteure
und alle Ein- und
Ausgaben
Dazu sind die folgenden Fragen hilfreich:
– Welche äußeren Ereignisse gibt es?
– Wer nutzt oder verwaltet das System?
– Wer liefert Eingaben?
– Wer verwendet die Ausgaben und Resultate?
Lege die
Systemgrenzen fest
Die Systemgrenzen definieren, welche Komponenten und Funktionen zum System gehören und welche nicht.
Identifiziere und
formuliere die
Anwendungsfälle der
Hauptfunktionen
Die Anwendungsfälle der identifizierten Hauptfunktionen werden
grob formuliert. Es muss sichergestellt werden, dass die
Anwendungsfälle die Funktionalität vollständig abdecken.
Strukturiere die
Anwendungsfälle und
die Akteure
Die Beziehungen zwischen Akteuren und Anwendungsfällen
sowie zwischen den Anwendungsfällen selbst werden
identifiziert.
Die Anwendungsfälle werden, wenn sinnvoll, in Pakete gruppiert.
73
Aktivitäten - 2
Aktivität
Anmerkungen
Beschreibe den
Normalablauf der
Anwendungsfälle
Der Normalablauf, also der Weg zum angestrebten Ziel des
Hauptakteurs, sollte zuerst formuliert werden.
Beschreibe alle
Sonderfälle und
Alternativabläufe
Es ist zu klären, welche Sonderfälle und welche Alternativabläufe
auftreten können und wie diese vom Normalablauf abweichen.
Extrahiere gleiche
Interaktionssequenzen
Gleiche Interaktionssequenzen können als Basisfunktionen
definiert und an mehreren Stellen verwendet werden. Mit Hilfe
der Generalisierungsbeziehung können Abläufe generisch
spezifiziert, dann spezialisiert und wiederverwendet werden.
Prüfe zusammen mit
dem
Klienten die
Anwendungsfälle
Die Anwendungsfälle werden vom Klienten in Reviews geprüft
und, nachdem alle Korrekturen und Verbesserungen
eingearbeitet sind, freigegeben.
74
Zusammenfassung: Anwendungsfälle
● werden durch Use-Case-Diagramme im Überblick dargestellt
● werden iterativ
● identifiziert
● modelliert
● formuliert
● geprüft
● können nur in enger Zusammenarbeit mit dem Klienten erstellt
werden. Sie sind als Kommunikationsmedium besonders
geeignet, um die Ist- und Soll-Abläufe mit den Fachleuten zu
diskutieren und abzustimmen
● helfen den Entwicklern, die Welt der Anwendung zu verstehen
(und Kandidaten für das Begriffslexikon zu erkennen)
● sind eine gute Grundlage für Prototypen, Testfälle und die
Benutzungsdokumentation
75
Das Mengengerüst
Jede Lösung (eine Datenstruktur oder ein Algorithmus) hat ein
bestimmtes Einsatzspektrum, auch hinsichtlich der Problemgröße.
Darum ist das Mengengerüst, die Angabe der Mengen und Größen,
die für die Software Bedeutung haben, ein wesentlicher Bestandteil
der Spezifikation.
Ebenfalls im Mengengerüst: Leistungsmerkmale
Alternative: Geforderte Leistungsmerkmale eines Systems
(Antwortzeiten, Speicherbedarf usw.) als nichtfunktionale
Anforderungen.
Alle Angaben definieren die Obergrenzen; eventuell sind aber auch
Untergrenzen oder typische Werte von Bedeutung.
76
Mengengerüst - Beispiel
Ein Depot, in dem viele Objekte, die durch eine Nummer und eine
Bezeichnung identifiziert sind, einzeln gelagert sind.
Der aktuelle Lagerbestand wird auf einem Bildschirm angezeigt.
Im Mengengerüst sollten folgende Angaben definiert sein:
● Zahl der Lagerplätze
● Länge der Artikelnummern
● Länge der Artikelbezeichnungen
● Zahl gleicher Objekte
● Veränderungsrate (bewegte Objekte pro Stunde)
● Dauer bis zur Aktualisierung der Anzeige
77
16.8 Muster und Normen für die
Spezifikation
Vorlagen: IEEE Std 830 (1998)
Recommended Practice for Software Requirements Specifications.
Sie sieht die folgenden drei Kapitel vor.
1. Einleitung
2. Allgemeine Beschreibung
3. Einzelanforderungen
Die Einzelanforderungen müssen sinnvoll gegliedert sein. Sie muss
die folgenden Informationen enthalten:
●
●
●
●
●
.
Funktionale Anforderungen
Qualitätsanforderungen
Leistungsanforderungen
Einschränkungen des Entwurfs
Definition der externen Schnittstellen zu anderen Systemen
79
Struktur nach IEEE Std 830 (1998) - 1
1. Einleitung
1.1 Zweck
Beschreibt den Zweck und den Leserkreis der Spezifikation.
1.2 Einsatzbereich
und Ziele
Gibt an, wo X eingesetzt werden soll und welche wesentlichen
Funktionen es haben wird. Wo sinnvoll, sollte definiert werden, was X
nicht leisten wird. Beschreibt die mit X verfolgten Ziele.
1.3 Definitionen
Dokumentiert alle verwendeten Fachbegriffe und Abkürzungen.
1.4 Referenzierte
Dokumente
Verzeichnet alle Dokumente, auf die in der Spezifikation verwiesen
wird.
(Alternative: Liste im Anhang)
1.5 Überblick
Beschreibt, wie der Rest der Spez. aufgebaut ist, insbesondere, wie
Kapitel 3 strukturiert ist.
80
Struktur nach IEEE Std 830 (1998) - 2
2. Allgemeine Beschreibung
2.1 Einbettung
Beschreibt, wie X in seine Umgebung eingebettet ist und wie X
mit den umgebenden Komponenten und Systemen
zusammenspielt. Dazu werden die Schnittstellen,
Kommunikationsprotokolle etc. definiert.
2.2 Funktionen
Skizziert die wichtigsten Funktionen von X.
2.3 Benutzerprofile
Charakterisiert die Benutzergruppen von X und die
Voraussetzungen, die diese jeweils mitbringen (Ausbildung,
Know-how, Sprache, ...).
2.4 Einschränkungen
Dokumentiert Einschränkungen, die die Freiheit der
Entwicklung reduzieren (z.B. Prozessmodell, Basis-Software,
Ziel-Hardware).
2.5 Annahmen und
Abhängigkeiten
Nennt explizit die Annahmen und externen Voraussetzungen,
von denen bei der Spezifikation ausgegangen wurde.
3. Einzelanforderungen
3.i Anforderung i
Beschreibt die Anforderung i so genau, dass bei der
Verwendung der Spezifikation (im Entwurf usw.) keine
Rückfragen dazu notwendig sind.
81
16.9 Regeln für Analyse und
Spezifikation
Zehn Regeln - 1
Die wichtigsten Punkte dieses Kapitels sind nachfolgend in zehn
Regeln zusammengefasst:
1.Ein Begriffslexikon anlegen und entwickeln
2.Von der Aufgabe ausgehen, nicht von ihrer Lösung
3.Nach den Daten (Objekten) suchen, nicht die (vermuteten)
Programmabläufe beschreiben
4.Die Abstraktionsebene nicht innerhalb derselben Darstellung
wechseln
83
Zehn Regeln - 2
5. Die Spezifikation nach Aspekten organisieren und Checklisten
verwenden, die dabei weiterentwickelt werden
6. Ein Mengengerüst bilden
7. Den Kunden (Anwender) einbeziehen
8. Sprachen und Werkzeuge verwenden, die die Regeln
unterstützen
9. Die Spezifikation der Konfigurationsverwaltung unterstellen und
so bald wie möglich prüfen, z.B. durch Reviews oder Prototypen
10. Die Spezifikation intensiv verwenden
84
Herunterladen