Skip to main content

2009 | Buch

Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering

verfasst von: Prof. Dr. Helmut Balzert

Verlag: Spektrum Akademischer Verlag

insite
SUCHEN

Über dieses Buch

Die Softwaretechnik bildet einen Grundpfeiler der Informatik. Jede Softwareentwicklung basiert auf Prinzipien, Methoden und Werkzeugen. Mit Basiskonzepten kann die Statik, Dynamik und Logik von Softwaresystemen beschrieben und modelliert werden. Die Anforderungen an ein neues Softwareprodukt zu ermitteln, zu spezifizieren, zu analysieren, zu validieren und daraus eine fachliche Lösung abzuleiten bzw. ein Produktmodell zu entwickeln, gehört mit zu den anspruchsvollsten Aufgaben innerhalb der Softwaretechnik. Dieser Band des dreiteiligen Lehrbuchs der Softwaretechnik vermittelt in systematischer und klassifizierender Art und Weise die Basistechniken und die Basiskonzepte der Softwareentwicklung und beschreibt die Aktivitäten, Artefakte und Methoden des Requirements Engineering. Das Buch besteht aus 4 Teilen und 27 Kapiteln.

Das Buch kann zur Vorlesungsbegleitung, zum Selbststudium und zum Nachschlagen verwendet werden.

Inhaltsverzeichnis

Frontmatter

Die Wissenschaftsdisziplin Softwaretechnik

Frontmatter
1. Was ist Software?
Zusammenfassung
Grundsätzlich ist festzuhalten, dass ein Kernstück jeder Wissenschaft eine eigene einheitliche und allgemein anerkannte Begriffswelt ist. Wegen der starken Praxisorientierung der Softwaretechnik spielt die Begriffsbildung hier sogar eine herausragende Rolle.
Helmut Balzert
2. Warum ist Software so schwer zu entwickeln?
Zusammenfassung
Seit Software entwickelt wird, beklagt man sich darüber, wie schwierig diese Tätigkeit ist. Immer wieder ist von der »Software-Krise« die Rede. Um diese Schwierigkeiten zu verstehen, muss man sich zunächst die Charakteristika von Software näher ansehen.
Helmut Balzert
3. Was ist Softwaretechnik?
Zusammenfassung
Bevor ich eine eigene Definition vorschlage, möchte ich einige publizierte Definitionen aufführen.
Helmut Balzert

Basistechniken

Frontmatter
4. Prinzipien
Zusammenfassung
Was ist für Sie ein Prinzip? Nach welchen Prinzipien handeln Sie? Welche Prinzipien fallen Ihnen zur Softwaretechnik ein?
Helmut Balzert
5. Methoden
Zusammenfassung
An was denken Sie, wenn Sie hören, dass eine Person »methodisch« arbeitet?
Helmut Balzert
6. Werkzeuge
Zusammenfassung
Software ist Werkstoff und Werkzeug zugleich in der Softwareentwicklung. Softwareentwicklungswerkzeuge sind Programme, die die Entwicklung von Software unterstützen. Dieses Kapitel gibt einen Überblick über Softwareentwicklungswerkzeuge, diskutiert Kriterien und Verfahren bei der Auswahl geeigneter Werkzeuge, stellt integrative Lösungen kooperierender Werkzeuge in Form von integrierten Entwicklungsumgebungen vor und beschreibt Potenziale und Risiken des aktuellen Trends hin zur modellgetriebenen Softwareentwicklung:
  • »Menschen, Methoden, Werkzeuge«, S. 59
  • »Klassifikation von Werkzeugen«, S. 60
  • »Integrierte Entwicklungsumgebungen«, S. 76
  • »Modellgetriebene Entwicklung«, S. 79
  • »Auswahlkriterien bei der Anschaffung von Werkzeugen«, S. 87
  • »Evaluationsverfahren für die Anschaffung«, S. 90
[FMP+87]
Helmut Balzert

Basiskonzepte

