Beruflich Dokumente
Kultur Dokumente
SEI11
$
SEI11
Werden Personenbezeichnungen aus Gründen der besseren Lesbarkeit nur in der männlichen oder
weiblichen Form verwendet, so schließt dies das jeweils andere Geschlecht mit ein.
Falls wir in unseren Studienheften auf Seiten im Internet verweisen, haben wir diese nach sorgfältigen
Erwägungen ausgewählt. Auf die zukünftige Gestaltung und den Inhalt der Seiten haben wir jedoch
keinen Einfluss. Wir distanzieren uns daher ausdrücklich von diesen Seiten, soweit darin rechtswid-
rige, insbesondere jugendgefährdende oder verfassungsfeindliche Inhalte zutage treten sollten.
© HfB, 02.12.20, Berk, Eric (904709)
Inhaltsverzeichnis
0118K07
Vorwort ....................................................................................................................... 1
1 Einleitung .................................................................................................................. 3
1.1 Lebenszyklus einer Softwareentwicklung ................................................ 3
1.2 Methodische Ansätze und grundlegende Definitionen ........................... 5
Zusammenfassung .................................................................................................... 7
Aufgaben zur Selbstüberprüfung ............................................................................ 7
2 Phasenmodelle ......................................................................................................... 8
2.1 Klassisches Wasserfallmodell ..................................................................... 9
2.2 Spiralmodell ................................................................................................. 19
2.3 V-Modell ...................................................................................................... 21
2.4 Diamantmodell ............................................................................................ 24
2.5 Neuere Methoden ........................................................................................ 27
Zusammenfassung .................................................................................................... 33
Aufgaben zur Selbstüberprüfung ............................................................................ 33
3 Softwareergonomie ................................................................................................. 34
3.1 Definition und Rechtsgrundlagen ............................................................. 34
3.2 Softwareergonomische Dialoggestaltung ................................................. 37
3.3 Praktische Anwendungen .......................................................................... 41
Zusammenfassung .................................................................................................... 45
Aufgabe zur Selbstüberprüfung ............................................................................... 45
SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Inhaltsverzeichnis
Anhang
A. Lösungen der Aufgaben zur Selbstüberprüfung ....................................... 81
B. Literaturverzeichnis ..................................................................................... 84
C. Abbildungsverzeichnis ................................................................................ 85
D. Sachwortverzeichnis .................................................................................... 87
E. Einsendeaufgabe .......................................................................................... 89
SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Vorwort
SEI11Phasenmodelle und Planung von Softwareprojekten0118K07
Spätestens seit der Softwarekrise der 60er-Jahre ist der Ruf nach besser planbarem, sys-
tematischerem Vorgehen laut geworden. Nach und nach hat sich daraus das heutige
Software Engineering entwickelt. Weitgehend standardisiert, liefert es für alle an der
Entwicklung Beteiligten methodische Ansätze zur effektiven und ökonomischen Soft-
wareerstellung. Obwohl Software in der Regel nur recht kurzlebig ist, haben sich erst in
jüngerer Zeit die Methoden zu ihrer Erzeugung stabilisiert. Noch vor wenigen Jahren
standen viele verschiedene Ansätze in Konkurrenz, doch mit der Einführung der Unified
Modeling Language (UML) hat sich eine Methode etabliert, die alle anderen Konkurren-
ten weit hinter sich gelassen hat. Es besteht daher Aussicht, dass die beschriebenen Me-
thoden und Verfahren für die nächsten Jahre aktuell bleiben, da ihre Akzeptanz und Ver-
breitung sehr groß ist.
Software Engineering ist also eine selbstverständliche Methode zur effizienten Entwick-
lung von Programmen. Im Prinzip kann man zwei Arten Software unterscheiden: An-
wendungsprogramme und Steuerprogramme. Überlappungen sind möglich. Anwen-
dungsprogramme sind Programme, die von Usern benutzt werden können, die keine
tieferen DV-Kenntnisse besitzen. Sie müssen entsprechend benutzerfreundlich sein und
leicht bedienbar. Steuerprogramme dagegen bedürfen in der Regel keines Benutzers in
diesem Sinne, sondern sie laufen „von allein“ und steuern bestimmte (meist physikali-
sche) Systeme, z. B. einen Fahrstuhl.
Relativ unabhängig von dieser Unterscheidung sind die methodischen Ansätze bei der
Softwareentwicklung. Hier werden immer gewisse Entwicklungsphasen durchlaufen, in
denen systematisch Teilschritte realisiert werden, bis schließlich das fertige Produkt vor-
handen ist. Das vorliegende Heft deckt den ersten Teil dieser Entwicklungsphasen ab,
nämlich im Wesentlichen die Planung des Softwareprojekts. Zu diesem Zweck wird
nach einer Einleitung in die Problematik der Softwareentwicklung (Kapitel 1) einiges
über Phasenmodelle gesagt, es werden die wichtigsten dieser Modelle vorgestellt
(Kapitel 2). Kapitel 3 widmet sich den Erfordernissen der Softwareergonomie, und in
Kapitel 4 wird schließlich die Planungsphase eines Softwareprojekts genau durchleuch-
tet und es werden einige methodische Ansätze aus diesem Bereich beschrieben.
Der Planung kommt überhaupt eine grundlegende Bedeutung zu. Viele Softwareprojek-
te scheitern an unzureichender Planung. Es kann gar nicht oft genug darauf hingewiesen
werden, dass eine gute Planung das A und O des erfolgreichen Gelingens einer Syste-
mentwicklung ist. So wie ein Architekt zuerst den „Blueprint“ eines Bauvorhabens er-
stellt und Bauarbeiter nicht einfach drauflosmauern, so muss ein Softwareentwickler ei-
nen „Bauplan“ für das Anwendungsprogramm erstellen. Fehler in den Bauplänen
können sowohl für Hausbauer als auch für Softwareentwickler je nach Schwere glei-
chermaßen katastrophal sein. Deshalb kommt dem Fach Software Engineering eine so
wichtige Bedeutung zu.
Viel Erfolg beim Durcharbeiten dieses Heftes!
SEI11 1
© HfB, 02.12.20, Berk, Eric (904709)
2 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
1 Einleitung
Dieses Kapitel beschäftigt sich mit der Geschichte des Software Engineering so-
wie dessen Grundprinzipien. Sie sollen nach Durcharbeiten dieses Kapitels in der
Lage sein,
• die Probleme der Softwarekrise zu nennen,
• den Lebenszyklus eines Softwareentwicklungsprojekts zu beschreiben,
• methodische Ansätze zur Lösung der Probleme bei der Softwareentwicklung
zu nennen.
Es wird außerdem eine Definition von Software Engineering gegeben sowie
dessen Abdeckungsbereich untersucht.
SEI11 3
© HfB, 02.12.20, Berk, Eric (904709)
1 Einleitung
hafter Planung lag. Planungsfehler wurden oft erst sehr spät entdeckt und waren nur mit
erheblichem Aufwand zu korrigieren. Außerdem wiesen die Pflichtenhefte häufig In-
konsistenzen (Widersprüche) auf, die zunächst nicht bemerkt wurden. Diese Situation
bezeichnet man heute als die Softwarekrise der 60er-Jahre.
Es wurden viele Anstrengungen unternommen, um aus dieser Krise herauszukommen.
Es wurde z.B. zunächst versucht, die Planungsphase zu standardisieren, wobei ingeni-
eurwissenschaftliche Methoden als Vorbild dienen sollten. Die Grundidee war, besagte
Planungsphase systematisch zu erarbeiten und methodische Ansätze dafür zu entwi-
ckeln. Man erhoffte sich dadurch weniger Planungsfehler und eine Codierung, die Pro-
gramme lieferte, die die geforderten Spezifikationen so gut wie möglich erfüllten.
Entwicklungs-
aufwand
ideal
real
Zeit
Abb. 1.1 stellt den idealen Lebenszyklus einer Softwareentwicklung dem seinerzeit rea-
len gegenüber. Im Idealfall steckt man den meisten Aufwand in die Planungsphase, so-
dass die sich anschließende Codierungsphase ohne großen Aufwand vonstattengeht und
auch keine wesentlichen Korrekturen erforderlich sind. Im Realfall dagegen war die Pla-
nungsphase nicht sonderlich intensiv durchdacht und die Codierung war demzufolge
fehlerhaft und korrekturanfällig. Die wohlbekannten Gesetze von Edward A. Murphy
finden leider auch hier ihre Anwendung.
Murphys Gesetze
• Alles dauert länger, als man denkt.
• Alles ist teurer, als man denkt.
• Alles ist komplizierter, als man denkt.
• Wenn ein Fehler passieren kann, dann passiert er auch.
(Murphy war Optimist.)
4 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Einleitung 1
Diese etwas scherzhafte Formulierung von Murphys Gesetzen weist auf die Pro-bleme
hin, die mit der Entwicklung von Software verbunden sein können.
Ergebnis Ergebnis
System mit externe
spontane System-
geplanten
Aktivität umgebung
Reaktionen
Reaktionen Reaktionen
Ein System mit geplanten Reaktionen fängt also alle Reaktionen seiner Umgebung in
kontrollierter Weise ab. Stellt ein System z. B. ein Anwendungsprogramm auf einem
Rechner dar, also einen Ausschnitt aus der Realität, der DV-technisch mit einem entspre-
chenden Programm abgebildet wird, dann ist insbesondere die I/O-Schnittstelle eine
Quelle möglicher Probleme. Das kann z. B. eine unsinnige Tastenkombination auf der
Tastatur des Computers sein, während das Anwendungsprogramm läuft. Auf keinen
Fall darf es dann zum Absturz des Programms kommen, sondern es muss eine kontrol-
lierte Reaktion des Systems erfolgen.
Dies zu erreichen klingt zunächst einfacher, als es ist, denn meistens ist es schwierig, alle
Eventualitäten „vorherzudenken“. Deswegen ist z. B. auch der Programmieraufwand für
Plausibilitätsüberprüfungen einer Maskeneingabe häufig der aufwendigste Teil der je-
weiligen Maskenprogrammierung. Natürlich sind geplante Reaktionen auch in Rechen-
algorithmen zu berücksichtigen, beispielsweise muss eine mögliche Eingabe, die zur Di-
vision durch die Zahl Null führt, abgefangen werden.
Benutzen wir also zukünftig den Begriff Software, so wird nachfolgend immer davon
ausgegangen, dass es sich dabei um Systeme mit geplanten Reaktionen handelt.
SEI11 5
© HfB, 02.12.20, Berk, Eric (904709)
1 Einleitung
Dies ist allerdings noch lange nicht ausreichend, um effiziente Software zu entwickeln,
denn es sind weitere Probleme damit verbunden, die systematisch gelöst werden müs-
sen. Einige dieser Probleme sind:
• Komplexe Anforderungen sind oft schwer zu verstehen.
• Softwareentwicklung erfordert absolute Präzision, ein hohes Maß an Kreativität, Er-
fahrung im Entwickeln komplexer Programme und echtes Teamwork.
• Unter Stressbedingungen kann die Fehlerrate ansteigen.
• Es ist eine hohe Qualifikation der Mitarbeiter erforderlich.
An einen Entwickler werden zudem noch gewisse spezifische Anforderungen gestellt,
wie z. B. die Fähigkeit, Wichtiges von Unwichtigem zu trennen, oder die richtige Ein-
schätzung der Komplexität einer Anforderung.
Um komplexe und aufwendige Anforderungen einer systematischen Lösung zuführen
zu können, sind drei wichtige Prinzipien einzuhalten:
1. die Modellierung der Realität durch Abstraktion,
2. die Reduktion der Komplexität durch Strukturierung und
3. Fokussierung auf die Lösung von Teilproblemen.
Es gibt computergestützte Hilfsmittel zur Durchführung dieser Aufgaben, die man all-
gemein CASE-Tools nennt (CASE = Computer Aided Software Engineering). Es wird
dringend empfohlen, solche Tools wann immer möglich einzusetzen. Diese Werkzeuge
sind in der Lage, schon bei der Planung und dem Entwurf der Anwendung Inkonsisten-
zen zu entdecken. Dadurch reduziert sich die Fehlerrate beträchtlich. Außerdem können
viele dieser Tools das Planungsergebnis direkt in ein relationales oder objektorientiertes
Datenbankschema umsetzen und erzeugen so z. B. physikalische Tabellenstrukturen.
Nachfolgend soll nun eine allgemeine Definition des Begriffs Software Engineering ge-
geben werden.
Software Engineering
Unter Software Engineering versteht man die Wissenschaft, effiziente Software auf der
Basis ingenieurmäßiger Methoden und ökonomischer Gesichtspunkte zu entwickeln. Sie
umfasst die strukturierte Analyse, den Entwurf und die Realisierung sowie das Testen
und Warten eines Programms mittels methodischer Ansätze.
Bis zu den 80er-Jahren des 20. Jahrhunderts unterteilte man die Entwicklung eines Soft-
waresystems zunächst nur in die zwei Phasen Systemanalyse und Programmierung. Die
Systemanalyse umfasste damals die Problembeschreibung, die Beschreibung des Ist-
und Sollzustandes, die Input-/Output-Beschreibung des gewünschten Systems, einen
Projektplan, ein semantisches Datenmodell, ein logisches Datenmodell, Datenflussdia-
gramme/Programmstruktogramme und ein Lösungskonzept. Die sich daran anschlie-
ßende Programmierung beschäftigte sich mit der eigentlichen Codeerzeugung, ggf. ei-
nem „Tuning“ des Codes sowie schließlich dem Test und der Wartung der Software.
6 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Einleitung 1
Diese beiden Phasen sind heute allerdings nur Teile detaillierterer Phasenmodelle und
umfassen demzufolge auch nicht mehr alle oben genannten Komponenten, sondern die-
se sind ausgelagert und in andere, eigene Entwicklungsphasen integriert.
Gelegentlich wird eine Unterteilung des Software Engineering in zwei Komponenten
vorgeschlagen:
1. Konstruktionssystematik
Darunter versteht man die Ansammlung der benutzten Methoden, Werkzeuge und
Ergebnisse.
2. Produktionssystematik
Diese beschreibt die Entwicklungsschritte, deren Reihenfolge, gesetzte Termine so-
wie die anfallenden Kosten.
Es sei darauf hingewiesen, dass diese zwei Komponenten nichts mit den Phasen des Soft-
ware Engineering zu tun haben! Die Phasen fließen eher in die zweite Komponente ein,
während die erste einfach die Betriebsmittel zu ihrer Durchführung bereitstellt.
Diese Zweiteilung ist allerdings nicht unbedingt erforderlich, da die angewendeten Be-
triebsmittel entweder gewissen Standards entsprechen oder, falls nicht, in den jeweili-
gen Phasen beschrieben werden.
Die Lösung der Probleme der Softwarekrise des letzten Jahrhunderts erhoffte man sich
also durch Phasenkonzepte. Der Entwicklungszyklus einer Anwendung wird in einzelne
Phasen unterteilt und jede Phase enthält genau definierte Eingaben, Ausgaben und Tä-
tigkeiten. Man unterscheidet dabei zwischen linearen und nichtlinearen Phasenmodel-
len. Bei linearen Phasenmodellen muss eine Phase vollständig abgearbeitet sein, bevor
die nächste Phase begonnen werden kann. Bei nichtlinearen Phasenmodellen ist das
nicht so; hier können einzelne Phasen auch mehrmals durchlaufen werden, ohne immer
vollständig abgeschlossen zu sein. Solche Phasenmodelle sind Inhalt des nächsten Kapi-
tels.
Zusammenfassung
1.1 Zeigen Sie auf, wo das systematische Vorgehen des Software Engineering seine
Wurzeln hat und welche Parallelen es auf anderen Gebieten, z. B. den Ingenieur-
wissenschaften, hat.
1.2 Es seien zunächst die beiden Unterteilungen des Software Engineering „Planung“
und „Realisierung“ einer Softwareentwicklung betrachtet. Kommentieren Sie da-
mit Abb. 1.1, indem Sie die unterschiedlichen Kurven („ideal“ und „real“) quanti-
tativ den beiden Unterteilungen zuordnen.
SEI11 7
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
In diesem Kapitel werden einige der gängigen Phasenmodelle gezeigt. Es werden
die Vor- und Nachteile dieser Modelle sowie ihr Einsatzbereich erläutert. In der
Praxis sind viele Modelle im Einsatz, sodass wir uns hier nur auf die wichtigsten
beschränken.
Nach Durcharbeiten dieses Kapitels sollen Sie insbesondere folgende Kenntnisse
und Fertigkeiten besitzen:
• den Sinn und Zweck von Phasenmodellen aufzeigen
• die Phasen des klassischen Wasserfallmodells nennen und inhaltlich be-
schreiben
• das Spiralmodell nach Boehm beschreiben und dem Begriff des Prototypings
zuordnen
• das V-Modell beschreiben
• das Diamantmodell erläutern
• agile Methoden nennen
8 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
Initialisierung
DV-Konzept
DV-Entwurf
Rückkopplungen Implementierung
(unerwünscht)
Test
Installation
Wartung
Das Wasserfallmodell zählt zu den linearen Phasenmodellen. Das heißt, eine Phase kann
erst begonnen werden, wenn die davorliegende vollständig beendet ist. Wir schauen uns
jetzt die einzelnen Phasen genauer an.
Phase 1: Initialisierung
Die Initialisierungsphase startet das geplante Entwicklungsprojekt. In der Regel wird da-
mit begonnen, dass ein Unternehmen das geplante Projekt ausschreibt oder sich direkt
an ein Softwareentwicklungsunternehmen wendet mit der Bitte um eine Angebotser-
stellung. Zur Erstellung eines Angebotes ist es natürlich erforderlich, dass eine erste
Analyse des Problems erfolgen muss, aus dem die notwendige Information für das An-
gebot ableitbar ist. Ein Problem des angebotserstellenden Unternehmens ist dabei, dass
einerseits ein detailliertes Angebot erst erfolgen kann, wenn hinreichende Informatio-
nen über das Projekt vorliegen, und andererseits eine solche erste Problemanalyse be-
SEI11 9
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
reits recht arbeitsaufwendig werden kann, je nachdem, welchen Umfang das geplante
Projekt haben soll. Lehnt der Kunde das Angebot ab, ist die für die erste Analyse inves-
tierte Zeit verloren. Deshalb wird ein Entwickler zunächst eine recht grobe Analyse
beim Kunden vornehmen, die aber trotzdem eine erste Kostenabschätzung sowie eine
erste zeitliche Abschätzung des Projektverlaufs möglich macht.
Eine sich mittlerweile immer mehr verbreitende Variante ist, dass sich ein Softwareent-
wicklungsunternehmen bereits die Angebotserstellung bezahlen lässt. Dies ist insbeson-
dere im Bereich Multimediaprojekte der Fall, z. B. bei der Entwicklung von E-Com-
merce-Anwendungen. Dies liegt u. a. daran, dass in diesem Bereich ein strukturiertes,
methodenbasiertes Vorgehen in Ermangelung geeigneter Modelle kaum zu finden ist.
Deshalb wird schon für eine Angebotserstellung oft eine umfangreiche Detailanalyse er-
forderlich, und dieser Aufwand muss dann auch honoriert werden. Der Kunde hat aber
auch einen Vorteil von dieser Vorgehensweise, denn er hat dann eine ausführliche Ana-
lyse des Entwicklers vorliegen, die er – selbst wenn er das Angebot ablehnt – weiterver-
werten kann (diese kann er z. B. einem anderen Systementwickler zur Verfügung stel-
len).
Die Initialisierungsphase enthält in jedem Fall mindestens folgende Punkte:
• Problembeschreibung, in der Zweck und Rechtfertigung für das geplante
Unterfangen genannt wird
• Projektziele (gewünschtes Ergebnis des Projekts)
• grobe Projektbeschreibung: welche bereits installierte Hard- und Software ist vor-
handen, welche zusätzliche Hard- und Software muss angeschafft werden, sind
Netzwerkkomponenten erforderlich etc.
• grober Projektplan, der eine personale und zeitliche Aufwandsplanung und erste
grobe Projektorganisation enthält
• Kostenabschätzung
• Angebot an den Kunden
Den Kunden interessiert dabei natürlich in erster Linie, was die Durchführung des Pro-
jektes kostet und wie lange die Entwicklungszeiten sind. Diese dürfen also auf gar kei-
nen Fall fehlen.
Eine zuverlässige Aufwands- und Kostenabschätzung birgt jedoch die größte Problema-
tik. Kunden bevorzugen in der Regel Festpreise, aber gerade die setzen eine realistische
Kostenabschätzung voraus und wie beschrieben würde das eine intensive Problemana-
lyse erfordern. Erfahrene Entwickler haben hier deutliche Vorteile, da sie oft ein recht
sicheres Gefühl für Art und Umfang anstehender Entwicklungsaufgaben haben.
Falls Festpreise gewünscht sind, dann ist es in jedem Fall ratsam, einen geeigneten Puffer
für nicht vorhersehbare Fälle (vgl. Murphys Gesetze aus Kapitel 1, Seite 4) einzuplanen.
Manche Entwickler veranschlagen z. B. einen Faktor 2 für die Entwicklungskosten im
Angebot an den Kunden gegenüber dem zunächst tatsächlich abgeschätzten Aufwand,
vor allem dann, wenn viele Unsicherheiten hinsichtlich der Problemanalyse bestehen.
10 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
Wenn keine Festpreise erforderlich oder wenigstens nicht verbindlich sind, so kann ver-
einbart werden, dass eine genaue Aufwandsschätzung erst nach Abschluss der nächsten
Phase vorgelegt werden muss, also wenn das DV-Konzept vorliegt. In diesem Fall möch-
te der Kunde jedoch häufig wenigstens einen Kostenvoranschlag für die Erstellung des
DV-Konzepts haben, der dann im Angebot angegeben wird.
Eine andere Möglichkeit, die Unsicherheiten bei Festpreisen wenigstens zu mildern, be-
steht darin, dass ein Festpreis mit einer „Unsicherheitsspanne“ vereinbart wird. So kann
beispielsweise ein Festpreis von 25.000 € verhandelt werden, wobei ein Spielraum von
± 15 % möglich ist. Damit besteht ein Spielraum von 3.750 €, der ggf. noch auf den Fest-
preis aufgestockt werden kann. Natürlich wünscht der Kunde in der Regel dann auch
eine genaue Begründung für solche Zusatzkosten.
Die zeitliche Dauer der Initialisierungsphase sollte so gewählt werden, dass für den Soft-
wareentwickler kein zu hohes Risiko für den Fall entsteht, dass der Kunde das Angebot
ablehnt. Da diese Phase der Angebotserstellung dient und normalerweise nicht bezahlt
wird, sollte der Entwickler hier seine Zeit angemessen investieren. So sollten selbst bei
Projekten mit einer finanziellen Größenordnung von beispielsweise 50.000 € höchstens
14 Tage für die Initialisierungsphase investiert werden; ein Dilemma kann dabei sein,
dass man einerseits einen möglichst niedrigen Festpreis ansetzen möchte (um unterhalb
eventueller Konkurrenzangebote zu liegen) und andererseits gerade für eine knappe Kal-
kulation eine ziemlich ausführliche Problemanalyse benötigt, deren Erstellung wieder-
um zeitaufwendig ist. Hier muss der Entwickler ein ausgewogenes Verhältnis finden. So
etwas ist aber oft nur durch einige Erfahrung zu gewinnen.
Ein Ergebnis der Initialisierungsphase ist die Erstellung eines Angebots an den Kunden.
Nachfolgend ist ein Beispiel für ein solches Angebot zu sehen.
SEI11 11
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
Supersoft AG 03.11.2014
Koboldweg 8
60321 Frankfurt am Main
12 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
formation aus dem Kunden herauszuholen. Meistens kennt der Systemanalytiker das
Problemfeld des Kunden kaum, während der Kunde normalerweise nicht weiß, welche
Information für die genaue Systemanalyse wichtig ist. DV-Fachmann und Kunde müs-
sen daher einen gemeinsamen Ansatzpunkt finden. Grob unterteilt besteht ein Fachkon-
zept aus zwei Teilen, nämlich der Anforderungsanalyse, in der der Ist- und der Sollzu-
stand von Hard- und Software erarbeitet werden, und der Systemanalyse, in der eine
erste semantische Datenmodellierung vorgenommen wird. Letztere beschreibt, was
die Anwendung leisten soll, wie sie prinzipiell aufgebaut sein muss und wie das erreicht
werden kann. Das Ergebnis ist dann das Papier, das Pflichtenheft (je nach Sicht auch
manchmal Lastenheft) oder allgemein einfach nur Spezifikation genannt wird.
Im DV-Konzept wird damit also im Prinzip der Weg vom Istzustand zum Sollzustand in
einer für Kunde und Analytiker gleichermaßen verständlichen Sprache beschrieben. Da-
her ist das Pflichtenheft überwiegend verbal abgefasst und enthält wenig Abstraktionen.
Dies birgt jedoch die Gefahr, dass hier Inkonsistenzen entstehen können. Das heißt, es
könnte z. B. auf Seite 10 des Pflichtenhefts etwas stehen, was einer Anforderung auf Sei-
te 25 direkt widerspricht. Solche Widersprüche werden u. U. erst sehr spät bemerkt, im
ungünstigsten Fall erst beim Testen der Software. Dies führt dann zu den unerwünsch-
ten Rückkopplungen im Wasserfallmodell, denn es muss im Pflichtenheft eine Korrektur
gemacht werden, die alle nachfolgenden Phasen betreffen kann. So etwas ist dann meis-
tens auch relativ zeit- und kostenaufwendig.
Das Pflichtenheft sollte daher sehr genau und umsichtig entworfen werden. Manchmal
kann es hilfreich sein, hier sogar schon Elemente des DV-Entwurfs (z. B. ER- oder UML-
Diagramme) zu verwenden, sofern der Kunde in der Lage ist, diese zu verstehen.
Eine verbale Beschreibung von Daten und deren Zusammenhängen nennt man auch se-
mantisches Datenmodell.
Im Pflichtenheft sollten enthalten sein:
• (semantische) Modellierung der projektrelevanten Teilausschnitte der Realität
• Beschreibung des Istzustands, ggf. unter Zuhilfenahme von Organigrammen, Funk-
tionsabläufen und/oder bereits vorhandenen Datenmodellen
• Beschreibung des Sollzustands, ggf. unter Zuhilfenahme von Organigrammen,
Funktionsabläufen und/oder bereits vorhandenen Datenmodellen
• Beschreibung der Ein- und Ausgaben des zu entwickelnden Programms
• Beschreibung von Datenstrukturen (Länge und Art der Daten, z. B. Gleit- oder Fest-
kommazahlen, wie lang können maximal die jeweils abzuspeichernden Zeichenket-
ten sein)
• Beschreibung des Datenaufkommens, d. h. der Datenmengen, Datenherkünfte etc.
• Beschreibung des Wegs von der Dateneingabe zur Datenausgabe (macht beispiels-
weise dies im Istzustand bereits jemand „von Hand“, so ist diese Person zu befragen
und der genaue Funktionsablauf zu beschreiben; eventuelle Berechnungsformeln
etc. sind anzugeben)
• Beschreibung der geplanten Datenmanipulationsmöglichkeiten
SEI11 13
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
14 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
… Zunächst werden die Felder mit den Inhalten aus der Tabelle A90UMW ge-
füllt, und zwar alle Datensätze, bei denen die Felder KU_ZE und/oder
KENZZGES gefüllt sind. Dazu die Folgedatensätze, bei denen die Felder TEL
noch gefüllt sind, aber nur bis zum nächsten gefüllten Feld KU_ZE und/oder
zum nächsten Telefoneintrag. Nun wird von der Tabelle BUERO_90 aus gear-
beitet. Alle Datensätze, die in den Feldern BURO_ART, GB_KURZ,
KFZ_KENN und/oder ANSPRECH ein Kurzzeichen enthalten, werden mit den
Feldern KU_ZE und KENZZGES auf Übereinstimmung geprüft, und zwar je-
des Feld, das gefüllt ist. Ist Übereinstimmung vorhanden, muss noch der Ort
überprüft werden. Dazu Feld ORT_ aus Tabelle BUERO_90 mit dem Ortsna-
men im Feld NAMSITZ ab der Zeile mit dem gefundenen Code im Feld KU_ZE
bis zum nächsten Eintrag im Feld KU_ZE und innerhalb derselben Blocknum-
mer prüfen. Wird auch hier Übereinstimmung gefunden, dann werden die
Felder aus BUERO_90 in die Tabelle ANSPRE übernommen, und zwar in die
Zeile, in der der Code steht. Wird zu einem Datensatz in der Tabelle
BUERO_90 keine Übereinstimmung gefunden, wird der Datensatz an das
Ende der Tabelle ANSPRE angehängt, und zwar für jedes ausgefüllte Codefeld
ein Datensatz, hinter jedem hinzugefügten Datensatz werden drei weitere
Zeilen mit dem Firmenkurzzeichen, einer Block- und Zeilennummer gefüllt
und der relevante Ansprechpartnercode wird in das Feld KU_ZE eingetragen.
Nach diesem Abgleich werden alle Datensätze, in denen die Felder KU_ZE
und/oder KENZZGES gefüllt sind, aber denen noch keine Adresse zugeordnet
ist, mit der Adresse der jeweiligen Gesellschaft gefüllt (Straße, PLZ und Ort,
Postfach, PLZ zum Postfach und Ort aus Tabelle gesell). Da es in der Gesell-
schaftstabelle zwei Datensätze geben kann, ist zu prüfen, ob unter NAMSITZ
innerhalb des Blocks ein Ort aufgeführt ist (Feld NAME=1). Ist kein Ort auf-
geführt, dann ist immer die Adresse aus dem Datensatz 1/2 zu nehmen. Ist
ein Ort aufgeführt und er stimmt mit der Adresse von Satz 2/2 überein, dann
ist diese Adresse zu nehmen, sonst wieder die Adresse von Satz 1/2. Nun ist
jedem Datensatz, der mit einer Adresse gefüllt ist, aber noch keinen Eintrag
im A90UMW-Teil der Tabelle hat (außer dem Gesellschaftskurzzeichen), über
die Beziehung zur vertansprech-Tabelle ein Ansprechpartner aus dieser Ta-
belle zuzuordnen. Ist nur ein Ansprechpartner vorhanden, wird dieser ge-
nommen.
Sind mehrere Ansprechpartner vorhanden, wird der Ansprechpartnercode
(Feld abt) in Tabelle vertansprech mit dem Code in KU_ZE verglichen. Bei
Übereinstimmung erfolgt die Übernahme der Inhalte der Felder funktion, an-
sprech, telefon (telefax, funktel, email jeweils in die nächsten Zeilen, die be-
reits angelegt wurden). Ist keine Übereinstimmung vorhanden, wird der Da-
tensatz mit der niedrigsten Zeilennummer genommen, in dem ein Name
eingetragen ist. Ganz zum Schluss müssen noch die Zeilen, die nur Gesell-
schaftskurzzeichen, Block- und Zeilennummern enthalten, gelöscht werden
…
SEI11 15
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
Dieses semantische Datenmodell ist schon recht ausführlich und gibt bereits einige Vor-
schläge zur Implementierung. Das ist allerdings nicht immer so. Oft werden hier nur
Andeutungen gemacht, die dann erst im DV-Entwurf in dieser Detaillierungstiefe aus-
geführt werden. Doch die Faustregel, nämlich: „Je früher ins Detail gegangen wird, umso
besser“, sollte wann immer möglich angewendet werden.
Phase 3: DV-Entwurf
Die eigentliche Entwicklung des Anwendungssystems geschieht hier. Das Ergebnis wird
auch manchmal Feinkonzept genannt. Dabei spielt diese Phase die Rolle, die z. B. beim
Hausbau die Erstellung eines Bauplans, des „Blueprints“, spielt. So wie ein Architekt auf
dem Papier das zukünftige Haus plant (nach den Wünschen des Auftraggebers, bei uns
im Pflichtenheft niedergeschrieben), so plant der Entwickler in der Phase DV-Entwurf
die Einzelheiten der DV-Anwendung. Und ebenso wie beim Architekten ist das Ergebnis
auch in der Datenverarbeitung ein Bauplan im wahrsten Sinn des Wortes, der zum gro-
ßen Teil tatsächlich aus grafischen Elementen auf Papier, man könnte es ein Programm-
Blueprint nennen, besteht. Das Ergebnis dieser Phase ist also eine Programmspezifikati-
on, in der alle Einzelheiten beschrieben sind, die zur eigentlichen Programmierung des
Systems erforderlich sind. Dazu gehört übrigens auch eine detaillierte Planung von Test-
strategien zwecks Verifikation der entwickelten Programme. Diese Phase ist schwer-
punktmäßiger Gegenstand späterer Betrachtungen.
Phase 4: Implementierung
Wenn der Entwurf erfolgreich beendet ist, dann kann die Anwendung programmiert
werden. Diesen Vorgang nennt man Implementierung, da jetzt der Entwurf in codierter
Form auf den Computer gebracht wird. Je nach Anwendungsgebiet kann es sich dabei
um die berühmte „Knochenarbeit“ handeln, wenn z. B. ein Echtzeitsystem in C++ ge-
schrieben werden muss. Es kann aber auch sein, dass gar nicht viel im herkömmlichen
Sinne programmiert werden muss, sondern dass durch den geschickten Einsatz von
Werkzeugen vieles ohne Programmierarbeit erledigt werden kann. Gerade bei Daten-
bankanwendungen z. B. für betriebliche Informationssysteme sind sehr mächtige Tools
vorhanden. Im Idealfall kann der Programmcode sogar automatisch generiert werden.
Dazu ist es natürlich erforderlich, dass der DV-Entwurf hinreichend detailliert und for-
malisiert ist. Werkzeuge, die (fast) keine Programmierung mehr erforderlich machen,
sind ein hochaktuelles Forschungsgebiet des Software Engineering.
Die Vorgehensweise für die Implementierung ist im Allgemeinen „top-down“, d. h., es
werden zuerst die einzelnen Module geplant und diese dann jeweils verfeinert und im-
plementiert. Das Ergebnis der Phase Implementierung ist also ein ausführbares Pro-
gramm mit einer eventuell physikalisch implementierten Datenbasis. Auch diese Phase
wird erst später wieder genauer betrachtet.
16 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
Phase 5: Test
Der Implementierung des Programms folgt ein ausführlicher Test. Dabei sind zwei Test-
verfahren zu unterscheiden:
1) Programmtest
Hierunter versteht man den Test der einzelnen Programmmodule auf logische Kon-
sistenz und Übereinstimmung mit dem DV-Design. Dieser Test wird i. d. R. vom Pro-
grammierer selbst durchgeführt. Normalerweise beginnen diese Tests nicht erst am
Ende der Implementierungsphase, sondern bereits während der Codierung, d. h.,
während an den entsprechenden Modulen programmiert wird, werden auch gleich
die dazugehörigen Tests gemacht. Selbstverständlich wird nach Abschluss der Im-
plementierung noch einmal ein größerer Gesamttest durchgeführt, um das Zusam-
menspiel der einzelnen Module zu überprüfen und die Konsistenz mit dem DV-De-
sign festzustellen. Für diese Art des Testens gibt es kaum formale Methoden, da die
verschiedenen Möglichkeiten des Programmierstils einfach zu vielfältig sind. Als
Faustregel kann man allenfalls sagen, dass die Module jeweils für sich so weit wie
möglich ausgetestet werden sollten. Ist dies erfolgt, sollten einige zusammengehöri-
ge Module gemeinsam, d. h. deren Zusammenspiel, getestet werden. Man testet also
Gruppen von Modulen, bis schließlich das ganze Programm ausgetestet ist. Handelt
es sich z. B. um wissenschaftliche Anwendungen, so sollte eine verifizierbare Metho-
de im Voraus festgelegt werden. Soll ein Programm z. B. die numerische Lösung ei-
nes Differenzialgleichungssystems ermöglichen und sind dafür numerische Stütz-
stellen für eine Interpolations- oder Approximationsfunktion vorgesehen, so kann
ein sehr effektiver Test dadurch erfolgen, dass man einige der Stützstellen innerhalb
ihres Konvergenzintervalls leicht verschiebt. Damit hat man numerisch gesehen völ-
lig andere Zahlen als Input, aber das Ergebnis der Lösung müsste davon unabhängig
sein. Auch hilft es häufig, Extremfälle zu betrachten, deren Ergebnis im Voraus be-
kannt ist (z. B. triviale Fälle, wo alle Eingaben null sind).
2) Benutzertest
Ist das Programm durch den Programmtest als logisch richtig und fehlerfrei verifi-
ziert, muss ein Test unter Produktionsbedingungen erfolgen. Dieser Test kann zwar
auch vom Programmierer durchgeführt werden, es ist aber besser, wenn hier ausge-
wählte Benutzer testen. Wichtig ist dabei, dass keinesfalls schon echte Produktions-
prozesse gefahren werden, sondern es soll ja nur getestet werden in einer produkti-
onsidentischen Umgebung, aber nicht in der Produktion selbst. Es kann nämlich
hier noch zu folgenreichen Fehlern im Programm kommen, und das darf natürlich
nicht den Produktionsprozess behindern. Auch müssen die Benutzer, die diese Tests
durchführen, wissen, dass es sich hier um einen Test handelt, der u. U. zu unerwar-
teten Ergebnissen führen kann. Die Planung der Art und Weise dieser Tests sowie
der beteiligten Personen sollte bereits im Fachkonzept festgelegt werden.
Phase 6: Installation
Nach Abschluss der Testphase erfolgt die Installation der Anwendung in der Produkti-
onsumgebung. Es sollte dafür ein Zeitpunkt gewählt werden, der unkritisch für die lau-
fende Produktion ist. Das heißt, dass gleichzeitig keine kritischen Anwendungen dabei
laufen dürfen. Auch muss eine Datensicherung des Zielrechners vorhanden sein, sodass
ein Recovery möglich ist.
SEI11 17
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
Phase 7: Wartung
Normalerweise ist die Wartungsphase – jedenfalls bei hinreichend getesteten Program-
men – wenig arbeitsintensiv. Manchmal werden Schulungsmaßnahmen (Anwender-
schulungen etc.) vorgenommen, die aber gewöhnlich zeitlich begrenzt sind. Läuft das
Programm erst einmal richtig, so bleibt hier nicht mehr viel zu tun. Manchmal kann es
vorkommen, dass kleinere Fehler erst nach längerer Zeit entdeckt werden oder dass Pro-
grammerweiterungen gewünscht werden. Solche Fälle können als Teil eines Wartungs-
vertrages im Voraus abgedeckt werden. Erfolgt dies nicht, dann muss in diesen Fällen
ein neues Angebot erstellt und das Ganze wie ein neues Projekt behandelt werden.
Rückkopplungen im Wasserfallmodell
Angenommen, beim Benutzertest stellt sich heraus, dass eine Ausgabe nicht das ge-
wünschte Ergebnis liefert. Der Benutzer geht damit dann zum Programmierer. Wenn es
sich nun um keinen Programmierfehler handelt, so wird der Programmierer den „Pla-
ner“, d. h. denjenigen, der den DV-Entwurf erarbeitet hatte, ansprechen. Hat auch dieser
keinen Fehler bei der Planung gemacht, so wird er schließlich im Fachkonzept nach-
schauen und dort den Fehler lokalisieren können. Das Fachkonzept aber wurde zusam-
men mit dem Auftraggeber nach Erstellung „abgesegnet“, d. h. beide, Entwickler und
Auftraggeber, hatten das Fachkonzept als verbindlich abgezeichnet. Jetzt muss also das
Fachkonzept korrigiert werden. Daraufhin müssen die Phasen DV-Entwurf, Implemen-
tierung und Test erneut durchlaufen werden. Dieser Sachverhalt stellt die unerwünsch-
ten Rückkopplungen dar.
Wenn man Pech hat, kann dies alles sogar mehrmals geschehen. Es existiert die Mei-
nung, dass ein Fachkonzept mit mehr als 20 Seiten immer an irgendeiner Stelle wider-
sprüchlich ist. Aus diesem Grund ist es gerade bei umfangreicheren Projekten sinnvoll,
schon frühzeitig computergestützte Werkzeuge einzusetzen. Es gibt bereits hilfreiche
Tools für die Erstellung von Fachkonzepten, die gewisse Inkonsistenzen frühzeitig ent-
decken können. Solche Tools setzen allerdings voraus, dass die Spezifikation sehr genau
durchgeführt wird. Es ist klar, dass bedingt durch den linearen Verlauf der Phasen im
Wasserfallmodell Fehler erst sehr spät entdeckt werden. Zudem bekommt ein Anwen-
der erst zu einem sehr späten Zeitpunkt das erste Mal etwas von dem Anwendungspro-
gramm zu sehen, nämlich frühestens beim Benutzertest. Bis dahin ist aber schon der
Hauptanteil der Entwicklungszeit verbraucht. Bei größeren Entwicklungsprojekten
kann es durchaus sein, dass ein Anwender erst ein Jahr nach Auftragserteilung zum ers-
ten Mal etwas auf seinem Computer zu sehen bekommt. Das ideale Wasserfallmodell
(ohne Rückkopplungen) setzt also etwas voraus, was es eigentlich nicht gibt: ideale Auf-
traggeber, die zum Zeitpunkt der Auftragsvergabe haargenau wissen, was sie wollen
und was das Programm später können soll, und ideale DV-Entwickler, die völlig fehler-
frei arbeiten und ebenfalls alle möglichen Probleme vorausgedacht haben. So etwas gibt
18 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
es natürlich nicht. Deswegen hat sich nach und nach eine weitere Planungsmethode eta-
bliert, in der die Not des realen (rückgekoppelten) Wasserfallmodells (nämlich dessen re-
ale Nichtlinearität) zur Tugend gemacht wurde: das Spiralmodell. Diese Vorgehensweise
sei als Nächstes näher betrachtet.
2.2 Spiralmodell
Die unerwünschten Rückkopplungen im Wasserfallmodell und die mittlerweile weitver-
breiteten Werkzeuge zur relativ schnellen Gestaltung von Programmoberflächen haben
dazu geführt, dass sich neben dem klassischen Wasserfallmodell noch ein weiteres eta-
bliert hat: das Spiralmodell. Der Grundgedanke ist, dass nicht die einzelnen Phasen je-
weils beendet sein müssen, bevor die nächste Phase begonnen wird, sondern dass die
Phasen in kleinere Teilphasen zerlegt werden und diese zunächst begonnen werden. Es
werden also die großen Phasen immer nur teilweise bearbeitet und danach wird gleich
zur nächsten Phase übergegangen. Das Ergebnis ist ein mehrmaliges, stückweises
Durchlaufen aller Phasen, bis ein gewisser Reifegrad erreicht ist. Betrachtet man z. B.
nur die vier Hauptphasen Analyse, Entwurf, Implementierung und Test, so könnte eine
einfache Version des Spiralmodells wie in Abb. 2.2 skizziert aussehen.
Analyse Entwurf
Test Implementierung
Boehm hat diese Idee seiner verfeinerten Version des Spiralmodells zugrunde gelegt. Der
Vorteil einer solchen Vorgehensweise liegt auf der Hand: Durch die sukzessive Entwick-
lung des Systems bekommt der Anwender schon relativ früh Teile des zukünftigen Pro-
gramms zu sehen und es können so Fehler auch früher erkannt und damit rechtzeitig
korrigiert werden. Die ersten Programmteile, die durch die ersten, inneren Spiralläufe
im Quadranten der Implementierung repräsentiert werden, nennt man auch Prototy-
pen. Sie stellen eine Art Programmhülle dar, wobei hier hauptsächlich nur die Benutzer-
oberflächen realisiert sind ohne wirkliche Anwendungen oder Funktionen hinter den
Schaltflächen.
SEI11 19
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
kumulierte
Bestimmung von Zielen, Kosten Bewertung von Alternativen
Alternativen, Restriktionen Identifizierung und
Beseitigung von Risiken
Fortschritte Risikoanalyse
Risikoanalyse
Zustimmung
Risikoanalyse betriebs-
fähiger
Prototyp Prototyp
Risikoanalyse
P3
P2
P1
Start
Modul-
codierung
Entwicklungs- Anforderungs-
plan prüfung
Modultest
Integration und Entwicklungs-
Testplan prüfung
Integration
und Test
Verbesserungs- Abnahmetest
plan und Einführung
Planung der nächsten Phase Entwicklung/Prüfung der
nächsten Produktstufe
Eine alte Faustregel besagt, dass man für die endgültige Programmierung des Systems
alle Prototypen am besten wegwirft und den Zielzustand neu programmiert. Diese et-
was radikale Methode muss aber nicht immer angewendet werden, denn häufig liefert
das Prototyping recht brauchbare Programmmodule, die zumindest teilweise wieder-
verwendet werden können.
Das Spiralmodell birgt allerdings auch Nachteile. Insbesondere kann es dazu führen,
dass der Gesamtaufwand des Entwicklungsprojekts stark in die Höhe geht. Festpreise
sind bei so einer Vorgehensweise daher sehr gefährlich für den Entwickler. Leicht kann
es z. B. dazu kommen, dass der Anwender, wenn er die ersten Versionen der Prototypen
zu sehen bekommt, in Euphorie ausbricht und etliche Zusatzwünsche äußert, die so zu-
nächst im Budget gar nicht vorgesehen waren. Die Entwicklungsspirale kann so ins Un-
ermessliche wachsen, das Programm kommt nicht in der geplanten Zeit zum Abschluss.
In der Praxis erweist es sich daher häufig als sinnvoll, eine Kombination des klassischen
Wasserfallmodells mit dem Spiralmodell zu praktizieren. Die groben Planungen und das
Gerüst der Entwicklung sollten mit dem Wasserfallmodell gemacht werden, während
die Details dann nach dem Spiralmodell realisiert werden können.
20 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
2.3 V-Modell
Das V-Modell weist gewisse Ähnlichkeiten mit dem Wasserfallmodell auf. Es besteht
ebenfalls aus 7 Phasen, die linear angeordnet sind. Allerdings sind die Phasen anders ge-
gliedert und statt von oben nach unten sind sie v-förmig angeordnet
(vgl. Abb. 2.4).
Spezifikation Validierung
Systementwurf Integrationstest
Komponentenentwurf Komponententest
Implementierung
Der Entwicklungsverlauf beginnt links oben, geht dann nach unten und dann wieder
hoch und endet schließlich rechts oben. Dabei befinden sich auf dem absteigenden Ast
konstruktive Tätigkeiten, während auf dem aufsteigenden Ast Arbeitsschritte zur Qua-
litätssicherung vorhanden sind. Wie man sieht, wird zwischen dem Systementwurf und
dem Komponentenentwurf unterschieden. Diese Unterscheidung ist nicht ganz unprob-
lematisch, denn häufig sind die zu entwerfenden Komponenten bereits Teil des Systems.
Die Grenzen können hier also verwischen. Tendenziell kann man aber sagen, dass z. B.
UML-Diagramme eher in den Systementwurf und Funktionsablaufpläne eher in den
Komponentenentwurf gehören.
Es gibt mittlerweile eine Erweiterung des V-Modells, genannt V-XT. Gemäß der offizi-
ellen Dokumentation der Bundesrepublik Deutschland aus dem Jahr 20041 ist das V-Mo-
dell als Leitfaden zum Planen und Durchführen von Entwicklungsprojekten unter Be-
rücksichtigung des gesamten Systemlebenszyklus konzipiert. Die in einem Projekt zu
erstellenden Ergebnisse werden definiert und die konkreten Vorgehensweisen beschrie-
ben, mit denen diese Ergebnisse erarbeitet werden. Zusätzlich legt das V-Modell XT die
Verantwortlichkeiten jedes Projektbeteiligten fest. Es wird daher genau festgesetzt, wer
wann was in einem Projekt zu bewerkstelligen hat. Andere Richtlinien wie ISO-Stan-
dards sind zurzeit in Gebrauch, aber im Vergleich zum V-Modell XT weniger konkret,
da sie beispielsweise keine Produktvorlagen vorgeben.
Mit dem V-XT werden Projekte besser plan- und nachvollziehbar und erzielen zuverläs-
sige Ergebnisse von relativ hoher Qualität.
1. Vgl. https://www.cio.bund.de/Web/DE/Architekturen-und-Standards/V-Modell-XT/vmodell_xt_node.ht-
ml
SEI11 21
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
Selbst kleine und mittelständische Unternehmen profitieren vom V-Modell. Es bietet ih-
nen die Möglichkeit, auf standardisierte und erprobte Vorgaben für Entwicklungs- und
Managementprozesse zurückzugreifen. So können auch kleinere Unternehmen mit
überschaubarem Aufwand ihre eigenen Vorgehensweisen systematisieren und dadurch
zuverlässig hochwertige Entwicklungsergebnisse erzielen. Das V-Modell dient somit als
Vertragsgrundlage, Arbeitsanleitung und Kommunikationsbasis.
Das V-Modell XT besteht vereinfacht betrachtet aus einem Kern und einem Mantel, der
auf den Kern zurückgreift. Im Kern sind die grundlegenden Prinzipien des Modells ent-
halten. Der Mantel umfasst beispielsweise die Vorgehensbausteine, Durchführungsstra-
tegien und Entscheidungspunkte.
Das V-Modell XT beschreibt drei Projekttypen:
• Systementwicklungsprojekt eines Auftraggebers: Es wird im Projektverlauf eine
Ausschreibung erstellt und dann ein Auftragnehmer anhand der Angebote ausge-
wählt. Der Auftragnehmer entwickelt und liefert ein System. Der Auftraggeber muss
das Ganze am Ende abnehmen.
• Systementwicklungsprojekt eines Auftragnehmers: Hier wird im Projektverlauf
ein Angebot erstellt und dann (im Fall eines Vertragsabschlusses) das angebotene
System entwickelt.
• Einführung und Pflege eines organisationsspezifischen Vorgehensmodells: Die-
ser Projekttyp liefert den Rahmen für ein organisationsweites Qualitätsmanagement
von Entwicklungsprojekten. Zuvor müssen ggf. die aktuellen Vorgehensweisen un-
tersucht werden.
Bei jeder Systementwicklung gibt es eigentlich zwei Projekte: eines auf der Auftragge-
berseite, das man als „Systementwicklungsprojekt eines Auftraggebers“ bezeichnen
könnte, und eines auf der Seite des Auftragnehmers mit dem Projekttyp „Systement-
wicklungsprojekt eines Auftragnehmers“. Diese beiden Projekte sind nicht voneinander
losgelöst, sondern über die Auftraggeber-Auftragnehmer-Schnittstelle miteinander ver-
knüpft.
Die Begriffe im V-Modell XT werden durch Konventionsabbildungen mit Begriffen in
(Quasi-)Standards, Normen und Vorschriften in Beziehung gesetzt. Das V-Modell bein-
haltet unter anderem Abbildungen auf die Standards CMMI und ISO 15288.
Der Einsatz des V-Modells XT in Projekten bietet folgende Vorteile:
• Minimierung der Projektrisiken
• Verbesserung und Gewährleistung der Qualität der Entwicklungsergebnisse
• transparente Beherrschung der Gesamtkosten über den gesamten Systemlebenszyk-
lus
• Verbesserung der Kommunikation für alle Beteiligten
22 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
SEI11 23
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
In Abb. 2.5 ist das V-Modell XT so dargestellt, dass im oberen Bildteil die jeweiligen
Phasen des „Auftraggeber-Projekts“ und im unteren Bildteil die des Auftragnehmer-Pro-
jekts“ sichtbar sind. Im mittleren Teil ist die Schnittstelle zwischen diesen beiden Projek-
ten zu sehen mit ihren Aktivitäten und Dokumenten.
Das V-Modell XT wird überwiegend (wie schon das V-Modell) im öffentlichen Dienst
eingesetzt.
2.4 Diamantmodell
Multimediaanwendungen stellen eine besondere Herausforderung für Entwicklungspla-
ner dar, denn hier sind teilweise künstlerische Elemente mit programmiertechnischen
verbunden. So findet die Integration von Sound (Sprache und Musik) und Bild (im Sinne
von Fotografien, Videoclips und Animationen) zunehmend statt. Die Verbreitung des In-
ternets trägt hier wesentlich bei. Eine Webseite, die nur aus reinem Text besteht, ist so
gut wie gar nicht zu finden. Die Vorteile solcher multimedialen (MME) Anwendungen
liegen auf der Hand: Der Mensch, der bekanntlich mehr Sinne besitzt als nur den Ge-
sichtssinn zum Lesen geschriebener Information, kann so pro Zeiteinheit gleichzeitig
mehr Information aufnehmen, wenn Bilder und Sprache mitgeliefert werden. Gerade im
pädagogischen Bereich (Lernprogramme etc.) ist dies eine große Hilfe.
Unabhängig von Ursachen und Zweck solcher multimedialer Anwendungen sind diese
jedenfalls stark verbreitet und die Tendenz ist rasant steigend. Die Verbreitung solcher
Applikationen geschieht schneller, als Ansätze und Konzepte für die Planung solcher
Systeme hinterherkommen. Dies führt zu ähnlicher Unsicherheit für die Entwickler wie
in den 60er-Jahren: Eine methodische Planung, Aufwandsschätzung und Durchführung
solcher Projekte ist oft nicht gegeben, was vor allem zu einer Kostenunsicherheit seitens
der potenziellen Auftraggeber solcher Multimediasysteme führt. Die Entwickler multi-
medialer Software sind somit an Entwicklungskonzepten interessiert, die in der Praxis
unkompliziert und effizient einsetzbar sind. Es sind Vorgehenskonzepte gewünscht, ähn-
lich wie z. B. beim Wasserfallmodell, die neben den Vorgehensabschnitten auch realisti-
sche Aufwands- und Ressourcenabschätzungen ermöglichen, und das möglichst ohne
das Studium dicker Bücher und das Verständnis darin beschriebener komplizierter Mo-
dellansätze.
Es ergibt sich also die Notwendigkeit, ein möglichst einfaches, in der Praxis einsetzbares
Phasenmodell zu haben, das die Planung des zeitlichen Aufwands, der technischen Res-
sourcen, des für die Entwicklung benötigten Personalaufwands und der Vorgehensweise
bei der Projektentwicklung und Durchführung liefert.
Für multimediale Systeme gibt es hier wenig Ansätze, jedenfalls kaum welche, die für
die industrielle Praxis schnell und leicht umsetzbar wären. Das liegt u. a. daran, dass
multimediale Systeme einfach viel mehr Komponenten besitzen als konventionelle be-
triebliche Informationssysteme. Neben einer Datenbank kommen eben noch die opti-
schen und akustischen Komponenten hinzu, deren Planung nicht so leicht formalisier-
bar ist.
Daher ist das Ziel hier eine Erweiterung bestehender Planungsmodelle um gerade die im
Multimediabereich hinzukommenden Komponenten. Es wird nachfolgend eine Refe-
renzliste erstellt, die dem Planer helfen soll, an alles zu denken und die Aufwände und
Ressourcen hierfür zu planen.
24 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
Zeit
techn. Ressourcen
Personal
Personal-Zeit-Ebene
Nachfolgend werden Projektionen auf zwei Ebenen betrachtet. Es sei dabei ausdrücklich
darauf hingewiesen, dass die Relationen der Komponenten- und Phasengrößen nachfol-
gend nicht in der richtigen Proportion wiedergegeben sind. Die tatsächlichen Größen-
verhältnisse sind natürlich von Art und Umfang des Gesamtprojekts bzw. der einzelnen
Komponenten und Phasen abhängig und variieren daher von Projekt zu Projekt. Die
Darstellung ist also rein qualitativ, nicht quantitativ zu interpretieren.
SEI11 25
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
Zeit
Test &
Handing Over
Composing Components
Screen Layouts
Databases
Animation
Graphics
Photos
Videos
Sound
… …
Init
Personal
Die Zeitachse repräsentiert die Projektphasen, die Personalachse die von den beteilig-
ten Entwicklern zu erstellenden Projektkomponenten. Dabei ist bezüglich der Perso-
nalachse die Breite des Diamanten im Allgemeinen ein Maß für die Menge an Perso-
naleinsatz (z. B. in Personentagen). Grundsätzlich können natürlich auch alle
Komponenten und Phasen von einer einzigen Person durchgeführt werden, was die Pro-
jektdauer entsprechend verlängert. Der Umstand, dass der Diamant „in die Breite“ geht,
soll andeuten, dass in einer breiteren Phase mehr Entwicklungsaufwand nötig ist, der
größtenteils unabhängig (und daher von mehreren Personen gleichzeitig) durchgeführt
werden kann.
Ressourcen-Zeit-Ebene
Für die Entwicklung der jeweiligen MME-Komponenten sind gewisse technische Res-
sourcen erforderlich, die nachfolgend näher beschrieben werden (vgl. Abb. 2.8). Der
Einsatz dieser Ressourcen sei so verstanden, dass als Ergebnis der Verwendung der Res-
sourcen-Komponenten immer eine Datei herauskommt, also ein Datenfile, das in dem
vom MME Composing Tool entsprechend verarbeitbaren Datenformat vorliegt.
26 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
Zeit
Composing Tool
Database Developer
Screen Design Tool
Animation Tool
Sound Studio
Photo Studio
Video Studio
… Graphic Tool …
Design Tool
techn. Resourcen
Eine ausführlichere Beschreibung des Diamantmodells bietet auch die Möglichkeit einer
konkreten Aufwandsabschätzung2.
SEI11 27
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
28 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
Die Disziplinen (auch als Workflows bezeichnet) orientieren sich an speziellen Rollen
innerhalb des Entwicklungsteams, die von bestimmten Personen oder Gruppen wahrge-
nommen werden. Diese Disziplinen sind im Einzelnen:
• Geschäftsprozessmodellierung
• Anforderungen
• Analyse und Design
• Implementierung
• Test
• Überführung in die Einsatzumgebung
• Konfigurations- und Änderungsmanagement
• Projektmanagement
• Projektumfeld
So simpel und einleuchtend die Ausführungen bisher auch sind, einen ersten Einblick in
die Komplexität des RUP gibt Abb. 2.10, wo das Zusammenspiel zwischen Rollen, Akti-
vitäten und Artefakten dargestellt wird.
SEI11 29
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
Der RUP versucht für jedes mögliche Projekt eine Vorgehensweise bereitzuhalten und
dies mit der in Abb. 2.10 dargestellten Notation zu beschreiben. Damit werden sehr viele
Abhängigkeiten zwischen den Elementen des RUP erzeugt, die zu der hohen Komplexi-
tät führen. Daher ist auch eine Anpassung („Tailoring“) des RUP an das jeweilige Projekt
unerlässlich.
Agile Softwareentwicklung
Agile Softwareentwicklung ist der Oberbegriff für den Einsatz von Agilität (lat. agilis:
flink; beweglich) in der Softwareentwicklung. Der Begriff unterscheidet – je nach Teil-
bereich der Softwareentwicklung – Agile Modeling, Agile Processing oder Agile Pro-
gramming. Agile Softwareentwicklung versucht mit geringem bürokratischem Auf-
wand und wenigen Regeln auszukommen.
In Abb. 2.11 sehen Sie das mittlerweile „berühmte“ Agility-Poster, das die wichtigsten
Grundsätze dieser Methode zeigt.
Zweck agiler Softwareentwicklung ist es, den Softwareentwicklungsprozess flexibel und
schlank zu machen. Der Fokus liegt dabei mehr auf den zu erreichenden Zielen sowie
auf technischen und sozialen Problemen bei der Softwareentwicklung. Die agile Soft-
wareentwicklung kann als eine Gegenbewegung zu den oft als schwergewichtig und bü-
rokratisch angesehenen traditionellen Softwareentwicklungsprozessen wie dem Ratio-
nal Unified Process oder dem V-Modell angesehen werden.
Erste Ansätze zu agiler Softwareentwicklung finden sich schon Anfang der 1990er- Jah-
re; wirkliche Popularität erreichte die agile Softwareentwicklung erstmals 1999, als Kent
Beck das erste Buch zu Extreme Programming veröffentlichte. Das Interesse an diesem
Thema ebnete den Weg auch für andere agile Prozesse und Methoden. Die Bezeichnung
„agil“ für diese Art der Softwareentwicklung tauchte erstmals im Februar 2001 bei ei-
nem Treffen in Utah auf, als Ersatz für das bis dahin gebräuchliche Wort „leichtgewich-
tig“ (engl. lightweight). Bei diesem Treffen wurde auch das sogenannte Agile Manifest
formuliert. Dieses lautet:
1) Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge. – Zwar
sind wohldefinierte Entwicklungsprozesse und Entwicklungswerkzeuge wichtig,
wesentlicher sind jedoch die Qualifikation der Mitarbeitenden und eine effiziente
Kommunikation zwischen ihnen.
2) Funktionierende Programme sind wichtiger als ausführliche Dokumentation. – Gut
geschriebene und ausführliche Dokumentation kann zwar hilfreich sein, das eigent-
liche Ziel der Entwicklung ist jedoch die fertige Software.
3) Die stetige Abstimmung mit dem Kunden ist wichtiger als die ursprüngliche Leis-
tungsbeschreibung in Verträgen. – Statt sich an ursprünglich formulierten und mitt-
lerweile veralteten Leistungsbeschreibungen in Verträgen festzuhalten, steht viel-
mehr die fortwährende konstruktive und vertrauensvolle Abstimmung mit dem
Kunden im Mittelpunkt.
4) Der Mut und die Offenheit für Änderungen stehen über dem Befolgen eines festge-
legten Plans. – Im Verlauf eines Entwicklungsprojektes ändern sich viele Anforde-
rungen und Randbedingungen ebenso wie das Verständnis des Pro-blemfeldes. Das
Team muss darauf schnell reagieren können.
30 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
Das Agile Manifest weist 17 Autoren und Erstunterzeichner aus, die auf unterschiedli-
chen Gebieten der agilen Softwareentwicklung tätig sind.
Agiles Prinzip
Ein agiles Prinzip ist ein Leitsatz für die agile Arbeit.
Manchmal werden agile Prinzipien auch als Methode bezeichnet.
Beispiele für agile Prinzipien:
• vorhandene Ressourcen mehrfach verwenden
• einfach (KISS-Prinzip)
• zweckmäßig
• kundennah
• gemeinsamer Code-Besitz (Collective Code Ownership)
• Der Übergang zwischen Prinzipien und Methoden ist fließend.
3. Quelle: Wikipedia.de
SEI11 31
© HfB, 02.12.20, Berk, Eric (904709)
2 Phasenmodelle
Agile Methode
Streng genommen bezeichnet der Begriff agile Methode eine an Agilität ausgerichtete
Methode zur Softwareentwicklung. Ein Kennzeichen agiler Methoden ist, dass sie in ei-
nem Prozess dazu dienen können, die Aufwandskurve möglichst gering zu halten. Als
Leitsatz gilt: Je mehr man nach Plan arbeitet, umso mehr bekommt man das, was man
geplant hat, aber nicht das, was man wirklich braucht. Daraus resultieren einige Prinzi-
pien des Agile Modelling und des Extreme Programming. Agile Methoden lassen sich in
zwei Gruppen unterteilen: die tatsächlichen Methoden und die den Methoden zugrunde
liegenden Prinzipien.
Beispiele für agile Methoden:
• Paarprogrammierung
• testgetriebene Entwicklung
• ständige Refaktorisierungen
• Story-Cards
• schnelle Codereviews
Agiler Prozess
Ziel der Vorgehensweise ist es, den Softwareentwicklungsprozess durch Abbau der Bü-
rokratisierung und durch die stärkere Berücksichtigung der menschlichen Aspekte ef-
fektiver zu gestalten. Den meisten agilen Prozessen liegt zugrunde, dass sie versuchen,
die reine Entwurfsphase auf ein Mindestmaß zu reduzieren und im Entwicklungsprozess
so früh wie möglich zu ausführbarer Software zu gelangen, die dann in regelmäßigen,
kurzen Abständen dem Kunden zur gemeinsamen Abstimmung vorgelegt werden kann.
Auf diese Weise soll es jederzeit möglich sein, flexibel auf Kundenwünsche einzugehen,
um so die Kundenzufriedenheit insgesamt zu erhöhen. Sie stellen damit einen Gegensatz
zu den klassischen Vorgehensmodellen wie dem V-Modell oder dem Rational Unified
Process (RUP) dar.
Allen agilen Prozessen ist gemeinsam, dass sie sich zahlreicher Methoden bedienen, die
Aufwandskurve möglichst flach zu halten. Inzwischen gibt es eine Vielzahl von agilen
Prozessen.
Beispiele für agile Prozesse:
• Adaptive Software Development (ASD)
Dies ist ein Softwareentwicklungsprozess, der auf das Rapid Application Develop-
ment zurückgeht; ASD ist eine Umsetzung des Prinzips der kontinuierlichen Anpas-
sung an immer neue Anforderungen (eher der Normalzustand) und ersetzt damit das
verbreitete Wasserfallmodell durch Zyklen von „Spekulieren“, „Zusammenarbeiten“
und „Lernen“.
• Crystal
Dabei handelt es sich um eine Familie von Softwareentwicklungsmethoden, die zu
den agilen Methoden der Softwareentwicklung gerechnet wird. Die Mitglieder die-
ser Familie sind in der Regel mit Farben bezeichnet. Die einfachste Variante heißt
hingegen Crystal Clear („glasklar“).
32 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Phasenmodelle 2
Zusammenfassung
Es wurden die zwei wichtigsten Phasenmodelle, das Wasserfallmodell sowie das Spiral-
modell, ausführlich besprochen. Zusätzlich wurden noch das V-Modell sowie das Dia-
mantmodell erläutert. Außerdem wurden die inhaltlichen Komponenten des Pflichten-
hefts besprochen; dazu gehört insbesondere das semantische Datenmodell als integraler
Bestandteil. Schließlich wurde noch auf neuere Methoden, wie RUP und agile Soft-
wareentwicklung, eingegangen.
SEI11 33
© HfB, 02.12.20, Berk, Eric (904709)
3 Softwareergonomie
In diesem Kapitel besprechen wir die Grundlagen und Anwendungen von Soft-
wareergonomie. Sie sollen nach Durcharbeiten dieses Kapitels in der Lage sein,
• den Zweck von Softwareergonomie zu nennen,
• die Aufgaben eines Usability Engineers zu kennen,
• softwareergonomische Dialoggestaltung zu produzieren.
4. Wir folgen in diesem Abschnitt u. a. den Ausführungen des Deutschen Delegationsleiters im internationalen
Normenausschuss für Softwareergonomie, Wolfgang Redtenbacher (vgl. www.redtenbacher.de) sowie dem
„Handbuch Softwareergonomie“ der Unfallkasse Post und Telekom.
5. www.datech.de
34 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Softwareergonomie 3
SEI11 35
© HfB, 02.12.20, Berk, Eric (904709)
3 Softwareergonomie
Antworten oder wenn man die „Fachseite“ fragt, bekommt man unterschiedliche Aus-
sagen aus unterschiedlichen Abteilungen. Dies ist der Punkt, an dem sich herausstellt,
dass die Anforderungen nicht ausreichend mit Benutzern abgestimmt sind. Benutzer
können zwar sagen, was sie benötigen, aber nicht, wie sie es technisch realisiert haben
wollen. Dafür ist eine koordinierte Zusammenarbeit der Beteiligten erforderlich.
In Abb. 3.2 sehen Sie den vom DIN geforderten Übergang vom Prozess zum Produkt.
Wie man erkennen kann, greifen die angesprochenen Punkte ineinander und besitzen
gewisse Schnittstellen, die vom Usability Engineer erkannt und berücksichtigt werden
müssen.
Zur „Gebrauchstauglichkeit“ einer Software stellt der deutsche Delegationsleiter im in-
ternationalen Normenausschuss für Softwareergonomie, Wolfgang Redtenbacher, fest6:
Die Gebrauchstauglichkeit einer Software wird dadurch bestimmt, in welchem Maße sie
es ermöglicht, Arbeitsziele in einem Nutzungskontext effektiv, effizient und zufrieden-
stellend zu erreichen.
Effektivität bedeutet dabei, ob der Benutzer die vorgesehenen Aufgaben mit der Soft-
ware erledigen kann und die benötigten Ergebnisse korrekt erreicht werden (z. B. dass
ein Textverarbeitungsprogramm einen geschriebenen Brief richtig ausdruckt oder ein
Übersetzungsprogramm den gewünschten Begriff richtig übersetzt).
Die Effizienz der Software wird durch den Aufwand bestimmt, den der Benutzer zur Er-
reichung der Arbeitsziele mit der Software treiben muss. Nützliche Software soll zu ei-
ner Arbeitserleichterung führen, d. h. zu einer Senkung des notwendigen Bedienauf-
wands und ggf. der aufzuwendenden Denkarbeit.
6. Quelle: www.redtenbacher.de
36 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Softwareergonomie 3
Unter der Zufriedenstellung der Benutzer versteht man schließlich das Ausmaß, wie
gern die Benutzer die Arbeitsaufgabe mit der Software als Werkzeug erledigen. Zufrie-
denstellung umfasst den subjektiven Eindruck der Benutzer von der Effizienz und der
Beeinträchtigungsfreiheit (z. B. durch verringerten Stress) bei ihrer Arbeit.
Eine Software ist also dann ergonomisch (gebrauchstauglich), wenn sie für die auszu-
führenden Aufgaben des Benutzers geeignet ist und dabei insbesondere die Hauptaufga-
ben und Benutzereigenschaften unterstützt. Wenn der Benutzer durch fehlende Funkti-
onalität, durch Mehraufwand oder durch fehlerhafte Ergebnisse wesentlich
beeinträchtigt wird, dann ist die Software nicht ergonomisch im Sinne der Bildschirm-
arbeitsverordnung.
Salopp übersetzt ist also „Usability“ (Gebrauchstauglichkeit) die Summe von Effektivi-
tät, Effizienz und Zufriedenstellung.
7. www.redtenbacher.de
SEI11 37
© HfB, 02.12.20, Berk, Eric (904709)
3 Softwareergonomie
4. Lernförderlichkeit: Ein Dialog ist lernförderlich, wenn er den Benutzer in den Lern-
phasen unterstützt.
Beispiel:
Wenn eine Software aufgabenangemessen und selbstbeschreibungsfähig ist und sich
erwartungskonform verhält, ist bereits viel für leichte Erlernbarkeit getan. Eine lern-
förderliche Software würde z. B. zusätzlich ein Learning by Doing ermöglichen, d. h.
das Ausprobieren neuer Funktionen erlauben, ohne den Benutzer für Fehler gleich
durch Datenverlust o. Ä. zu „bestrafen“ und dadurch jede Experimentierfreude im
Keim zu ersticken.
5. Steuerbarkeit: Ein Dialog ist steuerbar, wenn der Benutzer in der Lage ist, den Dia-
logablauf zu starten sowie seine Richtung und Geschwindigkeit zu beeinflussen, bis
das Ziel erreicht ist.
Beispiel:
Wenn eine Software zur Verwaltung von Mietwohnungen auch an Arbeitsplätzen
eingesetzt wird, an denen telefonische Auskünfte erteilt werden, so sollte es dort
möglich sein, ein erst teilweise ausgefülltes Eingabeformular ohne Datenverlust zu
unterbrechen, um die Daten des Anrufers schnell auf den Bildschirm holen zu kön-
nen.
6. Fehlertoleranz: Ein Dialog ist fehlertolerant, wenn das beabsichtigte Arbeitsergeb-
nis trotz erkennbar fehlerhafter Eingaben entweder mit keinem oder mit minimalem
Korrekturaufwand durch den Benutzer erreicht werden kann.
Beispiel:
Wenn in einem Eingabeformular z. B. im PLZ-Feld eine ungültige Eingabe steht, so
würde dies bei einer fehlertoleranten Software nicht zu fehlerhafter Verarbeitung
führen, sondern das Programm würde den Fehler erkennen und den Cursor gleich
zur Korrektur in das betreffende Feld stellen.
7. Individualisierbarkeit: Ein Dialog ist individualisierbar, wenn er an persönliche
Anforderungen und Fähigkeiten des Benutzers angepasst werden kann.
Beispiel:
Bei einer individualisierbaren Software kann z. B. die Schriftgröße für sehbehinderte
Benutzer vergrößert werden oder die Zuordnung der Maustasten kann für Linkshän-
der angepasst werden.
Ähnlich wie es für die ergonomische Gestaltung der dynamischen Dialogabläufe einer
Software die 7 „Grundsätze der Dialoggestaltung“ aus der Norm ISO 9241-10 gibt, so
existieren auch für die statische Informationsdarstellung 7 Grundsätze, die in der inter-
nationalen Norm ISO 9241–12 „Informationsdarstellung“ beschrieben sind:
1) Erkennbarkeit (die Aufmerksamkeit des Benutzers wird zur benötigten Information
gelenkt)
2) Unterscheidbarkeit (die angezeigte Information kann genau von anderen Daten un-
terschieden werden)
3) Lesbarkeit (die Information ist leicht zu lesen)
4) Verständlichkeit (die Bedeutung ist leicht verständlich, eindeutig, vermittelbar und
erkennbar)
38 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Softwareergonomie 3
Vordergrund (Schrift)
Hintergrund schwarz weiß magenta blau zyan grün gelb rot
schwarz n.a. + + - + + + -
weiß + n.a. + + - - - +
magenta + + n.a. - - - - -
blau - + - n.a. + - + -
zyan + - - + n.a. - - -
grün + - - + - n.a. - -
gelb + - + + - - n.a. +
rot - + - - - - + n.a.
In Abb. 3.4 sehen wir eine kleine Liste, die diverse Probleme bezüglich der Softwareer-
gonomie darstellt:
SEI11 39
© HfB, 02.12.20, Berk, Eric (904709)
3 Softwareergonomie
Wer nun glaubt, Softwareergonomie beziehe sich „nur“ auf das Layout der Bildschirme
und deren Bedienung, der irrt. Obwohl dies natürlich ein entscheidender Faktor ist, ver-
birgt sich hinter ergonomischer Software doch viel mehr, wie man schon aus Abb. 3.4
erahnen kann. In Abb. 3.5 ist dies noch deutlicher zu erkennen.
Bereits bei der Modellierung der Daten ist die softwareergonomische Auswirkung er-
heblich; die Eingabe von Daten und deren logische Zusammenhänge werden hier ja vor-
definiert. Sind hier schon Daten so modelliert, dass ein Anwender später umständlich
und evtl. sogar redundant Daten eingeben muss, dann kann die Oberfläche noch so
schön sein, dieser Mangel wird jeden Anwender stören.
40 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Softwareergonomie 3
SEI11 41
© HfB, 02.12.20, Berk, Eric (904709)
3 Softwareergonomie
Eine softwareergonomische Version der gleichen Seite stellt sich für einen Redakteur na-
türlich gänzlich anders dar (Abb. 3.7):
Es ist durch die Verbreitung von Entwicklungswerkzeugen in neuerer Zeit glücklicher-
weise häufig so, dass diese Werkzeuge dem Entwickler bei der Entwicklung von GUIs
die wichtigsten softwareergonomischen Gesichtspunkte auf Wunsch schon vorgeben. So
bieten z. B. Entwicklungstools für Webseiten oft vorgefertigte Templates, die sich soft-
wareergonomisch bewährt haben. Der Entwickler ist gut beraten, sich an diesen Design-
mustern zu orientieren.
42 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Softwareergonomie 3
In Abb. 3.7 sieht man, dass hier eine eher datenbezogene, etwas „sterilere“ Darstellung
gewählt wurde, die aber für den Redakteur zweckmäßiger ist. Beim Anklicken des Links
„Ändern“ erscheint dann eine Art „Zoom“ in den betreffenden Datensatz, der schließlich
die redaktionellen Einträge und Anpassungen ermöglicht (Abb. 3.8).
Es gibt natürlich auch Content-Management-Systeme (CMS), die das Layout für den Re-
dakteur so nachbilden, wie es der Surfer sieht. Doch das ist in vielen Fällen eher un-
zweckmäßig, da, wie gesagt, die Zielgruppen völlig verschieden sind.
SEI11 43
© HfB, 02.12.20, Berk, Eric (904709)
3 Softwareergonomie
Was die reine Oberflächengestaltung betrifft, so ist dies oft eine Frage des Geschmacks.
Verschiedene Menschen empfinden die gleiche Benutzeroberfläche manchmal als sehr
angenehm, während andere wiederum damit nicht zurechtkommen. Dies sollte beim Er-
stellen eines Pflichtenhefts berücksichtigt werden. So helfen bereits in dieser Phase Skiz-
zen von zukünftigen Bildschirmmasken, die mit den Benutzern abgesprochen werden
sollen. Existiert bereits Software, die von den späteren Benutzern bereits benutzt wird
44 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Softwareergonomie 3
und gut ankommt, dann sollte man sich an diesem Bildschirmlayout orientieren, damit
die Einarbeitung und Benutzung der neu zu schreibenden Anwendung möglichst unpro-
blematisch wird.
Zusammenfassung
3.1 Für die Wandlung von Video- und Audioformaten gibt es diverse Freeware. Wie
beurteilen Sie folgende beide Benutzeroberflächen unter dem Gesichtspunkt der
Softwareergonomie?
SEI11 45
© HfB, 02.12.20, Berk, Eric (904709)
3 Softwareergonomie
46 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Projektbeschreibung (Beispiel)
Es ist eine Software zu entwickeln, die die Abrechnung von Tonträgerherstellern (nach-
folgend „Lizenznehmer“ genannt) mit ihren Lizenzgebern (Künstler oder Produzenten)
ermöglicht. Der Arbeitsablauf gestaltet sich wie folgt:
1) Der Tonträgerhersteller bekommt von einem Künstler oder Produzenten
(Lizenzgeber) ein Tonband oder einen sonstigen Träger des Mastertapes einer Mu-
sikaufnahme zur Verwertung angeboten. Entscheidet sich der Tonträgerhersteller
dazu, die Aufnahme(n) herauszubringen, so wird ein Lizenzvertrag abgeschlossen.
SEI11 47
© HfB, 02.12.20, Berk, Eric (904709)
2) Der Lizenzvertrag enthält Angaben über die Titel des Mastertapes, deren Komponis-
ten, Texter, Bearbeiter, Verwertungsgesellschaft (z. B. GEMA), Musikverlage, Spiel-
dauern, Interpreten, Lizenzgeber, Lizenznehmer, Exklusivität (ja/nein), Vertragsdau-
er, Erstauflage der VHS, ggf. geplante Folgeauflagen, Erstlabelangabe, Länder der
Verwertung, Prozentsatz der Lizenzgeberbeteiligung am Großhandelsverkaufspreis,
Abrechnungsturnus, Vorschuss, Sonstiges. Der Lizenzvertrag muss ausdruckbar
sein.
3) Alle Personen und Verlage sind in einer eigenen Tabelle (Adressverwaltung) nicht-
redundant zu verwalten.
4) Alle Tonträger sind in einer Tabelle zu verwalten, zusammen mit ihren Auflagen. Es
soll ein Zugriff auf die Verkaufszahlen (inkl. Historie) in vorgebbaren Zeiträumen
möglich sein.
5) Es soll möglich sein, Statistiken zu erstellen (auch grafisch), und zwar
• über alle verkauften Tonträger in einem angebbaren Zeitraum,
• über die Verkaufszahlen eines bestimmten Tonträgers in einem angebbaren Zeit-
raum,
• über die Verkaufszahlen aller Produkte auswählbarer Lizenznehmer in einem
angebbaren Zeitraum,
• über den Verkaufsverlauf einzelner Titel (also evtl. über mehrere Tonträger hin-
weg),
• über den Verkaufsverlauf einzelner Komponisten (also evtl. über mehrere Ton-
träger hinweg),
• über den Verkaufsverlauf der Werke einzelner Verlage (also evtl. über mehrere
Tonträger hinweg).
6) Es soll möglich sein, eine Lizenzabrechnung für die Lizenzgeber über einen festleg-
baren Zeitraum durchzuführen (inkl. Historie), die den Zahlbetrag abhängig vom Li-
zenzvertrag und den Verkaufszahlen der beteiligten Tonträger des Lizenzgebers an-
gibt. Eine Aufstellung, welche Tonträger wie oft verkauft wurden, sollte vorhanden
sein.
Diese Angaben sind allerdings noch zu lückenhaft, um daraus schon die fertige Software
entwickeln zu können. Diese Lücken müssen in einer genaueren Analyse durch weitere
intensive Kommunikation zwischen Auftraggeber und Auftragnehmer geschlossen wer-
den. Doch für eine erste grobe Kostenabschätzung sollte diese Problembeschreibung
ausreichend sein, zumindest dann, wenn der Auftragnehmer über hinreichend Erfah-
rung auf diesem Gebiet verfügt. Der nächste Schritt ist dann ein Angebot des Auftrag-
nehmers an den Auftraggeber. Oft wird dabei ein Festpreis angeboten. Es ist aber noch-
mals darauf hinzuweisen, dass so etwas nur gemacht werden sollte, wenn der
Auftragnehmer über hinlänglich Erfahrung und „Gefühl“ für die auf ihn zukommende
Arbeit verfügt.
Ist der Auftraggeber mit dem Angebot einverstanden, wird er eine Auftragsbestätigung
bzw. eine Bestellung an den Auftragnehmer schicken. Damit kommt juristisch ein Ver-
trag zustande, und beide Vertragspartner sind zur Einhaltung der vereinbarten Punkte
verpflichtet.
48 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Zusammenfassend kann man also sagen: Die erste Problemanalyse dient dem Zweck der
Auftragserstellung. Der Aufwand für diese erste Analyse sollte nicht mehr als 15 % des
voraussichtlichen Gesamtaufwands betragen, da es ja sein kann, dass der Auftraggeber
das Angebot ablehnt und die Zeit für die erste Problemanalyse in der Regel nicht vergü-
tet wird.
Naturgemäß schließt sich an diese erste Problemanalyse mit Auftragsvergabe (im Was-
serfallmodell wurde dies Initialisierung genannt) eine verfeinerte Analyse an, die zur
nächsten Phase des Wasserfallmodells führt: dem Fachkonzept.
SEI11 49
© HfB, 02.12.20, Berk, Eric (904709)
5) Unternehmensspezifische Besonderheiten
6) Bewertung des Istzustandes – Aufwand und Nutzen – Stärken und Schwächen
3. Zielsetzungen
1) Erwarteter quantifizierbarer Nutzen
2) Sonstige erwartete Vorteile
4. Anforderungen an die geplante Anwendungssoftware
1) Fachliche Anforderungen
1. Überblick und Zusammenhänge
2. Detaillierte Anforderungen an die Arbeitsgebiete 1 … n
• wesentliche Verfahren
• wesentliche Ein- und Ausgabeinformationen
• Verarbeitungsarten und -häufigkeit
• unternehmensspezifische Besonderheiten
2) Technische Anforderungen
1. Qualitätsanforderungen – Integration
• Dateiorganisation
• Zugriffsberechtigung, Datensicherheit und -rekonstruktion
• Form der Programmauslieferung
2. Dokumentation und Schulung
[Differenzierung in funktional und nichtfunktional]
5. Mengengerüst
1) Kartei/Stammdaten
2) Bestandssätze, Belege/Zahl der Bewegungen
3) sonstige Mengen- und Häufigkeitsangaben
6. Anforderungen an Hardware und Systemsoftware
7. Mitarbeiter für die Umstellung
8. Zeitlicher Rahmen
Um die Punkte eines Pflichtenhefts alle hinreichend zu erfüllen, ist es natürlich erfor-
derlich, dass gewisse Analysen beim Auftraggeber durchgeführt werden.
Es handelt sich bei dieser DIN-Beschreibung um den Maximalfall. Bei kleineren Projek-
ten sind nicht alle Punkte dieser Festlegung zu berücksichtigen.
Wir betrachten nachfolgend einige Methoden, mit denen die genannten Unterpunkte ei-
nes Pflichtenhefts teilweise erstellt werden. Es sind dabei nicht alle diese Methoden in
jedem Projekt erforderlich, das muss man jeweils konkret mit dem Auftraggeber ent-
scheiden. Auch werden, um den Rahmen dieses Studienhefts nicht zu sprengen, nach-
folgend nicht alle vorhandenen Verfahren vorgestellt; wir haben eine Auswahl getroffen,
von der wir glauben, dass sie die meisten Fälle abdecken kann.
50 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Istzustand
Außer einer verbalen Beschreibung des Istzustandes bedient man sich häufig noch zu-
sätzlich sogenannter Use-Case-Diagramme (manchmal auch nur U-Case-Diagramme
genannt). Diese bestehen lediglich aus kleinen Strichmännchen, die die beteiligten Per-
sonen kennzeichnen, sowie aus beschrifteten Ellipsen, die Vorgänge darstellen sollen. In
unserem Beispiel der Lizenzabrechnung kann ein solches Diagramm wie folgt aussehen:
Authors
Publisher/
Producer
Payoff 3 GEMA Reg.
Performer
Release Record
Record Studio
Record Company
Payoff 1
Distributor
SEI11 51
© HfB, 02.12.20, Berk, Eric (904709)
Ein U-Case-Diagramm bedarf immer auch einer verbalen Erläuterung. Diese könnte
z. B. so lauten:
Ein Autor (in Abb. 4.1 Strichmännchen oben) offeriert eine
Komposition (Song) einem Musikverleger oder Produzenten
(Publisher/Producer, Strichmännchen oben Mitte). Gefällt dem
Verleger das Lied, so wird ein Verlagsvertrag gemacht (Publishing
Contract, oben rechts) und die relevanten Daten in einer Kartei
abgelegt (Files Song in Database, oben rechts) sowie eine
Registrierung bei der GEMA durchgeführt. Jetzt beauftragt der
Verleger einen Produzenten (bzw. manchmal sind Verleger und
Produzent identisch) mit der Suche nach einem Interpreten
(Performer/Artist, Strichmännchen Mitte links). Wurde ein solcher
gefunden, so wird mit demselben ein Künstlervertrag abgeschlossen
(Artist Contract). Danach geht der Produzent mit dem Künstler in
ein Tonstudio (Record Studio, Strichmännchen links unten) und
produziert (mind.) einen Song. Das Ergebnis ist ein sogenanntes
Mastertape, also eine Aufnahme des fertig produzierten Liedes. Der
Produzent macht sich jetzt auf die Suche nach einem
Tonträgerhersteller, also der eigentlichen Plattenfirma (Record
Company, Strichmännchen Mitte unten). Hat er diese gefunden, so
wird jetzt zwischen dem Produzenten und dem Tonträgerhersteller
ein weiterer Vertrag abgeschlossen, der sogenannte Lizenzvertrag
(License Contract, Mitte rechts). Die Plattenfirma lässt daraufhin
die Tonträger mit dem Song vervielfältigen und veröffentlicht
diesen (Release Record, rechts unten), indem sie einen Distributor
(Strichmännchen rechts unten) mit dem Vertrieb der Tonträger
beauftragt (der die Tonträger schließlich den Schallplatten-
geschäften verkauft). In regelmäßigem Turnus rechnet der
Distributor mit der Plattenfirma über die verkauften Tonträger ab,
d. h., er zahlt nach Abzug seiner Provision einen bestimmten
Betrag (Payoff 1, ganz unten Mitte) an die Plattenfirma. Diese
wiederum zahlt an den Produzenten die im Lizenzvertrag vereinbarte
Provision (Payoff 2, Bildmitte). Der Produzent schließlich zahlt
daraufhin an den Künstler die im Künstlervertrag vereinbarte
Beteiligung (Payoff 3). Zu beachten ist dabei, dass zwar eine
Abrechnung nach Anzahl verkaufter Tonträger erfolgt, jedoch sind
ggf. nicht alle Songs eines Tonträgers abrechnungsfähig, sondern
nur diejenigen, die dem entsprechenden Lizenzvertrag zugrunde
liegen. Es ist also bei der Lizenzabrechnung nur der tatsächliche
Anteil an Liedern eines Tonträgers zu berücksichtigen. Der Autor
erhält seine Zahlungen entweder direkt von der GEMA (an die
Rundfunkunternehmen ihre Sendetantieme entrichten müssen und der
Tonträgerhersteller für jede gepresste Schallplatte eine
Schutzgebühr zahlen muss) oder, falls er selbst nicht GEMA-
Mitglied ist, vom Musikverlag (gemäß den Vereinbarungen im
Verlagsvertrag), der in der Regel dann GEMA-Mitglied ist und von
dort die entsprechenden Anteile erhält.
Diese Istzustandsbeschreibung ist immer noch relativ ungenau. Sie enthält beispielswei-
se keine genauen Angaben über die Attribute (z. B. welche Daten in den jeweiligen Ver-
trägen in welchem Format erfasst werden) oder in welchen Zeiträumen wie genau die
einzelnen Abrechnungen erfolgen etc.; so etwas kann entweder noch im Pflichtenheft
erfolgen, in dem z. B. ein entsprechendes Entity Relationship Model erzeugt wird (was
am besten wäre), oder dies erfolgt während der DV-Entwurfsphase (wo es spätestens
52 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
vorliegen muss). Des Weiteren wären der Istanalyse noch Beispielexemplare der betei-
ligten Verträge sowie ein Muster der Abrechnungen beizufügen. Diese sind also dem
Auftragnehmer auszuhändigen. Beispiele dafür siehe Abb. 4.2 bis Abb. 4.5.
SEI11 53
© HfB, 02.12.20, Berk, Eric (904709)
Musikverlagsvertrag
zwischen
zugleich für seine/ihre Erben und Rechtsnachfolger, im folgenden URHEBER genannt, und dem Verlag
(Musikverlag)
54 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Künstlervertrag
zwischen
SEI11 55
© HfB, 02.12.20, Berk, Eric (904709)
License Agreement
This agreement entered Into between (“LESSOR”) and (hereinafter called LICENSEE).
WHEREAS LESSOR represents and warrants that it has the exclusive rights for all the recordings
(hereinafter called “The Master Recordings”) and WHEREAS LICENSEE is an a position directly
or indirectly to provide manufacturing and marketing faculties for phonograph records in ( ) only
(hereinafter called “The Licensed Territory”), and warrants a release of such phonograph records.
Now therefore, in consideration of the foregoing and of the mutual promises hereinafter set forth,
it is agreed:
1.) LESSOR grants to LICENSEE the exclusive right and license to use THE MASTER
RECORDINGS for the purpose of manufacturing and selling phonograph records and/or
prerecorded tapes well known as MusiCasettes and/or 8-Track Cartridges therefrom in the
LICENSED TERRITORY.
a) LICENSEE is not authorized to transfer the right and license to use THE MASTER
RECORDINGS to a third party.
2.) LICENSEE agrees to release THE MASTER RECORDINGS under the label as a trademark
and in the form as described in the riders hereto only.
3.) a) In consideration of the rights herein granted, LICENSEE agrees to pay to LESSOR the
royalties stated in the rider A hereto as percentage of the retail list price (exclusive of sales
taxes) for all soundcarriers without any other deduction manufactured from THE
MASTER RECORDINGS leased hereunder and shipped In THE LICENSED
TERRITORY.
b) LICENSEE agrees to inform LESSOR of such retail list price in force in THE
LICENSED TERRITORY within 30 (thirty) days from uk date of countersigning of this
contract and will notify LESSOR of any changes thereof within 14 (fourteen) days of any
such change.
c) LICENSEE, agrees that it will not sell, directly or indirectly THE MASTER
RECORDINGS under the normal retail list price In THE LICENSED TERRITORY
without written permission by LESSOR.
4.) LICENSEE further agrees to pay to LESSOR Fifty (50) percent of all public performance and
broadcasting and tv fees, if any received in respect of all records manufactured, leased and sold
hereunder. provided, however, that whenever such fees are not computed and paid in direct
relation to the public perfomances and broadcasts and tv’s of such records, they shall be
computed for the purpose of the agreement by determining the proportion of any such fee
paid to LICENSEE as the number of records produced hereunder and sold in the area from
which the fee is derived bears to the total number of records sold in that area by LICENSEE.
5.) I. Statements in reasonable detail by LICENSEE to LESSOR of royalties and fees due,
pursuant to paragraph 3a and 4 hereof, shall be made every six month calendar period and
mailed to LESSOR within fourtyfive (45) days following the dose of such a period. Each
statement shall show at least the following;
a) catalogue-number of LICENSEE, title and artist(s) of each such sound-carrier
b) the quantity of sound-carriers distributed on behalf of LICENSEE during that
period
c) the quantity of sound-carrier manufactured from each master throughout the
applicable accounting period
d) the retail list price of each such sound-carrier
e) the royalty rate paid on each such sound-carrier
f ) the total royalties earned by each such sound-carrier
II. Together with the statements the payable royalties have to be received by LESSOR.
6.) In the event that by law any royalty-payment due to LESSOR hereunder cannot be
transmitted from the country in which such royalties are earned, LICENSEE agrees to notify
LESSOR within one week after such period as mentioned in paragraph 5 by registered written
letter and to put such payment at the disposal of LESSOR by depositing same at a bank-
account to be opened by LICENSEE at ist expense but in the name of LESSOR and of which
account LESSOR shall have the power of disposing only.
56 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Als Nächstes muss der Sollzustand beschrieben werden. Dieser soll ja später einen be-
stimmten Teil (oder alles) des beschriebenen Istzustands durch ein Anwendungspro-
gramm ersetzen. Es geht dabei gerade darum, dass durch Einsatz einer zu entwickelnden
Software gewisse Abläufe des Istzustands erleichtert bzw. automatisiert werden sollen.
Daher ist es wichtig, dass mit Bezug auf den Istzustand genau beschrieben wird, welche
Teile durch Software abgedeckt werden sollen und welche Inputs und Outputs dabei ge-
nau auftreten. Dies erfolgt durch die Beschreibung des Sollzustands.
SEI11 57
© HfB, 02.12.20, Berk, Eric (904709)
Sollzustand
Eine erste Beschreibung des Sollzustands erfolgte bereits in der ersten Problem-
spezifikation, die (in der Initialisierungsphase) der Angebotserstellung diente. Nun geht
es darum, diese Beschreibung zu verfeinern, sodass daraus (ggf. zusammen mit den
nächsten Kapiteln) später ein DV-Entwurf entwickelt werden kann.
Ist der Istzustand hinreichend beschrieben, dann geht es bei der Sollzustands-
beschreibung eigentlich nur noch darum, welche Teile der Realität wie auf dem Compu-
ter abgebildet werden sollen. Je nachdem, wie das Pflichtenheft strukturiert ist, kann
jetzt bereits eine ausführliche Beschreibung erfolgen, oder, falls dies später im Pflichten-
heft vorgenommen wird, eine grobe, mehr prinzipielle Darstellung. Dies sei in das Er-
messen bzw. die Gepflogenheiten der beteiligten Unternehmen gestellt. Für unsere Zwe-
cke wählen wir den Weg, dass zunächst eine allgemeine Sollbeschreibung vorgenommen
wird. Die nachfolgenden Abschnitte geben dann weitere, detailliertere Informationen.
Eine Sollzustandsbeschreibung bezogen auf unser Beispiel könnte demgemäß z. B. so
aussehen:
Das zu entwickelnde Softwareprogramm soll den Teil des Istzustands
implementieren, der die administrativen Arbeiten bei der
Vertragserstellung der Künstler- und Lizenzverträge abwickelt
sowie die Lizenzabrechnungen automatisch erstellt. Die Arbeiten
der Musikverlagsverwaltung werden dabei ausgekoppelt und evtl. zu
einem späteren Zeitpunkt ebenfalls automatisiert (eigenes
Projekt). Es sollen sowohl (freie) Produzenten als auch
Schallplattenfirmen mit dem Programm arbeiten können. In ersterem
Fall werden Künstlerverträge erstellt und abgerechnet und im
zweiten Fall Schallplattenverträge. Grundlage der Abrechnung ist
in ersterem Fall die Abrechnung des Produzenten mit dem Künstler
und in zweitem Fall die Lizenzabrechnung der Plattenfirma an den
Produzenten. Die elektronisch abzuwickelnden Realitätsausschnitte
sind nachfolgendem U-Case-Diagramm (Abb. 4.6) zu entnehmen. Die
Benutzer des zu entwickelnden Programms werden dort mit User_1
(für den ersten Fall) und User_2 (für den zweiten Fall)
bezeichnet.
58 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Als Input für das zu schreibende Programm dienen also zum Zweck der Vertragserstel-
lung alle Angaben aus dem Künstler-/Lizenzvertrag (insbesondere die für die spätere
Abrechnung notwendigen Daten wie Vertragspartner, Vertragsdauer, prozentuale Betei-
ligungen etc.) und für die Abrechnung dann die Daten des Distributors (Payoff 1) und/
oder der Plattenfirma (Payoff 2) (z. B. über Anzahl und Verkaufspreis der verkauften
Tonträger). Der Output des Programms liefert dann die jeweiligen Verträge bzw. Ab-
rechnungen. Damit verbunden ist die Möglichkeit gewisser statistischer Auswertungen
(welcher Künstler hat wie viele Tonträger verkauft etc., siehe Problembeschreibung).
Natürlich müssen alle bereits erfolgten Abrechnungen gespeichert und doppelte Ab-
rechnungen verhindert werden. Außerdem ist eine Adressverwaltung für alle beteiligten
Firmen und Personen zu integrieren wie auch eine Tonträgerverwaltung, da sich in der
Regel auf einem Tonträger mehrere Songs (Mastertapes) befinden, die von verschiede-
nen Interpreten sein können (d. h. sich auf verschiedene Künstler-/Lizenzverträge bezie-
hen). Einzelheiten hierzu sind z. B. dem semantischen Datenmodell (vgl.
Abschnitt 4.2.2) zu entnehmen.
SEI11 59
© HfB, 02.12.20, Berk, Eric (904709)
4.2.2.1 Entscheidungstabellen
Mithilfe dieser Technik ist es möglich, dynamische Abläufe in kompakter Form zu be-
schreiben. Eine Entscheidungstabelle enthält in den Zeilen die jeweiligen Funktionen
und in den Spalten die Erfüllungsregeln bzw. die Reaktion, wenn ein Kriterium erfüllt
ist oder nicht.
Betrachten wir zur Erläuterung den Fall eines Programms, das zum Verleih von DVDs
in einer Videothek eingesetzt werden soll.
Beispiel 4.1:
Zunächst werden die jeweiligen Regeln („Wenn-dann-Beziehungen“) entworfen:
• Wenn der Kunde im Kundenstamm erfasst und die DVD verfügbar ist, dann soll
die DVD ausgegeben werden.
• Wenn der Kunde nicht im Kundenstamm erfasst ist, dann soll die DVD nicht
ausgegeben werden.
• Wenn der Kunde bereits 5 DVDs ausgeliehen hat, dann soll die DVD nicht aus-
gegeben und der Kunde informiert werden.
• Wenn der Kunde zum aktuellen Zeitpunkt eine oder mehrere DVDs länger als 60
Tage ausgeliehen hat, dann soll bis zur Rückgabe der ausgeliehenen DVDs keine
weitere DVD mehr ausgegeben und der Kunde informiert werden.
• Wenn die DVD nicht verfügbar ist, dann wird die DVD nicht ausgegeben und der
Kunde wird informiert.
• Eine Reservierung von DVDs ist nicht zulässig und soll daher nicht berücksich-
tigt werden.
60 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Aktionen ermitteln:
A1: DVD ausgeben
A2: DVD nicht ausgeben
A3: Kunde informieren „DVD nicht verfügbar“
A4: Kunde informieren „Anzahl überschritten“
A5: Kunde informieren „Leihdauer überschritten“
Bedingungen ermitteln:
B1: Kunde im Kundenstamm
B2: DVD verfügbar
B3: Anzahl ausgeliehener DVDs nicht größer als 5 Stück
B4: Leihdauer nicht größer als 60 Tage
Ausgangssituation:
VHS ausgeben R1 R2 R3 R4 R5 R6 R7 R8 R9
B1 Kunde im Kundenstamm J J J J J J J J N
B2 DVD verfügbar J J J J N N N N –
B3 auszugebende DVDs 5 J J N N J J N N –
B4 Leihdauer 60 Tage J N J N J N J N –
A1 DVD ausgeben
A3 Kundeninfo
„DVD nicht verfügbar“
A4 Kundeninfo
„Anzahl überschritten“
A5 Kundeninfo
„Leihdauer überschritten“
Nun ist es häufig so, dass nicht von vornherein die optimale Darstellung gefunden wird.
Es können dann gewisse Optimierungen erforderlich sein. Zum Beispiel liegen bei R5/
R6 und bei R7/R8 jeweils eigentlich die gleichen Aktionen zugrunde. Dies lässt sich so
vereinfachen:
SEI11 61
© HfB, 02.12.20, Berk, Eric (904709)
1. Erste Optimierung
B1 Kunde im Kundenstamm J J J J J J N
B2 DVD verfügbar J J J J N N –
B3 auszugebende DVDs 5 J J N N J N –
B4 Leihdauer 60 Tage J N J N – – –
A1 DVD ausgeben
A3 Kundeninfo
„DVD nicht verfügbar“
A4 Kundeninfo
„Anzahl überschritten“
A5 Kundeninfo
„Leihdauer überschritten“
B1 Kunde im Kundenstamm J J J J J N
B2 DVD verfügbar J J J J N –
B3 auszugebende DVDs 5 J J N N – –
A1 DVD ausgeben
A3 Kundeninfo
„DVD nicht verfügbar“
A4 Kundeninfo
„Anzahl überschritten“
A5 Kundeninfo
„Leihdauer überschritten“
62 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
DVD ausgeben R1 R2 R3 R4 R5 R6
B1 Kunde im Kundenstamm J J J J J N
B2 DVD verfügbar J J J J N –
B3 auszugebende DVDs 5 J J N N – –
B4 Leihdauer 60 Tage J N J N – –
A1 DVD ausgeben
A3 Kundeninfo
„DVD nicht verfügbar“
A4 Kundeninfo
„Anzahl überschritten“
A5 Kundeninfo
„Leihdauer überschritten“
SEI11 63
© HfB, 02.12.20, Berk, Eric (904709)
Beispiel:
name ist eine Komponente, mittelname ist wahlfrei. Die rechts stehenden Komponenten
müssen aber auch definiert werden. Dies kann z. B. geschehen durch:
Der Familienname muss also mindestens drei Zeichen und darf höchstens 32 Zeichen
lang sein.
64 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Entity (Entität)
Attribut
Verbindungslinie
1 n
Unternehmen hat Abteilung
umfasst
Mitarbeiter
m
betreut
Projekt
Die n : m-Beziehung in Abb. 4.7 bedeutet konkret, dass an einem Projekt m Mitarbeiter
beteiligt sein können und dass jeder Mitarbeiter an n Projekten beteiligt sein kann. Zu
betonen wäre noch, dass für die Beschriftungen der Entitäten und Beziehungen der Sin-
gular verwendet wird, während in Datenflussdiagrammen üblicherweise der Plural be-
nutzt wird.
SEI11 65
© HfB, 02.12.20, Berk, Eric (904709)
Objekt:
Unter einem Objekt versteht man eine Person oder einen Gegenstand (der Realität
oder Anschauung), auf die/den das Denken und Handeln bzw. jemandes Interesse ge-
richtet ist.
Diese Definition ist noch unkonkret, doch man versteht, dass es sich bei einem Objekt
um eine „Sache“ handelt, die wahrgenommen und hinlänglich beschrieben und über die
„nachgedacht“ werden kann. Im Software Engineering interessiert in erster Linie, wie
Objekte aus dem Leben auf den Computer abgebildet werden können. Natürlich gibt es
dabei auch Objekte, die ausschließlich auf einem Computer existieren, man denke z. B.
an eine Schaltfläche oder den Mauszeiger etc.; auch das sind Objekte, denn sie besitzen
unbestreitbar zumindest eine virtuelle Realität und man kann sein Interesse auf sie rich-
ten. Möchte man Objekte auf einem Computer abbilden, so müssen diese in Form von
Daten abgelegt werden. Und Daten auf dem Computer erfordern ein Datenformat, also
eine Datenstruktur. Die Beschreibung von Datenstrukturen und ihren Beziehungen
nennt man auch Datenmodell. Das ist aber noch nicht alles. Auf Daten muss man zu-
greifen können, d. h., man benötigt Zugriffsoperationen wie Edit, Delete, Add usw.; au-
ßerdem fasst man ähnliche Daten häufig zusammen. Es muss also Kriterien geben, die
die Zugehörigkeit (auch Integrität genannt) festlegen. Solche Zugehörigkeitskriterien
nennt man auch Integritätsbedingungen. Grob kann man also sagen, was für ein Objekt
im datentechnischen Sinn gelten muss:
Dadurch, dass also auch Operationen zu einem Objekt gehören, sind die Daten eines Ob-
jekts selbst nur über diese Operationen zugänglich. Man redet in diesem Zusammen-
hang von Datenkapselung. Die Operationen werden dabei als Funktionen implementiert
und dann Methoden genannt (vgl. Abb. 4.8). Ein erstelltes Datenmodell wird manchmal
auch Schema genannt.
66 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Zugriff
Methode 1 Methode 2
Methode 3 ...
Daten
... ...
... Methode n
Der Vorteil solch einer Vorgehensweise liegt auf der Hand: Die Methoden zum Zugreifen
auf die Objektdaten basieren in der Regel auf bereits vorhandenen Standardoperationen,
die z. B. von einem Datenbankmanagementsystem zur Verfügung gestellt werden. Diese
muss man also nicht erst selbst programmieren, was die Fehleranfälligkeit eines Pro-
gramms natürlich deutlich reduziert. Natürlich ist es auch möglich, Methoden selbst zu
schreiben, doch diese benutzen dann meistens wieder bereits vorhandene Standardme-
thoden und komponieren daraus die gewünschte Funktionalität.
Objekte, die in irgendeinem Sinne zusammengehörig sind, werden in sogenannte Klas-
sen zusammengefasst. Es muss also ein Kriterium geben, mit dem die Zusammengehö-
rigkeit von Objekten bestimmbar ist. In der 5. Schulklasse einer Grundschule beispiels-
weise sitzen Kinder (Objekte), denen gemeinsam ist, dass sie alle die 4. Klasse hinter sich
gebracht haben, einer bestimmten Altersgruppe angehören, einen bestimmten (Klassen-
)Lehrer haben, in einem bestimmten (Klassen-)Zimmer sitzen, einen bestimmten Stun-
denplan haben usw.; in der Mathematik kennt man u.a. Restklassen. Darunter versteht
man die Zusammenfassung von denjenigen ganzen Zahlen, die bei Division durch eine
festgelegte Zahl den gleichen Rest besitzen. Betrachtet man z. B. die Menge {..., 7, 11, 15,
19...}, so handelt es sich hierbei um die Klasse der ganzen Zahlen, welche bei Division
durch die Zahl 4 alle den gleichen Rest, nämlich 3, besitzen. Dieser Klassenbegriff führt
zur nächsten Definition.
SEI11 67
© HfB, 02.12.20, Berk, Eric (904709)
Klasse:
Unter einer Klasse versteht man eine Menge von zusammengehörigen Objekten. Eine
atomare Klasse ist eine Klasse mit nur einfachen (also nicht zusammengesetzten) Ob-
jekten.
Instanz:
Die Objekte einer Klasse werden auch Instanzen oder Exemplare der Klassen genannt.
Instanzen oder Exemplare einer Klasse können prinzipiell selbst wieder Klassen sein. Es
sei bemerkt, dass sich die Menge der Exemplare einer Klasse mit der Zeit verändern
kann. Daher sind eine Klasse und ihre Exemplarmenge i. A. nicht dasselbe.
UML-Diagramme
In einem Pflichtenheft können bereits grafische Elemente zur Datenmodellierung einge-
setzt werden. Ein Beispiel hatten wir schon gesehen, das Entity-Relationship-Diagramm
(ERD).
Seit geraumer Zeit hat sich allerdings die sogenannte Unified Modeling Language
(UML) etabliert. Dabei handelt es sich um Sammlung von Modellierungstechniken, die
sich durch eine Vielzahl von Diagrammtypen auszeichnet. Diese werden in nachfolgen-
den Studienheften ausführlich beschrieben und sind vor allem für den DV-Entwurf ein-
gesetzt. Allerdings setzen sich mehr und mehr auch im Pflichtenheft einige rudimentäre
UML-Ansätze durch. Wichtig ist dabei immer, dass auch der Kunde des Pflichtenhefts
die Ausführungen verstehen kann. Sollte er dazu nicht in der Lage sein, sollte man diese
Techniken nicht einsetzen und stattdessen die Datenstrukturen und Funktionsabläufe
verbal so präzise wie möglich beschreiben. Allerdings sollten auch die Diagramme,
wenn sie denn verwendet werden, noch einmal durch Text erläutert werden.
Klassendiagramme:
Diese Modellierungstechnik wird zur Beschreibung statischer Sachverhalte benutzt (wie
auch schon das ERD). Im Gegensatz zum Standard-ERD sind bei UML-Klassendiagram-
men weitergehende Sachverhalte darstellbar (z. B. Vererbungen, Aggregationen, siehe
nachfolgend).
Wir hatten definiert, dass Klassen eine Zusammenfassung zusammengehöriger Objekte
darstellen8. Die Zusammengehörigkeit wird dabei über Eigenschaften, sogenannte Inte-
gritätsbedingungen, definiert. Eine Schulklasse einer Grundschule besteht beispielswei-
se aus den Objekten „Schüler“, die alle gemeinsame Eigenschaften besitzen: Sie sind
(meistens) ungefähr gleich alt, gehören zum gleichen Einzugsgebiet einer Stadt, haben
bereits die vorhergehende Klasse erfolgreich absolviert (Versetzung) und so weiter. Von
einer gewissen Abstraktionsstufe aus gesehen sind diese „Objekte“ (bezüglich ihrer In-
tegritätsbedingungen) sogar „ununterscheidbar“. Jedes Objekt stellt dabei einen Reprä-
sentanten der ganzen Klasse dar. Objekte werden auch Instanzen oder Exemplare einer
Klasse genannt.
68 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Klassen werden in UML durch Rechtecke dargestellt, die wieder in 3 Abteilungen unter-
teilt sind: Oben steht der Klassenname, in der Mitte stehen die Attribute und im unteren
Teil die Methoden, mit denen auf die Objekte der Klasse zugegriffen werden kann. Au-
ßer dem Klassennamen sind alle anderen Einträge optional. Die Beziehungen zwischen
Klassen werden durch Verbindungslinien ausgedrückt, die auch beschriftet werden kön-
nen („Rolle“ der Beziehung).
In Abb. 4.9 sehen wir ein Beispiel für ein solches Klassendiagramm und in Abb. 4.10 für
ein Objektdiagramm. Objektdiagramme sehen ähnlich wie Klassendiagramme aus, je-
doch beziehen sich die Beschriftungen innerhalb der Rechtecke und der Verbindungsli-
nien jetzt auf konkrete Objekte der Klassen (je nach Literatur wird manchmal auch im
Objektnamen zuerst das Objekt, dann der Doppelpunkt und dann der Klassenname ge-
nannt).
An den Verbindungslinien werden bei dem Beziehungstyp „Assoziation“ noch die soge-
nannten Kardinalitätsbeschränkungen mit angegeben. Dabei handelt es sich um die Ma-
ximalzahlen, mit denen ein konkretes Objekt einer Klasse mit Objekten einer weiteren
(oder sogar der gleichen) Klasse eine Beziehung (Link) eingehen kann (siehe auch weiter
unten den Begriff der Rolle). Die wichtigsten sind:
* für kein oder viele
1..* für ein oder viele (auch lesbar als: mindestens 1, maximal viele)
0..1 für kein oder ein (auch lesbar als: mindestens 0, maximal 1)
1 für genau ein (diese 1 kann auch ganz weggelassen werden)
2..4 für numerische Angaben, hier: 2, 3 oder 4.
Eine Assoziation wird als eine Gruppe von Links definiert, wobei ein Link eine Verbin-
dung zwischen einander zugeordneten Objekten bezeichnet (bei 2 an einer Assoziation
beteiligten Klassen werden dann auf Instanzenebene jeweils immer genau 2 Objekte ei-
nander zugeordnet). Auf Instanzenebene werden daher im Objektdiagramm die Kardi-
nalitäten aller Links immer genau 1 betragen, und diese 1 wird in der Regel in den Dia-
grammen weggelassen.
Man kann sich eine Klasse häufig als eine Tabelle vorstellen; die Attribute der Klassen
stellen dann die Spalten einer solchen Tabelle dar, die Zeilen der Tabelle entsprechen den
Objekten. Die Assoziationen zwischen den Klassen werden in Tabellen in der Regel so
implementiert, dass man die entsprechenden sogenannten Schlüsselattribute einer Ta-
belle (das sind diejenigen Attribute, die einen Datensatz, d. h. also eine Zeile in der Ta-
belle, eindeutig identifizieren und deren Anzahl minimal ist, z. B. einfach eine fortlau-
fende Nummer, „ID“ für „Identität“) als Spalte in der anderen Tabelle einfügt (bei Eins-
SEI11 69
© HfB, 02.12.20, Berk, Eric (904709)
70 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Der Grund dafür ist folgender: Es kann Attribute geben, wie z. B. „Tätigkeit“ in
Abb. 4.11, die weder in die Klasse „Mitarbeiter“ aufgenommen werden können (da die
Tätigkeit eines bestimmten Mitarbeiters in verschiedenen Projekten jeweils eine andere
sein kann) noch der Klasse „Projekt“ zugeordnet werden können (da im gleichen Projekt
verschiedene Mitarbeiter verschiedene Tätigkeiten ausüben können). Deswegen bezieht
sich das Attribut „Tätigkeit“ nur auf den konkreten Link. Die Klasse um diese Link-At-
tribute „herum“ ist dann die Assoziationsklasse.
Ich möchte an dieser Stelle einem weitverbreitenden Irrtum entgegentreten, und zwar in
Bezug auf die Beschriftung der Kardinalitäten in Zusammenhang mit den Rollen. Be-
trachten wir zu diesem Zweck folgendes Beispiel: Eine Schallplattenfirma schließt einen
Vertrag mit einem Künstler ab. In der Musikbranche ist es dabei üblich, dass ein Künstler
immer exklusiv an eine (Schall-) Plattenfirma gebunden ist, während eine Plattenfirma
viele Künstler unter Vertrag haben kann. In Abb. 4.12 sehen wir dazu ein mögliches
Klassendiagramm:
Sicht 1 (Rolle):
Es wird an der Klasse aufgezählt, wie oft ein Exemplar dieser Klasse an einem Link
mit einem Exemplar der gegenüberliegenden Klasse teilnehmen kann.
Nun gibt es aber verwirrenderweise eine zweite Sichtweise, die zwar denselben Sach-
verhalt zum Ausdruck bringt, aber eine andere Sicht auf die Assoziation darstellt
(Abb. 4.13):
Wie man sieht, sind jetzt die Kardinalitätsbeschränkungen vertauscht. In dieser Sicht-
weise gilt:
SEI11 71
© HfB, 02.12.20, Berk, Eric (904709)
Die Sicht der inversen Rolle hat sich interessanterweise mehr verbreitet als die der Rolle.
Um Mehrdeutigkeiten zu vermeiden, kann es nicht schaden, wenn man bei der Erstel-
lung von Klassendiagrammen z. B. mithilfe einer Legende hinschreibt, welche Sicht man
gerade einnimmt.
Während Assoziationen „hat“-Beziehungen zwischen Klassen realisieren, stellen die so-
genannten Spezialisierungen (je nach Sichtweise auch Generalisierungen oder Verer-
bungen genannt) Variationen einer Klasse im Sinne einer „ist-ein“-Beziehung dar.
Abb. 4.14 liefert dazu ein Beispiel: Es gibt eine Klasse „Person“ mit den beiden Variati-
onen „Kunde“ und „Lieferant“. Die Verbindungslinien besitzen einen holen Pfeil am
Ende der Basisklasse (auch Oberklasse genannt); die Variationen werden auch abgelei-
tete Klassen, Subklassen oder Unterklassen genannt. Letztere ererben von der Basisklas-
se eventuelle Attribute, Methoden und Assoziationen. Optional kann in der Nähe des
Pfeils noch in geschweiften Klammern ein Eintrag vorgenommen werden, der Folgendes
bedeutet:
complete heißt, die Basisklasse enthält keine eigenen Instanzen
incomplete heißt, die Basisklasse kann eigene Instanzen haben
overlapping heißt, gleiche Objekte können gleichzeitig in mehreren Unterklassen
vorkommen
disjoint heißt, ein Objekt einer Subklasse kann nicht noch in einer weiteren
Subklasse vorkommen
72 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Konkret ist es also so, dass man Personen hat, die Kunde, Lieferant, keines von beiden
oder beides sein können. Hätte man statt {incomplete, overlapping} die Vererbungstypen
{complete, overlapping}, so würde das bedeuten, dass jede Person Kunde oder Lieferant
(oder beides) ist, d. h., es gibt keine Person, die nicht mindestens eines von beidem ist. In
diesem Fall nennt man die Basisklasse auch „abstrakt“, weil sie ja keine eigenen Instan-
zen besitzt (diese finden sich erst in den Subklassen). Würde im hinteren Teil statt „over-
lapping“ jetzt „disjoint“ stehen, so würde das bedeuten, dass ein Kunde nicht gleichzeitig
Lieferant sein kann und umgekehrt.
Noch ein Wort zu den drei „fast“ synonymen Begriffen Spezialisierung, Generalisierung
und Vererbung. Das Ergebnis ist in allen drei Fällen das gleiche, z. B. das Diagramm aus
Abb. 4.14. Der Unterschied besteht nur in der Sichtweise bzw. in der praktischen Vorge-
hensweise, also wie man zu dem Diagramm kommt. Beginnt man seine Systemanalyse
damit, dass man zuerst die Klasse Person modelliert und danach feststellt, dass es davon
zwei Variationen, nämlich Mitarbeiter und Lieferanten, gibt, so „spezialisiert“ man diese
Klasse in die beiden genannten Subklassen. Fängt man dagegen so an, dass man zuerst
die Klassen Mitarbeiter und Lieferant erstellt und dann feststellt, dass diese gleichlau-
tende Attribute haben (wie z. B. Name, Ort etc.), dann „zieht“ man diese gemeinsamen
Attribute „nach oben“ in eine eigens dafür neu einzuführende Klasse, die man dann z. B.
Person nennt. Dieser Vorgang wäre die Generalisierung. Betrachtet man jetzt aber, was
welche Klasse anderen Klassen zur Verfügung stellt („vererbt“), wie z. B. die Attribute
aus der Basisklasse den Subklassen, so nennt man den Mechanismus des „Zurverfügung-
stellens“ eine „Vererbung“. Vererbt werden können neben den Attributen auch die Me-
thoden und evtl. Assoziationen an die Basisklasse.
Im Beispiel aus Abb. 4.14 könnte die Klasse Person z. B. die Attribute Name, PLZ, Ort
haben. Diese werden dann an die Subklassen vererbt und werden daher dort nicht noch
einmal genannt (obwohl es sie dort gibt!). In den Subklassen werden nur noch diejenigen
Attribute genannt, die der jeweiligen Subklasse allein zu eigen sind.
Man muss aber aufpassen, wenn man aus solchen Gebilden wie in Abb. 4.14 Tabellen
machen will. Dann macht man zwar – wie üblich – auch aus jeder Klasse zunächst eine
Tabelle, doch die Vererbung muss zuvor in eine Assoziation „umgewandelt“ werden,
was möglich ist (allerdings unter Verlust der Vererbungstypisierung wie complete und
overlapping etc.). Um Vererbungen als Assoziationen darzustellen, muss man zwischen
der Basistabelle und jeder Subtabelle eine 1-zu-0..1-Assoziation herstellen. „Philoso-
phisch“ besteht aber dann ein deutlicher Unterschied: Während z. B. eine Instanz von
„Person“ mit der Variation „Kunde“ ein einziges Objekt liefert, entstehen bei der 1-zu-
0..1-Assoziation 2 Objekte (die über einen Link in Beziehung zueinander stehen). In Ta-
bellenform gibt es dann also keine abstrakten Klassen mehr, denn die Tabelle „Person“
hat dann natürlich konkrete Einträge in ihren Zeilen stehen, auf die in den beiden Sub-
tabellen Mitarbeiter und Lieferant passend referenziert wird.
Im Rahmen der Klassendiagramme spielt noch ein Spezialfall der Assoziation eine große
Rolle: die Aggregation. Aggregationen sind Assoziationen, von denen man weiß, dass
sie zusätzlich eine Gesamtheits-Teil-Beziehung darstellen (vgl. Abb. 4.15).
SEI11 73
© HfB, 02.12.20, Berk, Eric (904709)
74 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
SEI11 75
© HfB, 02.12.20, Berk, Eric (904709)
Die Objekte werden durch Rechtecke visualisiert. Von ihnen gehen die senkrechten Le-
benslinien aus, dargestellt durch gestrichelte Linien. Die Nachrichten werden durch
waagerechte Pfeile zwischen den Objektlebenslinien beschrieben.
Auf diesen Pfeilen werden die Nachrichtennamen in der Form
nachricht(argumente)
notiert. Nachrichten, die als Antworten deklariert sind, erhalten die Form
antwort: =nachricht(...).
Den Nachrichten können Bedingungen der Form
[bedingung] nachricht(...)
zugewiesen werden.
Iterationen von Nachrichten werden durch ein Sternchen „*“ vor dem Nachrichtenna-
men beschrieben. Objekte, die gerade aktiv an Interaktionen beteiligt sind, werden
durch einen Balken auf ihrer Lebenslinie gekennzeichnet. Objekte können während des
zeitlichen Ablaufs des begrenzten Kontextes erzeugt und gelöscht werden.
Ein Objekt wird erzeugt, indem ein Pfeil mit der Aufschrift neu() auf ein neues Objekt-
symbol trifft.
76 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
Aktivitätsdiagramme:
Aktivitätsdiagramme ähneln den Zustandsdiagrammen. Der Schwerpunkt liegt jedoch
im Verhalten des Systems und beschreibt hauptsächlich die Vernetzung elementarer Ak-
tionen. Dabei sind Kontroll- und Datenflüsse ablesbar. Oft wird damit der Ablauf eines
Anwendungsfalls beschrieben (wie schon bei U-Case-Diagrammen, es können sogar die
Strichmännchen von dort zum Einsatz kommen). Ein Aktivitätsdiagramm kann aber
auch zur Modellierung aller Aktivitäten eines Systems benutzt werden.
Nun gibt es zwei Ausprägungen des Aktivitätsdiagramms: In der aktuellen, neueren
Form von UML (UML 2 genannt) wird die Darstellung sogenannter nebenläufiger Sys-
teme durch die Einbindung von asynchronen Kommunikationsmechanismen (Signal
senden und empfangen, Ausnahmebehandlung) ermöglicht. Ein Aktivitätsdiagramm
spezifiziert also die eigentlichen Aktivitäten. Im Prinzip stellt ein Aktivitätsdiagramm
die objektorientierte Adaption eines Programmablaufplans dar. Ein Beispiel sehen wir
in Abb. 4.19.
SEI11 77
© HfB, 02.12.20, Berk, Eric (904709)
In Abb. 4.19 sehen wir ein einfaches Aktivitätsdiagramm mit einem Kopf- und einem
Inhaltsbereich. Am rechten und linken Rand sieht man zwei Rechtecke. Diese bezeichnet
man als „Aktivitätsparameterknoten“. Die Aktionen sind die Rechtecke mit abgerunde-
ten Ecken. Dort sind kleine Quadrate an den Rändern zu erkennen. Sie beschreiben die
Ein- und Ausgabe-Pins und deuten an, dass hier ein Objektfluss vorliegt. Der Rest stellt
Kontrollflüsse dar. Der schwarze Kreis ist der Startknoten und gehört damit zu den Kon-
trollknoten.
Aus Gründen der Historie sei noch ein Beispiel für die ältere UML-Variante der Aktivi-
tätsdiagramme (UML 1) angegeben (Abb. 4.20).
78 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
SEI11 79
© HfB, 02.12.20, Berk, Eric (904709)
4.2.3 Projektplan
Schließlich muss im Pflichtenheft noch eine Zeitplanung enthalten sein, die eine realis-
tische Entwicklungszeit wiedergibt. Je nach Komplexität des Projekts kann die Darstel-
lung unterschiedlich sein. Reicht eine tabellenförmige Aufstellung nicht aus, können
auch computergestützte Werkzeuge wie z. B. MS Project® benutzt werden. Ein Projekt-
plan muss auf jeden Fall enthalten, welche Personen zu welchem Zeitpunkt welche Tei-
laufgabe lösen. Dabei sollten Meilensteine eingebaut werden, die durch Reviews beim
Auftraggeber mit demselben „abgenommen“ werden. Durch eine solche Bestätigung des
Erreichens von Teilzielen durch den Auftraggeber erhöht sich die Sicherheit, dass die
Programmentwicklung auf dem richtigen Weg ist.
4.1 Welches sind die wichtigsten Daten bei der Planung eines Softwareprojekts?
4.2 Welche Punkte des Pflichtenhefts nach DIN 69901 sind Ihrer Meinung nach bei
kleineren Projekten nicht so wichtig?
4.3 Entwerfen Sie ein semantisches Datenmodell für den in Abb. 4.7 gezeigten Sach-
verhalt. Erfinden Sie einige Attribute zu den Entitäten und geben Sie eine verbale
Version des semantischen Datenmodells an.
80 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
SEI11 81
© HfB, 02.12.20, Berk, Eric (904709)
2.5 Da es sich hier um eine „Kreativ-Aufgabe“ handelt, kann hier keine feste Lösung
angegeben werden. Sie können aber gern Ihre Lösung an den zuständigen Tutor
leiten, dieser wird sie dann gern kommentieren. Jede „wohlbegründete“ Lösung
ist richtig!
3.1 Wie schon erwähnt bleibt die Bedienoberfläche letztlich Geschmackssache; al-
lerdings kann man objektiv feststellen, dass im SuperConverter die wichtigsten
Parameter für eine Formatwandlung auf „einen“ Blick sichtbar sind. Im oberen
Teil wählt man Ziel-Container und Ziel-Formate aus einer vorgegebenen Liste
aus und stellt dann die Parameter per Mausklick in den darunterliegenden Ab-
schnitten ein, die je nach Formatauswahl oben bereits die möglichen Einstellun-
gen angepasst anbieten. Dies ist sehr effektiv und vermeidet vor allem, hier Pa-
rameter auf Werte einzustellen, die das Zielformat gar nicht verarbeiten kann.
Insgesamt ist diese Oberfläche allerdings etwas gewöhnungsbedürftig.
Der MediaCoder hingegen kommt fast „klassisch“ daher: Es finden sich zur Aus-
wahl der Formate die üblichen Tabs, wo man neben den Formaten auch die je-
weiligen Parameter angeben kann. Dies geht aber auf Kosten der Übersicht, wes-
wegen ein eigenes kleines Fenster „Properties“ rechts oben eingeblendet wird,
wo ansatzweise die Parameter sichtbar sind. Allerdings kommt es hier oft zu
„Fehlläufen“, denn erst beim Start wird festgestellt, ob die ausgewählten Parame-
ter zu dem gewünschten Zielformat „passen“, was sehr ärgerlich sein kann. Es
erscheint auch nur der Hinweis, dass die Parameter so nicht zusammenpassen,
es wird aber kein Hinweis gegeben, welche Werte die Parameter annehmen dür-
fen. Dieses Problem stellt sich beim SuperConverter nicht, da hier nach Format-
auswahl nur die zulässigen Möglichkeiten eingeblendet werden.
Im Ergebnis sind beide Oberflächen softwareergonomisch, doch liefert der Su-
perConverter – hat man sich einmal an diese Oberfläche gewöhnt – den schnel-
leren und auch bedienerfreundlicheren Überblick
4.1 Es muss klar sein, welche Funktionen ein Programm ausführen soll. Dazu gehört
insbesondere, dass der Realitätsausschnitt, den das Programm später abdecken
soll, z. B. mit einem U-Case-Diagramm beschrieben wird. Die Entitäten in dem
U-Case-Diagramm sollten inhaltlich über die wichtigsten Attribute beschrieben
sein. Weiterhin sollen die Input-/Output-Inhalte klar sein sowie ein grobes Lö-
sungskonzept existieren, das angibt, wie vom Input zum Output gelangt werden
kann. Eine zumindest grobe Personal-Einsatzplanung darf auch nicht fehlen
(wer macht wann was).
4.2 Die Unternehmenscharakteristik spielt i. d. R. keine besondere Rolle. Auf ein
Mengengerüst kann oft auch verzichtet werden, da heute Datenbanksysteme
oft „von Hause aus“ mit Millionen von Datensätzen problemlos umgehen kön-
nen.
82 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
4.3 Ein Unternehmen ist gekennzeichnet durch einen Namen und einen Sitz (Straße,
PLZ, Postfach, PLZ-Ort, Straßen-Ort, Telefon, Fax, E-Mail). Es sollen mehrere
Unternehmen erfasst werden können. Jedes Unternehmen hat mehrere Abtei-
lungen. Jede Abteilung hat einen Namen, ein Abteilungskürzel sowie eine Tätig-
keitsbeschreibung. Jede Abteilung umfasst mehrere Mitarbeiter. Ein Mitarbeiter
ist gekennzeichnet durch seinen Namen und eine Personalnummer, sein Ge-
burtsdatum, seinen Wohnort (Straße, PLZ, Ort, Tel.-Nummer, Fax, E-Mail) sowie
das Datum seines Eintritts in die Firma. Ein oder mehrere Mitarbeiter betreuen
ggf. ein oder mehrere Projekte. Jedes Projekt besitzt einen Namen, ein Projekt-
kürzel, eine Projektbeschreibung, ein Startdatum sowie ein geplantes Enddatum.
SEI11 83
© HfB, 02.12.20, Berk, Eric (904709)
B. Literaturverzeichnis
Allgemein:
Greenfield, J. und Short, K. (2006). Software Factories.
Heidelberg: Redline GmbH.
König, W. u. a. (1999). Taschenbuch der Wirtschaftsinformatik und Wirtschaftsmathe-
matik. Frankfurt am Main: Harri Deutsch.
Nielsen, J. (2000). Erfolg des Einfachen. Markt+Technik.
Rumbaugh, J. u. a. (1991). Object Oriented Modeling and Design.
Englewood Cliffs, Prentice Hall Inc.
Zöller-Greer, P. (2002). Softwareengineering für Ingenieure und Informatiker.
Wiesbaden: Vieweg.
Zöller-Greer, P. (2010). Multi Media Systeme.
Wächtersbach: Composia.
Zöller-Greer, P. (2010). Software Architekturen-Grundlagen und Anwendungen.
Wächtersbach: Composia.
Zum Testen:
Meyers, G. J. (1979). The Art of Software Testing.
New York: John Wiley & Sons.
Realzeitsysteme:
Gomaa, H. (1999). Software Design Methods for Concurrent and Real-Time-Systems.
Addison-Wesley.
Software-Ergonomie:
Herczeg, M. (2009). Theorien, Modelle und Kriterien für gebrauchstaugliche interaktive
Computersysteme.
Oldenbourg, München.
84 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
C. Abbildungsverzeichnis
SEI11
Sachwortverzeichnis
SEI11 85
© HfB, 02.12.20, Berk, Eric (904709)
C Abbildungsverzeichnis
86 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
D. Sachwortverzeichnis
SEI11
A F
Agile Methode ................................. 32 Fachkonzept ............................... 12, 13
Agile Modeling ................................ 30 Feinkonzept ............................... 16, 49
Agile Processing .............................. 30
Agile Programming ......................... 30 G
Agile Softwareentwicklung .............. 30 Grobkonzept .............................. 13, 49
Agiler Prozess .................................. 32
Agiles Prinzip .................................. 31 I
Anforderungsanalyse ....................... 13 Implementierung ............................. 16
Assoziationstyp ............................... 64 Initialisierung .................................... 9
Attribut ...................................... 64, 65 Ist-/Sollzustände .............................. 51
Istzustand ........................................ 51
B
Benutzertest ..................................... 17 M
Beziehung ........................................ 65 Multimediaprojekt ........................... 10
Murphys Gesetz ................................. 4
C
CASE ................................................ 6 P
CMS ................................................ 43 Pflichtenheft ................................ 3, 49
Content-Management-System .......... 43 Problemanalyse ......................... 10, 47
Programmtest .................................. 17
D Projektplan ...................................... 80
Data Dictionary ............................... 63 Prototyp .......................................... 19
Datenmodell, semantisches .............. 13 Prototyping ...................................... 20
Datenmodellierung, semantische . 13, 60
Dialoggestaltung .............................. 37 R
Domain ........................................... 64 Relation ........................................... 65
DV-Entwurf ..................................... 16 Relationship ..................................... 64
DV-Konzept ..................................... 12 Relationship set ................................ 64
RUP ................................................. 27
E
E-Commerce .................................... 10 S
Entität ............................................. 65 Software Engineering ......................... 6
Entity .............................................. 64 Softwareergonomie .......................... 34
Entity Relationship Diagram ............ 64 System mit geplanter Reaktion ........... 5
Entity set ......................................... 64 Systemanalyse ............................. 6, 13
Entwicklungszyklus ........................... 3 Systemanalytiker ............................... 3
Extreme Programming ..................... 30
SEI11 87
© HfB, 02.12.20, Berk, Eric (904709)
D Sachwortverzeichnis
T
Test .................................................. 17
U
U-Case-Diagramm ........................... 51
Unified Process ................................ 27
UP ................................................... 27
Usability Engineer ........................... 35
Use-Case-Diagramm ........................ 51
V
V-Modell XT .................................... 21
W
Wartung .......................................... 18
Wasserfallmodell ......................... 9, 18
Wertebereich ................................... 64
88 SEI11
© HfB, 02.12.20, Berk, Eric (904709)
E. Einsendeaufgabe
Phasenmodelle und Planung von Softwareprojekten Einsendeaufgabencode:
SEI11-XX2-K07
SEI11 89
© HfB, 02.12.20, Berk, Eric (904709)