Table Of ContentKlaus Kilberth
JSP
Die Reihe .. Professional Computing" des Verlags Vieweg richtet sich an
professioneUe Anwender bzw. Entwickler von IT-Produkten. Sie will pra
xisgerechte LOsungen fUr konkrete AufgabensteUungen anbieten, die slch
durch Effizienz und Kundenorientlerung auszeichnen.
Unter anderem sind erschienen:
Die Felnplanunc von DV-sy.temen
von Georg Liebetrau
Microcontroiler-Prul.
von Norbert Heesel und Werner Reichstein
DB2 Common Server
von Heinz Axel PUrner und Beate PUrner
Softwarequalltit durch MeStool.
von Reiner Dumke, Erik Poltin u. a.
QM-Verfahrenaanwel.uncen fOr Softwarehenteller
von Dieter Burgartz und Stefan Schmitz
Die CD-ROM zum Software-Clualltitamanacement
von Dieter Burgartz und Stefan Schmitz
Bu.lne.aorlentlerte Procrammlerunc mit Java
von Claudia Piemont
Erfolerelche Datenbankanwenduncen mit SQL
von Jtirgen Marsch und Jorg Fritze
Softwaretechnlk mit Ada 95
von Manfred Nagl
Unternehmen.orlentlerte Software-EntwickiunC mit Delphi
von Daniel Basler
Standardlaatlon Proce. ... ln IT
von Kat Jakobs
EffIzient Procrammleren mit CI und .NET
von Andreas Solymosi und Peter Solymosi
JSP
von Klaus Kilberth
Klaus Kilberth
JSP
Einfiihrung in die Methode
des Jackson Structured Programming
8. Auflage
~
vleweg
Die Deutsche Bibliothek - CIP-Einheitsaufnahme
Ein Titeldatensatz fUr diese Publikation ist bei
Der Deutschen Bibliothek erhiiltlich.
1. Auflage 1988
2., iiberarbeitete Auflage 1989
3., iiberarbeitete Auflage 1989
4., Auflage 1990
5., verbesserte und erweiterte Auflage 1991
6., verbesserte Auflage 1994
7., verbesserte und erweiterte Auflage 1998
8., iiberarbeitete Auflage September 2001
Alle Rechte vorbehalten
© Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, BraunschweiglWiesbaden, 2001
Der Verlag Vieweg ist ein Unternehmen der Fachverlagsgruppe BertelsmannSpringer.
www.vieweg.de
vieweg@bertelsmann.de
Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschiitzt. Jede
Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne
Zustimmung des Verlags unzuHissig und strafbar. Das gilt insbesondere fUr
Vervielfaltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung
und Verarbeitung in elektronischen Systemen.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in dies em Werk
berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im
Sinne der Warenzeichen-und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher
von jedermann benutzt werden diirften.
Gedruckt auf saurefreiem und chlorfrei gebleichtem Papier
Konzeption und Layout des Umschlags: Ulrike Weigel, www.CorporateDesignGroup.de
ISBN-13: 978-3-528-74576-9 e-ISBN-13: 978-3-322-89213-3
001: 10.1007/978-3-322-89213-3
fUr Usa
VI
Preface
It is a great pleasure to me to have the opportunity of writing a preface to Klaus Kilberth's book on
JSP. He has been an enthusiastic and expert practitioner of JSP for several years, and he is also an
experienced teacher of the method. So I was expecting his book to contain a careful exposition of JSP,
including some of its newer aspects, and that expectation has been amply fulfilled.
It is also good to see that he has included many exercises, along with their solutions, and that he has
maintained the excellent JSP tradition of explanation by story-telling: in future I shall drink my
German wine with increased pleasure, thinking of the admirable career of Gustav and how useful his
instinctive understanding of process communication proved to be in the wine trade.
I hope that you, the reader, will enjoy this book, and that you will benefit from its insights into the
task of composing correct programs.
London, April 1988 Michael Jackson
VII
Vorwort zur ersten Auflage
Was kann einen dazu bewegen, heute, wo alles von Sprachen der vierten oder sogar n-ten Gene
ration, von logischer Datenmodellierung, von nicht-prozeduraler Programmierung, von Kiinstlicher
Intelligenz und vielen anderen zukunftstrachtigen Ansatzen spricht, weit mehr als ein Jahrzehnt nach
dem Erscheinen von Michael A Jacksons Monographie "Principles of Program Design" [Jack75] ein
Buch iiber JSP zu schreiben? Die Grunde dafiir sind vielfliltig. Zunachst sind da einige .AuIlerlichkei
ten. Die Methode JSP hat sich im Laufe der Jahre zwar nicht in ihren Grundsatzen, aber doch in
ihrer Darstellung gewandelt. Besonders die Verfiigbarkeit von leistungsflihigen Werkzeugen
[ExpT87] flir JSP hat einen gewissen EinfluIl auf die Notation. Vieles ist prliziser geworden, neue
Anwendungsbereiche, z.B. Datenbanken und Dialogprogrammierung traten mehr in den Vorder
grund. Viele mit JSP erfolgreich abgeschlossene Projekte erbrachten eine FiilIe von Erfahrungen und
Erkenntnissen. Das allgemeine Mp.thodenbewuIltsein hat erfreulich zugenommen und damit auch die
Bereitschaft, sich mit diesen Dingen iiberhaupt auseinanderzusetzen.
Aus eigener praktischer Erfahrung ist die Oberzeugung gewachsen, daB JSP als Entwurfsmethode
einen konkreten, nachweisbaren (im allg. aber nur schwer meBbaren) Nutzen bewirkt. Ein weiterer
Grund ist der offenkundige Bedarf, der in immer wieder gestellten Fragen von Studenten, Seminar
teilnehmern oder Mitarbeitern von Projekten nach einer verstlindlichen und ausfiihrlichen
Beschreibung von JSP zum Ausdruck kam. Neben Grunden gibt es auch Anllisse. Hier war der
AnlaB, daB wir im Rahmen eines Projektes die Unterlagen flir die JSP-Seminare des mbp von Grund
auf neu entwickelt haben. Diese Unterlagen [BoKi86] bilden die Basis fUr den Inhalt des
vorliegenden Buches. Und der mbp Software & Systems GmbH sei herzlich gedankt, daB die
Verwendung der Unterlagen groBziigig genehmigt wurde.
Das Buch ist nicht als theoretische Abhandlung iiber Software-Engineering konzipiert, sondern es solI
als Leitfaden und Handbuch zum Gebrauch von JSP bei praktischen Anwendungen dienen. Es wird
bewuIlt darauf verzichtet, die Methode JSP mit anderen Ansatzen eingehend zu vergleichen. Erstens
wiirde ein ernsthafter Vergleich den Rahmen dieses Buches bei weitem iibersteigen, auIlerdem miiB
ten damr auch vergleichbare eigene Erfahrungen mit diesen Methoden vorliegen.
Das Buch ist gedacht flir aIle, die die Methode JSP lernen und anwenden wollen, also Studierende
mit DV-Interesse, Auszubildende im Bereich Informations-Technologie, alte Hasen mit dem
Wunsch, etwas Neues kennenzulernen, aber auch flir diejenigen, die sich nur einen Eindruck von
Strukturierter Programmierung nach Jackson verschaffen wollen. Spezielle Vorkenntnisse, abgesehen
von etwas Grundwissen in Datenverarbeitung, werden nieht erwartet. DV-Einsteiger waren eigentlich
die idealen Leser, da diese im allg. noch keine "Ablaufbrille" tragen, die man den anderen erst miih
sam abnehmen muB.
Es liegt im Wesen der Methode JSP, daB sie iiberwiegend in einem kommerziellen Umfeld eingesetzt
wird. Entsprechend sind auch die Fallstudien und Beispiele gewlihlt. Wenn Beziige auf eine konkrete
Programmiersprache notig sind, wird das stets COBOL sein. Es gibt aber auch eine Reihe erfolgrei
cher Einsatze in der ProzeBdatenverarbeitung in Verbindung mit der Sprache C. "Algorithmiker"
werden kaum eine ihrer vertrauten Anwendungen finden, aber vielleicht eine Menge von Ideen und
Anregungen zum Strukturieren und Aufbereiten ihrer Probleme.
Das Buch besteht aus vier Teilen: zwei Textteilen, der LOsung der Obungen und Fallstudien sowie
einem Anhang. Der Textteil umfaBt im wesentlichen zwei Bereiche. Zunachst werden das Umfeld
und die Grundlagen von JSP erlautert. Das geschieht in den ersten beiden Kapiteln. Der zweite
Bereich, von Kapitel3 bis Kapitel 8, enthlilt die Anwendung von JSP auf Standard-Probleme und
beschreibt, wie diese mit den Mitteln von JSP formalisiert und systematisch gelost werden konnen. 1m
VIII
Kapitel 9 werden Werkzeuge flir JSP kurz vorgestellt. AIle wichtigen Begriffe und Notationen sind im
Anhang noch einmal zusammengefaBt. Die Methode wird im Textteil des Buches ausflihrlich bespro
chen und anhand von vielen Fallbeispielen veranschaulicht. Fiir ein tieferes Verstandnis ist das LOsen
der Ubungen und Fallstudien dringend zu empfehlen. Die LOsungen finden Sie geschlossen hinter
dem Textteil.
Bei den Fallstudien werden drei Bereiche behandelt: klassische Batchverarbeitung, Dialoganwen
dung und Textverarbeitung. Es gibt flir jedes der drei Gebiete eine Aufgabenstellung, die nach und
nach erweitert wird, urn den jeweils behandelten Stoff zu vertiefen und typische Problemstellungen
aus dies en Bereichen exemplarisch zu losen. Durch die Beschrankung auf diese drei Aufgaben ist der
Leser nicht bei jeder Fallstudie gezwungen, sich auf immer wieder neue Anwendungssituationen ein
zustellen. AuBerdem wird dadurch das flir die Praxis wichtige Andern und Erweitern bestehender
Entwiirfe urn zusatzliche Anforderunge§ = > FNielleicht auch mal etwas eintonig
wirkt, wird zugunsten der besagten Vorteile in Kauf genommen. Datenbank-Anwendungen werden
nicht getrennt betrachtet, sondern in Verbindung mit den drei Bereichen behandelt.
An diesem Buch haben viele, mehr oder weniger direkt, mitgewirkt. Die Teilnehmer der JSP-Semi
nare und die Horer meiner Vorlesungen haben durch viele Fragen und Anregungen einen wichtigen
Beitrag zu Inhalt und Darstellung dieses Buches geleistet. Meine Kolleginnen und Kollegen beim
mbp haben teils durch konkrete Mitarbeit an den Seminarunterlagen, teils mit Kritik, Ideen und
Bemerkungen geholfen, den Stoff des Buches entsprechend aufzubereiten. Besonders intensiv haben
sich Erwin Bude, Klaus Hasbron-Blume und Karl-Heinz Sylla mit der Rohfassung des Textes ausein
andergesetzt und eine Reihe von Verbesserungen vorgeschlagen. Das miihsame Korrekturlesen hat
Lisa Contzen auf sich genommen. Sieglinde Wachs und Karlheinz Sosenheimer von der Deutschen
Lufthansa AG in Frankfurt haben mir Unterlagen zur Implementierung bei Stiicklisten zur Verfii
gung gestellt. Corinna und Hugo Ullrich haben die kniffelige Ansteuerung des Laserdruckers vorbe
reitet.
Ihnen allen gilt mein ganz besonderer Dank. Allein hatte ich es wohl kaum geschafft.
KOln, Mai 1988 Klaus Kilberth
Vorwort zur aehten Auflage
Wieder sind 3 Jahre seit der letzten Auflage vergangen, und unsere DV-Welt hat sich wieder ein
Stiick weiter entwickelt. Wenn man jetzt nach Verweisen auf "JSP" sucht, findet man haufig einen
ganz anderen Begriff: "Java Server Pages". Und bei einer Internet-Beurteilung eines der beiden
neueren Biicher zu JSP gab es einen (Warn-) Hinweis, daB dieses Buch die Jackson-Methode
behandelt, und nichts mit Java zu tun hat. 1m Grundsatz ist das sehr loblich. Jede Zeit hat ihre
aktuellen Begriffe und Schlagwcrter. Aber es stimmt doch etwas nachdenklich, daB die allher
gebrachte Bedeutung von JSP so schnell durch einen neuen Inhalt iiberlagert wird. Auch das ist nicht
weiter schlimm. Nur es drangt sich die Frage auf, ob denn den Nutzern des neuen Inhalts die alte
Bedeutung iiberhaupt bekannt ist. Oder, wenn wir den rein formal en Aspekt verlassen, ob sie je
ernsthaft von der Methode JSP gehOrt haben. Ohne jetzt wehmiitig vergangenen Zeiten nach
zutrauern, wiirde mich natiirlich interessieren, mit welchen methodischen Ansatzen all die schOnen
neuen Anwendungen entwickelt werden, insbesondere wenn es darum geht, einzelne Komponenten /
Module eines iibergreifenden Systementwurfs urnzusetzen.
Und schon sind wir wieder bei der alten Frage: Was bringt uns heute JSP (gemeint ist diese Methode
von Michael Jackson)? Nun, nachdem die letzten drei groBen Herausforderungen der Anwendungs
entwicklung flir den GroBrechner iiberwunden sind, namlich: Postleitzahlen, Jahrtausendwechsel und
Euroumstellung, sollte man meinen, daB es hier etwas ruhiger wird. Mitnichten. Folgt man den
IX
Uberlegungen von Kebschull und Spruth [KeSp01], so wird uns dieses Thema noch eine ganze Weile
begleiten ("in den nachsten 50 Jahren"). Ob dann die alten Hasen vom Mainframe belachelte Exoten
oder begehrte Spezialisten sein werden, wer weill. Das "Mainframe-Thema" ist aber nur ein Aspekt.
Die vielleicht viel wichtigere Frage ist, was kann man von dem, was wir in der klassischen "Program
mierwelt" gelemt / verstanden haben, auf die Uisung von Problemen in der "neuen" Welt (solI hei
Ben: VML, XML, Java o.a.) iibertragen. Fiir die Entwicklung der Benutzer-Oberflache, "Prasenta
tions-Schicht" auf dem Client, gibt es inszwischen bewahrte GVI-Klassenbibliotheken, da konnte man
eventuell noch einen Beitrag flir das grundsatzliche Verstandnis flir die Gestaltung von Dialogen
leisten, also eher auf der Schiene "Ausbildung", aber, abgesehen von reinen GroBrechner-Dialogen,
nicht emsthaft bei der konkreten Vmsetzung. Almlich sieht es bei den Zugriffen auf Datenbestande
aus. Die Zugriffsschicht ist heutzutage sauber gekapselt, und die Anwendung selbst sollte frei sein
von spezifischen Details der Zugriffslogik respektive -physik. Folgen wir einer schlichten Drei
Schichten-Architektur, bliebe also nur noch die Anwendunggsschicht selbst. Vnd hier treffen wir auf
all die vertrauten Probleme der klassischen Batch-Verarbeitung. Denn Anwendungen haben auch
schon mal Schnittstellen zu anderen Anwendungen, und diese Schnittstellen gilt es, sauber urnzu
setzen. Gut, auch das wird man geeignet kapseln. Aber wer entwickelt diese "Kapseln"? Vnd wie?
Vnd dann ist da noch das leidige Thema "Migration". Es wird uns bis ans Ende unserer EDV-, DV-,
IT-Tage begleiten. Da wird mal wieder ein neues Anwendungssystem eingeflihrt (ganz normaler IT
Alltag), die neuen, "modemen" Strukturen passen natiirlich nicht auf die alten. Oder es wird mal
wieder "fusioniert", ein derzeit beliebtes "Gesellschaftsspiel". Wenn es nicht gerade eine feindliche
Ubemahme wird, miissen die Anwendungen der neuen Partner zusammengeflihrt werden. Oder viel
einfacher: Data Warehouse / Data Mining. Fiir "modeme" Anwendungsentwickler, die bei der Vm
setzung einzelner Komponenten ihre volle Kreativitat entfalten (wie zu alten Assembler-Tagen, die
alten PAPs waren eher eine methodische Offenbarung) konnten die bewahrten Konzepten von JSP
("Jackson") vielleicht doch von Nutzen sein.
SchlieBlich gabe es auch eine nette Verwendungvon von JSP, rein auf der Ebene der Notation. Bei
allem Vorbehalt gegeniiber graphischen Darstellungen (wenn sie zu umfangreich sind) ist die JSP
Notation (attributierte Baume) eine elegante Variante zur graphischen Darstellung der drei logi
schen Grundstrukturen. Die manchmal etwas kryptisch anmutende Beschreibung einer XML-Datei
konnte man mit den Stilmitteln der JSP-Baume wunderschOn visualisieren. Das gilt analog auch flir
die Darstellung von Daten-(Modell-)Strukturen.
Nach den obigen Betrachtungen ist klar, daB einige Teile dieses Buches primiir dem grundsiitzlichen
Verstiindnis dienen und bei der konkreten Vmsetzung ziemlich "GroBrechner-Iastig" sind. Das gilt flir
die gesamte Online-Thematik, speziell deren Implementierung, aber auch flir Passagen iiber Daten
banken. Da eine praktische Nutzung aber nicht wirklich ausgeschlossen werden kann, wurden diese
Teile weiter in der neuen Auflage belassen. Ansonsten wurden wieder einige Stellen im Text und
einige Verweise aktualisiert, urn dieses Buch in der heutigen IT-Landschaft zu positionieren.
Wie schon bei friiheren Auflagen auch haben mich Karl-Heinz Sylla und Klaus Hasbron-Blume
wieder bei der Uberarbeitung des Textes beraten und auf interessante Anwendungsmoglichkeiten
von JSP hingewiesen. Ganz herzlichen Dank.
KOln, Juli 2001 Klaus Kilberth
XI
Inhaltsverzeichnis
Teil I: Grundlagen ......................................................................................................................... 1
1 Einfuhrung .................................................................................................................................................. 3
1.1 JSP, was es leistet und was nieht ...................................................................................................... 3
1.2 JSP-Programme verarbeiten Datenstrome ..................................................................................... 4
1.3 Datenstrome und Programme .......................................................................................................... 7
1.4 Die Notation von JSP ....................................................................................................................... 10
1.5 JSP und Strukturierte Programmierung ........................................................................................ 19
1.6 Die Methode JSP .............................................................................................................................. 20
1.7 JSP und JSD ....................................................................................................................................... 22
1.8 JSP in konkreten Projekten ............................................................................................................. 28
2 Grundlagen des JSP·Entwurfs ..................................................................................................... 31
2.1 Aufgabenstellung, SND und Beispiele .......................................................................................... 31
2.2 Datensehritt ....................................................................................................................................... 34
2.2.1 Ableiten der Daten-Strukturdiagramme ............................................................................. 34
2.2.2 Eintragen der l:l-Entspreehungen ...................................................................................... 58
2.3 Programmsehritt ................................................................................................................................ 72
2.3.1 Ableiten des Programm-Strukturdiagramms ..................................................................... 72
2.3.2 Konsistenzpriifung .................................................................................................................. 80
2.4 Anweisungssehritt ............................................................................................................................. 84
2.4.1 Ermitteln der Elementaranweisungen ................................................................................ 84
2.4.2 Zuordnen der Elementaranweisungen ................................................................................ 86
2.5 Textsehritt .......................................................................................................................................... 94
2.5.1 Ermitteln der Bedingungen ................................................................................................... 94
2.5.2 Ableiten des Strukturtextes ................................................................................................... 98
2.6 Implementierung ............................................................................................................................. 103
2.6.1 LogiseheJphysisehe Zugriffe ............................................................................................... 103
2.6.2 Codierung ............................................................................................................................... 106
2.6.3 Optimierung ........................................................................................................................... 110
2.6.4 JSP-Vorgehensmodell .......................................................................................................... 111
2.7 Fallstudien ........................................................................................................................................ 112
Teil II: Weiterfuhrung ............................................................................................................ 115
3 Gruppenwechselprobleme ............................................................................................................ 117
3.1 Formen des Gruppenweehsels ...................................................................................................... 117
3.2 Gruppensteuerung mit Gruppierwort ......................................................................................... 122
3.3 Fallstudien ........................................................................................................................................ 127
4 Fehlerbehandlung .............................................................................................................................. 131
4.1 Versehiedene Formen fehlerhafter Daten ................................................................................. 131
4.2 Fehlerbehandlung bei den drei Strukturkomponenten ............................................................ 135
4.3 Fallstudien ........................................................................................................................................ 139