Table Of ContentW Jordan· H. Urban
Strukturierte
Programmierung
Einfiihrung in die Methode
und ihren praktischen Einsatz
zum Selbststudium
Springer-Verlag
Berlin Heidelberg New York 1978
Wolfgang Jordan
Dipl.-Kfm. Heinz Urban
Siemens AG, Schule fUr Datenverarbeitung, Munchen
Mit zahlreichen unnumerierten Abbildungen
ISBN-13: 978-3-540-08740-3 e-ISBN-13: 978-3-642-96455-8
DOl: 10.1007/978-3-642-96455-8
Library of Congress Cataloging in Publication Data. Jordan, Wolfgang, 1943-Strukturierte Program
mierung. Bibliography: p. 252. Includes index. I. Structured programming. I. Urban, Heinz, joint author.
II. Title. QA76.6.J67 00\.6'42 78-6121.
Das Werk ist urheberrechtlich geschiitzt. Die dadurch begriindeten Rechte, insbesondere die der Uberset
zung, des Nachdruckes, der Entnahme von Abbildungen, der Funksendung, der Wiedergabe auf photo
mechanischem oder ahnlichem Wege und der Speicherung in Datenverarbeitungsanlagen bleiben, auch
bei nur auszugsweiser Verwertung, vorbehalten.
Bei Vervielfiiltigung fUr gewerbliche Zwecke ist gemaB §54 UrhG eine Vergiitung an den Verlag zu
zahlen, deren Hohe mit dem Verlag zu vereinbaren ist.
© by Springer-Verlag, Berlin Heidelberg 1978
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buche
berechtigt auch ohne besondere Kennzeichnung nicht zur Annahme, daB solche Namen im Sinne
der Warenzeichen-und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher von jeder
mann benutzt werden diirften.
2362/3321 543210
Vorwort
Das vorliegende Werk entstand aus Erfahrungen bei der Einweisung von Program
mierern, Organisatoren und Informanden in die Strukturierte Programmierung:
beide Autoren sind Mitarbeiter des Hauses Siemens und dort an der Schule fUr
Datenverarbeitung tatig.
Das Ziel des Buches ist, den Leser in leicht faBbarer Weise mit der Methode
der Strukturierten Programmierung vertraut zu machen. Der Schwerpunkt liegt
bei der Entwicklung der praktischen Fahigkeit, eigene Aufgabenstellungen nach
der neuen Methode zu 16sen. Entsprechend ist die Stoffauswahl praxisorientiert.
Eine Vielzahl von Obungen begleitet die Darbietung des Stoffes.
Bei der fachlichen Stoffauswahl und der didaktischen Gestaltung unterstUtzte
uns eine Reihe von Kollegen der Entwicklung und Anwendung. Ihnen sei hiermit
herzlich gedankt.
Munchen, im Fruhjahr 1978 Die Verfasser
Inhaltsverzeichnis
I A L
1 EinfUhrung.
2 Methode der Strukturierten Programmierung 6
2.1 Ziele der Strukturierten Programmierung. 8
2.2 Schrittweise Verfeinerung 12 19 20
2.3 Beschrankung der Strukturblockarten 21 29 30
2.4 Blockkonzept. 31 35 36
2.5 Lesbarkeit . 37 41 42
2.6 Datenunterscheidung 43 46 47
3 Darstellungsmittel fUr die Strukturierte Programmierung 48
3.1 Baumdiagramme 49 53 54
3.2 DIN 66001 . 55 59 60
3.3 Struktogramme. 61 73 76
3.4 Verbale Entwurfssprache. 82
Beispiel "Primzahlen" . 84
3.5 HIPO-Verfahren 88
4 Umsetzung des Entwurfs in Primarcode 92
4.1 Der Voriibersetzer COLUMBUS 93
Programm "Primzahlen" in COBOL 101
Programm "Primzahlen" in Assembler. 112
Programm "Primzahlen" in FORTRAN 128
4.2 Manuelle Implementierung eines Entwurfs mit COBOL 136 144 145
4.3 Manuelle Implementierung eines Entwurfs mit Assembler 147 156 158
4.4 Manuelle Implementierung eines Entwurfs mit FORTRAN 163 167 168
5 Beispiele und Ubungen zur Strukturierten Programmierung 169
5.1 Lineare Verarbeitung 170 172
5.2 Mischen . 183 186
Erweiterung 192 195
5.3 Gruppenwechsel 204 208
I: Information, A: Aufgaben, L: L6sungen
I A L
5.4 Tabellenverarbeitung . . . . . . . 215
Einlesen und Aufbauen einer Tabelle 216 218
Verarbeiten von Tabellendaten . 219 222
Sortieren von Tabellenelementen . . 226 228
6 Strukturierte Programmierung und Software-Entwicklung 231
6.1 DV -Grobkonzept. . : . 233
6.2 DV-Feinkonzept . . . . 242
6.3 Implementierung und Test 246
Literatur . 250
Sachregister 251
Hinweise zum Selbststudium
Hinweise zurn Selbststudiurn
Was ist das Ziel dieses Ruches?
Das vorliegende Buch befal3t sich mit einer der zur Zeit leistungsfiihigsten Methoden
der Software-Entwicklung, der Strukturierten Programmierung (im folgenden kurz
SP genannt). Projekte, die nach dieser Methode realisiert wurden, ergaben bessere
Produkte als bei den bisher iiblichen Vorgehensweisen. Oft konnten die Entwick
lungskosten spiirbar gesenkt werden. und die Entwicklungszeit verringerte sich.
Ziel dieses Buches ist deshalb, den Leser anhand einfacher praktischer Beispiele
und Aufgaben in die SP einzufUhren. Nach der Durcharbeit dieser Unterlage wird
er sich ein Grundwissen und praktische Fertigkeiten fUr den Einsatz dieser Methode
erworben haben. 1m einzelnen wird der Leser dann
kennen: die Ziele der SP,
die Methode der SP,
die Darstellungsmittel, die die methodische Anwendung unterstiitzen;
kannen: einfache Aufgabenstellungen nach der Methode der SP lasen,
Struktogramme als Darstellungsmittel einsetzen.
An wen richtet es sich?
Die SP kann von jedem, der mit der Organisation und Entwicklung von Program
men beschiiftigt ist, wirksam eingesetzt werden. Die Unterlage richtet sich daher
vor allem an Datenverarbeitungsorganisatoren, Programmentwickler, Programmie
rer und Berater. Weiter ist sie bestimmt fUr alle, die die Software-Entwicklung
steuern oder fertige Programme priifen, wie z.B. DV-Revisoren. Schliel3lich ist
sie eine niitzliche Information fUr Fiihrungskrafte, Weiterbildungsbeauftragte,
Lehrkrafte, Studenten und Schiiler. Spezielle fachliche Kenntnisse sind fUr das
Verstandnis des Buches nicht erforderlich, jedoch wird ein Grundwissen in der
Datenverarbeitung vorausgesetzt.
Das Kapitel "Umsetzung des Entwurfs in Primarcode" ist nur fUr die Leser interes
sant, die bereits eine der Programmiersprachen COBOL, FORTRAN oder Assem
bler kennen. Dieses Kapitel kann aber auch iibergangen werden, ohne dal3 dadurch
das Verstandnis fUr den Gesamtzusammenhang verlorengeht.
2 Hinweise zum Selbststudium
Was bieten die einzelnen Kapitel?
Der Stoff ist in Kapitel und diese sind in Abschnitte gegliedert. Jeder Abschnitt
setzt sich zusammen aus:
Informationen: gekennzeichnet durch ein I im Seitenkopf,
Aufgaben: gekennzeichnet durch ein A im Seitenkopf,
L6sungen zu
diesen Aufgaben: gekennzeichnet durch ein L im Seitenkopf.
Weiterhin wird bei den Informationen zwischen Prasenz- und Katalogwissen unter
schieden.
Bei dem Prasenzwissen handelt es sich urn Informationen, die der Studierende
ohne Hilfsmittel aus dem Gedachtnis wiedergeben solI. Dies beschrankt sich auf
verhaltnismaBig wenige Grundzusammenhange. 1m Text sind sie durch grau unter
legte Flachen gekennzeichnet.
Unter Katalogwissen versteht man Begriffe und Sachverhalte, die yom Verstandnis
her grob eingeordnet werden k6nnen, deren Detailerklarung jedoch nur unter Her
anziehung von weiteren Unterlagen sinnvoll ist.
Die meisten Abschnitte enden mit Fragen und Aufgaben, die der Studierende
selbstandig l6sen solI. Zur Kontrolle k6nnen die gegebenen Antworten verglichen
werden mit vorgegebenen L6sungen; beide sollten sinngemaB iibereinstimmen. Dar
iiber hinaus enthalten die vorgegebenen L6sungen haufig erganzende Informatio
nen.
Wieviel Zeit ist fUr das Durcharbeiten erforderlich?
Das Durcharbeiten sollte m6glichst ziigig geschehen und nicht durch mehrtagige
Pausen unterbrochen werden. Bei einer durchschnittlichen Aufnahmebereitschaft
von etwa fiinf Stunden taglich beansprucht das Studium des gesamten Stoffes
vier bis fiinf Tage.
Selbst wenn aIle gestellten Aufgaben richtig ge16st werden, darf aber nicht iibersehen
werden, daB es sich hier urn die ersten - noch von einem Lehrbuch begleiteten
- Schritte in ein umfangreiches neues Wissensgebiet handelt. An die Durcharbeit
soUte sich die L6sung eigener Aufgaben an schlie Ben zur Festigung des Wissens
und der neu erworbenen Fertigkeiten.
Wenn die ersten ohne Hilfe erstellten Entwiirfe mehr Zeit in Anspruch nehmen
als die bisherigen konventionelIen L6sungen, ist dies kein Grund zur Beunruhigung.
Erst nach etwa zehn selbst erarbeiteten L6sungen in der neuen Methode stellt
sich die Sicherheit und Schnelligkeit ein, die die volIen Vorteile der Strukturierten
Programmierung yom Entwurf iiber den jetzt erheblich verkiirzten Test bis zum
Einsatz hin zeigen.
I
1 EinfUhrung 3
1 Einftihrung
Die Datenverarbeitung unterstiitzt uns heute in vielen Bereichen des taglichen
Lebens. Probleme, die noch vor einigen Jahren unlosbar erschienen oder nur mit
sehr groBem Aufwand bewaltigt werden konnten, bearbeitet eine Datenverarbei
tungsanlage heute in kurzer Zeit. Dabei ist noch kein Ende der Entwicklung abzuse
hen: Neue Fertigungstechniken, standig fortschreitende Miniaturisierung der Bau
elemente, Erhohung der Speicherkapazitaten und der Verarbeitungsgeschwindigkei
ten, neue Softwaretechnologien usw. erOffnen immer weitere Einsatzgebiete.
Die Kosten fUr solche Datenverarbeitungssysteme wurden am Anfang wesentlich
durch den maschinellen Aufwand - die Hardware - bestimmt. Bald jedoch nahm
die Erstellung, Pflege und Weiterentwicklung von Programmen - die Software
- einen solchen Umfang an, daB ihre Kosten die der Hardware in vielen Fallen
weit iibertrafen.
Wodurch wurde diese Entwicklung beeinfluBt? Heute erstellte Programme weisen
einen vie I groBeren Funktionsumfang auf als die Software friiherer Jahre. Die
Probleme, die durch die Datenverarbeitung gelost werden, sind umfangreicher und
komplexer. So sind durch den Einsatz dialogfiihiger Systeme, der Datenfernverar
beitung, der Datenbanken und komfortabler Dialogsprachen integrierte Gesamtlo
sungen fUr ganze Funktionsbereiche im Unternehmen realisierbar. Die Bedienung
der Systeme wurde komfortabler und einfacher. Umfangreiche Hilfs-, Sicherungs
und Schutzvorrichtungen gewahrleisten einen reibungslosen Programmablauf.
All dieser Fortschritt machte allerdings quantitativ und qualitativ einen erheblich
hoheren Programmieraufwand erforderlich, so daB bei der Entwicklung und War
tung und beim Einsatz mancher Produkte Probleme und Schwierigkeiten, bezogen
auf die Kriterien Qualitiit, Kosten und Zeit, auftraten. Generell stellte man fest,
daB Software im Vergleich zur Hardware weniger plan- und kontrollierbar ist.
Die entstandenen Softwareprodukte entsprachen haufig nicht den urspriinglich
gestellten F orderungen. Eine allgemeine Ubersicht der Softwareprobleme, ihrer
Symptome und Ursachen ist in der Tabelle auf der folgenden Seite dargestellt.
Diese Probleme, die den Fachleuten schon langere Zeit bekannt sind, iiberraschen
immer wieder AuBenstehende und fUhren oftmals zu ungerechtfertigter Kritik.
Fiir das Auftreten der gezeigten Mangel gibt es jedoch begriindete Argumente:
I
4 1 Einflihrung
Softwareprobleme, Symptome und Ursachen (Tagungsbericht aus "The High Cost of Software", Naval
Postgraduate School, Monterey ICal. 1973)
Problem Symptome Ursachen
Qualitat Unzuverlassig, Unzulangliche Formulierung der Anforderungen durch den
benutzerunfreundlich, Benutzer, unzureichende Test- und Abnahmepraktiken, Man
inkompatibel, gel an Maf3stiiben fUr die Effizienzmessung, unzulangliche
nicht anpaf3bar, Dokumentation, fehlende Aufmerksamkeit durch das Mana
nicht iibertragbar, gement und fehlende Kontrolle, ungeeignete Verwendung der
keine Gewahrleistung. vorhandenen Technologie, unzulanglicher Kenntnisstand der
Programmierer, falsches Verhaltnis von Software- zu Hard
ware-Investitionen, Mangel an geeigneter Support-Software.
Kosten Hohe Entwicklungskosten, Schlechte Schatzung der Herstellungskosten, schlechte Be
hohe Einsatz- und schaffungspraktiken, schlechte Entwicklungspraktiken, man
Wartungskosten, schlechte gelnde Automatisierung der Entwicklung, ungeeignete oder
Ausnutzung der keine Verwendung vorhandener Entwicklungen, mangelhafte
Maschinenka pazita t, Hardware, unzureichender Kenntnisstand der Programmierer,
hohe A.nderungskosten, mangelhafte Systemanforderungen und Spezifikationen, keine
hohe Kosten fUr die Managementkontrolle iiber die Kosten, hohes Gehaltsniveau
Dokumentation. fUr Programmierer, Unsicherheit in der Kostenerfassung und
-zuordnung, unzureichende Aufmerksamkeit im Hinblick auf
Systemintegration und Test, schlechte Dokumentationsprakti
ken.
Zeit Uberschreitung des Schlechte Schatzpraktiken, unzureichende Definition und/oder
Auslieferungstermins, falsche Auffassung der Aufgabe, stark streuende Fahigkeiten,
lange Entwicklungszeit, Kenntnisse und Produktivitiit der Programmierer, mangel
verspatete Fertigstellung hafte Steuerung und Kontrolle durch das Management, un
der Dokumentation. realistische Zwischentermine, ungeeignete Nutzung vorhande
ner Entwicklungen, zu lange Beschaffungszeiten, ungeniigende
Support-Software, Mangel an automatisierter Entwurfstech
nik, ungeniigende Aufmerksamkeit im Hinblick auf die Doku
mentation.
Softwareentwicklung ist ein neuartiges Gebiet und hat erst seit kurzer Zeit
groBe wirtschaftliche Bedeutung erlangt.
Das Gebiet ist wesentlich schwieriger, als zunachst allgemein angenommen
wurde. Eine Erarbeitung von wissenschaftlichen Grundlagen konnte sich fast
nirgendwo auf bewahrte traditionelle Wissenszweige stiitzen.
Die notwendige Qualifikation der Programmierer fehlte oft. Eine den gestellten
Aufgaben entsprechende Ausbildung war hiiufig nicht sichergestellt.
In den letzten lahren hat sich nun aufgrund der wirtschaftlichen Bedeutung und
der Probleme bei der Entwicklung und Wartung von Programmen eine Disziplin
herausgebildet, die mit "Software Engineering" umschrieben wird. Ihr Ziel besteht
in der "Anwendung von Prinzipien, Methoden und Werkzeugen fUr die Technik
und das Management der Softwareentwicklung und -wartung auf der Basis wissen
schaftlicher Erkenntnisse und praktischer Erfahrungen sowie unter Beriicksichti
gung des jeweiligen 6konomisch-technischen Zielsystems" (nach [IF).
1 Grundlagen und Techniken einer rationellen Programmentwicklung sind hier - nicht nur bezogen
auf die Strukturierte Programmierung - umfassend dargestellt.