Ekbert Hering Software-Engineering
Aus dem Programm Informationstechnik Digitale Datenverarbeitung fiir das technische Studium H. Schumny Signaliibertragung H. Schumny Datenfemiibertragung P. Welzel Datenkommunikation D. Conrads PC Praxis H. Schumny LAN Lokale PC5Netzwerke H. Schumny (Hrsg.) ProzeBrechner5Strukturen W. Motsch Assemblerprogrammierung mit dem M 68 000 K. Kief Rechnerstrukturen und Rechnerarchitekturen B. Bundschuh und P. Sokolowsky Einfuhrung in die Methode des Jackson-Structured Programming K. Kilberth '---- Vieweg ---------------------'
Ekbert Hering Software-Engineering 2., verbesserte und vollig neu bearbeitete Auflage Mit 142 Bildem und 25 Dbungsaufgaben mit Losungen Herausgegeben von Harald Schumy Springer Fachmedien Wiesbaden GmbH
CIP-Titelaufnähme der Deutschen Bibliothek Hering, Ekbert: Software engineering/ekbert Hering. Hrsg. von Harald Schumny. 2., verb. u. völlig neubearb. Aufl. Braunschweig; Wiesbaden: Vieweg, 1989 (Viewegs Fachbücher der Technik) ISBN 978-3-528-24284-8 Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor übernimmt infolgedessen keine Verantwortung und wird keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. 1. Auflage 1984 1. Nachdruck 1985 2. Nachdruck 1987 3. Nachdruck 1988 2., verbesserte und völlig neu bearbeitete Auflage Alle Rechte vorbehalten Springer Fachmedien Wiesbaden, 1989 Ursprünglich erschienen bei Friedt Vieweg & Sohn Verlagsgesellschaft mbh, Braunschweig in 1989 Das Werk einschließlich aller seiner Teile ist urheberrechdich geschützt. Jede Verwertung außerhalb der engen Grnezen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Obersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Hanswerner Klein, Leverkusen Satz: Vieweg, Braunschweig ISBN 978-3-528-24284-8 DOI 10.1007/978-3-663-12366-8 ISBN 978-3-663-12366-8 (ebook)
v Vorwort zur zweiten Auflage Wenn ein Buch iiber Software-Engineering sich trotz des rapiden Wandels der Erkenntnisse in diesem jungen Gebiet, der schnellen Weiterentwicklung der Methoden und einer Vielzahl in zwischen erschienener Biicher zum Thema Software-Engineering fiinf Jahre lang grober Beliebtheit erfreut, dann ist das ein Zeichen dafiir, dab unsere Leser dankbar waren, die Methoden einfach und klar beschrieben zu erhalten, urn sie an ausgewahlten Beispielen nachhvollziehen zu kannen. Dem Leser, der sich in die eine oder andere Methode griindlicher einarbeiten wollte, bot die angegebene Literatur dazu die Maglichkeit. Gerne haben Autor, Herausgeber und Verlag den Wunsch ihrer Leser erfiillt, dieses Werk griindlich zu iiberarbeiten, ohne an Klarheit einzubiiben. Deshalb haben wir das Schema der Beschreibung der Methoden beibehalten und die Literaturhinweise auf den aktuellen Stand gebracht. Bei der Auswahl der Methoden haben wir uns auf diejenigen beschrankt, die auch als rechnergestiitzte Software-Entwicklungswerkzeuge eingesetzt werden. 1m einzelnen handelt es sich urn folgende Methoden: Hierarchische Funktionsgliederung Entscheidungstabelle nach DIN 66241 Programmablaufplan nach DIN 66001 Struktogramm nach DIN 66261 und Pseudocode Datenstrukturen und DatenfluBplan nach DIN 66001 SA und SADT Jackson Strukturierte Programmierung Petri-Netze Neu hinzugekommen sind eine ausfiihrliche Beschreibung der Datenstrukturen (Kapitel 6), die Methode SA/SADT (Kapitel 8) sowie im Kapitel 7 eine ausfiihrliche Darlegung der prinzipieller Vorgehensweise zur Programmerstellung. Dies schien uns erst sinnvoil, nachdem einige wichtige Methoden der Programmerstellung und des Entwerferns von Datenstrukturen behandelt waren. Auf eine Bewertung der einzelnen Methoden haben wir ebenso wenig verzichtet wie auf die Vorstellung von Verfahren zur Aufwandschatzung und Projektmanagement. AIle Kapitel wurden den neuesten Erkenntnissen entsprechend umgestaltet, das Glossar wurde verbessert und erweitert, so dab die zweite Auflage - von wenigen Ausnahmen abgesehen - ein neues Buch darstellt. Zu danken hat der Verfasser allen seinen zahlreichen Teilnehmern der Technischen Akademie Aalen, die im Seminar iiber Software Engineering kritische Zuharer waren, sowie seinem Kollegen Prof. Dr. D. Schaffler, dessen Vorschlage zu wesentlichen Verbesserungen beitrugen. Unterstiitzt wurde der Autor wieder von Mitarbeitern einer Reihe namhafter Software-Hauser, die ihm Vorlagen fur die rechnerunterstiitzte Software Erstellung lieferten. Es sind dies: D. Dyllong und H. Stevens (PSI), W. Mauelshagen (mbp), P. Barski (AiD), L. Fornasiero und U. Zindler (SCS), C. Kapteina (ExperTeam) und K. H. Herrmann (Softlab). Mage dieses Buch in der zweiten Auflage fiir die berufsmabigen Software-Entwickler, fiir die Mitarbeiter in den Fach- und DV-Abteilungen, den Lehrenden und Lernenden sowie dem Heer der Hobbyprogrammierer Ansatze geben, dab sie ihre Aufgaben noch effizienter und qualitatsorientierter zum Wohle der Anwender erfiillen kannen. Heubach, Januar 1989 Ekbert Hering
VI Inhaltsverzeichnis 1 Einfiihrung... 1 1.1 Das Wesen von Software... 1 1.2 Anforderungen an Software... 1 1.2.1 Benutzerakzeptanz... 1 1.2.2 Ausbaufiihigkeit... 3 1.3 Notwendigkeit einer systematischen Entwicklung von Software durch Software-Engineering... 3 1.3.1 Wirtschaftliche Bedeutung von Software im Vergleich zur Hardware........ "................... 3 1. 3.2 Das Dilemma der Software-Herstellung... 4 1.3.3 Aufgaben des Software-Engineering.................... 7 1.4 Prinzipien, Methoden und Instrumente des Software-Engineering... 7 1.4.1 Prinzipien des Software-Engineering... 7 1.4.2 Methoden und Instrumente des Software-Engineering........ 8 2 Hierarchische Funktionsgliederung... 11 2.1 Beschreibung der Methode............................... 11 2.2 Verwendete Symbole... 11 2.3 Vorgehensweise... 11 2.4 Beispiel... 12 2.5 Vor- und Nachteile.................................... 13 2.5.1 Vorteile... 13 2.5.2 Nachteile... 13 2.6 Obungsaufgaben... 13 3 Entscheidungstabelle nach DIN 66241... 14 3.1 Beschreibung der Methode............................... 14 3.2 Verwendete Symbole... 16 3.3 Vorgehensweise... 17 3.4 Beispiele... 17 3.4.1 Beispiel aus dem tiiglichen Leben: Verkehrsverhalten an einer Kreuzung mit Ampelregelung... 17 3.4.2 Verarbeitung von MeBwerten... 18 3.4.3 Steuerung einer Waschmaschine... 19 3.5 Vor- und Nachteile.................................... 20 3.5.1 Vorteile... 20 3.5.2 Nachteile... 21 3.6 Obungsaufgaben... 21 4 Programmablaufplan nach DIN 66001... 22 4.1 Beschreibung der Methode............................... 22 4.2 Verwendete Symbole (DIN 66001)...... 22 4.3 Vorgehensweise... 22
Inhaltsverzeichnis VII 4.4 Beispiele... 27 4.4.1 Verarbeiten von MeBwerten nach Beispiel 3.4.2... 27 4.4.2 Sortieren von beliebig vielen Zahlen... 27 4.4.3 Priifen von Dreiecken auf Rechtwinkligkeit nach Aufgabe 3.6.2... 28 4.5 Vor- und Nachteile.................................... 29 4.5.1 Vorteile... 29 4.5.2 Nachteile... 29 4.6 'Obungsaufgaben... 29 5 Struktogramme nach NassiiShneiderman (DIN 66261) und Pseudocode........................................ 30 5.1 Beschreibung der Methode............................... 30 5.1.1 Strukturierte Programmierung... 30 5.1.2 Beschrankung der Strukturblocke... 30 5.1.3 Prinzip der Zweipoligkeit... 31 5.2 Verwendete Symbole und elementare Strukturblocke im Struktogramm und im Pseudocode... 34 5.3 Vorgehensweise... 34 5.4 Beispiele... 36 5.4.1 Verarbeiten von MeBwerten nach Beispiel 3.4.2... 36 5.4.2 Sortieren beliebig vieler Zahlen nach Beispiel 4.4.2.......... 37 5.4.3 Priifen von Dreiecken auf Rechtwinkligkeit nach Beispiel 4.4.3... 38 5.5 Vor- und Nachteile.................................... 39 5.5.1 Vorteile... 39 5.5.2 Nachteile... 40 5.6 'Obungsaufgaben... 40 6 Datenstrukturen und DatenfluBplan nach DIN 66001... 41 6.1 Datenstrukturen... 41 6.2 Entwerfen stabiler Datenstrukturen......................... 43 6.3 Datenfelder und ihre Beziehungen.......................... 43 6.3.1 Assoziationen zwischen den Datenfeldern................ 43 6.3.2 Datengruppen... 44 6.3.3 Schlfissel... 45 6.3.4 Kanonische Datenstrukturen... 46 6.3.5 Organisation von Datenstrukturen..................... 48 6.4 DatenfluBplan nach DIN 66001... 50 6.4.1 Beschreibung der Methode.......................... 50 6.4.2 Verwendete Symbole (DIN 66001)... 50 6.4.3 Vorgehensweise................................. 52 6.4.4 Beispiele... 52 6.4.4.1 Erstellen eines Auftragsbandes... 52 6.4.4.2 Rechnungsschreibung nach Beispiel 2.2... 52 6.4.4.3 Abwickeln des Zahlungsverkehrs fiber ein Girokonto... 52 6.4.5 Vor- und Nachteile............................... 55 6.4.5.1 Vorteile... 55 6.4.5.2 Nachteile... 55 6.5 'Obungsaufgaben... 55
VIII Inhaltsverzeichnis 7 Prinzipielles Vorgehen zur Software-Erstellung... 56 7.1 Problemanalyse und Anforderungs-Definition... 56 7.1.1 Hierarchische Gliederung der Funktionselemente... 57 7.1.2 Beschreibung der Funktionselemente................... 57 7.1.3 Festlegen der Testfalle... 58 7.2 Entwurf... 58 7.2.1 Arten von Moduln... 59 7.2.2 Beziehung zwischen Programm-Moduln und Dateien (cross-reference)........................... 61 7.3 Implementierung... 61 7.4 Test... 61 7.5 Installation... 64 8 SA (Structured Analysis) und SADT (Structured Analysis and Design Technique)... 65 8.1 Beschreibung der Methode............................... 65 8.2 Verwendete Symbole... 66 8.3 Vorgehensweise... 67 8.3.1 Aufstellen des Aktivitatenmodells..................... 67 8.3.2 Aufstellen des Datenmodells... 67 8.3.3 Vergleich der beiden Modelle... 67 8.3.4 Zusammenstellung zusatzlicher Informationen... 67 8.4 Beispiel... 68 8.5 Vor- und Nachteile.................................... 68 8.5.1 Vorteile... 68 8.5.2 Nachteile... 81 8.6 Obungsaufgaben... 71 9 Jackson Strukturierte Programmierung OSP).................. 72 9.1 Beschreibung der Methode............................... 72 9.2 Verwendete Symbole... 74 9.3 Vorgehensweise... 74 9.4 Beispiele... 76 9.4.1 Lieferscheinbeschreibung mit Vollstandigkeitskontrolle... 77 9.4,2 Rechnungserstellung nach Beispiel 2.4... 78 9.5 Vor- und Nachteile.................................... 83 9.5.1 Vorteile... 84 9.5.2 Nachteile... 84 9.6 Obungsaufgaben... 84 10 Petri-Netze............................................. 85 10.1 Beschreibung der Methode............................... 85 10.2 Arten von Petri-Netzen... 86 10.2.1 Kanal-Instanzen-Netz... 86 10.2.2 Bedingungs-Ereignis-Netz... 87 10.2.3 Stellen-Transitions-Netz... 89 10.2.4 Pradikat-Transitions-Netz... 89 10.3 Vorgehensweise..................................... 91
Inhaltsverzeichnis IX 10.4 Beispiele... 96 10.4.1 Bearbeiten einer Bestellung... 92 10.4.2 Darstellung einer Blockierung am Beispiel des Hauptmann-von Kopenick-Problems... 94 10.4.3 Echtzeitproblem eines Megverfahrens... 95 10.4.4 Entwurf von Kontroll-Datenflug-Netzen... 95 10.5 Vor- und Nachteile.................................... 97 10.5.1 Vorteile... 98 10.5.2 Nachteile... 98 10.6 Ubungsaufgaben... 98 11 Bewertung der Methoden zur Software-Erstellung.............. 99 11.1 Bewertung nach allgemeinen Gesichtspunkten............... 100 11.2 Problemstrukturen... 100 11.3 Unterstiitzung in den Phasen des Software-Lebenszyklus 101 12 Rechnerunterstiitzte Software-Herstellung (Software-Tools)........................ 103 12.1 Hierarchische Funktions-Gliederung mit BOlE (PSI).............. 103 12.2 Entscheidungstabellen mit LlBELLE (mbp)... 103 12.3 Pseudocode und Struktogramm mit X-Tools (AiD)............... 109 12.4 DatenfluBplan mit Excelerator (AiD)........................ 110 12.5 SADT mit PRADOS (SCS)... 111 12.6 Jackson Strukturierte Programmierung mit Jackson Tools (ExperTeam)... 116 12.7 Petri-Netze mit PES (Siemens) und NET (PSI).................. 118 12.8 Verdeutlichen von Hierarchien und Netzen durch Diagonaldarstellungen (AURUM von SIEMENS)... 122 12.9 Projekt-Management mit MAESTRO (softlab).................. 123 13 Aufwandschitzung und Projektfiihrung...................... 126 13.1 Aufwandschatzung.................................... 126 13.1.1 Analogie- und Phasenprozentsatz-Verfahren... 128 13.1.2 Codierzeilen-Verfahren... 128 13.1.3 Sonstige Verfahren............................... 130 13.2 Planung, Steuerung und Uberwachung des Software- Erstellungsprozesses mit Hilfe der Netzplantechnik... 131 13.2.1 Beschreibung der Methode der Netzplantechnik (DIN 69900)................................... 131 13.2.2 Beispiel eines Software-Entwicklungsprojektes mit Hilfe des rechnergestiitzten Netzplanmodells SINET... 132 14 Glossar 139 Literaturverzeichnis... 142 Losungen zu den Obungsaufgaben 143 Sachwortverzeichnis........................................ 166