Beruflich Dokumente
Kultur Dokumente
O.Komarnicki
Programmiermethodik
Mit 80 Abbildungen
Das Werk ist urheberrechtlich geschiitzt. Die dadurch begriindeten Rechte, insbeson-
dere die der Ubersetzung, des Nachdruckes, der Entnahme von Abbildungen, der
Funksendung, der Wiedergabe auf photomechanischem oder ahnlichem Wege und
der Speicherung in Datenverarbeitungsanlagen bleiben, auch bei nur auszugsweiser
Verwertung, vorbehalten.
Bei Vervielfaltigungen 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 1971. Library of Congress Catalog
Card Number 72-158514
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw.
in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der An-
nahme. daB solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetz-
gebung als frei zu betrachten waren und daher von jedermann benutzt werden diidten.
Universitatsdruckerei H. Stiirtz AG. Wiirzburg
Vorwort
v
Inhaltsverzeichnis
1. Pflichtenheft . . . . . . . .
1.1. Aufbau des Pflichtenheftes 1
1.2. Inhalt des Pflichtenheftes . 1
1.3. Anderungsdienst 2
2. DatenfluBplan . . . . . . . 4
2.1. Aussagen des DatenfluBplanes 4
2.2. Sinnbilder des DatenfluBplanes 4
2.3. Form der DatenfluBpliine . . 7
2.4. Bedeutung fUr die Programmierung 8
VI
8. Ablauftechnische Sicherung von Program men . 56
8.1. Softwaregesicherte Vorgange 56
8.2. Selbsterzeugte Sicherungen . 57
8.3. Vertretbarer Aufwand 59
9. Hantierung 60
9.1. Die verschiedenen HantierungsmaBnahmen . 60
9.2. Standardhantierungen. . . . . . . . 62
9.3. Protokolle. . . . . . . . . . . . . 62
9.4. Eingaben tiber Bedienungsblattschreiber 63
9.5. Hantierung an den sonstigen Geraten 63
9.6. Hantierungszeiten. . . . . . . . 64
9.7. Sonstige Hinweise zur Hantierung . 65
9.8. Hantierungsvorschrift . 65
9.9. Checkliste: Hantierung 73
VII
16. Testhilfen . . . . . . . . . . . 129
16.1. Klassifikation der Testhilfen . 130
16.2. Test-Module . . . . . . 131
16.3. Trace und Ablaufverfolger . 131
16.4. Datentriigervergleich . . . 132
16.5. Sonstige Testhilfen. . . . 132
16.6. Testhilfen in symbolischer Anweisungsform 134
16.7. Auswirkungen der Testhilfen. 134
17. Dokumentation der Programme 136
17.1. Zweck der Dokumentation 136
17.2. Inhalt der Dokumentation. 137
17.3. Form der Dokumentation. . . . .. 139
17.4. Obergabe an die Pflegegruppe oder an das Rechenzentrum. 140
17.5. Unterlagensicherung 140
18. Programmpflege . . . . 141
18.1. Voraussetzungen fUr den Pflegedienst . 141
18.2. DurchfUhning von Xnderungen . 142
18.3. Dokumentation der Xnderungen . . . 143
18.4. Test von Xnderungen. . . . . . . . 143
19. Benutzung der geeigneten Programmiersprache 145
20. Zusammenarbeit mit der System- und Programmbetreuung . 148
VIn
1. Pflichtenheft
1.3. Anderungsdienst
Neben den recht unvollkommenen Aufgabenstellungen bereitet
auch die Form des Anderungsdienstes der Programmierung erheb-
lichen Kummer. Eine unausgereifte Aufgabenstellung verursacht
wahrend der Programmierqng viele Anderungen. Diese mussen
z. T. an schon fertigen Programmteilen durchgefUhrt werden. Die
Anderungen werden als Sammelanderungen, die nur als Nachtrag
zum Pflichtenheft abgelegt werden konnen, oder nur mundlich
gegeben.
Durch dieses System entstehen folgende Nachteile:
• Keine kontinuierliche Programmierarbeit moglich.
• Doppelarbeit durch Umarbeitung fertiger Programmteile.
• Fehlerhafte Programme, Anderungen werden vergessen.
• Termine konnen nicht eingehalten werden.
• Die Programme verlieren an EfTektivitat.
Aus diesen Nachteilen lassen sich folgende Forderungen ableiten:
• Die Programmierung darf erst beginnen, wenn ein bestimmter
Reifegrad der Aufgabenstellung erreicht ist.
• Anderungen sind fUr eine gewisse Zeit zu stoppen.
• Anderungen mussen in Form von Austauschblattern des Pflichten-
heftes kommen.
2
Wesentliche Angoben Erganzungen Hinweise
Die in dieser Rubrik genannten Die in dieser Rubrik genannten Die in dieser Rubrik genannten
Punkte miissen in einem Pllich- Punkte soliten in einem Ptlich- Punkte konnen in einem Pllich-
tenheft enthalten sein. tenhelt enthallen sein. tenhelt enthallen sein.
1. Zweck und Funktion des
neuen Verfahrens
Zusammenfassende Oarstel-
lung der Aufgaben. die das
Verfahren I Programm losen
sail.
2. Beschreibung der Eingabe-
dalen
Herkunft. Erlassung. Aufbau Oatenstruktur: Aulbau der Satze.
und Bedeutung der Eingabe- Aulbau der Oateien
daten (diese Angaben miissen im
(zur Beschreibung der Eingabe- Ptlichtenhelt eines Programmes
daten gehiiren z.B. eine Samm- enthalten sein)
Lung ausgefiiUter Belegmuster.
Ubersichten iiber SchlGsselsy-
steme oder Kennziffern)
3. Forderungen an das Verfahrenl
Progromm
Genauigkeitsanforderungen (z.B. Allgemeine Forderungen. soweit Verlahrensinterne Oatenstruktur.
Rechengenauigkeit. Rundung von noch nicht aufgefUhrt Ootentroger (d.h. Aufbau der in-
Rechenergebnissen. Rechenfor- Richtlinien fUr den LBsungsweg nerhalb eines Verlahrens wei-
meln) (z.B. durch detaillierte Beschrei- tergegebenen Oaten und Oaten-
Wertebereich der Oaten (z.B. Wert- bung der gesteUten Aulgabe. traged
angaben in TOM. SteUenzahl von des Verarbeitungsoblaules.der Normen und Verlahrensvorschril-
Wertangaben) Reihenfolge einzelner Arbeiten ten
Vorschriften tOr treuhanderische innerhalb des Verlahrens/Pro- OVA - Konfiguration. Betriebs-
und verlahrenstechnische Sicher- gromms. Unterteilung und Ver- system. Programmiersproche
heit (z.B. Aufbewahrungs- und knupfung der einzelnen Ver-
Sperrlristen. KontroUen und Ab- fahrensteile)
stimmungen) Termin fOr die FertigsteUung bzw.
Unabonderliche Farderungen (z.B. Einsatz des Verfahrens/Pro-
von Gesetzes wegen : Lohnsteuer) gromms
Behandlung von SonderlaUen und Abgrenzung einzelner Ausbou-
z.B.durch KontroUen und Ab- stulen gegeneinander
stimmungen erkannten Fehlern Hinweise auf ahnliche Verlahren
AnschluAstellen an benachbarte ggl. mit Angabe wesentlicher
Verfahren Unterscheidungsmerkmale
Vertroglichkeit mit anderen Pro-
grammiersystemen. Verlahren
oder Programmen
Ootenvolumen (z.B. Umtang von 00-
teien und Verholtnis zwischen
Stamm- und Bewegungsdaten-
mengen)
AblaufintervaUe bzw. -turnus
Oatenflullplane
4. Beschreibung der Ausgabedaten
Bedeutung und Weiterverwendung Oatenstruktur: Aufbau und Aus-
der Ausgabedaten gabeform der Ausgabedaten(z.B.
Ggl Autbau der an andere Vertahren Listenbilderl.(diese Angaben miis-
weitergegeb. Oaten u. Oatentroger sen im Ptlichtenhelt eines Pro-
gramms enthallen sein) nach : ADV Abb.l.1
3
2. Datenflu8plan
4
Sinnbild Benennung Erlouterung bzw. Anwendung
D Bearbeiten
allgemein
Mit diesem Sinnbild sind aile Bearbeitungsvorgonge. ein-
schlientich Lochen. PrOlen. Mischen usw.. darzu-
stellen.
II Eingabe
von Hand
Eingabe von Steuer-. Kontroll- oder Korrekturdaten
von Hand
0
Datentroger Dieses Sinnbild ist zu verwenden. wenn der Datentroger
allgemein nicht noher bestimmt werden soli oder bei der Konzi-
pie rung eines Verlahrens die Datentrogerart noch nicht
leststeht.
Datentroger. Die Speicherart (z.B. Magnetplatte) ist im Sinnbild anzu-
CI Random -
Access-
Speicher
geben.
Kommen mehrere Speicher in Frage. so ist der Alternativ-
Speicher als Bemerkung anzugeben.
CJ SchriftstGck
Lochkarte
Hierzu gehiiren gedruckte Listen. maschinenlesbare
Belege. Formulare usw.
c:=J
Lochstreilen
Ubergangs - Der Ubergang kann von mehreren Stellen aus. aber nur
0 stelle zu einer Stelle hi~. erlolgen.
Zusammengehorige Ubergangsstellen miissen die gleiche
Bezeichnung tragen.
}----- Bemerkung Dieses Sinnbild kenn an jedes der oben genannten Sinn-
bilder angelGgt werden.
i
Fluntinie Vorzugsrichtungen sind: a von oben nach unten
--{> b von links nach rechts.
Dos Ende einer FluOlinie mull immer mit einer Pleilspitze
in Flullrichtung versehen werden.
Tnansport Soli der Transport von Datentrogern besonders hervorgehoben
~3'
der Daten- werden. sa ist das Ende der Fluntinie mit Doppelpleilen in
troger Flullrichtung zu versehen und die Emplangs - bzw. Absender-
stelle anzugeben.
Daten- Datenlerniibertragung. z.B. Gber Telexverbindungen
~ Gbertnagung
Abb.2.1
5
Sinnbild Benennung Erlouterung bzw. Anwendung
V Mischen
A 'rennen
-<I>- Sortieren
J><[ Mischen
mil gleichzeili-
gem 'rennen
D
Ausliihren Verwendung moschineller. nicht von der OVA gesteuerler
einer Hills- Hillsmitlel. I.B. monuelle £rslellung von lochkarlen oder
lunktion lochslreifen.
0
Eingreifen Keine Verwendung moschineller Hillsmittel. I.B. Einlrogung
von Hand in eine lisle oder Bondwechsel.
9 Ootenlriiger Ootentroger. die nicht von der OVA gesteuert werden . z.B.
Ziehkortei.
Abb.2.1 (Fortsetzung)
•,
1
10 11 12' Il ., IS 'S " II
'"~ =r{ r
t
1/
~ UIJ,rlllllln l ' U,
I' ~
D"'I'II"!!!, .~m.'lll r-... A DIIII."lr • .guII!tO"I.",.,.",II .,1 8•• '.'111t'" .U",.,II\
V 1411,""111,"11
;::?-K::: ~ ~
V
.
~ M l'CIl~4"1' ~
IuIUI,. LJ/ ~t' ~"f" I S.,II.""" itllf,lItlvCb
~ :::::::' Sinnbildtr
-r-.:::'-l ' fur Oattnflunpti:ine
~
(1III a~ • •• " lofe.ulll L.C .... lf.ll .... Oot.III",,,,I,., .. ,.,
l,lCheI'lDb,t.fIII4. LSi) In 11-",
., .,
1 HO)4i ,
12) , Ii • , • , . " :) .. 10 I 1 •• I " " Ii I , I t . I I' ..
10 , , . , 1-:'" 10' 1 .~tV 1 , , .. S I 7 ••
Abb.2.2
6
2.3. Form der Datenflu8pliine
Buchholtung
+---..-{ E AG 022
B48V
Umsetzen B42 V
Plousibilit5t Sortieren
Korte I Band
Buchholtung
Abb23
7
• Zeichenrichtung. Sie geht entweder von oben nach unten oder
von links nach rechts.
• Groj3e der Plane. Sie hangt yom Feinheitsgrad abo Obersichts-
datenfluBpUine sollen auf einem Blatt dargestellt sein. Detaillierte
DatenfluBpHine mUssen normalerweise auf mehreren Blattem
dargestellt werden, wobei die VerknUpfung an den Obergangs-
stellen zu kennzeichnen ist.
• Erlauterung der Symbole. Da die Symbole nur eine begrenzte
Aussagekraft besitzen, mUssen sie immer mit einem erlautemden
Text versehen werden (Ausnahme: FluBlinien). Dieser Text solI
Z. B. den Inhalt der Datentrager oder die Art der Bearbeitung
kurz charakterisieren. Eine Angabe des Programmnamens oder
der Programmnummer ist sinnvoll.
• Zusiitzliche Erliiuterungen. Ober das Symbol "Bemerkungen"
lassen sich zusatzliche Erlauterungen anbringen. Dies ist immer
dann erforderlich, wenn die graphische DarstelIung nieht aus-
reicht oder die Erlauterung der Symbole aus PlatzgrUnden nur
sehr kurz sein kann.
9
Abb.3.1
10
3.2. Studium der Aufgabenstellung
Am Beginn der Programmerstellung liegt die Einarbeitungsphase.
In dieser Phase muB die Aufgabenstellung durchgearbeitet und
verstanden werden. Dabei sind folgende Punkte zu prlifen:
• Sind aile Beschreibungen eindeutig abgefaBt und verstandlich?
• Sind Widersprliche enthalten?
• Sind aile erforderlichen Angaben enthalten?
• Werden nur realisierbare Forderungen gestellt?
• LaBt sich die Aufgabenstellung ohne Beeinflussung der Ergebnisse
vereinfachen?
• 1st die Aufteilung der Aufgabe in Programme optimal?
• 1st die Wahl von Datentragern und Datenformaten optimal?
• Sind die Moglichkeiten der sachlichen Sicherung genligend aus-
geschopft?
• 1st die Aufgabenstellung von der Fachabteilung freigegeben?
Sollte die Uberprlifung nicht befriedigend ausfallen, so sind die
beanstandeten Punkte mit den Verfassern der Aufgabenstellung
durchzusprechen und, falls erforderlich, eine Anderung der Auf-
gabenstellung durchzuflihren. Erst wenn eine einwandfreie Aufgaben-
stellung vorliegt, kann mit der Aufbereitung der Aufgabe flir die
Programmierung begonnen werden.
3.3. Programmablaufplane
Der Programmablaufplan ist die graphische Darstellung der Logik
eines Programmes. Zwei wesentliche Feinheitsgrade konnen unter-
schieden werden. Der Feinplan enthalt jeden Befehl. Der Grobplan
enthalt aIle Entscheidungen, die Verarbeitungen nur global.
GrobpHine der Programme sollten zuerst angefertigt werden. Die
Erstellung von FeinpHinen ist nur flir schwierige Programmteile
erforderlich. Die Feinheit der PHine kann durch die verwendete
Programmiersprache bestimmt werden; z. B. sind bei problem-
orientierten Sprachen und beim Listenprogrammgenerator Fein-
pHine nicht erforderlich. Flir aIle standardmaBig vorhandenen
Module, Programme und Unterprogramme kann auf Programm-
ablaufpHine ebenfalls verzichtet werden.
Folgende Bedingungen sollte ein Programmablaufplan erflillen:
• Darstellung der Reihenfolge der einzelnen Bearbeitungsschritte.
• Darstellung der Aufgabe mit genormten Symbolen und beschrei-
benden Texten.
• Darstellung der Programmhierarchie.
11
• Darstellung von Overlaystrukturen.
• Darstellung von mehrfach verwendeten Unterprogrammen.
• Hierarchie der ProgrammablaufpHine.
• Maschinenunabhangige Darstellung im Programmablaufplan.
D
Operation. Operationen. wie fibertragen. Rechnen. Uischen. Modifizieren.
aUgemein Setzen von programmierten Schaltern usw.
Die (symbolischen J Adressen der Sende - und Empfangsfelder
sind anzugeben.
D
Unterprogramm Hiermit wird ein in sich geschlossener Programmteil dargesteUt.
Unterprogramme konnen von mehreren SteUen in nur einem
Eingang angesprungen werden.
<>
Verzweigung Oer Programmablauf soU aufgrund einer oder mehrerer Be-
dingungen variiert werden.
Es ergeben sich grundsotzlich mindestens zwei Ausgiinge.
die zu kennzeichnen sind (z.B. J oder Nl.
Ein SonderfoU der Verzweigung ist der Schalter.
0
Operation Operationen von Hand soUten bei der PragrammersteUung
von Hand nur in AusnahmelOUen vorgesehen werden.
Beispiele: Eingabe van Steuer-. KontroU- oder Korrektur-
daten mit Hille des Blattschreibers.
Eingabe. Zur Oarstellung der Ein - und Ausgabe oller externen Ge-
0
Ausgabe rote.
Ob es sich um Ein - oder Ausgabe handelt bzw. die Art
der Ein- oder Ausgabe. muO eindeutig aus der Be-
schriftung hervorgehen.
z.B.: Summenkarte stanzen.
Grenzstelle Hiermit werden Anfang. Ende oder Zwischen halt dargesteUt.
c=) Das Sinnbild ist durch entsprechende Eintragung zu
ergonzen.
Ubergangs- Der iibergang kenn von mehreren Stellen aus. aber nur
------{ Bemerkungen Dieses Sinnbild kann an jedes der obigen Sinnbilder an-
gehongt werden.
t
Ablauflinie Vorzugsrichtungen sind: a von oben nach unten
b von links nach rechts
Zur Verdeutlichung der Ablaufrichtung kann das Ende der Ab-
lauflinie mit .einer Pfeilspitze versehen werden.
Programm- Stellen van programmierten Schaltern. Andern von Index-
0
Modifikation registern.
(~.nmerkung : Die genannten Anwendungsbeispiele sind
Ubertragungsoperationen und kiinnen deshalb ouch
mit dem Sinnbild "Operation" dargestellt werden J.
Abb.3.2
12
• Vergabe von Namen, Adressen, Bloeknummern usw. in einer
Form, daB sie bei der Codierung Ubernommen werden konnen.
• AIle Entseheidungen mUssen genau dargestellt sein.
• SolI einen Logiktest ermoglichen.
• Kann zur Markierung der beim Test durehlaufenen Zweige
benutzt werden.
• Kann als Unterlage fUr den 1. Sehreibtisehtest benutzt werden.
• Zeichenrichtung von links naeh reehts oder von oben naeh unten.
• Grobpliine sind immer auf dem neuesten Stand zu halten.
• Feinplline konnen naeh der Codierung entfallen, falls die Wartung
zu aufwen dig wird.
• Naehtragliehe Erstellung von Programmablaufpliinen zu Pflege-
zweeken ist nieht effektiv.
• Programmablaufpliine erleiehtern die Codierung erheblieh.
• Feinpliine vermindern die Fehlerhaufigkeit in komplizierten
Programmteilen.
Die standardisierten Symbole fUr Programmablaufpliine (naeh
DIN 66(01) sind in Abb.3.2 dargestellt. Eine entspreehende
Zeiehensehablone zeigt Abb. 3.3, ein Beispiel fUr einen Programm-
ablaufplan Abb. 3.4.
...".
-
!
~Op.,.th,. Wtl"
tat
H.,._
t
!l"" •• I'. A... , ... "t .. Our •• l.",
-' ,,.
e l!iO
o,.r.ho"""Ifl;.n,..l.lr ;
Ll / ' ......... ~ 100
{ }-,7
~ "./
Sinnb.ld.t
fllr ProgrommObtoufplone
".
'!... .-< ,- '00
G"I'liI.11.fi Ylflwtl'",II, lh,.rIlD"'!IIi1.,.LI.
enl,LI Jill, t 1100 'til Ut
" ," " ,,,I u, ~ ~ » ~
Abb.3.3
13
Inhalt Geldborse
- Preis der
Besorgung
- Rest
Nein
Mein
Ja
J,.------,
nQchste
Wirtschaft
suchen
Jc
~-------------------------,
Bier
bestellen,
Bier
trinken
Verbleibender
Rest - Preis der
Besorgung
= neuer Rest
Nein
Nein
Bier
bezahlen
14
@
"
if!
~
~
~
~
~
~
- -- - - -
~
-e-- - -- - -- -
~ ~
~
~
~
~
~
~
~
~
~
"
~
'"
~
~
:c
~
~
~
~
~
'"
- -e-- - -- - -- -1-- - - - - - -1--- -- -
15
Sind ProgrammablaufpHine vorhanden, so wird die Codierung
wesentlich vereinfacht. Falls nicht schon beim Programmablaufplan
getan, sind bei der Codierung Adressen flir Hilfsbereiche und
Einsprungspunkte zu verge ben. Hierbei sind evtl. bestehende
Adressenkonventionen einzuhalten.
Die Distanz zwischen zwei Einsprungspunkten sollte nicht zu groB
sein, da diese Adressen bei Einsatz von Testhilfen flir die Fehler-
suche benutzt werden konnen. Unter UmsHinden sind Pseudo-
einsprungspunkte zu definieren.
Der Aufwand flir die Codierung wird hauptsachlich von der ver-
wendeten Programmiersprache bestimmt. Viele Verwaltungsarbeiten
flir den Rechner, die in einer maschinenorientierten Sprache erfor-
derlich sind, entfallen bei einer problemorientierten Sprache (z. B.
Registerverwaltung).
16
3.5. Umwandlung in ablauffahige Programme
Nachdem die Programme codiert sind, mUssen sie mittels Compiler
oder Assembler in Maschinensprache umgewandelt werden. Das
geschieht standardmiiBig; alle variablen Angaben werden durch
Steuerkarten vorgegeben. Variabel sind bei Umwandlungen die
Anzahl und die Art der Listen. Meistens sind folgende Listen moglich:
• Liste des Primarprogrammes (z. B. SOURCE LISTING, Abb. 3.6).
• Liste des erzeugten Maschinencodes (z.B. OBJECT PROGRAM
LISTING, Abb. 3.9).
• AdreBbuch (z. B. LOCATOR/MAP LISTING, Abb. 3.7).
• Querverweisliste (Adressenbenutzung), in Abb. 3.7 enthalten.
Die Fehlerliste (z. B. DIAGNOSTIC LISTING, Abb. 3.8) ist immer
erforderlich. Bei Ubersetzern, die Module erzeugen, kommt noch
die Binderliste (z.B. LINKAGE EDITOR-PROGRAM MAP,
Abb. 3.10) hinzu.
FUr jede Umwandlung sind die Liste des Primarprogrammes, das
AdreBbuch und die Fehlerliste erforderlich. Die Ubrigen Listen
konnen bei manchen Umwandlungen entfallen.
Je nach Ubersetzer und Sprache ist der ZeitbedarffUr die Erstellung
der Listen unterschiedlich. Wird dafUr keine zusatzliche Zeit
benotigt, so sind die Listen immer anzufertigen.
AIle hier angegebenen Beispiele sind den COBOL-Umwandlungen
entnommen. Abb. 3.11 gibt eine Empfehlung fUr die Listenerstellung
durch den Siemens 4004 COBOL-Compiler.
17
00 COBOL COHPllATION - AI PF9Y- - SOURCE lISTING
- 18 --
r ~-~---~~
562 2)0100 IF FT • U-O ?F9Y
56' 230110 HOYE IK-O TO EAFHIN ElSE PF9Y
564 230120 COHPUlE EArHIII • IEBI EB2) - . -rr • 0.005. PF9Y
565 230nO Z. EIII. PF9Y
566 2'0010 U2'0-B915 SECTION. - PF9'
567 240020 A. HOlE : AUSGABE F200 VORBEAEITEN. Pf9Y
568 2400'0 B. IF PI7 • u-O PHY
569 240040 SUBTRACT A"THI1I2 EAFHIN fAOH £B2 O'Vl~O P82. PH'
570 240050 ADD ANIH'NI A.. TI1IH2 10 P70. Pf9Y
571 240060 HOVE EAfHIN TO P71. PF9Y
572 240010 HOVE FT TO PH . Pf9'
57) 240080 ADD AHOI A"02 10 P1'. PF9Y
574 240090 ADD ATAI ATA2 10 P14. Pfh
5" 240100 ADD EBI EBJ TO P66. Pf9V
516 HOllO COI1PUTE P81 . P66 • P61 • P65 - P68 - P69 - P10 - P71. Pf9Y
577 240 11' If P81 • H-O 00 TO Z. PF9Y
57B 240120 IF P81 NfOA II VE PF"
579 HOnO HOVE XK-O 10 P81. PF9Y
580 HOUO Z. EXI I • PH,
581 250010 T2'0-B916 SECTION. - - - - - - - " - ..... PF9Y
582 250020 A. HOTE : A"TEllIGE TARlf-EB FUER 1 KAlBJAHR. Pf9'y
583 2500'0 B. PERFORH 1600-B951. PF9f
584 250040 PERFO RH 1610-B952. PF9Y
"5 250050 PERFORH U620-B953. ------ -
PH,
586 250060 COHPUTE EB • POB • EBOAII • OAP. PF9'
H7 2'0070 PERfORH U630-8954. PF9Y
588 250080 PERFORH U640- 89". PF9Y
H9 250090 HOYE P27R IN SATZARB TO HZI. PF9Y
590 HOIOO HOVE EBDAI9 IN YORlAUFKARle TO P27 IN SAIZARB. Pf9V
591 250110 PERFORH 1650-8951. PHY
592 250120 IIOVE HZI TO P27 IN SAHARB. PH'
5" 250130 PERFORH U660-B956. Pr9Y
594 250ILO PERfO RM 1680- 8959. PHY
595 250150 PERFORM U690-B960 . Pr9Y
596 i50160 PERFORI1 U700- B961. Pf9'
597 250110 Z. ex IT. PF9'
598 260010 U260-B911 SECIION.
599 260020 A. NOTE : ANTEllle£ BERECHHUNO IH I U 2 HAlBJAHB. ;~:: - Abb.3.6
COBOL CO"PILA'ION .IPf9V
OURCE REt
!Q!.WO. ~DoD. !~£E!!IJ.!E o .~"£
~oOn' • ..!,!!.~ _ 1
-~---
009U 0'''1: U770~.96' SEClIO. nUY POJU
E} I] - POIN'
.o°0!..4) 0,,9C
----------
• - - - - - - - - - HO !..- .REfEREHCn
0094 0, • 055.9E B --0 0- - - 0 ~~_. _____ - ~ HO)::R EFER)iic!Jl.
c -·-·oo~
00951 0;4; 0- ["T oRY POINr ~ 00946
~~-~ - -.~. ---.----- -----,.- - - - , . ......-- - .. - --.--~-~-~
- - . __ . .--
0095' o JlS546 z _ _E~'fRY - PO·j"N' ..,.. _ _ 00950
_ _ _ _ - _"_ _ - - . , . - . 0 _. -. - ~..:........:...-":..
OO"!. _·~'E4 - D
0972 _ !,ff2 0,
00 0974 055FA A
n"'lrr-HTfP I LA n 0-...-
SOuRCE SEVERITY
SEI.!RO coDE !~~ "ES$A8ES
EHII" CODE
-----
C080l CO"PllATION ... IPF9V 08HCl paou ... " lISI,"'
-----
p.ocUUI£;- DI'ISIOIl CoD
-~--
----
... *. B~.APH • ••• ••
007U 04760 B.HR 05 DO
00746 04762 8Al 45 EO BOOC o'0-04e ---- PERf OR ..
04766 De-S 825C
04768 DC-, 0070
.-~
JU.
IIA11E.· J)f P-aQGU UI.£.H K-Pl UU;~ LEU OOOIHJt 11411"Ult. HIG I H OOOl'UJI
0(..\ l1!ER . O~ Q.Yf..lVr. POH
~eE ' , F (,r oY PDI~lS
.0 ;srA~"~G ErEtUIJDII ADD~ •
00000 8L"~ CG~"~K LOAD ADOR .
SEEiI'1E""
02 ·.C-P
-Abb.J.lO
~
Beseitigung for maier Testbetrieb
Fehler mit sons!.
vorherige Fehlern Umwandlung
1. Umwand- Umwandlung fur Doku-
Liste lung enthtilt noch mentation
Fehler
Primtirprogramm- x x
Liste x x
Fehlerliste x x x x
Adrenbuch - F x x
Querverweis-
Liste - F B x
Liste des erzeuglen
Maschinenprogramms - - B x
Binder-Lisle - F x x
Anmerkungen
- = nicht erstellen
8 = nicht immer erstelien (zB. nur bei jeder 3. Umwandlung)
F = nur erstellen, wenn hohe Wahrscheinlichkeit, dan keine formalen
Fehler mehr enthaiten sind (meist erst nach der 2.Umwandlung)
x = Liste erstellen Abb.3.11
23
4.2. Programmierfestlegungen
• Festlegung der Geratenamen fUr die Dateien (Absehn. 6.5).
• Festlegung einheitlieher Abkiirzungen in den Besehreibungen
(Abb.4.1).
• Festlegung des Fehlerkatalogsehliissels, Normierung der Text-
Iangen.
• Festlegung der Programmnamen (Programmnummer je Pro-
gramm).
• Festlegung des Informationsflusses bei Anderungen wahrend der
Programmierung oder naeh dem Test.
• Festlegung der benutzten Software (Betriebssystem und Kom-
ponenten).
• Festlegung der verwendeten Spraehe.
4.3. Aufgabenteilung
• Wer ist fUr welches Programm zustandig?
• Sind gleiehartige Teile in versehiedenen Programmen enthalten
und damit nur einmalig zu erstellen?
• Wer ist fUr welche Testdaten zustandig (Erzeugung, Wartung)?
• 1st eine Aufgabenteilung notwendig oder nieht sinnvoll?
• Sind fUr bestimmte Aufgabenstellungen Spezialisten erforderlieh
(z. B. Dateniibertragung)?
• Miissen Kurse besueht oder sonstige Unterlagen besehafTt wer-
den?
• Sind die voraussiehtlieh benotigten Masehinenzeiten bestellt?
• Sind die Programmketten festgelegt?
• 1st der Programmpfleger bestimmt?
24
• Miissen die Programme auf unterschiedlichen Anlagenkonfigu-
rationen laufen?
• Sind die Programmodifizierungen festgelegt?
• Welche ProgrammgroBen sind zu erwarten, istMultiprogram-
ming moglich?
• Sind die vorgesehenen Kontrollen ausreichend, welche ablauf-
technischen Sicherungen sind zusatzlich aufzunehmen (z.B. Fix-
punkt)?
• Wie wird der Arbeitsfortschritt bei Ausfall eines Mitarbeiters
gew1:lhrleistet?
• Sind bei Teilung der Aufgabe die Verbindungsstellen eindeutig
festgelegt?
• Welche AusweichlOsungen sind vorzusehen, z. B. bei Gerateausfall?
• Konnen bei Listenbildern einheitliche Vorschubstreifen verwendet
werden?
• Wie wird die Etikettpriifung durchgefUhrt (Steuerkarten -
VALUE OF ID)?
• 1st eine strenge Trennung zwischen Daten und Programmen
vorhanden (Tabellen)?
• We1che Standardprogramme, Module usw. sind einsetzbar?
• Bei we1chen Daten wird mit 1 oder 2 Ein-Ausgabe-Bereichen
gearbeitet?
• Sind generierende Programme zu erstellen (haufige Anderungs-
frequenz)?
• Welchen Restriktionen unterliegen die Programme (z.B. Daten-
mengen), sind entsprechende Bereiche dafUr reserviert?
• LaBt sich die Overlay-Technik verwenden?
• Besteht die Moglichkeit, mehrere Dateien auf einen Datentrager
zu nehmen?
• We1che Teile des Programms sind als Unterprogramme auszu-
legen, da sie mehrfach verwendet werden?
• Sind die Programme in Module aufgegliedert?
• Wird eine Standardhierarchie der Programme benutzt?
25
5. Systematik des Programmaufbaues
(1)
(2)
I I I I
I I I I
L~~, L~~l L~~, L~~-,
I I I
I I I
I I
I
I I
I I I
(3) I I I I
I I I I
I I I I
I I I I
(4)
Abb.5.1
27
Die beiden ersten Abschnitte der Hierarchie haben folgende Auf-
gaben:
Programmsteuerung. Es werden die in der nachst niedrigeren Ebene
liegenden Teilprogramme aufgerufen und zusatzlich die Auswahl
des nachsten zu bearbeitenden Satzes getroffen. Verursacht der
ausgewahlte Satz einen Gruppenwechsel, so werden die erforder-
lichen Gruppenwechselprogramme angestoBen.
Teilprogramme. Die Teilprogramme sind untergeordnete Steuer-
programme flir spezielle Programmabschnitte:
• Vorlauf. Hier werden aIle Funktionen zusammengefaBt, die ein-
malig zu Anfang des Programmes ausgeflihrt werden mUssen.
Dieser Teil k6nnte spater Uberladen werden.
• Eingabe. AIle Eingaberoutinen flir sequentielle Dateien werden
in diesem Abschnitt ausgeflihrt.
• Verarbeitung. AIle Verarbeitungsteile (Ausnahmc: Gruppen-
verarbeitung) erfolgen in diesem Abschnitt. Der AnstoB flir
Einzelausgaben und Direktzugriffseingaben oder -ausgaben kann
hier ebenfalls erfolgen.
• Gruppenwechselverarbeitung. AIle MaBnahmen, die flir Gruppen-
wechsel erforderlich sind (z. B. Bildung von Gruppensummen,
AnstoB der Ausgabe flir Gruppeninformationen, AnstoB der
Eingabe von Gruppeninformationen, Ausgabe von Gruppen-
k6pfen) werden in diesem Abschnitt ausgeflihrt.
• Nachlauf. Zusammenfassung aller Aufgaben, die am Ende eines
Programmes ausgeflihrt werden mUssen.
Diese Einteilung ist der Aufgabenstellung angepaBt und bedeutet
keinerlei Einschrankungen. Sie hat den Vorteil, daB sich jeder
schnell in einem Programm orientieren kann.
28
Gruppenfelder. Bei einer sequentiellen Eingabe wird eine Datei nach
bestimmten Sortier-Gruppier-Merkmalen bearbeitet. Da diese Merk-
male an verschiedenen Stellen der Satze in beliebiger Reihenfolge
stehen k6nnen, werden zusammenhangende Felder mit diesen
Merkmalen aufgebaut. Abb. 5.3 zeigt die Anordnung der Gruppen-
felder fUr sequentielle Eingabedateien. Die Lange, Anzahl und die
Anordnung der Felder muG in einem Programm fUr alle Eingabe-
dateien gleich sein.
VnZ: CD
n • Dateinummer
a hat folgende Bedeutung:
Lesen Lesen
a Schreiben
sequentiell direkt
0 Satz lesen Satz Ie sen Satz schreiben
1 nicht Ie sen x x
2 Datei geschlossen x x
Datei nicht Datei nicht Datei nicht
3 vorhanden vorhanden vorhanden
Obis 2 • Datei priisent
3 • Datei nicht vorhanden Abb.5.2
VnR 0
b: 1 ~ h6chster Rang
2 ~ niichst niedriger
9 ~ niedrigster Rang
Diese Reihenfolge gilt bei aufsteigender Sortierung der Daten.
bei absteigender verwendet man eine umgekehrte Anardnung.
Abb5.4
29
Anordnung der Steueririformationen. FUr Ausgabedateien und Ein-
gabe im DirektzugrifT gibt es jeweils nur das Feld VnZ, fUr die
sequentielle Eingabe die Felder VnZ, Vng, ... , Vnl, VnR, die gemaB
Abb. 5.5 zusammengefaBt werden.
VAg Abb.5.6
VNg
VNl Abb.5.7
30
Weichen. Da der erste Durchlauf durch ein Programm anders aus-
sieht als die folgenden, wird dafUr eine Weiche benutzt (Abb.5.8).
Die Zahl der Weichen solI moglichst klein sein.
c ~ 1 1. Durchlouf
c _ D folgende Durchliiufe
Sonstige Weichen
VWm 0
d - a oder 1
xxx - olphonumerischer Ausdruck
Abb.5.8
TV O-VWOL1
Vorlouf
c --,I
TE
I
TGVg I
Eingobe
Gruppen-
I
vorlouf
I
g. Gruppe
I
I
--~
V1-VN
TGVg -1
Gruppen -
vorlouf
g-1.Gruppe
TGW2
Gruppen-
V2-VN wechsel
2. Gruppe
TB
Beorbeitung
V3-VN
A,-------+----,
I I
VN-VA
I I
I I
I I
I I
I I TN
I I
Nochlouf
I Vn-VN I Anmerkungen
I I i- der eingerohmte Teil wiederholt sich
IL _ _ _ _ _ ____J
I in der erforderlichen Anzohl
A: bei der Sotzouswohl (Mischproblem I
8: bei der Gruppenkontrolle
c: beim Gruppenvorlouf
Abb.5.9
32
Hinweise zu Abb. 5.9
Aufruf aller Teilprogramme
Vorlauf
Sequentielle Eingabe
Gruppenwechselbearbeitung
Gruppenwechselvorlauf
Bearbeitung
Nachlauf
Mischen der Dateien (sequentielle Eingabe)
Auswahl des nachsten zur Bearbeitung anstehenden Satzes
Bei aufsteigender Sortierung Satz mit klein stem Sortierbegriff
Bei absteigender Sortierung Datei mit grof3tem Sortierbegriff
Das Diagramm muf3 entsprechend geandert werden: Statt Vn<VN ist Vn> VN
zu setzen
Bei gemischt auf-jabsteigender Sortierung sind mehrere Abfragen notwendig
Gruppenkontrolle
Feststellen von Gruppenwechseln
Steuern der Gruppenvorlauf- und Gruppenwechselprogramme
Eingabeende der Dateien feststellen (Programmende)
Ersten Durchlauf steuern
33
Felder auf
Software Anfangs-
Vorlauf zustand
VWDL 1
-1
1. Durchlauf
Weichen auf
Anfangs-
zustand
·Dateizustand
VnZ
setzen
Programm
modifizieren
Anmerkung
A : der ei ngerahmte lei! wiederholt
sich in der erforoerlichen Anzahl
fOr Dateieriiffnungen
Abb.5.10
34
Hinweise zu Abb. 5.10
Startmeldungen
BS-Protokoll
Versionsnummer
Ablaufturnus usw.
Software-Vorlauf
Aufruf von Modulen, die einmalig aktiviert werden miissen
Aufbau von DFO-Verbindungen
Setzen bzw. Abfrage von Auftragsvariablen
Einleitung von Nebenprozessen
Eingabe und Ausflihrung von Steuerinformationen
Dateibenutzung (wahlweise Dateien)
Geratebenutzung (Band statt Drucker)
Programmvarianten in der Verarbeitung
Datum (abweichend vom Tagesdatum)
Konstante (z. B. Zahleranfangswerte usw.)
Fixpunktdauer
Kontrolle der Steuerinformationen
Protokollierung von Steuerinformationen
Wiederanlauf
DateierolTnungen
VALUE OF ID-Werte setzen
ErolTnen immer vorhandener Dateien
ErolTnen wahlweise vorhandener Dateien
Bandpositionierungen
Line-up-Routine (Papiereinstellung am Drucker)
USER-Etikette priifen
Eingabe von Tabellen
Tabellenwerte aus Dateien in den Kernspeicher bringen
Felder auf Anfangswerte setzen
Summenfelder loschen (Einzelbearbeitung)
Loschen von Bereichen
Weichen auf Anfangszustand
VWDL 1 einschalten; nur, falls der erste Durchlaufanders aussieht wie die folgenden
(z. B. U nterdriickung, 1. Gruppenwechsel)
35
Gruppenbegro
V 11 -V1g
-V1
1-V1Z
nicht
lesen
A I---c-;;----,
I I
I I
I I
I I
I I
I I
I I
I I
Sonstige
I I
I I Bearbeitung
I I
I
I
i
Gerot freigeben, I
Anmerkung
A : je Datei einmal vorhanden
I sonstige I
I Mannahmen I
I I
IL _______
bn i
J Abbo 5011
36
Hinweise zu Abb.5.11
Feststellen, welche Datei gelesen werden muB
Eingabe der Slitze, VnZ = 1 setzen (nicht lesen)
Dateiende feststellen und Dateizustand VnZ auf 2 setzen
Vn mit den Gruppenbegriffen Vnl-Vng des ge\esenen Satzes versorgen
Bei Dateien mit verschiedenen Satzaufbauten feststellen, wo die Gruppenbegriffe
stehen
Bei Slitzen ohne Gruppenbegriffe Vn unverlindert lassen
Sortierfolgekontrolle mit entsprechenden Fehlermeldungen
Entscheidung wie weitergearbeitet werden soli, wenn ein Sortierfehler auftritt (z.B.
Abbruch)
Fehlerbehandlung bei der Eingabe
Vollstlindigkeitskontrollen
Filtern von Slitzen, die nicht bearbeitet werden sollen
SchlieBen der Eingabedateien
Eroffnung von Folgedateien
Vorzeitiges Ende von Eingabedateien (es wird nicht bis EOF gelesen)
Plausibilitlitskontrollen flir update-Dateien
Fixpunktausgabe bei Abhlingigkeit von der Eingabe
Freigabe von Gerliten
37
Ai-----------------l
I TBn I
I I
I I
I I
I I
I I
I I
I I
I Ja
I
I.
I
I
I
I
I
Bearbeitung I Bearbeitung
falsche I falsche
Satzart I Satzort
I
I
I
I
I
I
I an
I
L_____ _ ______________ J
FOr bearbeitete
Anmerkung Datei
n = Dateinummer O-VnZ
m = Satzartnummer (nachlesen)
A = je Datei ein Ast
8 = je Satzart
Abb.5.12
38
Hinweise zu Abb. 5.12
Feststellung, welche Datei bearbeitet wird
Feststellung der Satzart
Aufruf der satzspezifischen Verarbeitungsroutine
Bearbeitung von nicht definierten Satzarten
Riicksetzen dateispezifischer Angaben wie Weichen, Felder, Bereiche
Setzel'l dateispezifischer Angaben wie Weichen, Felder
Eingabe von RA-Dateien
Ausgabe von RA-Dateien
Ausgabe von Bearbeitungsergebnissen
Seitenkopfe
Einzelsiitze
SeitenfUBe
Lesesteuerung fUr die Eingabe des niichsten Satzes
39
Vorlouf Wechsel
Summenfelder Madifizierte
Gruppenwechs. a
fOr Gruppe 9
16schen Bearbeitung
Gruppe 9
Nein
Narmale
Gruppenwechs.
Bearbeitung
Gruppe 9
Summen-
Plausibilitats-
bildung
kantrallen
Gruppe 9 + 1
Varschub-
steuerung fUr
Drucker
Gruppen-
abhongige
Weichen Anmerkung
rucksetzen TGVg und TGWg je Gruppe einmal vorhanden
Abb5.13
40
Hinweise zu Abb. 5.13
Summierungsfelder fUr die Gruppe auf Anfangswert
Riicksetzung von Weichen, die fUr eine Gruppe gelten und bei der Verarbeitung
gesetzt werden
Eingabe gruppenabhiingiger Informationen
Tabellen fUr Plausibilitiitspriifung
Eingabe von Random-Dateien bzw. update-Daten fUr eine Gruppe
Plausibilitiitskontrollen
Priifung auf Zuliissigkeit von Gruppen (z. B. Konten)
Vorschubsteuerung
Blattwechsel fUr neue Gruppen
Zwischenriiume
Seitennumerierung, Seitenkopfe
SeitenfUBe
Ausgabe von Gruppeninformationen
Gruppenkopfe
GruppenfUBe
Vorlaufsiitze
Fixpunktausgabe bei Gruppenwechsel
Ausgabe von Random-Dateien
Gruppenbearbeitung, Rechenoperationen fUr mehrere bearbeitete Einzelinforma-
tionen
Bildung von Gruppensummen
41
Hinweise zu Abb. 5.14
SchluBbearbeitung
Summenbildung
AbschluBkontrollen
Uberpriifung des Datenflusses
Ausgabe von
SchluB-Summen
Kontrollergebnissen, Kontrollinformationen
geanderten Tabellen
Endekarten, Endesatze
Speicherbelegung, statistischen Informationen
Schlun- SchlieBen der Dateien
kontrollen Ausgabe von USER-Etiketten
AbschluB von Ausgabedateien
AbschluB von Eingabedateien mit DirektzugrifT
AbschluB von update-Dateien
AbschluB wahl weiser Ausgabedateien
Software-Nachlauf
Setzen von Auftragsvariablen
SchluBprotokoll fUr Operator
,
:I
Ar----- J -----l
I I
I 10 I
I I
I I
I I
I I
I I
I I
I I
IL_____ _ ____ JI
Software
Nachlauf
Anmerkung
A : je Datei einmal
vorhanden
Abb.5.14
42
5.5. Adressierung
Ausgehend von den bisher getroffenen Normierungen kann auch
ein Teil der verwendeten Adressen einheitlich festgelegt werden:
Die dateiabhiingigen Vergleichsfelder
Vn n = Dateinummer (n = 1, 2, 3, ... , n)
VnZ
Vnl ... Vng
VnR
Die dateiunabhiingigen Vergleichsfelder
VN VNl... VNg, VNZ
VA VAL.VAg
Die Adressen des Programmes
Sxx =Adressen des Steuerprogrammes
TVxx
TExx
=Adressen des Vorlaufs
= Adressen der Eingabe
1
TGygx =Adressen der Gruppenverarbeitung Teilprogramme
TBxx = Adressen der Bearbeitung
1
TNxx = Adressen des Nachlaufs
UVxxx =Adressen des Vorlaufs
UExxx = Adressen der Eingabe
UGygxx =Adressen der Gruppenverarbeitung Unterprogramme
UBnmxx = Adressen der Bearbeitung
UNxxx =Adressen des Nachlaufs
UPxxx = Adressen allgemein verwendbarer Unterprogramme
Die Indizes bedeuten dabei:
y = W Gruppenwechsel, y = V Gruppenvorlauf, g = Gruppenstufe,
n=Dateinummer, m=Satzart, xx, xxx=alphanumerischer Aus-
druck.
Je nach Bedarf kann die Stellenzahl erweitert oder verklirzt werden
und eine Untergliederung als Block oder Sprungadresse vorge-
nommen werden.
Weichen
VWDLl = 1 1. Durchlauf
=0 folgende Durchlaufe
VWxxx =sonstige Weichen
Die AdreBmoglichkeiten sind von der verwendeten Sprache
abhiingig. Die hier angegebenen Normierungen geben nur den
Anfang einer Adresse vor. Zusatzliche Erweiterungen sind moglich.
43
5.6. Sonstige Varianten von AMIGO
44
6. Maximen der Programmierung
Die Arbeit eines Programmierers ist fast immer durch einen groBen
Zeitdruck gekennzeichnet. Dieser Umstand fUhrt haufig dazu, daB
die Qualitat der Produkte und die Arbeitsmethode in vielerlei
Hinsicht unbefriedigend sind. Die Konsequenzen sind dann Fehler-
anfalligkeit, erhohte Aufwendungen und mangelnde Flexibilitat, die
oftmals zu einer volligen Neuerstellung der Programme fUhren.
Will man diese Nachteile umgehen, muB man Maximen fUr die
Programmierung aufstellen. Besonders bedeutsam sind:
• Sicherheit,
• Anderungsfreundlichkeit,
• Ubersichtlichkeit,
• Testfreundlichkeit,
• Hantierungsfreundlichkeit.
Die folgenden AusfUhrungen sollen diese Maximen naher erlautern.
6.1. Sicherheit
Sicherheit steht tiber allen anderen Punkten. Unter Umstanden ist
zusatzlicher Kernspeicherplatz bereitzustellen. Folgende Anforde-
rungen werden gestelIt:
• Hantierungssicherheit (Kap. 9). Die Hantierung muB narrensicher
und tiberprtifbar sein. Moglichst wenig Hantierung bedeutet
moglichst hohe Sicherheit.
• Ablaufsicherheit (Kap. 8). Ein Programm solI moglichst nicht
abgebrochen werden. Bei Abbruch solI nicht die komplette Arbeit
wiederholt werden mtissen. Die Benutzung von aktuelIen Dateien
solI gesichert werden.
• Datensicherheit. Es mtissen immer Ersatzdateien zur VerfUgung
stehen, beim Magnetband das 3-Generationen-Prinzip, bei der
Platte Plattenabztige mit Regenerationsmoglichkeit. Die Aus-
nutzung von Regenerationsmoglichkeiten bei Unterscheidung
von wesentlichen und unwesentlichen Informationen laBt haufig
eine ordnungsgemaBe Weiterarbeit zu. Das Redundanzprinzip
zur Sicherung von Leitinformationen (Satzarten) ermoglicht die
Erkennung von Fehlern. AuBerdem muB die VolIstandigkeit der
Daten gewahrleistet und eine mehrfache Benutzung unterdrtick-
bar sein.
45
• Wiederholungsmoglichkeit. Programme mtissen Wiederholungen
zulassen; eine Modifizierbarkeit fUr Wiederholungen (z. B. Druck-
abschaltung) sollte vorgesehen sein.
• Fehlererkennbarkeit. Wesentlich ist, daB moglichst alle Fehler
erkannt werden. Die Fehlererkennung dient ausschliel3lich der
Sicherheit. Es gibt sachliche und abwicklungstechnische Fehler.
Sachliche Fehler werden bei Abhangigkeitsprtifungen, Grenz-
prtifungen und Gliltigkeitsprtifungen erkannt und mtissen im
Pflichtenheft vorgegeben werden. Als sachliche Kontrollen kon-
nen Vollstandigkeitsprtifungen (z. B. alle Kartenarten vorhanden,
alle Felder gelocht usw.) sowie Gliltigkeitsprtifungen (zuIassige
Kartenarten usw.) zusatzlich eingefUgt werden. Abwicklungs-
technische Fehler werden bei DatenfluBkontrollen und bei der
Datensicherung erkannt.
• Korrekturmoglichkeiten. Da ein Programmlauf moglichst nicht
abgebrochen werden soll, muB die Moglichkeit bestehen, Kor-
rekturinformationen in Folgearbeitsgangen einzuschleusen (z. B.
Anderungen an Dateien). Die Korrekturmoglichkeiten mtissen
wegen der groBen Fehleranralligkeit besonders gesichert werden.
• Protokollierung. Alle Fehler sind zu protokollieren. Es sollte nach
sachlichen Fehlern (nicht auf Bedienungsblattschreiber) und
abwicklungstechnischen Fehlern (auf Bedienungsblattschreiber)
getrennt werden.
• Revisionsgesichtspunkte. Alle Datenverarbeitungsvorgange mtis-
sen auf sachliche Richtigkeit tiberprtifbar sein. Ftir die allgemeine
Uberprtifung, unabhangig yom Auftraggeber, gibt es eine Revi-
sionsstelle.
Je nach Aufgabenart werden auch externe Uberprtifungen durch-
gefUhrt. 1m wesentlichen wird gefordert, daB keine unberechtigten
und unerkannten Anderungen an den Verarbeitungen oder den
Daten durchgefUhrt werden dtirfen oder konnen. Alle Mani-
pulationen mtissen erkennbar und prtifbar sein.
6.2. Anderungsfreundlichkeit
Die erstellten Programme bleiben nicht tiber Iangere Zeitraume
unverandert. Grtinde dafUr konnen sein, daB sich die Aufgaben-
stellung verandert, bessere Organisationsformen eingefUhrt werden,
neue Ergebnisse verlangt werden oder Form und Zusammenstellung
der Ergebnisse bzw. der Eingaben verandert werden.
46
Alle Unterlagen und Programme miissen also so aufgebaut werden,
daB Anderungen leicht auszuftihren sind.
• Anderungen der Beschreibungen. Der Aufbau der Beschreibungen
muB so sein, daB sie leicht zu andern sind. Davon sind Ver-
fahrensbeschreibungen und Pflichtenheft, Programmbeschrei-
bungen, Hantierungsvorschriften, Datenerfassungsanweisungen
usw. betrotTen.
Die Austauschbarkeit von Blattern muB gegeben sein, da Amle-
rungen nicht zu einer Neuanfertigung der ganzen Beschreibung
ftihren diirfen. Beschreibungen miissen so aufgebaut sein, daB eine
Anderungsfreundlichkeit der Programme vorhanden ist. Ein
schlechter Aufbau der Beschreibungen fiihrt dazu, daB sie nicht
geandert werden.
Wie zweckmaBig zu dokumentieren ist, wird im Kap. 17 be-
schrieben.
• Programme (Kap.18). Erforderlich ist eine klare Aufgliederung
der Programme. Ihre logische Aufgliederung ist im Kap. 5
gezeigt. Sie muB den Austausch von Programmteilen zulassen,
wenn Anderungen erforderlich sind. Es sind dies Dateibeschrei-
bungen, kleinere Tabellen und Verarbeitungsteile.
Die Anderungsfreundlichkeit hat einen groBen EinfluB auf die
Sich~rheit. Sie kann einen erhOhten Aufwand bei der Pro-
grammierung und auch groBere Programme verursachen. Zum
Beispiel ist das Generatorprinzip bei haufig zu erwartenden
Anderungen im Programm zweckmaBig. Tricks sollten moglichst
nicht verwendet werden. Dagegen empfehlen sich hohere Pro-
grammiersprachen und Standardprogramme, die besonders ande-
rungsfreundlich sind. Kleinere Programme lassen sich leichter
andern als groBe. Auch kann die Modulstruktur zur Anderungs-
freundlichkeit beitragen.
Schlecht aufgebaute Programme und Dokumentationen erfordern
eine Neuprogrammierung der Aufgabe.
47
6.3. Ubersichtlichkeit
48
iiberblickbare GroBen ist fUr die Programmierung und Doku-
mentation wichtig. Auch der Test und die Programmwartung
werden dadurch beeinfluBt.
Die Schwierigkeiten nehmen mit der GroBe iiberproportional zu.
ZweckmaBige GroBenordnungen sind:
Programme: ca. 50 KB.
Programmteil: ca. 5-10 Blatter mit Befehlen.
Beschreibungen: max. 1 DIN A3 als Einheit.
• Festlegungen. Durch die Festlegungen (Adressierung, Verkniip-
fungen, Protokolle, Abkiirzungsverzeichnis) sollen gewisse Nor-
mierungen innerhalb des Verfahrens bzw. Programmes gegeben
werden. 1m einzelnen werden bestimmte Abkiirzungen verwendet,
urn lesbare und interpretierbare Adressen zu bekommen. All-
gemeine Vorschriften sind dabei zu beachten (Kap. 5). Allgemein
oder speziell giiltige Verkniipfungsmechanismen fUr Programm-
teile werden festgelegt (z. B. Parameterversorgung usw.) und von
allen Programmen einheitlich aufgebaute Protokolle, z. B. Fehler-
meldungen, geschrieben. Fiir Erlauterungen und Beschreibungen
werden normierte Abkiirzungen, die in einem Verzeichnis
beschrieben sind, verwendet. Zusatzliche arbeitstechnische Fest-
legungen wie Aufgabenabgrenzungen, Zustandigkejten usw. seien
hier nur kurz erwahnt.
• Einheitliche Programmstruktur. Eine einheitliche Programm-
struktur erleichert die Durchschaubarkeit von Programmen. Die
Verwendung normierter Programmhierarchien (Kap. 5) ist also
zweckmaBig. Der Einsatz von standardisierten Programmteilen
(Module, Unterprogramme usw.) und Standardprogrammen ist
besonders vorteilhaft.
• Optische Gliederung. Sie ist schon bei der Erstellung der symboli-
schen Programme zu beachten. Sinnvolle Anordnungen (z. B.
Einriickung usw.) ergeben eine bessere Lesbarkeit (Abb.6.1).
Dazu gehort auch, daB nur ein Befehl je Karte geschrieben wird
(Abb.6.2).
• Formeldarstellung. Es sollen keine ausfUhrlichen verbalen Be-
schreibungen gegeben werden, wenn eine mathematische Dar-
stellungsform moglich ist. Die Formeldarstellung ist kiirzer,
pragnanter und eindeutiger. Dies gilt auch fUr die Programmie-
rung. Zum Beispiel ist der COMPUTE-Befehl statt einer Kette
sonstiger arithmetischer Operationen zu verwenden.
49
~a c
FIE SECTIor .
n.~~~------------------------------~~-----'
FD EING48E FEe .Df~~ F lABEL REt~~D ~ITTE
DATA ~EC~~~ P-K4RTE A-~A~TE .
01 p-KARTE .
05 KA-P PICTURE ~X .
86 P-l{A VUUt '01'.
05 PHS- I ~-p PICTURE 9(81.
O~ NAME PICTU E ~(40).
05 OIE f;ST .
10 \·ERI( PIC TvRE XI 5) •
10 AliT PICTl.RE XIIO) .
10 CRT PICTURE X(5) .
05 FILLER PICTURE XllOI.
01 A-KARTE .
0' KA-A PICTURE xx .
88 A-KA VALUE '02' .
PER5-NR-A PICTuRe 9181.
AUFGUE PICTURE X(40) .
SOLl PICTURE S999 V9,
PICTURE S999V9.
1ST
R X 21. Abb.6.1
6.4. Testfreundlichkeit
50
ALGOL, FORTRAN, PL 1, LPG. Maschinenorientierte Spra-
chen sind Assembler. Da bei letzteren ca. die dreifache Befehlszahl
geschrieben werden m~B, erhoht sich die Fehlerhaufigkeit eben-
falls mindestens urn diesen Faktor. Bei problemorientierten
Sprachen ist auBerdem der Sprachumfang meist geringer und
damit besser beherrschbar.
Die je Sprache angebotenen Testhilfen sind unterschiedlich
(Kap.16).
• Programmaufbau. Wesentlich ist die Unterteilung der Programme
und Verfahren in uberblickbare GroBen durch Aufteilung in
Abschnitte. Programme konnen dann mit der niedrigsten
Hierarchie beginnend getestet werden. Durch einen entspre-
chenden Programmaufbau kann beim Test auch die Menge der
zu benutzenden Dateien minimiert werden.
• ProgrammgrofJe. Es ist je nach Aufgabe die optimale GroBe fUr
einen Test zu benutzen. Je nach Teststadium verandert sich die
GroBe. Man beginnt mit einzelnen Abschnitten und geht bis zum
kompletten Programm. Diese Methode darf aber nicht zu
wesentlichem Mehraufwand fUhren (umfangreiche Testrahmen).
• Overlay- Technik. Die Overlay-Technik kompliziert den Test eines
Programmes erheblich. Der Einsatz dieser Technik ist aber aus
anderen Grunden sehr sinnvoll. Soweit als moglich sind die
Programme erst ohne Overlay-Technik auszutesten. Erst danach
wird die Overlay-Technik getestet.
• Testhilfen. Programme soIl ten so aufgebaut sein, daB der Einsatz
von Standard- oder individuellen Testhilfen moglich ist. Diese
konnen den Test eines Programmes wesentlich erleichtern, zur
besseren Austestung von Programmen beitragen und den Test-
vorgang beschleunigen (Kap. 16).
• Programmiertricks. Programmiertricks erschweren den Test eines
Programmes. Der Begriff Programmiertrick ist sehr weit zu fassen.
Zum Beispiel gehOren dazu auch Weichen, die in Abhangigkeit
von anderen Weichen gestellt werden. Werden solche Methoden
verwendet, so sind sie durch Schreibtischtests besonders sorgfaltig
vorzuprufen und genau zu beschreiben.
• Hardwarebenutzung. Bestimmte benutzte Hardwarefunktionen
der Anlage konnen den Test erheblich erschweren (z. B. Daten-
fernubertragung). Zur Austestung von Programmen verzichtet
man zunachst auf echte Ubertragungen und fUhrt eine Simulation
dieses Vorgangs durch. Simulationen sind immer dann sinnvoll,
wenn die echten Funktionen zu Schwierigkeiten bei den Tests
der Arbeitsprogramme fUhren.
51
6.5. Hantierungsfreundlichkeit
52
7. Benutzung der Anwendersoftware
Wie schon erwahnt, kann die Erstellung von Programmen fUr eine
spezielle Aufgabe durch Rlickgriff auf vorliegende standardisierte
Losungen erheblich vereinfacht werden. Diese Standards werden
auch als Anwendersoftware bezeichnet. Wir k6nnen hierbei Module,
Makros und Programme unterscheiden.
Es sind hier also nicht die Module des Betriebssystem gemeint, son-
dern anwendungsbezogene, standardisierte Aufgabenlosungen in
Modulform, die jeder Benutzer frei wahlbar verwenden kann. Bei
einer Aufnahme dieser Module in eine Modulbibliothek werden sie
bei Bedarf automatisch eingebunden. Ahnliche Bedingungen gelten
fUr Makros, die deshalb hier nicht explizit genannt werden. Es gibt
mehrere Grlinde fUr den Einsatz der Modultechnik:
• Mehrfach auftretende ahnliche oder gleichartige Aufgabenstel-
lung.
• Erganzung des Betriebssystems.
• L6sung einer Teilaufgabe in einer anderen Sprache als das rest-
liche Pro gramm, da sonst nicht 16sbar.
• Erh6hung der Effektivitat durch optimale Programme.
Diese Grlinde gelten auch fUr Standardmodule. Diese mlissen aller-
dings bezliglich der Kernspeicherbelegung optimal ausgelegt sein.
Dies ist nur gegeben, wenn sie in Assembler geschrieben sind.
Ein besonders typischer Anwendungsfall ist gegeben, wenn Program-
me in COBOL-Sprache durch Assemblermodule ergangzt werden,
urn Funktionen des Organisationsprogrammes oder des Ein-Aus-
gabe-Systems zu nutzen. Zu beachten ist dabei allerdings, daB diese
Technik die Kompatibilitat zu anderen Systemen beeintrachtigt.
Die Modultechnik erfordert einen zusatzlichen Kernspeicherbedarf,
der je nach Sprache unterschiedlich ist. Flir die Siemens-Anlage
4004/35-55 gelten hierbei folgende Bedingungen:
COBOL-Module:
einmalig: ca. 200 Bytes
je Modul: ca. 11 00 Bytes
je angesprochene Datei: ca. 230 Bytes
(sequentiell)
53
Assembler-Module:
ca. 150 Bytes
Daraus ergibt sich eindeutig, daB die Modultechnik bei kleineren
Modulen nur interessant ist, wenn sie in Assembler geschrieben sind.
7.2. Standardprogramme
Es sind Programme gemeint, die in standardisierter Form vor-
liegen und anwendungsbezogen eingesetzt werden konnen. Es
kann Systemsoftware oder auch Anwendersoftware sein. Sie mUssen
auf einfache Weise verschiedenen Anforderungen angepaBt werden
konnen. Von den Systemprogrammen gehoren z.B. die Umsetzpro-
gramme zu dieser Kategorie.
Sofern fUr die zu losende Aufgabenstellung ein Standardprogramm
vorhanden ist, sollte es, falls nicht begrUndete Einwande vorhanden
sind, verwendet werden. Es konnen sich dadurch erhebliche Vorteile
ergeben:
• Einsparung von Programmierzeit.
• Einsparung von Testzeit.
• Sofortiger Einsatz moglich.
• Weniger Fehler, leichter zu andern.
Nachteilig kann ein etwas hoherer Kernspeicherbedarf sein. Auch
konnen u. U. etwas verlangerte Ablaufzeiten auftreten. Die Vorteile
sind aber meist groBer.
Zu Beginn mUssen meist A versionen Uberwunden werden, da ein
Teil der Einsparungen zunachst durch das Studium der Unterlagen
verlorengeht. Der volle EfTekt ergibt sich erst beim zweiten Einsatz.
Die Nachteile sind von der Art des Standards abhangig; generierende
Programme sind davon meistens freL
FUr bestimmte Aufgaben hat sich der Einsatz von standardisierten
Programmen schon eindeutig durchgesetzt (z.B. Sortier- oder Misch-
aufgaben). FUr Datentragerumsetzung, Filter-Trennaufgaben und
Druckaufgaben ist er unbedingt zu empfehlen. Zum Teil sind in den
Betriebssystemen entsprechende Programme enthalten.
1st bekannt, daB bestimmte Aufgaben in ahnlicher Form ofter auf-
treten, so kann die Erstellung eigener Standards zweckmaBig sein,
wobei dann allerdings der Systembetreuer eingeschaltet werden solI.
Die Durchsprache mit potentiellen Benutzern ist zu empfehlen. Eine
kurze und pragnante Beschreibung des Programmes muB erstellt
werden. /
54
7.3. Vorhandene Standards
Als Beispiele sallen hier Standards gezeigt werden, die fUr das
Siemens-System 4004/35-55 existieren.
Neben den in den Betriebssystemen enthaltenen Pragrammen sind
es:
Standardprogramme, Blattschreiberaufrufe
Name Leistung
BADRU Druckprogramm
SEENOT Etikettierprogramm in Notflillen
PRODRU Protokolldruck
BANDET Etikettierprogramm
PAXl Parity Extrahier Programm
VERDI Verdichten von Ubersetzungslisten
PLUMS Umsetzen Band-Platte und Platte-Band
NOTETI Notetikett auf Magnetband
ASSGNl Automatische Geriitezuweisung
VTOCINIT Initialisieren des Etikettbereiches von Randomspeichern
DIRSORT Sortieren des Inhaltsverzeichnisses der Bibliothek eines Platte-
Betriebssystems
VIMREORG Reorganisation einer VIM-Datei (s. folgende Ubersicht)
CLC Konvertieren von Band-Platte-COBOL-Bibliotheken ins Platte-
Betriebssystem-Format
OLC Auflisten der online-Randomspeicher
lnitialisieren von Magnetbiindern
Auflisten der freien Kernspeicherbereiche
J Auflisten verfligbarer Gerate
GPL Auflisten Programmlangen
PLATIN Platteninformationsvergleich
Module, M akros
Name Leistung
DRUCK Druck auf zwei Bahnen
STXBER Fehlerbehandlungsmodul
OBCOC Objekt-Code Korrektur
DALI Umrechnung Gregor- in Lieferwochenkalender
MOPS Protokollausgabe
LSLESE Lochstreifenleseprogramm
KSPSOR Kernspeichersortierung
FREIGABE Freigabe von Geraten
DRUEIN Formulareinstellung Drucker
DATEX Tagesdatum
MUFTll Fehlerbehandlung Magnetband
FIXPKT Fixpunktausgabe
OPEX Loschen Plattenspeicherdateien
POSITABl}
POSITAB2 Module zur Positionierung von Magnetbandern
POSITAB3
55
Name Leistung
VIM Indexsequentielle ZugrilTsmethode fUr Plattenspeicher
FKAL Fabrikkalender
KSPSORT Kernspeichersortierung
PURGE Loschen von Randomdateien
QTRACE Testhilfe fUr COBOL
EXMAC COBOL-Modul zum Aufrufvon Executivefunktionen
FACH2 COBOL-Modul zur Lochkartenablage ins Fach 2
Etikettierung
Diese Sicherung ist flir alle magnetischen Datentrager verwendbar.
Da dadurch erheblicher Schaden verhindert werden kann, ist deren
Verwendung Ptlicht. Bei rich tiger Benutzung ergeben sich dabei
folgende Sicherungen:
• Die unbefugte Zerst6rung von Dateien wird verhindert.
• Es werden die aktuellen Dateien verwendet.
• Es wird ein auftretender Datenverlust erkannt (Blockzahler).
56
• Die riehtige Reihenfolge der Datentrager (z.B. Magnetbandspulen
bei Spulenliberlauf) wird fUr die Bearbeitung sichergestellt.
Zusatzliehe Vorteile ergeben sich auBerdem fUr den Reehenzen-
trumsbetrieb.
Fixpunkt
Die Fixpunktteehnik erlaubt die Speieherung eines bestimmten Pro-
grammzustandes und bei Bedarf den Wiederanlauf des Programmes
bei diesem Zustand. Mit dieser Teehnik siehert man sieh gegen
Wiederholung eines Programmes wegen MasehinenstOrung, Han-
tierungsfehler, fehlerhafter Daten und Datenverlust abo
Voraussetzung fUr einen Wiederanlauf ist, daB der Fehler noeh wah-
rend des Programmablaufes erkannt wird. Diese Teehnik sollte bei
Programmen mit langerer Laufzeit immer eingesetzt werden, da
komplette Programmwiederholungen zu aufwendig sind. Zur Vor-
bereitung des Wiederanlaufes werden u. U. zusatzliehe Arbeiten wie
Datenrekonstruktion usw. erforderlieh sein.
57
Fehlermoglichkeiten vorzusehen:
• Physische Zerstorung des Datentragers.
• Fehlerhafte Bearbeitung der Daten.
• Unbefugte Uberschreibung.
Fur die Sicherung konnen folgende Methoden verwendet werden:
• Kopieren der Datei auf Magnetbandern nach jedem Ablauf, der
die Daten verandert.
• Kopieren der Datei in bestimmten IntervalIen, Sammlung aller
Anderungsdaten bis zur nachsten Anfertigung einer Kopie.
• Kopieren der Datei in groBeren Zeitabstanden, Speicherung aller
Originaldaten, die verandert werden.
Diese drei Methoden erlauben die Rekonstruktion von Direktzu-
griffsdateien bei einem eventuellen Verlust. Welche Methode zweck-
maBig verwendet wird, hangt von der GroBe der Datei und der
Anderungshaufigkeit abo Je groBer die Datei ist, urn so groBer wird
der Aufwand fUr Kopien. Die Intervalle zwischen zwei Kopien
sollten daher auch groBer werden. Werden sehr viele Daten geandert,
so wird die Speicherung der Originaldaten relativ aufwendig.
Ein wesentlicher Punkt ist auch die Benutzung der Fixpunkttechnik
im Zusammenhang mit Direktzugriffsdateien. Die normale Fix-
punkttechnik erwartet, daB alle Dateien auf einen Zustand zuruck-
geftihrt werden, wie er zum Zeitpunkt des Fixpunktes bestand. Bei
Direktzugriffsdateien ist dies nur mit groBem Aufwand moglich.
Eine Vereinfachung der Sicherung ist nur moglich, wenn alle Daten,
die nach einem Fixpunkt verandert werden, eine Kennzeichnung
erhalten. Wird ein Wiederanlauf durchgefUhrt, so durfen gekenn-
zeichnete Daten nicht mehr bearbeitet werden. Fur die Kennzeich-
nung sind entsprechende Stellen im Satz freizuhalten.
59
9. Hantierung
Programmaufruf
Bedienungs- Geriitezuweisung
blatt schreiber Parameterversorgung fehleranfiillig
Programmbeendigung (bei Fehlern)
Abb.9.1
60
Wahrend des Ablaufs eines Programmes ergeben sich flir die Han-
tierungen unterschiedliche Bedingungen:
Vor dem Start des Programmes
Die Maschine muB erst in einen bestimmten statischen Zustand ver-
setzt werden, urn arbeitsfahig zu sein (Rtisten der Gerate: Magnet-
bander, Platten, Lochkarten, Lochstreifen, Drucker; Laden des
Programmes). Welche Hantierungen durchzuflihren sind, ist in
speziellen Beschreibungen getiau festgehalten. Diese Hantierungen
sind bei einem Programm - mit gewissen Ausnahmen - immer
gleich. Ausnahmen konnen dann auftreten, wenn bestimmte Daten-
trager fakultativ verwendet werden.
Die Datentrager selbst wechseln meistens von Ablauf zu Ablauf.
Die Verwendung der richtigen Datentrager ist durch eine entspre-
chende Organisation des Rechenzentrums sicherzustellen.
Nach dem Start des Programmes
AIle' Hantierungen nach dem Start eines Programmes mtissen pro-
grammgesteuert aktiviert werden. Eine Ausnahme bilden Fehlerbe-
handlungen, die nicht auto rna tisch gemeldet werden, sowie die Loch-
kartenzufuhr und -ablage.
Folgende HantierungsmaBnahmen konnen auftreten:
• Wechseln von Datentragern (Bander, Platten).
• Zuordnung von Geraten.
• Papierwechsel am Drucker.
• Fehlerbeseitigung.
• Lochkartenzufuhr und -ablage.
• Abbruch von Programmen.
• Eingabe von Parametern tiber Bedienungs-Blattschreiber.
Sie finden aIle wahrend des Programmablaufes statt. Falsche Han-
tierungen konnen zu einer falschen Fortsetzung des Programmes
und dam it zur Verfalschung des Gesamtergebnisses flihren. Aus
diesem Grunde ist es wichtig, nur unbedingt erforderliche Hantie-
rungen vorzusehen und sie immer zu tiberprtifen.
N ach der Beendigung des Programmes
Die Hantierungen nach der Beendigung eines Programmes sind
unproblematisch, da der Programmabl,auf dadurch nicht mehr be-
einfluBt wird. Es sind dies die Archivierung der Datentrager und die
Uberprtifungsarbeiten. Die physische Archivierung kann z. T. ge-
spart werden, wenn Folgeprogramme die gleichen Daten benutzen.
61
9.2. Standardhantierungen
Wird die DV-Anlage mittels eines Betriebssystems betrieben, so
wird ein Teil der beschriebenen Hantierungen nicht mehr durch das
Anwenderprogramm ausgelOst. Die wahrend eines Programmab-
laufs auftretenden MaBnahmen, Datentragerwechsel (Band, Platte),
Geratezuweisung und Fehlerbeseitigung (Gerat unklar usw.) werden
dann normiert angefordert. Hiervon ist immer Gebrauch zu machen,
da standardisierte Hantierungen eine kleinere Fehlerwahrschein-
lichkeit haben.
Durch das System nicht standardisierte Hantierungen werden, falls
sie haufig auftreten, zweckmaBigerweise auch normiert. Beispiele
flir solche Normierungen werden spater noch gezeigt.
9.3. Protokolle
Die meisten Hantierungen wahrend des Ablaufs werden durch eine
entsprechende Anforderung auf dem Bedienungsblattschreiber aus-
gelost. An die Form der Protokolle werden folgende Anforderungen
gestellt:
• Moglichst kurz, auf eine Zeile begrenzt.
• Eindeutig, z.B. Fehlernummer.
• Kennzeichen, ob Antwort erwartet wird.
• Nur Protokolle, die yom Operator eine Aktion verlangen.
• Erlauterung der Aktion in der Hantierungsvorschrift.
• Unterscheidung zwischen Systemprotokollen und Anwender-
protokollen.
L -_ _ _ _ _ _ _ Programmname
L -_ _ _ _ _ _ _ _ _ _ _ _ Programmnummer Abb.9.2
62
Anwenderprotokolle gliedern sich in:
• Unterbrechungen wegen falschen oder fehlenden Steuerkarten.
• Unterbrechungen wegen Hantierung an externen Geraten (z. B.
F ormularwechsel).
• Abstimmungen.
63
9.6. Hantierungszeiten
Die Ablaufzeit eines Programmes setzt sich normalerweise aus Ma-
schinenzeit plus Hantierungszeiten zusammen. Meistens wird der
graBte Teil der Hantierungszeit fUr das RUsten der Anlage vor dem
Start des Programmes benatigt. Da diese Zeit unabhlingig von der
Ablaufdauer ist, wird das Verhliltnis zwischen Hantierungs- und
Maschinenzeiten immer schlechter, wenn die Maschinenzeiten kUr-
zer werden.
In Abb.9.3 sind die normal auftretenden RUstvorglinge mit den
erforderlichen Zeiten aufgefUhrt. Voraussetzung bei diesen Zeiten
ist eine entsprechend gute Vorbereitung der Arbeit durch eine
Bereitstellung von Datentrligern und sonstigen Unterlagen.
Vorgang Zeit
Abb.9.3
Die Zeiten fUr die in Abb. 9.3 nicht genannten Hantierungen lassen
sich kaum festlegen, da sie von der Anforderung an den Operator
abhlingen. Eine Verringerung dieser Zeiten IliBt sich durch eine sinn-
volle Verkettung von Programmen erreichen. Sind innerhalb eines
Verfahrens mehrere kurze Arbeitsglinge hintereinander mit den
gleichen Datentrligern abzuwickeln, so sollten die Programme ohne
wesentliche UmrUstung aneinander gehlingt werden. Dies ist auch
dann sinnvoll, wenn die Programme unterschiedliche GraBen be-
sitzen und fUr die Programmkette die maximale Konfiguration
reserviert werden muB. Unter Programmkette wird hier eine Folge
von Programmen verstanden, wobei nur das erste Programm explizit
aufgerufen wird, die nachfolgenden durch das vorauslaufende Pro-
gramm aufgerufen werden.
64
Eine weitere Verminderung von Hantierungszeiten kann durch die
Benutzung von Wechseleinheiten erreicht werden. Die Hantierung
kann hier simultan zum Ablauf des Programmes erfolgen, wobei
zusatzlich die Wartezeiten flir das RUckspulen der Bander eingespart
werden. Auch flir andere Gerate lassen sich Hantierungsvorgange
simultan abwickeln.
9.S. Hantierungsvorschrift
Die Hantierungsvorschrift ist ein Teil der Verfahrensdokumentation.
Wahrend mit der Verfahrens- und Programmbeschreibung nur
kUrzere Zeit dauernd und dannjeweils sporadisch flir die Programm-
pflege gearbeitet wird, muB nach der Freigabe des Programms mit
65
der Hantierungsvorschrift dauernd gearbeitet werden. Aus diesem
Grunde werden an sie strenge MaBstabe zu legen sein, wobei auf
folgende Punkte besonders zu achten ist:
• Vollstiindigkeit. AIle verlangten Unterlagen miissen auf den vor-
gesehenen F ormbIattern vorhanden sein (formelle Vollstandig-
keit). AIle auftretenden Hantierungen und Protokolle miissen
beschrieben sein (sachliche Vollstandigkeit).
• Ubersichtlichkeit. Das einheitliche Ordnersystem und aIle Dar-
stellungen sowie Beschreibungen sollen es dem Operator moglich
machen, aIle erforderlichen Informationen sofort aufzufinden.
• Eindeutigkeit. AIle Angaben haben so zu erfolgen, daB sie eindeutig
interpretierbar sind. ZweckmaBigerweise diirfen auch dem Opera-
tor keine Entscheidungen iiberlassen werden. Sind Alternativ-
handlungen vorgesehen, so miissen die Bedingungen daflir ein-
deutig sein.
Wie die Hantierungsvorschrift im System der Verfahrensdokumen-
tation einzuordnen ware, wird im Kap. 17 gezeigt.
Ein Teil der flir die Hantierungsvorschriften benotigten Unterlagen
ist auch flir die Verfahrens- und Programmbeschreibung erforder-
lich und kann daher unverandert iibernommen werden.
Folgende Unterlagen werden in einer Hantierungsvorschrift be-
notigt:
• Datenfluj3pliine. Diese sollen aufzeigen, wie ein Programm inner-
halb eines Verfahrens angeordnet ist. Die DatenfluBkontroIle zeigt,
welche Kontrollen das Verfahren absichern.
• Formbliitter. Auf diesen Blattern werden aIle Hantierungen aufge-
flihrt, die flir das Riisten der Anlage erforderlich sind. Bei Anlagen
mit Multiprogramming werden auch die flir diesen Betrieb erfor-
derlichen Angaben gemacht.
• Datentriiger-Organisation. Es wird die Datei- und Satzstruktur der
Datentrager beschrieben (z.B. Sortierung). Damit sollen u. U. er-
forderliche Korrekturarbeiten ermoglicht werden (z.B. Beseiti-
gung von Sortierfehlern bei Lochkarten).
• Externer Speicherlatifplan, Dateiaufkleber. In diesem Plan wird die
Benutzung der Dateien innerhalb eines Verfahrens aufgezeigt. Die
aktuellen Archivnummern des Datentragers konnen entnommen
werden. Der Operator kann daraus ersehen, welche Datei wo
benutzt und wo erzeugt wird. Der Dateiaufkleber wird flir die
Beschriftung von neu erzeugten Datentragern beilotigt.
• Hantierung bei Unterbrechung. AIle Meldungen, die eine Unter-
brechung des Programmes verursachen und yom Benutzerpro-
66
gramm erzeugt werden, mUssen in Ursache und auszuflihrender
MaBnahme beschrieben werden.
In den Abb. 9.4 bis 9.9 sind die FormbHitter flir die Hantierungsvor-
schrift sowie zum besseren Verstandnis Beispiele flir die Erstellung
angegeben. Die Abb. 9.4 bis 9.8 zeigen ein Beispiel flir einen gekette-
ten Ablauf, Abb.9.9 zeigt das Deckblatt flir einen Einzelablauf.
I Kj Ol li lI IT iR l
"' ~ - 0
r....... vUobentlicb
.
°
~nnbulbtl
Atlbrueh d.t let". ,,0 jo ",0 ",0
LRE SYSI PT
DR SYSLST STSLST
f--to\L9- ~Wd Sys!i21J_ f-Ms1i21!
f-HB/.9. SYSd21
i--J'WL9 SYSd24 SrSd24
~..9. SYSI!2o;
0
~L9 SYSd26
~
C>
'- .....,t.....
ts ... ~~
1IL ..
"'M ............. """'~t~
DI' .~~ ..
O"·~~.
Mc..~ .......
...r?twc1 ............ _1s.- ... ... ~
IJ(A-llC,H...,,*II . . . .
OCt "L~l..........,..
lSA ..
LU"ltc,"~
l~~"' ...............
Abb. 9.4
67
Abb. 9.10 (s. S.74 u. 75) zeigt einen Ausschnitt aus einem Speicher-
ablaufplan fUr ein spezielles Beispiel. Folgende Informationen lassen
sich daraus erkennen:
• Aufwelchen physischen Datentdigern steht welche aktuelle Datei?
• Wie lange wird eine Datei aufgehoben?
- -
LKf./lKA Sv"" o...tenomo LKE I S I I I s II IP 1r I SynO. Ge<. _ _ LKA
Pi Voriauflcarte E 30 Tag.
P2 Be.tandsk&rten E 30 Tage
,.......
1 '--
Iformaipapier
.... ......
'L" 1
I ......•
z..
6
,,-.. ~~ .............
...
LodIbood
.......... I , I . , • , • • .,
'pol
n •
I 72 St nd d ~ .. l "
, ~ . . l'"
,
. ~
~
.. l . .
.. l "
Abb. 9.5
68
• Wie viele Informationen (B16cke) enthlilt die Datei?
• Welches Programm liest oder erzeugt die Datei?
• Welcher symbolische Gerlitename ist der Datei zugeordnet?
• Auf wie vie1en physischen Datentrligern steht die Datei?
• Wann und von wem ist die Datei erzeugt worden?
Magnetblnder
Sperr-
m ElA Slauer-
SymboL Ge.jjtena..,'3 Dale;·N."....,
S" boo :~~!. Datei.lndili~abOn/Beme"'vngen
I I I I I SI OIRIT II III I 9 E II II
SORT
SIYISlil211 FI21~IEIIIIlI 9 E 6G/ F23Nl1G/71 II
P1V34V
SIYISIGlI214 SIOIRITIl1ISI 9 A 6i 1'25.79 II
SORT
I I I I I FI 21 ~ IE II IR I 9 E II II
P1V6G1v
S~YI S IGlI2 10; I I I I I I IQ17 E/A - Arbeihband fIlr SORT
SIYISIG/ 1216 I I I I I I 19/7 E/A - II II
I I I I I I I I I II
I I I I I I I I I I I
I I I I I I I I I I I
GroBspeicher
I, 2,
EJA
,"__ "",.-
Iris!
Symbol. Ge,atl!name Date;·Nam. Speich. Ber.- Oaiei-Indillkalion I Bemerkungen
1" U LTg.
I I I I I I I I I I I
I I I I I I I I I I L
I I I I I I I I I I I
I I I I I I I I I I I
I I I I I I I I I I I
I I J I I I IL I I I
I I J I I I I I I I L
I I I I I I I I I I I
I I I I I I I I I I I
I I I I I I I I I I I
Bemerkungen:
Abb. 9.6
69
• ... '" -
"Q
,
u. -'
..,.., ..,..., ... ..,.... ..,... ... ..,on ..,... ...... ....... ... ....., ...... ..,... ..,.., ..,'"
Co > :> :>
1£
,
'" :>
"
<"
~ ~
~ ~ ~
.....
... ·
... · -...
~
~ III l5J. .~
N
·
~
-
",
~ N
·
w
-'
.
... ,..
e
...... ... ...N
.
... ,..s.
...
-
.:>
< ... N
.
-
·. .
" ~
~ Z 1"'1: N a.
.....
... ...
III ~
III ~
~-~ -~ . - 2
..,
.
N
...'0"' - .
g
- ... ...
... ..... ..-.. ....
.
"& N
, .-
. . ...
, .n ~_J: s.
'" .... .., - -Z 'l:5l
- -
.... ..,J
..,
%
oS
... ...
..,>z ... ... .n . >-.n-
N N II: .sI
... ...'*
~ of)
LL
0 of) O
...-' III ...J
- ... ...
011 0 D-
-' w
... 0 Z
...><
... -
)C
... ........
:> w
, ....... , , ... ....... ,....... ....... :z:
- " , .......... .......... "
0 III
IIJ .......
....... .......
Anmerkung:
Die Abb. 9.7 zeigt die fUr den Ablauf erforderlichen Steuerkarten.
70
Meldung Bedeutung MaBnahme/Antwort
P1V~~V
------
P1V~AV
---- -
P1V~Q/v
.
Abb. 9.8
71
Programm-Name
Benotigte Peripherie:
Lochstreifenausgabe Magnetkartenspeicher
Drucker 1bahnig
Drucker 2bahnig
Pro gramm-Charakter:
Overlays Wiederanlauf
Recheninlensiv E/A·lntensiv x
nach Bedarf
Turnus: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ laufzeitje Turnus: _ _ _ _ _ _ _ _ _ _ _ _ __ ca. 116 Min.
Abb. 9.9
72
9.9. Checkliste: Hantierung
Mit Hilfe der Cheekliste konnen die vorgesehenen Hantierungen
Uberprtift werden:
• Lassen sieh Programmketten bilden?
• Sind bei Programmketten die Geditezuordnungen so moglieh,
daB Datentdiger nieht ausgeweehselt werden mUssen?
• Sind line-up-Routinen vorgesehen?
• Sind auf Druekerformularen Einstellmarken vorgesehen?
• Werden normierte Vorsehubstreifen verwendet (Abb.9.11)?
• Werden die Protokolle in normierter Form ausgegeben?
• Sind nur normierte Antworten zugelassen?
• 1st ein Wiederanlauf vorgesehen?
• Wird mit Etikettierung gearbeitet?
• Werden die HantierungsmaBnahmen masehinellUberprUft?
• Lassen sieh sinnvoll Weehseleinheiten benutzen?
• Erseheinen auf dem Bedienungsblattsehreiber nur Protokolle fUr
den Operator?
• 1st fUr jedes Programm bzw. Programmkette eine Hantierungs-
vorsehrift vorhanden?
• 1st die Aktualisierung von Ablaufparametern eindeutig geregelt?
• Konnen Ablaufparameter dureh Programmroutinen ersetzt wer-
den?
• Werden Ablaufparameter (individuelle) dureh Loehkarten einge-
geben?
• 1st die VollsHindigkeit von Datentragern gesiehert (Loehkarten,
Loehstreifen)?
• Sind fUr die Gerate genormte symbolisehe Geratenamen verwen-
det?
• Werden keine verbotenen HantierungsmaBnahmen verlangt
(Hantierung am Wartungsfeld usw.)?
• Entsprieht die Hantierungsvorsehrift den bestehenden Konven-
tionen?
• Sind aufwendige Hantierungen in Kleinprogrammen unterge-
braeht?
• Wird bei Loehkarten-Eingabefehlern die Loehkartenhantierung
UberprUft?
73
~ Externer 5peicheroblo _. . . . _. - ..... ---- Anm.: ..xx··= WB-Kennziffer
Doteibezeichnung 5p.F[/Tge
A81C 1 B
1541 XX 70
A 77 B
5tommbond
bereinigen
Doteibezeichnung 5p.Fc/Tge
A77 1 P
45 Op
1101 XX " O~
am: om:
SYS 019 BZ: 78 von: von:
om: om:
SYS 010 BZ: 78 von: von:
I::~ -- l
------------------ --------------
-~
I I
~
D
01
.d
.0
«
~ g
0
><
><
co
I
~ ~ ~ ~ =
«
-- 0
i
~ ~ ~ ~
= =.. =..
Q>
'"
':::: to to
o.'i::
'*'"
("""")
....... .......
co co
lJ
§
c
.c::
co 01
=
1 = '"=
'"
- ><
co><
- =
co - ><
.0; r--
Vl Vl ><
>- >-
r---- ;g «~
-
Vl Vl
co
c ~ ~ ~ ~ CD
r-.
I
=
Q>
~ = =..
Q> ("""")
r--
""' = ro «
- « e "-
o.'i:: r-- r--
..
~
-
''"*
c
.......
co
.......
co
I
::>
-5
0....
>< 01
=
- ><
= =
~ ~
.0; co _
~ ro ("""")
=
Vl Vl
lJ
.0; r-- ~
>- >-
a<::> « Vl Vl
><
~ ~ ~ ~
><
= =.. =..
Q>
CD
""' =
"-
'-- o.'d.
i::
r-- r--
=
«
<.n
....... .......
g> co co
=
::> 0....
-5 01 :§
=
- ><
.~ co ><
~
5 CD
oo-
.0
.0; r-. ~ Vl Vl
>- >-
a<::> «5 Vl Vl
75
Vorschub- Kanole Formular-
streifen Nr. 1 2 3 4 5 6 7 8 9 10 11 12 hiihe
VS 12001 3 11 12 Zeilen
23
VS 24001 2 22 24 Zeilen
VS 24002 3 7 23
VS 24003 2 5 10
VS 24004 8 22
VS 36001 4 13 34 33 36 Zeilen
V5 36002 3 33 35
VS 48001 3 45 43 42 48 Zeilen
VS 48002 4 9 43
VS 48003 3 45 36
VS 48004 5 21 33 6
VS 48005 1 47
VS 48006 4 33 39 11 46
VS 48007 6 37 11 46
VS 48008 1 26 47
VS 48009 4 9 46
VS 72001 2 70 72 Zeilen
VS 72002 2 28 70
VS 72003 5 12 69
VS 72004 4 60
VS 72005 1 70 10 18 71
VS 72006 1 18 70
VS 72007 3 8 70
VS 72008 2 62
VS 72009 3 9 67
VS 72010 3 9 69
VS 72011 5 71
VS 72012 3 69 65
VS 72013 3 21 69 2 66
VS 72014 4 14 71 60
VS 72015 39 44
VS 72016 6 13 27
VS 72017 36 6 29 31 13" 27
72 42 65 67 49 63
VS 720 18 4 35 12 65
VS 720 19 38 40 43 30 32
VS 72020 40 2$ 31
VS 72021 20 11 23
56 47 59
VS 72022 18 10
42 34
66 58
VS 72023 3 5 8 13 23 9 29 30 65 67
33 34
37 38
46 47
50 51
Abb.9.11
76
10. Modifizierung von Programmen
77
R = Wiederholung einer Routine (Retry)
M = ErUiuterung zum Protokoll (Message)
N =Ablehnung (No)
Y = Zustimmung (Yes)
Werden andere Informationen benotigt, so sind sie z.B. per Steuer-
karte einzugeben. Eingaben Uber den Bedienungsblatts~hreiber
mUssen durch das Programm angefordert werden.
Bei folgenden Aufgabenstellungen ist eine Modifikation angebracht:
• Wahlweiser Listendruck (Druck ist abschaltbar).
• Eingabebander fakultativ.
• Einzel- und Gruppenbearbeitung.
• Druckeinstellung (Druck auf Formularpapier).
• Setzen von Fixpunkten (variable Zustande).
• Durchftihrung von Sonderarbeiten zu bestimmten Terminen (z. B.
Jahreswechsel).
• Wahlweise Benutzung von Geraten.
78
11.1. Kapazitiiten einer DV-Anlage
79
8etriebssystem
8etriebssystemkomponente
8and/Band - Pia tte Platte
System (resident) 16- 20 K8 8-10 KB
Ein-Ausgabe-System
ITlCOC01 Bond (fix, ungeblocktJ 3528 2232
" 2 Drucker/Karten 4544 2528
" 3 Orucker/Karten/Band 5032 3576
" 4 Drucker/Karten/Band
Gronspeicher (sequentiell) 7248 5400
" 5 ITLCOCD1 •
Gronspeicher (direktJ 5584 3904
" 6 wie ITLCOC02·
Gronspeicher (direkt) 6592 4448
" 7 wie mCOC03.
Gronspeicher (direkt) 7408 5520
" 8 wie mCOC04.
Gronspeicher (direkt) 9096 7624
9 Gronspeicher (direkt) 3856 2264
Monitor 4 KB -
Abb.11.1
80
lassen sich meistens durch die optimalere N utzung dieser Gerate
und durch die Beschleunigung der Verarbeitung Einsparungen bei
den Ablaufkosten erzielen. An einem Beispiel solI dies demonstriert
werden:
Interne Verarbeitungskapazitiit
Bei kommerzie11en Programmen wird die interne Verarbeitungs-
kapazitat der Anlage meistens relativ wenig genutzt. Man braucht
also bezuglich der Verarbeitung keine besonderen MaBnahmen
zu treffen, wenn es sich urn normale Programme handelt. Zu be-
rucksichtigen ist in AusnahmeHillen a11erdings, daB bei hoher Daten-
durchsatzrate die interne Verarbeitungskapazitat bis auf den Wert 0
sinken kann.
81
100
%
90
80
20
10
82
320 Bytes/em
~nzahl der Blocke fur 105 Bytes
2000 20
103
200
'\ , V
.-< ~I.I.
k Bytes pro 750 m Band
1!f 10 10 2
"" "/'" L
"
8 8
""
4
!2 >-
co
~2 0;'
'"
is ~
'0
a; E
a.
102 :G 1 ~1O "
"
ij;
'C
"," . . . . .4i g.
-
' " J, CIJi/ ....
"'/s
10 10'-'
....
6 8 10 2 2 4 6 8 10 3 6 8 10 4
Bytes/Block Abb.11.5
Bloekgriine Zeit fur 105 Bytes (190cm/s)
43 B 20 s
90 B 10 s
150 B 7s
300 B 4s
1000 B 2.4 s
2000 B 2s
Abb.11.6
11.3. Prograrnrnketten
Dureh die Aufgliederung von Aufgaben in kleinere Programme
konnen erhebliehe Hantierungszeiten entstehen. Urn diese Zeiten
zu rninimieren, bietet es sich an, die in den Betriebssysternen vor-
gegebene Mogliehkeit der Programmkettung zu benutzen. Dabei
sind folgende Punkte zu beaehten:
• Betriebssystem mit statischer Kernspeicherzuordnung. AIle in
einer Kette angeordneten Programme sollten mogliehst dem
gleichen Programmtyp angehoren, da der groBte Programmtyp
fUr die ganze Kette bestimmend ist.
• Systeme mit dynamischer Zuweisung. Hier kann die Kernspeicher-
zuweisung vedindert werden. Aueh sind nieht zusammenhangende
Bereiehe zugelassen, so daB aueh versehiedene groBe Programme
gekettet werden konnen. Allerdings muB zum Ablaufzeitpunkt
83
der zusatzliche Kernspeicherbereich zur VerfUgung stehen. Da
dies beim Ablauf kaum zu steuern ist, ist auch hier die einheitliche
ProgrammgroBe zu empfehlen. Kann die Kette durch kleinere
Programme mit kurzer Ablaufzeit verlangert werden, so ware
dagegen nichts einzuwenden.
11.4. Konventionen filr das Multiprogramming
Urn den Multiprogrammingbetrieb sinnvoll zu ermoglichen, ist es
zweckmaBig, Konventionen einzufUhren. Sie sollen den Spielraum
nach oben hin einschranken und konnten Grundlage fUr die Berech-
nung der Ablaufkosten sein.
Da diese Einteilung in Programmtypen auf die Anlagenausstattung
ausgerichtet sein muB, kann hier nur ein Beispiel fUr die Konven-
tionen gegeben werden, die auf der angegebenen Anlageausstattung
basiert und fUr den Einsatz des Platte-Betriebssystems gedacht ist
(Abb. 11.7).
Auslagen-
Programmtyp 29 60 92
ausstattung
Kernspeicher 28.672 59.392 92.160 131.072
Magnetbander 2 6 10 12
Ma9netplatten 2 2 4 6
Drucker 1 1* 1* 2
Lach kartene ingabe 1 1* 1* 2
Lachkartenausgabe 1 - - 1
Lochst rei fenei ng abe 1 - - 1
Lochstreifenausgabe 1 - - 1
Max. Gerate 5 10 16 25
xxxx
Ablaufkombination** . xx x
x x
xx
Umsetzer Obersetzer Gronprogramm
Programme kleine Verar- Sort (genehmigungs-
beitung DO Verarbeitung pflichtig)
Ablaufkasten Ih
(Relation) 1 2,2 3,8
Anmerkungen
* Nur fur kleine Datenmengen
**Welche Programme in welcher Zahl miteinander ablaufen k6nnen
Der Kernspeicher- und Datentriigerbedarf fur das Betriebssystem brauchen
in den Program men nicht berucksichtigt zu werden. Abb.11.7
Fur kleinere DV-Anlagen wird das Multiprogramming nur in
Ausnahmefallen moglich sein. Bei groBeren Anlagen kann diese
Konvention u. U. entfallen, wenn durch eine entsprechende Disposi-
tion die Auslastung der DV-Anlage gewahrleistet wird und die
Kostenverrechnung durch Erfassung der benutzten Zeiten und
Kapazitaten erfolgt.
84
12. Optimierung des Kernspeicher- und Zeitbedarfs
I 'M r~ (1~ I~ ~
______
- - Oolenf)lOck/ / '
---SlocklGcke / ' Abb 12,2
85
Schreibgeschwindigkeit, da sehr viele Blocklticken geschrieben
oder iiberlesen werden miissen. Die erzielbare Obertragungs-
leistung ist in Abb.ll.5 dargestellt.
• Kompatibilitiit. Zu beriicksichtigen ist ebenfaIls, daB der gleiche
Datenbestand auch von anderen Programmen bearbeitet wird,
z.B. Software-Programme, die eventuell an die Blockliinge
gewisse Bedingungen kniipfen.
Doppelte Ein-Ausgabe-Bereiche. Werden fur eine Datei zwei Ein-
Ausgabe-Bereiche reserviert, so kann eine iiberlappte Bearbeitung
von Ein-Ausgabe mit interner Verarbeitung stattfinden. Wiihrend
ein Block intern verarbeitet wird, kann gleichzeitig der niichste in
den zweiten Ein-Ausgabe-Bereich eingelesen werden. Bei kleinen
Blockliingen ist diese Methode problemlos, bei groBeren BlOcken
ist dafUr ein erheblicher Kernspeicherplatz zu reservieren.
Gemeinsame Ein-Ausgabe-Bereiche for mehrere Dateien. Sofern
Dateien durch ein Programm nicht gleichzeitig bearbeitet werden,
ist durch die Benutzung des gleichen Ein-Ausgabe-Bereiches fUr
mehrere Dateien eine erhebliche Kernspeicherersparnis zu erzielen.
Zeitliche Verluste treten dadurch nicht auf.
Satzbereich. Die Benutzung eigener Satzbereiche, in denen jeweils
ein Satz aus dem Ein-Ausgabe-Bereich iibertragen und bearbeitet
wird, bringt kaum Vorteile (u. U. kleine Programmiererleichterun-
gen), aber einen zusiitzlichen Kernspeicherbedarf.
Konstanten, H ilfs- und Arbeitsbereiche
Fiir die vom Programm benotigten Konstanten, Hilfs- und Arbeits-
bereiche miissen folgende Oberlegungen angestellt werden:
• Benutzung gleicher Speicherbereiche fUr mehrere Zwecke.
• Giinstigste Definition der Bereiche (z. B. gepackte oder duale
DarsteIlung).
• Beachtung der Ausrichtung von Bereichen. Bei erforderlicher
Ausrichtung auf Halbwort- oder Wortgrenzen sind moglichst
aIle Halbworte und Worte hintereinander zu definieren, urn
FiiIlbytes zu sparen.
• Verwendung von Sekundiirspeichern. Durch Auslagerung von
relativ selten benotigten Informationen (z. B. TabeIlen, Zwischen-
ergebnisse, FehlerprotokoIle) auf Magnetplatte kann sehr viel
Kernspeicherplatz gespart werden, da fUr aIle diese Informationen
im Kernspeicher ein gemeinsamer Bereich benutzt wird. Die
ausgelagerten Informationen werden erst bei Bedarf in den Kern-
speicher geholt.
86
Befehlsbereich
Durch Beachtung der folgenden Empfehlungen lassen sich Kern-
speicher-Einsparungen erzielen:
• Klare straffe Ablauflogik vermeidet iiberfliissige Befehle.
• Durch Unterprogramm- oder Schleifentechnik belegen Befehls-
folgen, die mehrmals im Programm benotigt werden, nur einmal
Kernspeicherplatz.
• Vermeidung von speicheraufwendigen Befehlen (z. B. einige
COBOL-Anweisungen, fUr die gleich umfangreiche Befehlsfolgen
eingesetzt werden).
Neben diesen allgemeinen Empfehlungen gibt es noch eine spezielle
Technik zur Einsparung von Kernspeicherplatz.
Overlay- Technik. Die wohl eleganteste Methode, Kernspeicherplatz
einzusparen, ist die Overlay-Technik. Das Prinzip beruht auf einer
Programmsegmentierung, wobei nur jeweils die aktiven Segmente
im Kernspeicher stehen. Die anderen Programmsegmente werden
erst bei Bedarf in den Kernspeicher geladen. Dadurch benutzen
mehrere Programmteile gleiche Kernspeicherbereiche. Natiirlich
muB sichergestellt sein, daB sich gleichzeitig benotigte Pro gramm-
teile nicht gegenseitig iiberlagern. Als Overlay-Segmente eignen
&ich Programmteile, die einmalig oder nur selten oder nur in Sonder-
fallen benotigt werden, z. B. :
• Eroffnungsroutinen,
• Enderoutinen,
• Fehlerroutinen,
• Sonderprogrammteile,
• Nachfolgeprogrammteile.
Ohne Overioytechnik Mit Overioytechnik
KSP - Bedorf = 33 KB KSP-Bedorf = 18 KB
Abb12.3
Beispiel: Ein Programm bestehe aus den Segmenten A = 10 KB,
B = 7 KB, C = 8 KB, D = 4 KB, E = 4 KB. Die Ablauflogik schreibe
vor, daB A immer benotigt wird; die Segmente B, C sowie D und E
zusammen dagegen nur einmal als Nachfolgeprogrammteil geladen
werden. Abb. 12.3 zeigt den unterschiedlichen Kernspeicherbedarf
mit und ohne Overlay-Technik.
87
Kernspeicheroptimierung bei CO BO L- Programmen
Durch eine genauere Untersuchung der Auflosung von COBOL-
Anweisungen sind folgende Optimierungsmoglichkeiten z. B. fUr den
Compiler der Siemens-Anlage 4004 ermittelt worden:
• Einfache Schalter moglichst mit PICTURE x definieren.
• Bei Vergleichen mit binaren Feldern wird ab 10 Stellen (PICTURE
S9 (10) COMPUTATIONAL) in ein Unterprogramm verzweigt.
• Vergleiche mit Dezimalwerten erfordern mindestens 22 Bytes
mehr, deshalb so weit als moglich nur ganzzahlige Werte defi-
nieren.
• Vergleiche von nicht numerischen Feldern ungleicher Lange
laufen auf zwei Vergleiche hinaus.
• Soweit als moglich Mehrfachbedingungen benutzen. Das ist
glinstiger als mehrere entsprechend aufeinanderfolgende Einfach-
bedingungen. Das Programm wird dadurch allerdings unliber-
sichtlicher.
• Numerische Felder soweit als moglich mit COMPUTA-
TIONAL-3 und "S" definieren und ungerader Anzahl von ,,9"
(beim Druck ist Druckaufbereitung notwendig).
• Die ON SIZE ERROR-Angabe erfordert mindestens 28 Bytes
mehr.
• Die ROUNDED-Angabe erfordert regelmaBig 12 Bytes.
• Die Verwendung von PERFORM zum wiederholten Durch-
laufen von Programmschleifen ist nicht wesentlich speicher-
aufwendiger als eine selbstprogrammierte Losung.
• Die Zahler bei TIMES bzw. VARYING in der PERFORM-
Anweisung moglichst mit PICTURE S9 (2n+ 1) COMPUTA-
TIONAL-3 definieren. Die binare Definition ist speicheraufwen-
diger.
• Jede EXAMINE-Anweisung erfordert 14 Bytes.
• Flir jede TRANSFORM-Anweisung wird ein 256-Bytes-Feld mit
dem sedezimalen Inhalt ~-FF aufgebaut. Auch figurative Kon-
stanten werden 256 Zeichen lang gespeichert. Die TRANSFO RM-
Anweisung erfordert bei Literalen bzw. figurativen Konstanten
als Operanden 6 Bytes, bei Datennamen als Operanden 18 Bytes.
• Mehrere READ- bzw. WRITE-Anweisungen fUr eine Datei
moglichst in einem Unterprogramm geben.
• Schutzstern ist speicheraufwendiger als Nullenunterdrlickung
mit "Z".
• Sendefelder moglichst mit S 9 (2 n + 1) und COM PUTATIONAL-3
definieren (beim Druck ist Druckaufbereitung erforderlich).
88
• Einftihrungszeichen "B" zur Trennung der einzelnen Druck-
aufbereitungsmasken glinstiger als Definition von Leerfeldern.
• Gleitende Vorzeichen erfordern ca. 20 Bytes mehr.
Interne Zeiten
Bei kommerziellen Programmen sind die internen Vorarbeitungs-
zeiten meist uninteressant, da sie nicht besonders groB sind. Aus-
nahmen sind Programme, in denen Tabellensucharbeiten auftreten.
Hierbei bieten sich dann bisektionelle Suchmethoden als glinstige
Losungsmoglichkeiten an.
Interne Wartezeiten lassen sich vermeiden, wenn mit zwei Ein-
Ausgabe-Bereichen gearbeitet wird und ein groBerer Kernspeicher-
bedarf akzeptiert werden kann. Unnotiger Datentransfer im Kern-
speicher kann interne Zeit kosten, die nicht notwendig ist.
Externe Zeiten
Da die liberwiegende Programmlaufzeit aus externen Zeiten be-
steht, lassen sich hier am ehesten Einsparungen erzielen.
Bei den Ein-Ausgabe-Zeiten sind Reduzierungen moglich durch:
• optimale Blocklangen,
• Benutzung schneller Gerate,
• zwei Ein-Ausgabe-Bereiche.
Bei den Rlist- und Hantierungszeiten wird gefordert:
• wenig Rlistvorgange,
• Wechseleinheiten,
• Programmketten oder Jobablauf,
• wenig Operatoreingriffe,
• keine Unterbrechungen des Programmablaufs, die einen Eingriff
durch den Operator erfordern.
Jede Unterbrechung des Programmes aus welchen Grunden auch
immer kostet erhebliche Zeit.
89
13. Testmethoden
13.1. Schreibtischtest
Der Test wird ohne DV~Anlage ausgeftihrt, alle Vorgange werden
personell simuliert. Er ist immer dann sinnvoll, wenn andere Test-
moglichkeiten nicht anwendbar sind. Nachfolgend ist aufgeftihrt,
wann Schreibtischtests durchgeftihrt werden sollen:
• Nach der Erstellung des DatenfluBplanes.
• Nach der Erstellung des Programmablaufplanes.
• Nach der Codierung der Aufgabe.
• Nach der 1. Umwandlung (Protokoll mit formalen Fehlern).
• Nach jeder Anderung der Codierung.
Was soll getestet werden?
• Programmlogik (z.B. Weichensetzung usw.).
• Verarbeitungs-und Rechenregeln.
• Die Vollstandigkeit von Daten und Programm.
• Die Zusammensetzung von Ergebnissen (z. B. Listen, Tabellen,
Dateien).
• Die Erkennung von Fehlern in den Daten.
• Die formale Richtigkeit des Programmes.
• Die EfTektivitat des Programmes.
• Die VerknUpfungspunkte zwischen Teilen des Programmes.
• Die Ausgangswerte von Rechenoperationen.
Wie soll getestet werden?
• Der Test ist mindestens zu zweit durchzuftihren.
• Die Testdatenmenge muB gering sein und sollte jeden Zweig
einmal ansprechen.
• Zwischenergebnisse mUssen schriftlich fixiert werden.
• Schleifenvorgange sind einmalig exakt durchzugehen.
• Erkannte Fehler werden berichtigt. Bei Logik-Fehlern ist es
zweckmaBig, neu anzufangen oder den entsprechenden Abschnitt
erneut zu testen. Bei formellen Fehlern ist Weiterarbeit moglich.
90
Welehe Vorteile bietet der Sehreibtisehtest?
• Reduzierung der TestUiufe in der DV-Anlage.
• Bessere Kenntnis des Programmes, da das in Uingerer Zeit
erst elIte Programm komplett wiederholt wird.
• Aussehaltung von Trivialfehlern.
• Naeh der gleiehen Methode k6nnen aueh beim Masehinentest
Fehler gefunden werden.
Der zeitliche Aufwand beim Sehreibtisehtest kann sehr hoeh werden,
wenn die Datenmenge nieht sinnvoll begrenzt wird. Der Zeitaufwand
ist abhangig von der Programmierspraehe und der Programmgr6Be,
sollte aber im Normalfall nieht Uinger als 1 bis 2 Tage dauern, da
sonst der Uberbliek verlorengeht.
Fur die DurehfUhrung des Tests verwendet man, soweit m6glieh,
F ormulare (z. B. fUr die Darstellung der Ein-Ausgabe-Informationen
die standardisierten Formulare fUr Satzaufbauten). Fur die Feld-
einteilung k6nnten Sehablonen benutzt werden. Fur die Auf-
zeiehnung von Hilfsfeldern usw. werden spezielle Einteilungen
gezeiehnet. Zur Protokollierung der Befehle werden die normalen
Codierformulare benutzt.
~t
Schwerpunkt
OatenfiuO- Pragramm-
plan ablaufplan Cadierung
l.Umwand-
lung Test
Verarbeitungs- und
Rechenregeln X X X
Pragrammlagik X X
Farmale
Richtigkeit
X X X
VerknOpfung von
X X X
Programmteilen
Vollsttindigkeit von
Doten und Programm X X X
Feh lererken nu ng
in Doten
X X
Zusammensetzung
von Ergebnissen X X X
Effektivittit
des Program mes X X
Anfangswerte X X
Abb.111
91
Zusammenfassend kann gesagt werden, daB jede personelle Arbeit
bei der Programmerstellung durch einen Schreibtischtest UberprUft
werden sollte.
Arbeit
Iz.B.
Codieren )
JQ
Korrektur
Fortsetzung
Abb.13.Z
13.2. Maschinentest
Der Maschinentest wird mittels DV-Anlage durchgefUhrt. Das ist
erst dann moglich, wenn folgende Voraussetzungen erfUllt sind:
• Ein ablauffahiges Programm muB vorliegen (Codierung abge-
schlossen, Programmkarten abgelocht, Programm umgewandelt,
Formalfehler beseitigt).
• Testdaten mUssen vorhanden sein (Testdaten festlegen, Ablochen,
auf den fUr den Test erforderlichen Datentrager Ubertragen).
• Die Testanweisung muB erstellt sein.
Daneben sollte vorausgesetzt werden, daB der Schreibtischtest
durchgefUhrt ist und die erwarteten Testergebnisse fixiert sind.
Der Maschinentest kann in zwei Varianten durchgefUhrt werden:
Programmierertest
Besondere Merkmale dieser Methode sind,:
• Der Programmierer ist im Rechenzentrum anwesend.
92
• Er beobachtet den Ablauf des Programmes und alIer erforder-
lichen MaBnahmen.
• Er kann laufend die Ergebnisse Uberwachen.
• Er besitzt die Moglichkeit, korrigierend einzugreifen (z. B. Ab-
bruch oder Wiederanlauf veranlassen).
• Er kann Mangel erkennen und sie spater beseitigen (z. B. ungUn-
stige Hantierungskombinationen, zeitliche Mangel usw.).
• Er kann die Testergebnisse den Erfordernissen besser anpassen
(z. B. KernspeicherauszUge, Bandausdrucke usw.).
Von einem Programmiertest sind nicht zu erwarten:
• Kurzfristige EingrifTsmoglichkeit in das Programm.
• Hantierung durch den Programmierer.
• KUrzere Testzeiten oder mehrere Teste hintereinander.
Bei folgenden Situationen kann ein Programmierertest sinnvoll sein:
• Einmalig je Programm. Er dient der Beobachtung von Bedienung
und Zeitverhalten des Programmes oder der Gerate. Grund dafUr
ware die Ermittlung der Optimierungsmoglichkeiten.
• Bei dem Verfahrenstest. Hier sollen Unstimmigkeiten sofort
geklart werden konnen.
• Bei den Parallellaufen. Da es sich urn einen fast produktiven
Betrieb handelt, benotigt der Operator noch die Beratung durch
den Programmierer, falls die Hantierungsvorschriften nicht aus-
reichend sind (volIstandig, eindeutig usw.).
• Bei schwierigen Fehlern. Dies sind z. B. solche, die nur durch
Beobachtung identifiziert werden konnen (z. B. Hantierungs-
reihenfolge, Papiervorschub am Drucker usw.).
Ferntest
Der Ferntest ist dadurch gekennzeichnet, daB er unabhangig yom
Programmierer im Rechenzentrum abgewickelt wird. Er bringt
damit sowohl dem Rechenzentrum als auch dem Programmierer
erhebliche Vorteile. Besondere Merkmale sind dabei:
• Der Programmierer ist bei der DurchfUhrung des Testes nicht
anwesend.
• Alle Vorgange an der Maschine mUssen in der Testanweisung
beschrieben werden, daher ist eine gute Vorbereitung unbedingt
erforderlich.
• Weniger Zeitverlust fUr den Programmierer durch Warten auf
Testzeit.
• Der Test laBt sich schneller abwickeln, die Rechenzentrums-
organisation wird vereinfacht.
93
• AIle zur Fehlersuche erforderlichen Informationen werden als
Listen und, falls erforderlich, mit Bemerkungen des Operators
versehen, an den Programmierer Ubergeben .
• Es mUssen immer sehr viele Informationen fUr die Testauswertung
gefordert werden, die in vielen Hi.1len nieht erforderlich waren.
Anwendung findet der Ferntest bei Sprachumwandlungen (der
Programmierer ist UberflUssig) und sonstigen Tests, die zur Fehler-
beseitigung durchgefUhrt und als Normalfall im Ferntest abgewiekelt
werden.
Progromm-
erstellung
oder
Korrektur
- Schreib-
tisch test - Moschinen-
test -<3>~
JQ
Fehler-
suche
Abb.13.3
13.4. Testanweisung
FUr jeden Test muB eine Testanweisung vorliegen, in der aIle erfor-
derlichen Angaben Uber die Testabwieklung gemacht werden
mUssen. Dies ist auch fUr den Programmierertest erforderlich, da
die Hantierungen durch den Operator ausgefUhrt werden. Die
Testanweisung hat auch den Zweck, den Testablauf genau festzu-
legen. Der Test muB also gut vorbereitet und durchdacht sein.
94
Urn den Betrieb im Rechenzentrum zu erleichtern, wird ein F ormular
benutzt, auf welchem alle Informationen vom Programmierer an
den Operator und auch umgekehrt mitgeteilt werden. Das in
Abb. 13.4 gezeigte Beispiel flir ein Testanweisungsformular ist so
aufgebaut, daB es mehrfach benutzt werden kann, da flir eine
bestimmte Testphase meistens mehrere Tests erforderlich sind.
Damit wird flir den Programmierer Schreibarbeit gespart. Folgende
Angaben sind auf einer Testanweisung zu machen:
• Rusten der Anlage. Welche Gerate mit welchen Datentragern
werden flir den Test benutzt.
• ReihenJolge von Tests. Falls mehrere Tests oder Testketten durch-
geflihrt werden, muB eine eindeutige Reihenfolge festgelegt sein.
• SpeicherbedarJ und LadeauJruf Welcher Kernspeicherbedarf ist
flir den Test erforderlich; wie wird das Programm geladen; sind
Ablaufparameter erforderlich. Parameter miissen mitgeliefert
werden.
• Verhalten bei Halts oder F ehlern. Hier sind die MaBnahmen flir
Falle zu beschreiben, die eine Unterbrechung des Ablaufs ver-
ursachen (z. B. Antworten, die zu geben sind).
• Testergebnisse. Es sind alle flir die Testauswertung erforderlichen
Ausdrucke anzugeben (z. B. Kernspeicherauszug).
• Besonderheiten. SolI der Operator das Verhalten eines Program-
mes oder andere Beobachtungen mitteilen, so ist das speziell zu
fordern. In den meisten Fallen wird der Operator allerdings
damit iiberfordert sein. Dann ist ein Programmiertest angebracht.
95
10
0'1 An Von Testanweisung fur OVA 4004/35/45/55
Bearb. Tel. Verfahrens-/
Programm-Name
Angaben zur Verrechnung
Test-Nr.
Test-Nr.
E: Eigentest F: Ferniest
97
14. Teststrategie
Eine der Hauptaufgaben fUr die Programmierung ist der Test der
erstellten Programme. Jedes komplexere Programm oder Verfahren
laBt sich nicht sofort fehlerfrei programmieren.
Wie man zweckmaBigerweise testet, welche Fehler moglich sind
und wie diese Fehler gefunden werden konnen, solI nachfolgend
naher untersucht werden. Da aber gerade der Test sehr stark von
der verwendeten Maschine und dem Betriebssystem abhangt,
konnen z. B. keine direkten Hinweise fUr die Fehlersuche im Kern-
speicher gegeben werden. Diese Informationen sind aus der Her-
stellerliteratur zu entnehmen.
14.1. Testplan
Der Test eines Verfahrens ist ein zeit- und kostenaufwendiger
Arbeitsschritt der Programmierung. Vor Beginn des Tests ist deshalb
ein detaillierter Testplan zu erstellen, der folgende Aussagen macht:
Programm
Dies ist ein selbstandiger ablauffahiger Teil eines Verfahrens, der als
Voraussetzung nur benutzbare Testdaten benotigt. Folgende Uber-
prtifungen werden vorgenommen:
• 1st die Globallogik richtig?
• 1st die Zusammenarbeit zwischen den Programmteilen richtig?
• Arbeitet das Programm auch bei unterschiedlichsten Kombina-
tionen?
• Sind die Sicherungsanforderungen aile erftillt?
• 1st die Bedienung zweckmaBig?
• Wie werden Fehler behandelt?
• 1st die Kernspeicherbelegung akzeptabel?
• 1st die Ablaufzeit akzeptabel?
99
• Funktioniert die Overlay-Technik?
Dieser Testabschnitt nimmt die meiste Zeit in Anspruch.
Verfahren
Normalerweise wird ein Verfahren, zusammengesetzt aus mehreren
Programmen, getestet. Betroffen sind in diesem Zusammenhang
folgende Punkte:
• Uberprlifung der Informationsweitergabe.
• Durchprlifung alIer FaIle, die normalerweise vorkommen.
• Uberprlifung der Hantierungsvorschriften und sonstigen Abwick-
lungsunterlagen durch die Programmierung.
• Uberprlifung von SicherheitsmaBnahmen.
• Uberprlifung der Ergebnisse, teilweise durch die Fachabteilung.
• Uberprlifung von Arbeitsketten.
Die Konsequenz aus diesem Test, der so lange wiederholt werden
muB, bis er im wesentlichen einwandfrei ablauft, ist die Freigabe fUr
den nachsten Abschnitt "ParalIelIauf". Sie wird durch die Fachab-
teilung vorgenommen.
Parallellauf
Der ParalIeIlauf ist auch als Probelauf oder Generalprobe bekannt.
Er ist besonders flir kommerzielle Aufgaben typisch, ein Verfahren
wird hierbei im praktischen Betrieb mit echten Daten erprobt. Das
ist erforderlich, wenn:
• ein neues Verfahren eingefUhrt wird,
• gravierende Veranderungen durchgefUhrt werden,
• ein Wechsel des DV-Anlagentyps eintritt.
Der ParaIleIlauf hat folgende Aufgaben zu erfUlIen:
• Einarbeitung der DV-Anlagen-Bedienungsmannschaft.
• Einarbeitung der Benutzer.
• Benutzung und Uberprlifung der Ergebnisse bei der normalen
Arbeit unter Berlicksichtigung der weiterhin konventionelI er-
stelIten Ergebnisse.
• Benutzung der zufalIig anfalIenden Daten in ungesteuerten Kon-
stelIationen.
• Erprobung alIer Vordrucke.
• Erprobung der SicherungsmaBnahmen.
• Uberprlifung, ob aIle sachlichen Anforderungen laut pflichten-
heft erfUlIt werden.
100
Normalerweise werden drei ParaIleIlaufe durchgefiihrt, bevor der
Paralleibetrieb eingestellt wird. Voraussetzung ist ein befriedigendes
Ergebnis dieser Laufe. Diese Parallelarbeit solI den langsamen Uber-
gang von einem alten System auf ein neues System unter Vermei-
dung von Risiken (falsche Informationen) ermoglichen. AIle beim
ParaIleIlauf erkannten wesentlichen Fehler bzw. Mangel miissen bis
zum produktiven Einsatz beseitigt werden.
Produktiver Einsatz
Auch nach der Absolvierung der bisher aufgezahlten Testabschnitte
konnen im Programm noch Fehler enthalten sein. Sie konnen wah-
rend des produktiven Einsatzes auftreten. Die noch moglichen Feh-
ler sind meistens Konstellationsfehler, da es nicht moglich ist, aIle
moglichen Datenkonstellationen durchzupriifen.
101
Programmiererfahrung. Die Fehlersuche wird von den gesammelten
Erfahrungen abhangig sein. Programmierer mit wenig Eifahrungen
haben es einfacher, Fehler zu finden, wenn sie kleinere Testabschnitte
wahlen.
Verwendete Testdaten. Durch die Festlegung der Testdaten wird ein
ganz bestimmter Teil einer Aufgabenstellung uberpruft. Urn eine
sinnvolle Testdatenmenge bearbeiten zu konnen, wird auch eine
sinnvolle ProgrammgroBe erforderlich sein.
AuswertungsmOglichkeit. Zu einem vollstandigen Test gehort auch,
daB die erzielten Testergebnisse alle einzeln nachgepruft werden.
Durch eine sinnvolle Unterteilung kann die Auswertung erleichtert
werden. Eine sinnvolle Unterteilung kann in manchen Fallen ein
ganzer Arbeitsgang, in anderen ein Unterprogramm sein.
Verwendung von Geriiten. Die Unterteilung kann so sein, daB nicht
alle Gerate oder Dateien zum Test benutzt werden. Durch eine der-
artige Unterteilung wird der Testablauf erleichtert.
Overlay- Technik. Durch die Overlay-Technik sind automatisch Ab-
schnitte vorgegeben, die auch beim Test berucksichtigt werden
mussen. Eine weitere Unterteilung ist selbstverstandlich moglich.
Verwendete Testhilfen. Da Testhilfen moglichst nur auf Programm-
teile angewendet werden, ist eine zweckmaBige Unterteilung auch
aus diesem Grund beim Test zu beachten.
Steuerung der Testabschnitte. Werden nur Teile eines Programmes
getestet, so mussen zusatzliche Testrahmen programmiert werden.
Der Aufwand und die Fehlermoglichkeiten mussen so kalkuliert
werden, daB sie moglichst gering sind.
Testzeit. Eine starke Aufteilung beim Test kann eine wesentliche Er-
hohung des Testaufwandes an der Maschine verursachen. Die Auf-
teilung in Abschnitte muB also beriicksichtigen, daB eine starke
Aufgliederung eine ErhOhung der Maschinenzeit bedeutet, die bei
der Testauswertung gerechtfertigt sein muB (z.B. eine leichtere Aus-
wertung oder groBere Sicherheit ermoglicht).
14.4. Testvorbereitung
Je nach MaschinengroBe kann der Test relativ teuer sein. Urn diese
Kosten moglichst niedrig zu haiten, ist jeder Test auf der Maschine
sorgfaltig vorzubereiten. Folgende Testvorbereitungen sind im ein-
zelnen auszufUhren:
• Testanweisung erstellen. Es wird genau beschrieben, was wann
unter welchen Bedingungen getan werden soll.
102
• Testdaten zusammenstellen. Es sind die fUr den Testabschnitt
erforderlichen Testfalle durch Daten darzustellen.
• Testergebnisse fixieren. AIle zu erwartenden Ergebnisse werden in
der gewunschten Form zusammengestellt. Diese Vorbereitung ist
allerdings nur bei geringeren Testdatenmengen durchfUhrbar.
• Schreibtischtest. Das zu testende Programm wird vorher theore-
tisch durchgetestet.
• Programm umwandeln. Das zu testende Programm muB ohne
Fehler umgewandelt worden sein.
• Sonstige organisatorische Vorbereitungen. Je nach Testabschnitt
mussen u. U. Testzeiten bestellt und auch Vorbereitungsarbeiten
durchgefUhrt werden (Datenerfassung usw.).
14.5. Testauswertung
Nach jedem Test erfolgt als erstes eine Testauswertung. Es ist dabei
zu kHiren, ob aBe Testergebnisse vorhanden sind und ob sofort
erkennbare Fehler aufgetreten sind. Bei ungenugenden Ergebnissen
ist zu untersuchen,ob eine weitere Testauswertung noch moglich ist.
Bei Fehlern setzt die Fehlersuche ein.
Trifft keine dieser Bedingungen zu, so erfolgt die ubliche Testaus-
wertung, die folgende Fragen beinhaltet:
• Sind die Zwischenergebnisse richtig?
• Sind die Endergebnisse sachlich und formell richtig?
• Sind die Ergebnisse voIlsHindig?
• Sind keine Informationen zerstOrt?
• Sind aIle Fehler erkannt worden?
• Sind die Sicherungen ausreichend?
• Welche Zweige des Programmes mussen noch getestet werden?
• Wie mussen fur den nachsten Test die Testdaten aussehen?
• 1st die Aufgabenstellung ausreichend?
• 1st die Hantierung zweckmaBig und sicher?
• 1st die Dokumentation vollstandig und verstandlich?
• Kann zu der nachsten Testphase ubergegangen werden?
Bei entsprechendem Testfortschritt ist noch festzusteIlen, ob der
zukunftige Abnehmer der Ergebnisse zufriedengestellt ist und ob
sich das Programm in die Arbeitsgangkette einpaBt.
Diese Testauswertung wird auch gemacht, nachdem fUr erkannte
Fehler die Ursache ermittelt wurde.
103
14.6 Fehlersuche
Die Abb. 14.1 bis 14.5 zeigen in grober Form die Reihenfolge der
Fragen, die bei der Fehlersuche gestellt werden sollen. Diese wird
in zwei Phasen abgewickelt.
F ehlereingrenzung
Es solI ermittelt werden, in welchem Teil des Programmes der
Fehler enthalten ist. Dabei werden in der Praxis zwei Methoden
angewandt:
• Systematische Suche. 1m Schreibtischtest wird das Programm so
lange getestet, bis der Fehler lokalisiert ist. Sind fehlerhafte Er-
gebnisse vorhanden, so ist anhand der Aufgabenlosung die Ein-
grenzung meist schnell moglich .
• Intuition. Die Kenntnis des Programmes und dessen Schwach-
stellen ermoglichen Vermutungen, wo der Fehler enthalten sein
konnte.
Wahrend also im ersten Fall ein relativ groBer Aufwand zur Ein-
grenzung erforderlich ist, wird im zweiten Fall die Eingrenzung
schneller erfolgen. Sie kann aber auch falsch sein. Dieser zweite Fall
erfordert eine entsprechende Erfahrung, urn zu richtigen Ergebnissen
zu ftihren.
F ehlerfindung
Nach der Eingrenzung muB jetzt mittels Schreibtischtestmethode
der Fehler ermittelt werden. Das ist eine der schwierigsten Aufgaben
bei der Programmierung. Die Fehlerfindung solI den Befehl oder die
Befehle im Programm oder sonstige Ursachen ausfindig machen, die
zu einem Fehler geftihrt haben. Eventuell ist eine weitere Person
hinzuzuziehen, da dann auch Interpretationsfehler (Maschine oder
Software) schneller als bei alleiniger Suche gefunden werden.
1m wesentlichen ist zu unterscheiden, ob Fehler vorliegen, die einen
Abbruch des Programmes erzwingen oder ob es sich urn Fehler
handelt, die fehlerhafte Ergebnisse erzeugen. Der erste Fall erlaubt
meist eine schnelle Identifizierung des Fehlers, da die Abbruchur-
sache zu dem vorliegenden Programmzustand meist in direkter
Beziehung ~teht (Befehlszahlerstand). Der zweite Fall kann we sent-
lich schwieriger sein, da hier der Entstehungsort neben der Fehler-
ursache lokalisiert werden muB.
104
3
Formalfehler
beseitigen
Ablauffiihiges
Programm
erzeugen
Ursache fest-
stellen Jehler
beseitigen
Programm
laden
Hantierungs- Fehler
oder System- 3
berichtigen
fehler
beseitigen
Abb.14.2
Test
105
3
Fehler 3
beseitigen
Systembetreuer
aufsuchen. Ur-
3 sathen klan~n.
Fehler berichti-
Abb.14.4
6
Abb.14.3
106
Test
wiederholen
Test
wiederholen
Abb.14.5
107
zu korrigieren (Austausch, Einftigung oder Entfernung von Pro-
grammkarten). Jede Anderung bedingt allerdings, daB die Program-
me neu umgewandelt werden mlissen.
Progrummende
[~'""'
Stop]
Einfugung :
108
Fiir produktive Zwecke sollte sie nur im Notfall zugelassen werden,
da eine ordnungsmaBige Dokumentation und damit eine eindeutige
Nachpriifung kaum moglich ist. Durch diese Methode lassen sich
jedoch erhebliche Umwandlungszeiten einsparen.
Nach der EinfUgung mehrerer Balkone muB eine Korrektur des
symbolischen Programmes mit Umwandlung durchgefUhrt werden,
urn dieses auf den neuesten Stand zu bringen.
Korrektur an sonstigen U nterlagen
Die Ursache logischer Fehler kann auch in der Aufgabenstellung
enthalten sein. Hier geniigt nicht allein die Programmkorrektur,
sondern es muB auch eine Aufgabenkorrektur mit den entsprechen-
den Auswirkungen bei allen Unterlagen (Pflichtenheft, DatenfluB-
plan usw.) erfolgen. Das ist nicht mehr allein yom Programmierer
durchzufUhren, sondern muB unter Einschaltung der Planung und
der Auftraggeber erfolgen.
14.8. Simulation
Der Test ist im wesentlichen eine Simulation des echten Betriebes;
simuliert werden die Daten. Nicht alle Vorkommnisse lassen sich
allein durch die Daten darstellen. Es ist auch nicht immer zweck-
maBig, den echten Betrieb sofort zu priifen, wenn es sich urn kompli-
zierte Priifungen handelt und diese nacheinander ausgefUhrt werden
konnen. Daraus ergibt sich fUr die Simulation folgende Aufgaben-
stellung:
• Uberpriifung von Vorgangen, die nicht durch" Daten zu steuern
sind (z.B. Fehler an den Geraten).
• Vereinfachungen des Testbetriebes (z. B. Test ohne Dateniibertra-
gung). Erst wenn alles funktioniert, wird man die Dateniibertra-
gung einsetzen.
Die Simulation ergibt also bei sinnvollem Einsatz eine Verbesserung
der Programmqualitat bei reduziertem Testaufwand.
14.9. Fehlergruppen
Die Fehlermoglichkeiten infolge fehlerhafter Programmierung sind
ziemlich groB. Urn einen besseren Uberblick zu bekommen, teilt
man sie in Gruppen ein (Abb. 14.7).
Eine detaillierte Aufstellung, welche Fehler zu welcher Gruppe ge-
rechnet werden, ist den folgenden Checklisten zu entnehmen. Diese
109
Fehler Bedeutung Ursache Beseitigung
1st ein Programm logisch richtig und voll- fehlerhafte Unterlagen, durch den
Logik stfindig beziiglich Verarbeitung und Programmierfehler Programmierer
Datenstruktur?
1st die Ansteuerung von Daten und die
durch den
Adressierung Durchfiihrung von Befehlen und Programmierfehler
Progra mmierer
Schleifenvorgongen richtig?
Sind die formalen Regeln eingehalten Fliichtigkeits- • durch den
Formal
(vollstfindig und richtig)? Interpretationsfehler Programmierer
fehlerhafte Unterlage. durch den
1st die Dateistruktur richtig. sind die
Daten Fliichtigkeits- • Programmierer oder
Daten vallstondig und die Formate richtig?
Programmierfehler Datenlieferanten
fehlerhafte Interpre- Wiederholung mit rich-
Sind aile MaOnahmen an der DVA richtig
Hantierung tation. Falschhan- tiger Hantierung.Unter-
und vollstondig durchgefiihrt worden?
tierung lagenverbesserung
Sind Programmteile richtig verkniipft Programm i erfehler, durch den
VerknUpfung (Parameter. Ergebnisse)? Festlegungen Programmierer
durch die Wartung.
Arbeiten die Zentraleinheit und die defekte Anlage
Maschinen Wiederholung des
externen Gerote einwandfrei ? bzw. Datentriiger
Ablaufs
Arbeiten die Systemprogramme der unerkannte Fehler richtige Software
System
Software einwandfrei? bzw. zerstiirte Software benutzen
Stimmen die Unterlagen mit der Aufgabe
ungenaues genauere Planung
Sonstige iiberein. ist das Verfahren genugend
Pflichtenheft und Uberwach ung
abgesichert?
Abb.14.7
konnen auch zur Testauswertung und Fehlersuche herangezogen
werden urn Fehler zu lokalisieren. Die Einteilung in die hier genann-
ten Gruppen ist allerdings nicht zwingend vorgeschrieben.
Logikfehler
• Sind aIle DateieroiTnungen durchgefUhrt?
• Werden die Gruppenwechsel zurn richtigen Zeitpunkt durchge-
fUhrt?
• 1st die Berechnung von Formeln in der richtigen Reihenfolge aus-
gefUhrt worden?
• Werden Schleifen in der benotigten Anzahl durchlaufen?
• Werden Abfragen in der richtigen Reihenfolge durchgefUhrt?
• Werden Weichen und Schalter richtig gesetzt?
• Werden Rundungen richtig durchgefUhrt?
• Werden die richtigen Daten zur Verarbeitung benutzt?
• 1st die Verarbeitung der Inforrnationen voIlsHindig?
• Wird die Dbertragung von Inforrnationen innerhalb der Zentral-
einheit richtig durchgefUhrt?
• Erfolgt die Ein-Ausgabe von Inforrnationen in der richtigen
Reihenfolge und zurn richtigen Zeitpunkt?
• Werden die AbschluBarbeiten richtig durchgeftihrt?
110
Adressierungsfehler
• Sind aIle Adressen formal riehtig definiert?
• Entstehen falsehe Adressen?
• Entstehen nieht zugelassene Adressen?
• 1st die Registerbenutzung riehtig?
• 1st die Basisadressierung riehtig?
• Werden Indizierung und Subskribierung riehtig verwendet?
• 1st bei Indizierung und Subskribierung die Sehrittliinge riehtig?
• Werden Endebedingungen beaehtet?
• Werden Adressen riehtig erreehnet?
• Werden gespeieherte AdreBwerte zerstOrt?
• Sind die Anfangsbedingungen eingehalten?
• Wird die Unterprogramm-Rtieksprungteehnik riehtig verwendet?
• 1st die Programmreihenfolge zugelassen?
• Wurde der Speiehersehutz wirksam?
F ormaifehler
• Sind bei der letzten Umwandlung Formalfehler gemeldet?
• Sind die Operanden der Befehle formal riehtig?
• 1st die Interpunktion eines Programmes richtig benutzt?
• 1st die Reihenfolge von Angaben riehtig?
• Sind aIle Befehle oder Anweisungen in der Quellspraehe vorhan-
den?
• Sind aIle Operandenangaben vollstiindig?
• Sind aIle erforderliehen Adressen definiert?
• Sind die erforderliehen Parameterangaben gemaeht?
• Sind die zum Ablauf erforderliehen Besehreibungen formal voIl-
stiindig?
Datenfehler
• 1st die Feldliinge gentigend groB?
• 1st das Feldformat riehtig gewiihlt?
• 1st der Anfangsstand der Felder riehtig gesetzt?
• Stimmt die Satzliinge der Dateien mit den Besehreibungen tiber-
ein?
• 1st die Reihenfolge der Felder in den Siitzen riehtig besehrieben?
• Sind die gespeieherten Daten im angegebenen Format?
• 1st die Feldliinge riehtig?
• 1st eine aktuelle Datei verwendet worden?
• 1st die Dateiendekennzeiehnung korrekt?
• Sind die Vorzeichen der Daten riehtig?
• 1st die Sortierung der Daten in der erforderlichen Reihenfolge?
111
• Sind die Daten voIlsHindig vorhanden?
• Sind bei Wiederanlauf die Dateien richtig positioniert worden?
• Sind Daten, die als Steuerinformationen benutzt werden, richtig?
H antierungsfehler
• 1st die Reihenfolge von Arbeitsgangen eingehalten worden?
• Sind aIle Arbeitsgange durchgefUhrt worden?
• Sind die Fehierprotokolle vorhanden, die durch eine fehlerhafte
Bedienung ausgelost werden?
• Sind aIle Dateien richtig geriistet, fUr die eine Etikettierung durch-
gefUhrt wird?
• Sind die Dateien richtig geriistet, fUr die keine Etikettierung mog-
lich ist?
• Sind aIle Datentrager bearbeitet worden?
• Sind aIle Blattschreiberanforderungen richtig beantwortet?
• Sind die richtigen Ablaufsteuerkarten benutzt worden?
• 1st das richtige Programm benutzt worden?
• Wird mit dem aktuellen Tagesdatum gearbeitet?
• Wurde beim Drucker der richtige Vorschubstreifen benutzt?
• 1st bei Geratefehlern oder Unterbrechungen so hantiert worden,
daB keine Fehler entstanden sind?
• Werden Datentrager ohne Bedarf mehrfach bearbeitet?
• 1st das gewiinschte Betriebssystem benutzt worden?
• 1st ein Wiederanlauf richtig abgewickelt worden?
• Wurde am Bedienungsfeld der Zentraleinheit oder der Gerate
hantiert (es entsteht kein ProtokoIl)?
• Sind die richtigen Gerate benutzt worden?
Verkniipfungsfehler
• 1st die Ansprungadresse richtig?
• 1st die Riickkehradresse richtig?
• Sind Verkniipfungsparameter anzugeben?
• 1st die Reihenfolge von Parametern richtig?
• Miissen die Parameterangaben in bestimmten Feldern stehen?
• 1st der Aufruf vollstandig?
• Steht der aufgerufene Programmteil im Speicher?
• Lauft der Austausch von Overlaysegmenten richtig ab?
• 1st die Registersicherung bei Verkniipfungen gewahrleistet?
• Wie werden Ergebnisse mitgeteilt?
• Stimmt der detaillierte Aufbau von Parametern und Ergebnissen?
• Werden Datenfelder durch die Verkniipfung zerstort?
• 1st die Verwendung von Programmteilen mehrfach oder nur ein-
malig moglich?
112
• 1st die Programmverknlipfung formal riehtig abgelaufen (Binder-
fehler)?
M aschinerifehler
• War ein Gerat defekt?
• Traten nieht behebbare Lese- oder Sehreibfehler auf?
• Sind Datentrager zerstort worden (z.B. PapierriB, BandriB usw.)?
• Wurde bei vorangegangenen Masehinenfehlern die Arbeit riehtig
fortgesetzt?
• Welche Fehleranzeigen wurden gesetzt?
• Sind sonstige Zustande aufgetreten, bei denen das Gerat als "un-
klar" gemeldet wurde?
• Sind fehlerhafte Datentrager benutzt worden (fehlende Reflektor-
marken)?
• 1st Stromausfall aufgetreten?
• Wurden niehtgelosehte Bandstellen als Bloeke interpretiert?
• Wurden bei der Ein-Ausgabe die Informationen ohne Fehler-
meldung verfliJseht?
Systerrifehler
• Treten bei der Umwandlung der Programme im Masehineneode
Fehler auf?
• Sind bei der Binderausgabe Fehler enthalten, ohne daB ein Fehler-
protokoll ersehien?
• Sind bei der Bibliothekswartung Fehler aufgetreten?
• Treten beim Laden von Programmen Fehler auf?
• Erfolgt ein Abbrueh des Programmes mit auBerhalb des fUr das
Programm reservierten Kernspeiehers liegenden Befehlszahler-
stan des?
• Treten bei der Benutzung von Systemprozeduren bei riehtiger
Versorgung fehlerhafte Auswirkungen auf?
• Sind im Multiprogrammingbetrieb bei anderen Programmen Sy-
stemfehler aufgetreten?
Sonstige Fehler
• Entsprieht die Realisierung des Programmes der Aufgabenstel-
lung?
• 1st die Rlistvorsehrift riehtig?
• Sind die Antworten auf Fehlerprotokolle riehtig?
• Sind Datentrager inzwisehen libersehrieben worden, weil das
Freigabedatum erreieht ist?
• Sind Ablaufunterlagen verloren gegangen?
113
• 1st die Programmreihenfolge richtig vorgegeben?
• 1st der externe Speicherablaufplan richtig?
BeJehlsziihlerstand
Er gibt an, bei welchem Befehl ein Programm abgebrochen wurde.
Handelt es sich urn eine Fehlerschleife, so gibt der Befehlszahlernur
einen Hinweis, wo die Schleife etwa liegt. Bei Maschinen- oder
Systemfehlern kann der Programmierer damit nichts anfangen. Bei
den anderen Fehlern ist der fehlerverursachende Befehl direkt beim
gezeigten Befehlszahlerstand oder neben dem durch den Befehls-
zahler angezeigten Kernspeicherplatz. Der Befehlszahler kann mit
anderen Informationen auf einer Unterlage zusammen stehen (z. B.
bei der Siemens 4004 im DUMP).
Registerstiinde
Hier sind alle durch den Programmierer benutzbaren Register (z.B.
Indexregister, Mehrzweckregister, Gleichkommaregister usw.) aus-
wert bar. Die Registerstande zeigen die Situation beim Abbruch.
Sind beim verursachenden Befehl Register beteiligt, so konnen sie die
Ursache dafUr sein.
Bei Adressierungsfehlern (Schleifen), Datenfehlern und Verkniip-
fungsfehlern konnen fehlerhafte Registerstande schuld sein. Weshalb
ein solcher falsch ist, muB dann im Einzelfall geklart werden. Es
konnen Mehrfachbenutzung ohne Sicherung oder fehlerhafte Ver-
anderung vorliegen. Auch konnen das Setzen auf Anfangszustand
oder die Registeriibergabe bei Verkniipfungen falsch sein.
LaBt sich ein falscher Registerzustand nicht rekonstruieren, dann
sollte mittels Testhilfen die Ursache geklart werden. Die Fehler-
wahrscheinlichkeit hangt bei diesem Fehler stark von der verwen-
deten Sprache abo Bei der Benutzung von maschinenorientierten
114
Sprachen kann der Fehler haufig und in allen Varianten auftreten.
Bei der Benutzung von maschinenunabhangigen Sprachen tritt er
kaum auf. Ursache ist dann meist eine nicht eingehaltene Reihen-
folge, z.B. erst OPEN, dann Zugriffzu Ein-Ausgabe-Bereichen, oder
eine fehlerhafte Indizierung oder Subskribierung.
Der Stand der Register ist z.B. bei der Siemens 4004 dem DUMP zu
entnehmen.
Ablaufprotokolle
FUr jedes Programm fallen wahrend des Ablaufes Protkollmeldun-
gen an. Diese konnen z.B. folgende Ursachen haben:
• Dateieroffnung und -abschluB,
• Geratezuweisungen,
• Ladeaufruf,
• Steuerinformationseingabe,
• Fehlermeldungen des Systems (Software, Gerate),
• Programmendemeldungen,
• Systemaufrufe.
Die fUr ein Programm vorliegenden Meldungen ermoglichen es, den
Ablauf in bestimmten Situationen zu rekonstruieren. Folgende, fUr
die Testauswirkung wichtigen Fragen lassen sich aus den Ablauf-
protokollen beantworten.
• Sind Hardwarefehler aufgetreten (Gerateausfall usw.)?
• Sind Fehler bei der Datenein- oder -ausgabe entstanden?
• Wurden die richtigen Gerate benutzt?
• Wurde das richtige Programm benutzt?
• Wurden die richtigen Dateien benutzt?
• Sind die Steuerinformationen richtig gegeben worden?
• Mit welcher Fehlermeldung wurde das Programm abgebrochen?
• Sind aIle Anforderungen des Programmes erfUIlt worden?
• MuBte ein Wiederanlauf durchgeftihrt werden?
• Wurden Fixpunkte geschrieben?
• Sind aktuelle Dateien Uberschrieben worden?
• 1st das Programm unterbrochen worden (durch den Operator)?
• Wurde der Ablauf im Multiprogrammingbetrieb durchgefUhrt?
Zusatzliche nicht programmspezifische Informationen sind bei Be-
darf zu ermitteln:
• Mit welchem Betriebssystem wurde gearbeitet?
• Welche Ausgabenummer hat das System?
• Welches Tagedatum wurde benutzt?
115
Aus den Ablaufprotokollen lassen sich also Hantierungsfehler, Sy-
stemfehler und Maschinenfehler erkennen.
F erhleranzeigen
Das sind Anzeigen, die durch das System gesetzt werden, wenn be-
stimmte Fehlerzustande auftreten. Je nachdem, von welchem Sy-
stemanteil die Anzeigen gesetzt werden, unterscheiden wir zwei
Gruppen:
• SoJtware-Fehleranzeigen. Der Fehler wird von der Software er-
kannt. Es wird in bestimmten Kernspeicherbereichen oder Registern
angezeigt, urn welchen Fehler es sich handelt. Durch einen Kern-
speicherabdruck kann dieser Fehler auch sichtbar gemacht werden.
Die Fehleranzeigen der Siemens 4004 haben die in Abb. 14.8 gezeigte
Bedeutung. Andere Fehleranzeigen gibt es fUr die Ein-Ausgabe.
Feh ler-
code Fehlerart
54 privilegierte 8efehle
58 nicht decodierbarer Operationsteil
5C Adressierungsfehler
60 Oatenfehler
64 Charakteristikuberlauf
68 Oivisi onsfehler
6C Mantisse gleich Null
70 Charakteri stik unterlauf
74 Oezimaluberlauf
78 Festpunktuberlauf
Abb.14.8
116
Kernspeicherabzug ( Programmzustand, Felderzustand)
Diese Informationen konnen zu verschiedenen Zeitpunkten erzeugt
werden, z.B. vor dem Programmablauf(a), wahrend des Programm-
ablaufs (b) oder bei Abbruch des Programmes (c). Der Fall a wird
zu Vergleichszwecken mit b und c benotigt, urn mogliche Verande-
rungen festzustellen. Der Fall b ist erforderlich, wenn wahrend der
verschiedenen Phasen' eines Programmes die Veranderungen im
Kernspeicher tiberprtift werden sollen. Der Fan c ist die tibliche
Form, die als Kernspeicherabzug zur Fehlersuche Verwendung
findet.
Ftir die Ermittlung des Programmzustandes konnen folgende Infor-
mationen, z.T. in Zusammenhang mit zusatzlichen Angaben,
interessant sein:
• Wie ist die Stellung von Weichen?
• Sind aIle Befehle unverandert vorhanden?
• Sind die Sprungleisten richtig?
• Sind die Literale richtig?
• Wie ist die Auflosung von Makrobefehlen?
• Stimmt die Programmreihenfolge mit der programmierten F olge
tiberein?
• Welche Steuerinformationen wurden verwendet?
Der Felderzustand kann tiber folgende zur Fehlerfindung ftihrenden
Fragen Auskunft geben:
• Welche Daten wurden zuletzt eingelesen?
• Welche Ausgabedaten wurden zuletzt aufgebaut?
• Welche Zwischenergebnisse ergeben sich bei einer Rechnung?
• Wie sind die Zahlerstande?
• Wie stehen die Summenfelder?
• Wie weit sind Tabellen oder Raster aufgebaut?
Damit lassen sich Logikfehler, Datenfehler, Adressierungsfehler,
Verkntipfungsfehler und Systemfehler nachweisen.
Bei tiefergehenden Kenntnissen tiber das verwendete Betriebssystem
lassen sich zusatzlich Informationen ermitteln, die eine Lokalisierung
des Fehlers erleichtern, z.B.:
• Zustand der Dateien (eroffnet oder geschlossen).
• Fehlerzustande bei der Ein-Ausgabe.
• Welche Gerate sind physisch benutzt worden?
• Welche Ablaufparameter wurden standardmaBig gegeben?
• Aktueller Ein-Ausgabe-Bereich bei Benutzung von zwei Bereichen.
117
Dies kann nur eine Auswahl der moglichen erkennbaren Informa-
tionen sein. Je nach Betriebssystem und Maschine kann es groBe
Unterschiede geben.
Datenzustand
Hier sind nur Daten gemeint, die auBerhalb der Zentraleinheit vor-
liegen. Da aIle Daten in Form von Dateien organisiert sind, geht es
also nur urn die bis zu einem bestimmten Zeitpunkt (Abbruch) ver-
arbeiteten oder erzeugten Dateien. Diese Datenzustande mUssen bei
Dateien, die nicht personeIllesbar sind, Uber Umsetzer ausgedruckt
werden. Folgende Informationen sind diesen Listen zu entnehmen:
• Welche Etikette sind verarbeitet worden?
• Wieviel Satze sind je Block enthalten?
• Welche Satzarten sind vorhanden?
• Welche Satze, Blocke sind erzeugt worden?
• Welches ist der zuletzt ausgegebene Block?
• Wie sind die Felder in den Satzen besetzt?
• Wie sind die Felder angeordnet?
• Sind aIle erforderlichen Satze vorhanden?
• Wie viele Blocke umfaBt die Datei?
• 1st der Papiervorschub richtig?
• Sind die Daten in der richtigen Sortierfolge?
• Sind fehlerhafte Daten erkannt worden?
• 1st die Codierung von Daten richtig (z.B. Lochstreifen)?
• 1st die Gruppierung von Daten richtig?
Da beim Testen eine Vielzahl von Tests mit den gleiehen Eingabe-
daten durchgefUhrt wird, muB der Datentragerabdruck nur einmalig
gemacht werden. Dabei ist allerdings sicherzusteIlen, daB diese Daten
fUr den Test wirklich benutzt wurden. 1st dies nieht der Fall, so
mUssen neue Datentragerabdrucke erstellt werden.
Die Datenzustande werden bei den Ausgabedateien immer benotigt.
Das gilt nicht nur fUr die Fehlersuche, sondern auch fUr die Testaus-
wertung, urn die richtige ArbeitsdurchfUhrung nachzuweisen.
118
F ehlerprotokoll
In diesem Protokoll werden aIle durch das ablaufende Programm
erkannten sachlichen Fehler protokolliert. 1st ein sachlicher Fehler
Ursache fUr den Abbruch des Programmes, so kann die Ursache aus
diesem Protokoll erkannt werden. 1m wesentlichen werden fehler-
hafte Daten auf diesen Protokollen erscheinen. Diese konnen aIler-
dings auch Ursache fUr andere Fehler sein, wobei der Programmab-
bruch erst spiiter zu erfolgen braucht.
Primiirprogrammliste
Diese zeigt das Programm so, wie der Programmierer es geschrieben
hat. Bei der Siemens 4004 ist es die SOURCE LISTING.
1st das Programm in einer problemorientierten Sprache geschrieben,
so wird, wenn es sich urn logische Fehler handelt, hauptsiichlich in
dieser Liste nach den Fehlern gesucht werden. AIle Formalfehler
konnen ebenfalls in ihr erkannt werden.
Abb. 14.9 zeigt eine Primiirprogrammliste fUr Siemens-4004-As-
semblerprogramme. Fiir COBOL wird sie in Abb. 3.6 gezeigt.
Adrej3buch
1m AdreBbuch selbst sind meistens nur Formalfehler oder fehlende
Adressendefinition usw. zu lokalisieren. Es ist aber unbedingt erfor-
derlich, urn einen Zusammenhang zwischen der Primiirprogramm-
liste und dem Kernspeicherabzug herzustellen. Mittels des AdreB-
buches lassen sich also Befehle und Daten im Kernspeicherabzug
lokalisieren.
In Abb. 3.7 ist ein Beispiel eines AdreBbuches fUr COBOL- Program-
me gezeigt.
119
A$$E"'~(I LISII . . 00'00:00 09/08/70
--- "- -
AODI1 AODll 5'""' " SOUICE 3IAfEHEU
UUGA SIN'OllO
- a~o6"t Nvt -U '-01'A 1.'1, "'1'0' 5Tl11 0 f"90
...... U400A SI ,. ,'0"5""<20 51"'0200
O'lI~ n-- 4~-U o.~e- 01CU~ E"lfe( 10'" C-- ~ ".D(I£,,,o.O ~KStTT£w TTl'ITV210
tv O~D{~ ... DO 6516 OoEfi .40N , '".UU2
0 k: °10~0 "'BAL" UECNSTf .0"" .... 1I0 ~fI"'''EU S ,"'0220
ClI UDEIClIN;'C'("' ALlt JUN r ou STIf1"OZTO
8£ U4" jA 5111'0240
SA1- "1' ,-Ul.et, 1O"'IWAnOW ·.,.lurrU >TlI'02'0
UI C£."LAD.C'l' IOH810.',00 LADI.I, SIH'OUO
BIfE " 40N o£lll 511110<70
IAL ",U"O, 10"II.ATI00 BIUERTE. SI"'O·ZID
oon~ 01077 - --~ C1' LnUT .IrfH2" AL 1£ BEVERTUO.· NOEHEU 5"lH10Z90
UL .'OM 51H'O)00
HYC IOS,t'1 C"N. lO"B IT" 'O"~IH'TIOW lVISCNEM5'£ICNEI. 51",OYfO
lA, Lll£IT.RfHZ IEUEIT.o, '.5'E.CN£I. S '"'0)20
CI'" 'IIrr.2.nv GEVICIIT ERRETCNn· S I"'OJTO
'L .40N .EU 51H1OJ40
vrr- TT;lJ4 O. LAl)rJ( - 'O.lI I UTJ O. SI"'0nO
tAL ",UI.O' 1£ IlE ,I.C'U SI",0560
")fVl U'02A'-·' . "X 'OO· SIN10")10
.yl .,"02AZ+',,,·00· SI"'0UO
"Y I u\OlA'T.' .trOOr- - S INf0390
.40Z · l ".SICNZ aUECIs,a.MIADIEssr LADEO 51.'0400
sa n 51.,04,0
U40"'I ruzEL't.,.. ....... D"DU LAMIlAEUfEI 5UCHE. SJ.104Z0
u401 ST , ,..S Ie"", aUEcrs'VUN'AOI ~lCHE.NI Hit f 0'00'
l 10.SleHlA'1 51"'0"0
o'JITC" 01"0 tT- lA, LlZrTT.nnru IEWEtTUNG lO'ESCHE. -, I"'Q-H "O
U401t lH n .... o... SI"' 0460'
SH -1~ ,-1('" 51.,0410
12.-"-'0' SI"'04ao
." 12". AAO fTI"A , ADR UTUELln PtOG r. 1£8 12 - 5"lN'O'49O'
~lfl.T •• £I IT EIIECNOETE I.TEISITAET lU NQCN' SIH'O'OO
"lr401. a - SI.'0S1Q
.,~.S1 • c' S r '."«"A.... $TUlI£lElTl 51H1OUO
11"0'1 A .mr- 51"'QS)Q
aITQ. IOHIIUQ - " !rOll... vu.on,,,! L.ntWU -
.c1fTt";"O-e-' 0 0 O'~-' • UTt"]s"C--sEl'TC. --~
SI"'O'"
SI.'0"0
""-
TZ.Qlt, SI"'0".
ICO 1f5'. I • PWI ::' ;:: i: ~:::r:~~f:::-~~: ~ SI • .1U10
'J,U4" $1'"0,,0
l([lH,Q. CTl' - ---:- -~r::U::~~!{!A:.!.8:~:M;-m-,- 51.'0HO
,,",OIA WE... Sl",06ot
Tf.".c~r --C-AlIrrcnrrrr..-r"S. cl/lr 51.''''0'
U40lI I'JI SI"'OHO
n.loKf --.:..- SI.,QnO
l"EtT.'IEZEIT AlT' L"UflEIT 'IOESS'I' $1"'064'
lTSQlA -n. - 51.'0'''0
UZEIT.'IEZEIT WEI • • • EUE lAUflEIT S'EIC"". SI.'OUO
12. [lA"D1 AD.ESSE SPEICHEI. 5 1"' 0'610'
NI" "YC ,OS'£IC ••• OH'IT"I ~
10"I,I"TIQ' S'EIC.'! $1"'OnO
OTnT . U" OrA -- --- ----- AbbJ4.9 51,..,0690
• Haben Fehlermeldungen (Warnungen) zu Fehlern im libersetzten
Programm gefUhrt?
• Welche Register werden fUr welchen Zweck benutzt?
• In welchen Datenformaten werden Bearbeitungen durchgefUhrt?
• Welche Hilfsfelder werden fUr die Bearbeitung benutzt?
• Welche Hilfsroutinen (Module) werden benutzt?
Da die auf dieser Liste dargestellten Informationen im wesentlichen
identisch mit dem Inhalt eines Kernspeicherausdrucks sind, wird
die Interpretation des Kernspeicherausdrucks dadurch wesentlich
erleichtert. Wann diese Unterlage erstellt werden solI, zeigt Abb. 3.11.
In Abb. 3.9 ist die Liste selbst wiedergegeben.
Binderliste
Liefern die Sprachlibersetzer Module als Ubersetzungsergebnis, so
mlissen die Programme erst gebunden werden. Bei diesem Vorgang
fallen Binderlisten an, die folgende Aussagen machen:
• 1st das gebundene Programm vollstandig?
• 1st der Bindevorgang fehlerfrei abgelaufen?
• In welcher Reihenfolge sind die Module zu einem Programm
zusammengesetzt worden?
• Wie sind die relativen Anfangsadressen eines Moduls innerhalb
des Programmes?
• Welche Programmteile werden in Overlay-Technik bearbeitet?
• Welcher Programmname ist verge ben worden?
Ein Beispiel fUr eine Binderliste zeigt Abb. 3.10.
Querverweisliste
In dieser Liste wird die Benutzung von Adressen in einem Programm
gezeigt. Folgende Informationen sind ihr also zu entnehmen:
• Wird ein symbolisch definiertes Feld benutzt?
• Wie oft wird es benutzt?
• Wo wird es benutzt?
• Welche Sprungadressen werden benutzt?
• Welche Sprlinge werden von wo ausgefUhrt?
Diese Liste ist oft mit dem AdreBbuch gekoppelt. Abb. 3.7 zeigt
eine solche Liste.
Oberwachungslisten
Werden wahrend des Testlaufes Uberwachungsfunktionen durch-
gefUhrt, so wird auch eine Liste gedruckt, die Datenfelder, Weichen
121
oder das Programm protokolliert. Diese Uberwachungsfunktionen,
in Kap.16 naher beschrieben, sollen die dynamischen Vorgange in
der Anlage sichtbar machen. Welche Funktionen Uberwacht werden,
kann vom Programmierer bestimmt werden.
Hantie- Ver-
~
Adres-
logik Formal Oaten System Sonstige
Unterlage sierung rung knupfung ~schinen
Fehler-
anzeigen
- X - X (X) - X X -
Kernspeicher-
abzug
X X - X - X (X) X -
Testanweisung
Operator-Bem.
X X - (X) X - X - X
122
Sonstige Unterlagen
Neben die wichtigsten bisher beschriebenen Unterlagen fUr die
Testwertung treten noch:
• Aufgabenstellung, Pflichtenheft,
• DatenfluBplan,
• Programmablaufplan,
• Festlegungen,
• Datentdigerorganisation,
• HantierungsvorschriftenbUitter,
• externer Speicherablaufplan,
• Stopkatalog.
AIle Unterlagen, die fUr die Dokumentation der Aufgabe benotigt
werden, sind auch fUr die Testauswertung zu benutzen. Damit
konnen im wesentlichen Abweichungen von der Aufgabenstellung
ermittelt werden.
Abb.14.10 zeigt den Zusammenhang zwischen Unterlagen und den
daraus erkennbaren Fehlern. Sie kann nur einen groben Oberblick
geben, da die Fehlerursachen sehr viel komplizierter zusammen-
gesetzt sein konnen.
15. Testdaten
Flir die Durchflihrung von Tests haben die Testdaten eine erhebliche
Bedeutung. Von ihrer Vollstandigkeit und zweckmaBigen Zu-
sammenstellung h.angt es ab, wie gut ein Programm ausgetestet
wird. Ein schlecht ausgetestetes Verfahren wird also dann im prak-
tischen Betrieb ausgetestet. Dies ist allerdings wesentlich aufwendi-
ger als der libliche Test und fUhrt zur Veragerung der Verfahrens-
benutzer.
Welche Grundsatze bei der Auswahl von Testdaten beachtet werden
sollten, um den Test rationell durchfUhren zu konnen, wird in den
folgenden Punkten behandelt.
123
15.1. Zusammensetzung der Testdaten
Bei der Zusammensetzung der Testdaten sind der Inhalt der Daten,
die Menge der Daten und der EinfluB der Testphasen zu berlick-
sichtigen. Das Optimum dieser drei Abhangigkeiten muB fUr den
jeweiligen Test ermittelt werden.
Nicht in jedem Fall kann allerdings exakt nach diesen Kriterien
vorgegangen werden, da auch der Aufwand fUr die Erstellung
maschineller Testdaten berlicksichtigt werden muB. Da es beim
Test besonders auf die Zusammensetzung der Testdaten ankommt,
ist also bei dieser Arbeitsphase sehr viel Sorgfalt erforderlich.
124
• Fixpunkt. Funktionieren Fixpunkt und Wiederanlauf?
• Sicherungen. Werden aIle Datentdigerabztige usw. richtig aus-
gefUhrt?
• Abhangigkeiten. Sind aIle zuIassigen Abhangigkeiten tiberprtift
(AND- und OR-Beziehungen)?
• Daten mit verschiedenen Vorzeichen. Wurde mit positiven und
negativen Daten getestet?
• Datentiberlauf. Sind die Daten mit maximalen GroBen tiberprtift?
• Hantierungen. Sind aIle Hantierungen getestet?
• Fehlermoglichkeiten. Sind aIle denkbaren Fehlersituationen
simuliert?
• Enderoutine. Werden die AbschluBarbeiten getestet?
ZweckmaBig ware eine Zusammenstellung von Testdaten, die viele
Kombinationen tiberprtift. Testdaten, die aIle Kombinationen
erfassen, sind kaum moglich, da es zu viele Kombinationsmoglich-
keiten gibt.
Eine sorgfaltige Zusammenstellung der Testdaten kann die Test-
zeiten eines Verfahrens erheblich verktirzen.
Menge der Testdaten
Normalerweise gentigt es,jede Funktion des Programms durch eine
einzige Testdate zu aktivieren. Bestimmte Funktionen eines Pro-
gramms sind aber mengenabhangig, erfordern also ein groBeres
Testdatenvolumen. Bei folgenden Prtifungen sind groBere Daten-
volumen erforderlich:
• Datentragerwechsel,
• Fixpunkt,
• Datentragersicherung,
• Listendruck, sonstige Dateien.
Diese Prtifungen werden zweckmaBigerweise erst dann durch-
gefUhrt, wenn die sonstigen Funktionen tiberprtift sind. Unter
Umstanden lassen sich groBere Datenmengen auch vermeiden, wenn
durch Simulation die Bedingungen frtiher als tiblich erfUllt werden.
Beispiele fUr solche Simulationen sind eine vorverlegte Bandende-
marke (wenige Meter nach Anfangsmarke) sowie verktirzte Zeit-
bedingungen fUr den Fixpunkt (nicht 1 Stunde, sondern 1 Minute).
Je nach Testphase ist auch die Menge der Daten unterschiedlich.
Bei fortgeschrittenem Teststadium werden mehr Testdaten benutzt
als am Anfang. Die gtinstigste Losung fUr die Menge der Testdaten
kann nur individuell bestimmt werden, wobei folgende Bedingungen
zu beachten sind:
125
• Notwendige Menge. Hille, die getestet werden sollen.
• Vorhandene Testdaten. Schon getestete Falle.
• Erstellaufwand fUr neue Testdateien.
Da der Erstellaufwand u. U. groBer ist als der Testzeitgewinn bei
der Benutzung geringerer Testdatenmengen, wird eine bestehende
Testdatei giinstiger zu benutzen sein.
Abb.15.1
126
Es konnen immer nur bestimmte Personengruppen fUr bestimmte
Testdaten zustandig sein:
• Programmierer. Er kennt ein Programm im Detail und muB den
Detailtest allein ausfUhren. In spateren Testphasen Uberwacht er
die FunktionstUchtigkeit.
Programmierer
Schreibtischtest Programmierer (Organisator)
Teilprogramm.
Programmierer Programmierer
Modul. Unterprogramm
Programmierer und Programmierer (1)
Programm
Organisator Drganisator (2)
Programmierer (2)
Verfahren Organisator und Organisator (1)
Fachabteilung
Fachab!eilung (1)
Rechenzentrum (2)
Programmierer (2)
Parallellauf Fachabteilung
Organisator (2)
Fachabteilung (1)
(1) • Femauswertung
(2) • Grobauswertung Abb.15.2
15.3. Testdatenerstellurig
FUr die Qualitat der Testdaten sind verschiedene Faktoren aus-
schlaggebend.
Personelle Erstellung. Es werden durch Personen, die ein bestimmtes
Testziel verfolgen, Testdaten erstellt. Dabei besteht die Unsicherheit,
ob auch aIle wesentlichen FaIle erfaBt sind. Vermeintlich kritische
FaIle werden besonders ausfUhrlich getestet, unkritische weniger
oder Uberhaupt nicht. Die Fehlerverteilung kann aber gerade
umgekehrt sein.
127
M aschinelle Erstellung. Durch einen Testdatengenerator werden die
Testdaten erzeugt. Wesentliche Eigenschaft dieser Daten ist, daB
sie zufaJIiger Natur, also nicht vom Losungsweg beeinfluBt sind.
Extremwertprufungen sind mit solchen Daten nicht auszuftihren.
Es konnen auch viele gleichartige Hille erzeugt werden, die nicht
gewunscht sind. Diese Art der Testdatenerstellung ist also nur
begrenzt verwendbar (Kap.16).
°
Beispiel
Aufgabe: Bei A = 1 und B =t= ist C = B, sonst C = A.
Die Testbeispiele sind folgendermaBen festzulegen:
1. Fall: A= 1, B=2, Ergebnis: C=2,
2. Fall: A= 1, B=O, Ergebnis: C= 1,
3. Fall: A=3, B=2, Ergebnis: C=3,
4. Fall: A=4, B=O, Ergebnis: C=4.
Bei der Erstellung der Testdaten werden diese FaIle mit anderen
zusammen zu komplexeren Fallen kombiniert. Bei den anderen
Testphasen ist in ahnlicher Weise vorzugehen.
16. Testhilfen
AIle Routinen, die zur Erzeugung von Testdaten, zur Erkennung
und Lokalisierung von Fehlern und zur Auswertung von Test-
ergebnissen benutzbar sind, sollen als Testhilfen bezeichnet werden.
Dabei ist es unerheblich, ob sie als Standards vorhanden sind oder
seIber erzeugt wurden. Je mehr Testhilfen zur Verfugung stehen,
urn so schneller und besser lassen sich Programme austesten. Der
richtige Einsatz dieser Hilfen kann die Erstellzeit eines Programmes
und den fUr Teste erforderlichen Maschinenzeitbedarf vermindern.
FUr den closed-shop-Betrieb ist der Programmierer auf leistungs-
fahige Hilfen angewiesen, da et keine Beeinflussungsmoglichkeit
mehr wahrend des Tests hat.
129
16.1. Klassifikation der Testhilfen
130
16.2. Test-Module
Diese Module sind von der Hard- und Software abhangig, als
Beispiel wird hier fUr die Siemens 4004/35-55 und hOhere Betriebs-
systeme der Fehlerausgang STXIT behandelt. Durch diesen Aus-
gang werden z. B. FeldUberlauf bei arithmetischen Operationen,
Division durch Null und arithmetische Operanden gemeldet, die
ein unzulassiges Format haben (Datenfehler). AIle diese Fehler fUh-
ren zum Abbruch des Programmes. Bei einer Besetzung des STXIT-
Ausganges mit einer entsprechenden Fehlerroutine (STXBER,
Kap. 7.3) und einer Behandlung der Daten, kann das Programm
fortgesetzt werden.
Protokolle der Fehler lassen erkennen, wo welcher Fehler aufge-
treten ist. Da die Datenfehler sehr haufig auftreten, konnen viele
in einem Test ermittelt werden. Die Benutzung des Anwender-
moduls STXBER ist also eine wirksame Testhilfe und muB daher
immer benutzt werden.
16.4. Datentragervergleich
Diese Testhilfen sind erst bei groBeren Datenmengen zweekmaBig
einzusetzen, also beim Verfahrenstest oder Parallellauf. Ihre Vor-
teile sind:
• Sehnellere Auswertung der Ergebnisse moglieh.
• Bessere Auswertung der Ergebnisse moglieh. Alle Veranderungen
werden aufgezeigt und konnen tiberpriift werden.
• Bessere Ubersiehtliehkeit. Es wird mit weniger Papier gearbeitet.
• Weniger Masehinenzeit. Es mtissen nieht die kompletten Dateien
gedruekt werden.
Falls fast alle Informationen verandert werden, ist der Effekt nieht
besonders groB. Vergleiehsprogramme existieren fUr Bander oder
Platten und Bander.
..
~ O~
goo 00 ~ ~~ ~~
_Q
.. .. ....
-co cO' 0' _0' ao
0.. •• • cce .. Oil W
C ~~~Q ~ 4G. U4.m •
...·
N OC~c ~~ ac cae a N C
'"
".
~NC
OONN
lice
~Q
~N
cO'
0'
~N
000'
a"~
NOOO
N
0 • N
'"
...•
II 0' '.0 011 Ie • CD
..c«I. •• C"O' ••• 4!
:0
(3 0'
m~ ~m 0' o. 0'
co
~~ooo
cocco
coo
COO
~o~o~~~o~!:~o~ C~ CO
4~O~OO~CDOOO~~Q
~o ~ ~
fI"II"" •••
•• 11'\""" • •
C~COO.~G~~~.UUQ~WOOO~~OO~~O.WN • • ~
II ••••••• JII'\II'\ • • N "...
e
C
~;~:g:::::::~~~~~g~~o~~g~~g::::: ~
~~NOONNNNNNNN~JII'\~~OO~JII'\~OOJll'\~O~NNNN ~
0'01011 .00,000000'000'0.' 1100.0_110'0'110'0000 ...;
~~~::~~.~~::~~~~~:::~:::~~:~:~.:~
- ____ o o o o o o o o o o o ___ ~ ________ .... ...J __ .. -c GJ
'" ~ ~: . I N
~~ ~ ~: ~ ~ ~
'"'"
'"
Do. ~~: ~ -:~~~:. ~~ ~. ~:; ~~ ~:~!;:~ ~::~; ~ ~~: ~~org
.., ::~~~~~~~~~~~::~:~~:::~:::~t:t~~~ ~
... -oo~odo~ooooo~0~o<oOo~oo~0~o~o-000d~6uOl
·..... .......................... .
OG~~OO~oo~oo~mo~o~~~o~o~~o~~~o~o~~
'"
'" ~:~~~~~:~d~::~:::=~~:~;~:~:~:~~:~ ecu
~~~~~~~~LL~~~~~~~~~~~~~~~~~~~~~~~ Q.
OOOOOOOOOOOOOOOOOQOOOOOOOQOOOQOO~ c::>
=~~~~~=~~=~~~===~=~~~~=~~~~~~~~=~
000000000000000000000000000000000
000000000000000000000000000000000
000000000000000000000000000000000
• .......... tI ......................... ., .......... ..
............ « ........................ .
~--------------------------------
...'"
". NG~C~N~WN.~~~uN<Oo~WN~uO~Cw.G~OOUN.U
:::~~:::~:~::~:::~:::~:~~~~~:::~:
'"'" NNNNNNNNNNN~N~NNNNNNNNNNNNNNNNNNN
000000000000000000000000000000000
'"'" """""""""""""""'"
.,...
NGU~WN~~N~<O~UN~~WN~UO~~~~GU~~NG U
...... ~~ ~ uuQ Q Qw~~~~uoooowww~ ~ ~~00044~~ ~
~~ » ~C~ ~ ~G.~~~~~~~~~~~~.~~.<.~~GG ~
oo o ooooooOOOOOOOOOOO O OOO O OOOOO~O ?
oo o ooo o o o ooo ~ o o ooo o o o ooooooooooo~
133
Sprunganweisungen. Es lassen sich zusatzliche Modifizierungen am
Programm anbringen. Sie konnen zu folgenden Zwecken benutzt
werden:
• Uberspringen von z. B. fehlerhaften Programmteilen.
• Anderung von Sprtingen.
• Anderung von bedingten Sprtingen.
• Einftigung von bedingten Sprtingen.
134
eingespart werden konnen, dlirfte bei sinnvoller Anwendung kein
aIlzu groBer Mehrbedarf an Maschinenzeit entstehen. Die sinnvolle
Anwendung besteht darin, aIle zeitverHingernden Testhilfen genau
zu durchdenken und den Zeitbedarf auf die Notwendigkeiten zu
reduzieren.
ZeitverHingernd sind aIle Uberwachungsfunktionen, wobei fUr jeden
liberwachten Befehl ohne Druck etwa der Faktor 100 und mit
Druck der Faktor 1000 angenommen werden muB.
Auswirkungen auf den Kernspeicherbedarf. Diese Auswirkungen sind
meist unerheblich. Nur bei kleineren Anlagen kann es zu Schwierig-
keiten fUhren. Flir die dynamischen Testhilfen werden z. B. bei der
Siemens 4004 ca. 4 KB benotigt.
l35
17. Dokumentation der Programme
136
17.2. Inhalt der Dokumentation
Es werden Unterlagen aufgefUhrt, die zur Beschreibung des Pro-
grammes dienen oder yom Programmierer fUr die Hantierung
erstellt werden, sowie die dazugehorigen Programme.
Programmbeschreibung
• Pflichtenheft. We1che Sachverhalte beschrieben werden miissen,
ist im Kap. 1 aufgefUhrt.
• DatenfluBplan. Siehe hierzu Kap. 2.
• Programmablaufplan. Siehe hierzu Kap. 3.
• Befehlsfolge in symbolischer Sprache (z. B. Assembler oder
COBOL-Liste). Benutzt wird dafUr das Ubersetzerprotokoll.
• Protokoll des Programmes in Maschinensprache (Kern speicher-
abzug).
• AdreBbuch des iibersetzten Programmes.
• Liste des erzeugten Maschinenprogramms. Die durch den
Compiler erzeugten Befehle sind aufgelistet.
• Binderliste. Die Zusammensetzung des Programmes aus Modulen
wird aufgezeigt. Maschinenadressen konnen ermittelt werden.
• Querverweisliste. We1che Adressen werden wo verwendet?
• Schliisselverzeichnis. Aufstellung verwendeter Kennziffern, Schliis-
sel, Kartenarten, Satzarten usw. sowie deren Bedeutung.
• Datentriigerorganisation. Beschreibung der Dateien nach Aufbau,
Inhalt, Einteilung, Art, Sortierung, Adressierung, Verwendung.
• Testunterlagen. Hierunter sind die zum Nachweis des erfolg-
reichen Tests erforderlichen Unterlagen zu verstehen (z.B. Test-
daten, Testergebnisse).
• Fehlerkatalog. Katalog der Fehler, die durch das Programm
erkannt und gemeldet werden.
• Programminterne Festlegungen. Hier sind alle Besonderheiten des
Programmes zu beschreiben, wie z. B. Overlay und Modulstruktur,
Verwendung von Weichen, Aufbau von Tabellen, Einschriin-
kungen, Besonderheiten der Kernspeicherbelegung, Zeitbedin-
gungen (falls erforderlich), Tricks.
• Voraussetzungen. Es sind sowohl Software- als auch Hardware-
voraussetzungen aufzufUhren, also Betriebssystem mit Versions-
nummer, Bibliotheksvoraussetzung fUr Umwandlung oder Ablauf
(welche Module oder Makros miissen enthalten sein?) sowie
Hardwarevoraussetzung fUr Umwandlung und Ablauf (z. B. Zeit-
geber, Spuriiberlaufeinrichtung, Datenferniibertragung, Biniir-
zusatz usw.).
137
• Varianten. Lauft das Programm mr unterschiedliche Benutzer
in verschiedenen Varianten und welche sind dies?
• Verbale Kurzbeschreibung des Programmes.
Hantierungsbeschreibung (Kap. 9)
• Rlistvorschriften (Hantierungsvorschriftenblatter).
Beschreibung der Vorbereitung der DV-Anlage mr den Ablauf.
• Externe Speicherorganisation. Erstellung und Benutzung der
Dateien eines Verfahrens.
• Hantierung bei Unterbrechung. Spezielle HantierungsmaI3nahmen
bei auftretenden Unterbrechungen durch Fehler.
Programme und Testdaten
• Symbolischer Kartensatz oder entsprechende Aufbewahrung in
einer Programmbibliothek.
• Objektprogramm in der Programmbibliothek.
• Testdatensatz auf Lochkarten oder magnetischen Datentragern.
Ist-Aufnahme
Au fgabenstellu ng Aufgabenstellung
Pflichtenheft Pflichtenheft
Beschreibung Beschreibung
Abb.17.1
138
17.3. Form der Dokumentation
Aus ZweckmaBigkeitsgrUnden muB die Dokumentation in einer
normierten Form erfolgen, da dann Ablage und Suche von Unter-
lagen wesentlich erleichtert werden. Leider ist es sehr schwierig,
mehrere programmierende Stellen zu einer Form der Dokumenta-
tion zu bewegen. Die auBeren Bedingungen konnen dabei eine Rolle
spielen. Allerdings muB die auBere Form der Ablage nicht von
primarer Bedeutung sein, wenn bestimmte Grundsatze berUck-
sichtigt sind:
• Nur notwendige Unterlagen flir die Dokumentation vorsehen.
. 1... Istaufnahme: Zielsetzung, Auswertung
.G ... Grundsatzfragen: Protokolle
Grundsatzfragen: Schriftwechsel, Notizen
Grundsatzfragen: Wirtschaftlichkeitsbetrachtungen, Freigabe
Abb.17.2
• Keine doppelten Beschreibungen in der Dokumentation, da die
Gefahr besteht, daB sie bei Anderungen nicht synchron geandert
werden.
• Benutzung von Kopien (z. B. aus dem Pflichtenheft) falls bestimmte
Unterlagen schon vorhanden sind.
• Moglichst keine Unterlagen in die Dokumentation, die schon
bei der kleinsten Anderung manuell geandert werden mUssen.
• Die Einteilung der Dokumentation soIl so sein, daB sie eine
Erstellung wahrend der Programmierung erlaubt. .
Beispiele flir die Aufgliederung der Programmdokumentation sind
in den Abb. 17.1 und 17.2 dargestellt.
139
17.4. Ubergabe an die Pflegegruppe oder an das Rechenzentrum
Nach Fertigstellung der Programme wird die komplette Dokumen-
tation an die Pflegegruppe, ein Teil davon an das Rechenzentrum
iibergeben. Bei dieser Ubergabe werden gleichzeitig aIle Unterlagen
iiberpriift, der fUr die Hantierung vorhandene Teil yom Rechen-
zentrum. Dieses kann ungeniigende Beschreibungen zuriickweisen.
Die Ubernahme eines Programmes wird dann durch ein Protokoll
bestiitigt.
Entsprechend wird bei den U nterlagen verfahren, die der Pro gramm-
pflege iibergeben werden. Hier kann aber zunachst die interne
Revision eingeschaltet werden, urn die Unterlagen zu iiberpriifen.
Der Anderungsdienst der Dokumentation wird generell nur von
der Pflegegruppe ausgefUhrt. Die Anderungen selbst miissen doku-
mentiert werden (Kap. 18).
17.5. Unterlagensicherung
Die Anzahl und die Lagerung der Unterlagen miissen so reglemen-
tiert sein, daB der Verlust verhindert wird und Ersatzexemplare
vorhanden Si11d oder wieder hergestellt werden konnen. Diese
Reglementierung muB den ortlichen Gegebenheiten angepaBt
werden. Der Aufwand dafUr muB minimiert werden und die Durch-
fUhrung automatisch erfolgen, da diese MaBnahmen sonst unter-
lassen werden. Es ist z. B. zweckmaBig:
• Das ablaufflihige Programm muB im Rechenzentrum in zwei-
facher AusfUhrung gespeichert sein.
• Die Programmbeschreibung und der symbolische Kartensatz
sind bei der Programmierung aufzubewahren (anderes Gebaude).
• Archivierung der vorletzten Programmliste mit handschrift-
lichen Anderungen an einem dritten Ort.
• Wiedergewinnung von Unterlagen aus Originalen (Transparent
usw.) durch Aufbewahrung dieser bei einer unabhangigen Stelle.
• Lagerung der Unterlagen in zerstOrungssicheren Schranken.
Bei folgenden Voraussetzungen sind vereinfachte SicherungsmaB-
nahmen vertretbar:
• Wird das Programm an verschiedenen Standorten verwendet
und ist dort ebenfalls eine vollstandige oder Teildokumentation
vorhanden, konnen die MaBnahmen reduziert werden.
• 1st die Neuerstellung einer Dokumentation einfacher und billiger
als die dauernde Sicherstellung, so sind nur die zur Sicherstellung
des Ablaufs erforderlichen MaBnahmen durchzufUhren.
• Bei einmaligen Arbeiten ist der Sicherungsaufwand nicht erfor-
derlich.
140
18. Programmpflege
143
A,
Programmbezeichnung:
Programm-Nummer:
1.3 $ystem-Steuerkarten o
2. Hantierungs- 2.1 Hantierungsvorschrift
Ordner
2.2 Arbeitsablaufplan o Blall
2.3 Beleglauf o
3. Sonstiges 3.1 o
3.2 o
3.3 o
Einsatz der
Anderung ab:
Abb.1B.l
145
.....
.J:>.
0\ Assembler COBOL ALGOL FORTRAN PL/1 LPG
Abb.19.1
Die Auswahlmoglichkeit der Sprachen wird von vornherein durch
die Ausbildung der Programmierer eingeschdinkt. Nur in Aus-
nahmefallen - bei groBen Aufgaben - kann eine zusatzliche
Ausbildung in Betracht gezogen werden.
~n"
rufendes
Programm Assembler COBOL ALGOL FORTRAN lPG
Progromm
COBOL X X (X) X -
ALGOL X (X) X X -
FORTRAN X X - X -
lPG X (X) (X) (X) -
-
X = ohne Umweg Assembler moglrch
(X) = bedingt moglich
- = nicht moglich Abb.19.3
147
Unter Umstanden muB auch noch berticksichtigt werden, daB
sich bestimmte Aufgaben nur in der Assemblersprache realisieren
lassen.
Nicht jede Verkntipfung von Programmteilen ist in den verschie-
denen Sprachen ohne weiteres moglich. Abb.19.3 zeigt fUr die
Siemens 4004 die zugelassenen Moglichkeiten. Nicht jede zugelas-
sene Moglichkeit muB auch sinnvoll anzuwenden sein.
148
• Festlegung von Datentdigern und Speicherungsformen.
• Festlegung von Ablauffolgen.
• Datensicherung.
Programmorientierte Betreuung
• Auswahl von Programmiersprachen.
• Einsatz von Anwendersoftware und Dienstroutinen.
• Hilfe bei der Programmierung und Fehlersuche.
• Hilfe bei der Umstellung auf neue Betriebssysteme.
• Verbesserung von Testmethoden.
• Optimierung von Programmen in bezug auf Zeitbedarf und Kern-
speicherbelegung.
Systemorientierte Betreuung
• Auswahl, Priifung und Uberwachung von Betriebssystemen.
• Fehlererkennung und Fehlermeldung an Systemprogrammen.
• Umstellung der Bibliotheken auf neue Betriebssysteme.
• Freigabe und Einsatzsteuerung neuer Betriebssystemversionen.
• Gespdi.chspartner zum Hersteller;
Anwendersoftware
• Koordination bei der Entwicklung eigener Software.
• Erstellen neuer Standardprogramme und Module.
• Erweiterung vorhandener Standardprogramme und Module.
• Umstellung auf andere Betriebssysteme.
Erfahrungsaustausch und Weiterbildung
• Teilnahme an Betreuertreffen.
• Veroffentlichung von neuen Programmiererfahrungen, Standards
usw.
• DurchfUhrung eines internen Erfahrungsaustausches.
• DurchfUhrung von Weiterbildungsveranstaltungen.
• Gesprachspartner zu anderen DV-Anwendern.
Festlegung von Konventionen
• Schaffung einheitlicher Konventionen fUr Planung, Programmie-
rung und Abwicklung.
• Pflege" und Anderungsdienst der Vorschriften.
D V- Literatur
• Beratung bei der Beschaffung von DV-Unterlagen.
• Archivierung und Wartung der Bibliothek mit DV-Unterlagen,
Zeitschriften und Biichern.
149
Heidelberger Taschenbiicher