Frontmatter
7. Fallstudie: SemOrg — Die Spezifikation
Zusammenfassung
Um die verschiedenen Techniken und Konzepte zu veranschaulichen, wird eine kaufmännische Fallstudie SemOrg (für Seminar-organisation) durchgängig verwendet und referenziert. Das folgende Lastenheft und Pflichtenheft verwendet nur natürlichsprachliche Anforderungen zur Festlegung der Anforderungen. Der Aufbau von Lasten- und Pflichtenheft ist im Kapitel »Schablonen für Lastenheft, Pflichtenheft und Glossar«, S. 492, erklärt. Fachbegriffe werden in einem Glossar definiert (siehe unten). TBD steht für To be definied — muss noch definiert werden bzw. To be determined — muss noch festgelegt werden.
Helmut Balzert
8. Fallstudie: Fensterheber — Die Spezifikation
Zusammenfassung
Um die verschiedenen Techniken und Konzepte beim Einsatz für softwareintensive Systeme zu veranschaulichen, wird eine Fallstudie Fensterheber (Türsteuergerät für einen Fensterheber) durchgängig verwendet und referenziert. Das folgende Lastenheft und Pflichtenheft verwendet nur natürlichsprachliche Anforderungen zur Festlegung der Anforderungen. Der Aufbau von Lasten- und Pflichtenheft ist im Kapitel »Schablonen für Lastenheft, Pflichtenheft und Glossar«, S. 492 erklärt. Fachbegriffe werden in einem Glossar definiert (siehe unten).
Helmut Balzert
9. Statik
Zusammenfassung
Unter der Statik eines Systems wird die stabile Struktur eines Systems verstanden. Eine Struktur gibt die Anordnung der Teile eines Ganzen zueinander an (siehe »Prinzip der Strukturierung«, S. 34). Eine statische Struktur beschreibt dementsprechend die Anordnung der Teile eines Ganzen, die sich über die Zeit hinweg, z. B. während der Laufzeit des Softwaresystems, nicht ändert.
Helmut Balzert
10. Dynamik
Zusammenfassung
Unter der Dynamik eines Softwaresystems werden sein Verhalten und seine Veränderungen während der Laufzeit des Systems verstanden. Während der Laufzeit kann eine dynamische Struktur entstehen oder sich verändern. Die Basiskonzepte zur Dynamik lassen sich in fachliche Aspekte und in zeitliche Aspekte gliedern.
Helmut Balzert
11. Logik
Zusammenfassung
Neben statischen Strukturen und dynamischen Abläufen zwischen Systemkomponenten gibt es noch logische Abhängigkeiten, die unabhängig von der Statik und der Dynamik immer gelten. Solche logischen Abhängigkeiten können auf verschiedene Art und Weise formuliert werden. Mit Hilfe der Logik ist es auch möglich, Schlüsse zu ziehen, Widersprüche zu erkennen und Vollständigkeiten zu prüfen. Im Bereich der Programmierung können mit Hilfe der Logik Programme verifiziert werden.
Helmut Balzert

Requirements Engineering

