Ekbert Hering Software-Engineering
Reihe Informationstechnik Herausgegeben von Dr. Harald Schumny Die Fachbuchreihe Informationstechnik richtet sich an Studierende und Lehrende der Fachschulen Technik und Fachhochschulen. Die Bände dieser Reihe sind formal, inhaltlich und in ihrem didaktischen Aufbau aufeinander abgestimmt und verzahnt. Sie sollen das Lernen in einem Lernsystem ermöglichen: Der Leser kann diese Reihe entsprechend seinem Bildungsstand und Bildungsziel nutzen, indem er Einzelbände der Reihe auswählt, da mit jedem Buch unabhängig von anderen Büchern der Reihe gearbeitet werden kann, die Bücher parallel oder aufeinanderfolgend einsetzt, da die Bücher gekennzeichnet sind durch gleichen Aufbau, gleiche Bezeichnungsweise und Kapitelverweise auf andere Bände der Reihe. Besonderer Wert wird auf eine umfassende Vermittlung des jeweiligen Grundlagenwissens gelegt. Entsprechend dem Unterricht an Fachschulen und den Ausbildungszielen für Ingenieurstudenten wird der Stoff anschaulich und anwendungsnah dargestellt. jedes Lehrbuch enthält zahlreiche Bilder, Zeichnungen, Tabellen und viele Beispiele aus der Praxis. Kurze Zusammenfassungen der einzelnen Abschnitte, Hervorhebung wichtiger Merksätze, Literaturverweise und Aufgaben unterstützen den Studierenden wirkungsvoll beim Durcharbeiten des Lehrstoffes. Bereits erschienen sind folgende Bände: Datenverarbeitung Programmierung Mikrocomputer Harald Schumny Wolfgang Schneider j örg Zschocke Digitale Datenverarbeitung FORTRAN Mikrocomputer für das technische Studium Einführung für Techniker Aufbau und Anwendungen Übertragungstechnik Wolfgang Schneider Rainer Kassing Harald Schumny Signalübertragung Lehrbuch für Nachrichtentechnik und Datenfernverarbeitung BASIC Einführung für Techniker Wolfgang Schneider PASCAL Einführung für Techniker Ekbert Hering Software-Engineering Mikrocomputer Struktur und Arbeitsweise
Ekbert Hering Software-Engineering Mit 77 Bildern und 22 Übungsaufgaben Springer Fachmedien Wiesbaden GmbH
CIP-Kurztitelaufnahme der Deutschen Bibliothek Hering, Ekbert: Software engineering/ekbert Hering. - Braunschweig; Wiesbaden: Vieweg, 1984. (Viewegs Fachbiicher der Technik: Reihe 1 nformationstechnik) ISBN 978-3-528-04284-4 DOI 10.1007/978-3-322-86222-8 ISBN 978-3-322-86222-8 (ebook) 1984 Afle Rechte vorbehalten Springer Fachmedien Wiesbaden 1984 UrsprOnglich erschienen bei Friedr. Vieweg & Sohn Verlagsgesellschaft mbh, Braunschweig 1984 Softcover reprint of the hardcover 1 st edition 1984 Die V e r v i e l fund l t Obertragung i g u n g einzelner Textabschnitte, Zeichnungen oder Bilder, auch fiir Zwecke der Unterrichtsgestaltung, gestattet das Urheberrecht nur, wenn sie mit dem Verlag vorher vereinbart wurden. lm Einzelfall mus iiber die Zahlung einer Gebiihr fiir die Nutzung fremden geistigen Eigentums entschieden werden. Das gilt fiir die V e r v i e l fdurch l t ialle g u Verfahren n g einschliesiich Speicherung und jede Obertragung auf Papier, Transparente, Filme, B n dplatten e r, und andere Medien. O ieser Vermerk umfast nicht die in den 53 und 54 URG ausdriicklich e r w hausnahmen. n t e n Umschlaggestaltung: Hanswerner Klein, Leverkusen
V Vorwort Die Kosten zur Erstellung von Software steigen im Vergleich zu den Hardwarekosten ständig. Um die wachsenden Anwenderansprüche zu befriedigen und mit dem rapiden technischen Fortschritt im Hardwarebereich Schritt halten zu können, wurde eine eigene Ingenieurdisziplin "Software-Engineering" notwendig. Das ingenieurmäßige Vorgehen soll sicherstellen, daß die Software-Herstellung termingerecht, kostengünstig, rationell und qualitätsbewußt geschieht. Software-Engineering ist ein ganz junges Gebiet der Informationswissenschaft. Deshalb sind die meisten Werke über diesen Bereich von der wissenschaftlichen Diskussion geprägt und im Anspruchsniveau relativ hoch. Für viele in der Programmierpraxis stehende Personen fehlt ein Lehrbuch einfacheren Charakters, das die Methoden und Hilfsmittel für die besonders wichtigen und kostenintensiven Phasen Entwurf und Test beschreibt. ln diese Lücke möchte dieses Buch stoßen. Aus der Fülle der in der Literatur vorgeschlagenen Methoden wurden diejenigen ausgewählt, die einerseits auf Grund ihrer systematischen Vorgehensweise besonders effizient sind und die andererseits wegen ihrer leichten Lernbarkeit und Einsetzbarkeit in der Praxis am häufigsten und erfolgreichsten Anwendung finden. Aus Gründen der Klarheit wurde auf eine eingehende Problematisierung der vorgestellten Methoden verzichtet. Der an einer kritischen Hinterfragung interessierte Leser sei auf das ausführliche Literaturverzeichnis verwiesen. Das vorliegende Buch wendet sich an berufsmäßige Software-Entwickler und in den DV-Abteilungen für die Programmerstellung verantwortlichen Mitarbeiter, an die von DV-Lösungen unmittelbar betroffenen Personen, an Lernende und Studierende in den Fächern lnformationsverarbeitung, sei es als Schüler in staatlichen oder berufsfortbildenden Einrichtungen oder als Studenten in technischen, betriebswirtschaftliehen oder speziellen informationstechnischen Studiengängen an Fachhochschulen oder Universitäten und auch an das Heer der Hobbyprogrammierer, die der Verfasser dringend ermuntern möchte, von Anfang an diese Methoden zu verwenden und sich keinen allzu individuellen Programmierstil anzueignen. Mit dem ersten Kapitel wird der Leser in die Thematik des Software-Herstellungsprozesses eingeführt, erkennt die Notwendigkeit eines Software-Engineerings und erfahrt dessen Aufgaben, Prinzipien, Methoden und Instrumente.
VI Vorwort Das zweite bis achte Kapitel erklären die wichtigsten Methoden zur Unterstützung der Software-Phasen Entwurf und Test: HIPO (Hierarchy plus Input Process Output) Entscheidungstabellen nach DIN 66241 Programmablaufpläne nach DIN 66001 Struktogramme nach Nassi/Shneiderman und Pseudocodes Petri-Netze Datenflußpläne nach DIN 66001 Datenorientierte Entwürfe nach jackson. Jede Methode wird nach dem gleichen Schema behandelt: Beschreibung der Methode verwendete Symbole Vorgehensweise Beispiel Vor- und Nachteile Übungsaufgaben. Dies ermöglicht den Lesern unterschiedlicher Vorbildung und verschiedener Interessen einen schnellen und gezielten Lernerfolg. Im neunten Kapitel werden diese Methoden in ihren Stärken und Schwächen bewertet und die geeigneten Einsatzfelder aufgezeigt. Das zehnte Kapitel gibt einen Überblick über rechnerunterstützte Werkzeuge (Software Tools) bei der Software-Herstellung. Dabei wurde der Verfasser von Mitarbeitern einiger Firmen unterstützt: P. Barski (AiD), H. Hempfling (Philips}, K. H. Herrmann (Softlab}, H. Krüger (Siemens} und M. Reisiger (IBM). Ein ganz besonderer Dank gilt den Herren P. Graubmann (Siemens Softwaretechnik) und E. Wams/er (Bosch-Siemens-Hausgeräte-GmbH) für ihre besonders intensive Unterstützung und Beratung in Fragen der Petri-Netz-Erstellung bzw. strukturierten Programmierung mit COLUMBUS sowie rechnerunterstützter Netzplanerstellung mit SINET. Das Schlußkapitel ist den Fragen eines optimalen Projekt-Managements bezüglich Zeit, Kosten und Personal gewidmet und zeigt geeignete Kontrollmechanismen auf. Im Anhang befinden sich die Lösungen zu den Übungsaufgaben. Ein ausführliches Glossar dient zur terminologischen Klärung Software-spezifischer Fachausdrücke und kann als Nachschlagewerk verwendet werden. Der Verfasser möchte sich beim Herausgeber der Reihe Informationstechnik in der Reihe Vieweg Fachbücher der Technik, Herrn Dr. Harald Schumny, recht herzlich für die sachkundige und zügige Lektorierung des Werkes bedanken. Dem Vieweg Verlag schließlich ist der Verfasser für die reibungslose und angenehme Zusammenarbeit sowie für die schnelle Drucklegung zu Dank verpflichtet. Heubach, Januar 1984 Ekbert Hering
VII Inhaltsverzeichnis 1 Einführung.... 1 1 Das Wesen von Software.... 1.2 Anforderungen an Software.... 1.2.1 Benutzerakzeptanz.................................. 1 1.2.2 Ausbaufähigkeit.................................... 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..................... 3 1.3.3 Aufgaben des Software-Engineering....................... 7 1.4 Prinzipien, Methoden und Instrumente des Software-Engineering........ 8 1.4.1 Prinzipien des Software-Engineering....................... 8 1.4.2 Methoden und Instrumente des Software-Engineering........... 8 2 Die HIPO-Methode......................................... 11 2.1 Beschreibung der Methode................................. 11 2.2 Verwendete Symbole.................................... 11 2.3 Vorgehensweise........................................ 12 2.4 Beispiel.............................................. 13 2.5 Vor- und Nachteile der HIPO-Methode......................... 16 2.5.1 Vorteile......................................... 16 2.5.2 Nachteile........................................ 16 2.6 Übungsaufgaben........................................ 17 3 Entscheidungstabelle nach DIN 66241............................ 18 3.1 Beschreibung der Methode................................. 18 3.2 Verwendete Symbole.................................... 20 3.3 Vorgehensweise........................................ 21 3.4 Beispiele............................................. 21 3.4.1 Beispiel aus dem täglichen Leben: Verkehrsverhalten an einer Kreuzung mit Ampelregelung......... 22 3.4.2 Verarbeitung von Meßwerten........................... 23 3.4.3 Steuerung einer Waschmaschine.......................... 23 3.5 Vor- und Nachteile...................................... 24 3.5.1 Vorteile......................................... 24 3.5.2 Nachteile........................................ 25 3.6 Übungsaufgaben........................................ 25
VIII Inhaltsverzeichnis 4 Programmablaufplan nach DIN 66001............................ 26 4.1 Beschreibung der Methode................................. 26 4.2 Verwendete Symbole (Din 66001)............................ 26 4.3 Vorgehensweise........................................ 26 4.4 Beispiele............................................. 29 4.4.1 Verarbeitung von Meßwerten nach Beispiel 3.4.2.............. 29 4.4.2 Sortieren von beliebig vielen Zahlen....................... 32 4.4.3 Prüfen von Dreiecken auf Rechtwinkligkeit nach Aufgabe 3.6.2..... 34 4.5 Vor- und Nachteile...................................... 34 4.5.1 Vorteile......................................... 34 4.5.2 Nachteile........................................ 34 4.6 Übungsaufgaben........................................ 34 5 Struktogramm nach Nassi/Shneiderman und Pseudocode............... 35 5.1 Beschreibung der Methode................................. 35 5.1.1 Strukturierte Programmierung........................... 35 5.1.2 Beschränkung der Strukturblöcke........................ 35 5.1.3 Prinzip der Zweipoligkeit.............................. 36 5.2 Verwendete Symbole und elementare Strukturblöcke im Struktogramm und im Pseudocode............................ 37 5.3 Vorgehensweise........................................ 37 5.4 Beispiele............................................. 37 5.4.1 Verarbeitung von Meßwerten nach Beispiel 3.4.2.............. 37 5.4.2 Sortieren beliebig vieler Zahlen nach Beispiel 4.4.2............. 37 5.4.3 Prüfen von Dreiecken auf Rechtwinkligkeit nach Beispiel 4.4.3.................................. 40 5.5 Vor- und Nachteile...................................... 45 5.5.1 Vorteile......................................... 45 5.5.2 Nachteile........................................ 45 5.6 Übungsaufgaben........................................ 45 6 Petri-Netz.............................................. 46 6.1 Beschreibung der Methode................................. 46 6.2 Verwendete Symbole und Konstruktionsregeln................... 47 6.3 Vorgehensweise... :............ 50 6.4 Beispiele............................................. 50 6.4.1 Bearbeitung einer Bestellung nach Übungsaufgabe 3.6.3.......... 50 6.4.2 Darstellung einer Blockierung am Beispiel des Hauptmann von Köpenick-Problems....................... 53 6.4.3 Echtzeitproblem eines Meßverfahrens...................... 53 6.5 Vor- und Nachteile...................................... 55 6.5.1 Vorteile......................................... 55 6.5.2 Nachteile........................................ 55 6.6 Übungsaufgaben........................................ 55
Inhaltsverzeichnis IX 7 Der Datenflußplan nach DIN 66001 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 01 Beschreibung der Methode o o o o 0 o o o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o o 0 702 Verwendete Symbole (DIN 66001) o o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o o 0 56 56 56 7 o3 Vorgehensweise o o o o o o o o o o o o o o o o o o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o 0 56 7 o4 Beispiele 0 0 0 0 0 0 0 0 0 0 0 o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 58 7.401 Erstellen eines Auftragsbandes o o o o o o o 0 o 0 o 0 0 0 0 0 0 0 0 0 0 0 o o o o 70402 Rechnungsschreibung nach Beispiel 2.4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7o4o3 Abwicklung des Zahlungsverkehrs über ein Girokonto 0 0 0 0 0 0 0 0 0 0 o 7o5 Vor- und Nachteile o o o 0 o o o o o o o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 58 60 60 61 7o5o1 Vorteile o o 0 o 0 0 o o o o 0 0 o o o o o 0 o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 70502 Nachteile 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 7 o6 Übungsaufgaben 0 0 o o 0 0 o 0 o o o o o o o o o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 8 Datenorientierte Software-Erstellung nach jackson o 0 0 0 0 0 0 o 0 0 0 0 0 0 0 0 0 0 0 0 8o1 Beschreibung der Methode o o o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 802 Verwendete Symbole o 0 o o 0 o 0 o o o o o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 63 63 64 8o3 Vorgehensweise 0 0 0 0 o 0 0 0 0 o 0 o o o o o 0 o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o o 65 8o4 Beispiele 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 66 8.401 Lieferscheinschreibung mit Vollständigkeitskontrolle 0 0 0 0 0 o 0 o 0 0 0 8.402 Rechnungserstellung nach Beispiel 2.4 0 o 0 0 0 0 0 0 0 0 0 0 0 0 0 o 0 o 0 o o 8o5 Vor- und Nachteile o 0 o 0 o o o o 0 o o o o o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o 67 68 70 8o5o1 Vorteile 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 71 8o5o2 Nachteile 0 o o 0 o 0 o o o o o o o o o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 o 0 0 0 0 0 71 8o6 Übungsaufgaben 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 71 9 Bewertung der Software-Herstellungsmethoden 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 901 Bewertung nach qualitativen Kriterien o o 0 o o o o 0 o o o o o o o o o o o o o o o o o 73 73 9.2 Problemstrukturen o o o o o o o o o o o o o o 0 o 0 0 o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 903 Unterstützung in den Phasen des Software-Lebenszyklus 75 76 10 Rechnerunterstützte Software-Herstellung (Software-Tools) 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Oo1 Rechnerunterstützte HIPO-Methode. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 Oo2 Rechnerunterstützter Methodenverbund: 77 77 Entscheidungstabelle, Struktogramme und Pseudocode 0 o 0 0 0 0 0 0 0 0 0 0 78 100201 Software-Tool COLUMBUS und Toolmanager (TOM), (SIEMENS, BS 2000) o o 0 o o o o o o o o o o o o o 0 0 o 0 o 0 0 0 79 100202 Software-Tool PET-MAESTRO (PHILIPS/Softlab) o o 0 o o 0 o 0 o 0 81 10o2o3 Software-Tool CEPIX-E: Struktogramm-Editor für Tischrechner (AiD) 0 o 0 o o 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 10.3 Rechnerunterstützter Petri-Netz-Entwurf mit PES (Petrinetz-Entwicklungs-System von SIEMENS) o o o o o o o o o o o 0 0 0 90 10.4 Sichtbarmachen von Hierarchien und Netzen durch Diagonaldarstellungen (AURUM von SIEMENS) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96
X Inhaltsverzeichnis 11 Aufwandschätzung und Projektführung........................... 98 11.1 Aufwandschätzung.................................... 98 11.1.1 Analogie- und Phasenprozentsatz-Verfahren............... 100 11.1.2 Codierzeilen-Verfahren............................ 100 11.1.3 Normkurven-Verfahren............................ 1 01 11.2 Planung, Steuerung und Überwachung des Software- Erstellungsprozesses mit Hilfe der Netzplantechnik............... 102 11.2.1 Beschreibung der Methode der Netzplantechnik (DIN 69 900)... 102 11.2.2 Beispiel eines Software-Entwicklungsprojektes mit Hilfe des rechnergestützten Netzplanmodells SINET............. 103 12 Glossar................................................ 1 08 Literaturverzeichnis.......................................... 110 Lösungen zu den Übungsaufgaben................................. 111 Sachwortverzeichnis.......................................... 127