Frontmatter
12. Problem vs. Lösung
Zusammenfassung
Anforderungen legen fest, welche Eigenschaften ein zu entwickelndes Softwaresystem besitzen soll. Sie beschreiben also das Problem, das gelöst werden soll. Die Lösung des Problems, d. h. das »Wie« ist die fachliche Lösung. Die fachliche Lösung wiederum stellt das Problem für die technische Lösung dar usw. Die Abb. 12.0-1 veranschaulicht die verschiedenen Sichtweisen.
Helmut Balzert
13. Bedeutung, Probleme und Best Practices
Zusammenfassung
Es gibt eine Vielzahl von Untersuchungen darüber, wie erfolgreich oder nicht erfolgreich Softwareprojekte waren und sind. Eine berühmte Untersuchung, die immer wieder zitiert wird, ist der CHAOS-Report von 1994 [Stan94]. In diesem Report wird gesagt, dass 31 Prozent aller Softwareprojekte vor der Fertigstellung abgebrochen werden. Dieser Report wurde wegen fehlender Transparenz, nicht offen gelegter Methodik und anderer Mängel kritisiert.
Helmut Balzert
14. Aktivitäten und Artefakte
Zusammenfassung
Im Rahmen einer Softwareentwicklung müssen Aktivitäten durchgeführt werden, die zu Ergebnissen — im Folgenden Artefakte (artifacts) genannt — führen. Eine Aktivität wird durch Mitarbeiter ausgeführt, die definierte Rollen einnehmen. Unter Beachtung von Methoden, Richtlinien, Konventionen, Checklisten und Schablonen wird — ausgehend von einem oder mehreren gegebenen Artefakten oder Informationen — ein neues Artefakt erstellt oder der Zustand oder der Inhalt gegebener Artefakte geändert. Für die Durchführung der Aktivität werden in der Regel vom Softwaremanagement vorgegebene Werkzeuge eingesetzt (Abb. 14.0-1).
Helmut Balzert
15. Der Requirements Engineering-Prozess
Zusammenfassung
In großen Unternehmen und Softwarehäusern ist die Softwareent-Wicklung eingebettet in die Unternehmens- und Produktstrategie. Der Weg von einer Idee hin zu einem Produkt besteht aus vielen Schritten, in denen Annahmen gemacht, geprüft und substanziiert werden. Aus vielen ursprünglichen Ideen und Visionen werden am Ende nur einzelne wenige Produkte entwickelt. Dies liegt an den stark steigenden Kosten, sobald Entwicklungsprojekte und das begleitende Marketing gestartet werden. Man versucht innerhalb der Strategieentwicklung daher, möglichst viele Ideen frühzeitig zu bewerten und nur für jene mit großem Potenzial die Entwicklung zu starten. Die Abb. 15.0-1 zeigt diese Entwicklung vom Ideenmanagement hin zum konkreten Portfolio von Produkten.
Helmut Balzert
16. Anforderungen und Anforderungsarten
Zusammenfassung
Bevor ein Softwaresystem entwickelt werden kann, muss festgelegt werden, welche Anforderungen es erfüllen soll.
Helmut Balzert
17. Anforderungen an Anforderungen
Zusammenfassung
Welche Anforderungen würden Sie an jede einzelne Anforderung stellen?
Helmut Balzert
18. Anforderungsattribute
Zusammenfassung
Zu jeder Anforderung sind Attribute zu dokumentieren, die bei der Anforderungserfassung eingetragen oder im Laufe des Requirements Engineering ergänzt werden. Erfolgt die Anforderungsdokumentation werkzeuggestützt, dann kann auf die Angabe der Attribute hingewiesen werden bzw. können Voreinstellungen vorgenommen werden. Bei der Verwendung von Textsystemen können Anforderungsschablonen verwendet werden. Die Attribute hängen teilweise von der Anforderungsart ab.
Helmut Balzert
19. Natürlichsprachliche Anforderungen
Zusammenfassung
In den meisten Fällen werden Anforderungen in natürlicher Sprache formuliert.
Helmut Balzert
20. Anforderungsschablonen
Zusammenfassung
Anforderungsspezifikationen lassen sich gliedern in:
  • Spezifikationen ohne festgelegte Regeln,
  • Spezifikationen mit nummerierten oder markierten Anforderungen,
  • Spezifikationen mit festgelegten Gliederungsschemata. Die beiden letzten Formen können kombiniert verwendet werden.
Helmut Balzert
21. Anforderungen ermitteln und spezifizieren
Zusammenfassung
Bevor mit der Ermittlung der Anforderungen begonnen werden kann, muss zunächst geklärt werden, wer die Anforderungen stellt. Es reicht nicht aus, nur den Auftraggeber, d. h. den der bezahlt, zu befragen. Die erste Aktivität muss daher darin bestehen, die Stakeholder zu identifizieren und einzubinden.
Helmut Balzert
22. Anforderungen analysieren, validieren und abnehmen
Zusammenfassung
Jedes Artefakt einer Softwareentwicklung ist einer Qualitätsüberprüfung zu unterziehen, bevor es für weitere Entwicklungaktivitäten verwendet wird. Dies gilt insbesondere für die Anforderungsspezifikation, da sie die Basis für alle weiteren Entwicklungsaktivitäten bildet. Eine Überprüfung besteht aus zwei Schritten:
  • Analyse der Anforderungsspezifikation
  • Validation der Anforderungsspezifikation
Helmut Balzert
23. Schätzen des Aufwands
Zusammenfassung
Für jede Softwareentwicklung stellt sich die Frage, wie groß der Aufwand sein wird. In Abhängigkeit davon kann eine Entwicklung begonnen oder auch gestoppt werden — bevor weiterer Aufwand entsteht.
Helmut Balzert
24. Anforderungen priorisieren
Zusammenfassung
Bei der Anforderungsermittlung werden in der Regel viele Anforderungen aufgestellt. Aber nicht jede Anforderung ist gleich wichtig.
Helmut Balzert
25. Anforderungen modellieren
Zusammenfassung
Ausgehend von der abgenommenen Anforderungsspezifikation kann ein Requirements Engineering-Team die fachliche Lösung erarbeiten. Die fachliche Lösung muss folgende Anforderungen erfüllen:
  • Korrekte Umsetzung der Anforderungen
  • Vollständige Umsetzung der Anforderungen
  • Referenzierung der Anforderungen
  • Präzise, eindeutige und konsistente Formulierung der fachlichen Lösung: Die Präzision muss einen Grad an Formalität haben, sodass zumindest Teile davon automatisch mit Generatoren in eine technische Lösung und eine Implementierung umgesetzt werden können.
In der Regel wird eine fachliche Lösung — auch Produktmodell oder Anwendungsmodell genannt — erstellt.
Helmut Balzert
26. Fallstudie: SemOrg V1.0 — Die fachliche Lösung
Zusammenfassung
Unter Einsatz der Basiskonzepte (»Basiskonzepte«, S. 99) ergibt sich auf der Grundlage des Pflichtenheftes und des Glossars (siehe »Fallstudie: SemOrg — Die Spezifikation«, S. 107) folgende fachliche Lösung, gegliedert in die Bereiche:
  • Statik
  • Dynamik
  • Logik
Visionen und Ziele werden nicht nochmals aufgeführt, da sie nicht weiter formalisierbar sind. Ein Konzept für die Benutzungsoberfläche ist noch nicht enthalten. Es ist nur die Ausbaustufe 1 (SemOrg V1.0 — Kern) modelliert.
Helmut Balzert
27. Fallstudie: Fensterheber — Die fachliche Lösung
Zusammenfassung
Auf der Grundlage des Pflichtenheftes der Fallstudie Fensterheber (»Fallstudie: Fensterheber — Die Spezifikation«, S. 117) wird hier die entsprechende fachliche Lösung beschrieben. Sie ist in die folgenden Bereiche gegliedert:
  • Statik
  • Dynamik und Logik
Die Softwarefunktion »Fensterheber« ist Teil des eingebetteten Systems »Türsteuergerät«. Die Funktionalität »Fensterheber« implementiert die elektrische Hebefunktion aller im Fahrzeug befindlichen Seitenfenster. Da sich die in der Software zu realisierenden Aufgaben für jedes einzelne Seitenfenster ähneln, wird im Folgenden repräsentativ die Software für das Fenster der Fahrertür betrachtet.
Helmut Balzert
28. Modellierte Anforderungen analysieren, verifizieren und abnehmen
Zusammenfassung
Die fachliche Lösung bzw. das Produktmodell bildet den Ausgangspunkt für die Erstellung der Softwarearchitektur. Jeder Fehler in der fachlichen Lösung muss mit überproportionalem Aufwand behoben werden, wenn er nicht schon im Produktmodell, sondern erst später gefunden wird. Die kostengünstigste Qualitätssicherung liegt also vor, wenn die fachliche Lösung mit allen begleitenden Artefakten überprüft wird. Eine Überprüfung besteht aus zwei Schritten:
  • Analyse der fachlichen Lösung
  • Verifikation der fachlichen Lösung
Helmut Balzert
Backmatter
Metadaten
Titel
Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering
verfasst von
Prof. Dr. Helmut Balzert
Copyright-Jahr
2009
Verlag
Spektrum Akademischer Verlag
Electronic ISBN
978-3-8274-2247-7
Print ISBN
978-3-8274-1705-3
DOI
https://doi.org/10.1007/978-3-8274-2247-7