Systemanalytische Einführung in die kommerzielle EDV: Problemlösen mit COBOL [Reprint 2019 ed.] 9783110837032, 9783110075441


228 30 18MB

German Pages 384 [388] Year 1979

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Vorwort
Wegweiser
Inhaltsverzeichnis
Teil I: Fallstudien zur kommerziellen EDV
Fall A: EDV im Krankenhaus (Umstellungen im Verwaltungsbereich)
Fall B: EDV im Fertigungsbetrieb (Stücklistenverarbeitung)
Teil II: Grundlagen
1. Systemanalyse
2. Daten und Algorithmen
3. Externe Speicher und Fileorganisation
4. Programmentwurf mit COBOL
Beispiellösungen zu Teil II
Anhänge
Sachregister
Recommend Papers

Systemanalytische Einführung in die kommerzielle EDV: Problemlösen mit COBOL [Reprint 2019 ed.]
 9783110837032, 9783110075441

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

de Gruyter Lehrbuch Spitta / Gasch / Franck • Systemanalytische Einführung in die kommerzielle EDV

Thorsten Spitta • Berthold Gasch • Holger Franck

Systemanalytische Einführung in die kommerzielle EDV Problemlösen mit COBOL

Walter de Gruyter • Berlin • New York 1979

Dr.-Ing. Thorsten Spitta Projektleiter des Anwender-Softwareprojektes MIREKON (Modulares Informations- und Rechensystem für die Konfektionsindustrie) in Berlin Dipl. Volkswirt Berthold Gasch Dr.-Ing. Holger Franck Wissenschaftliche Assistenten und Lehrbeauftragte für Elektronische Datenverarbeitung im Fachbereich Informatik der Technischen Universität Berlin Das Buch enthält 67 Abbildungen

CIP-Kurztitelaufnahme der Deutschen Bibliothek

Spitta, Thorsten: Systemanalytische Einführung in die kommerzielle EDV : Problemlösen mit COBOL. / Thorsten Spitta ; Berthold Gasch ; Holger Franck. - Berlin, New York : de Gruyter, 1979. (De-Gruyter-Lehrbuch) ISBN 3-11 -007544-X NE: Gasch, Berthold:; Franck, Holger:

© Copyright 1979 by Walter de Gruyter & Co., vormals G. J. Göschen'sche Verlagshandlung, J. Guttentag, Verlagsbuchhandlung Georg Reimer, Karl J. Trübner, Veit & Comp., Berlin 30. Alle Rechte, insbesondere das Recht der Vervielfältigung und Verbreitung sowie der Übersetzung, vorbehalten. Kein Teil des Werkes darf in irgendeiner Form (durch Photokopie, Mikrofilm oder ein anderes Verfahren) ohne schriftliche Genehmigung des Verlages reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Printed in Germany. Druck: Color-Druck, Berlin. Bindearbeiten: Dieter Mikolai, Berlin.

Vorwort

Das vorliegende Buch ist Ergebnis eines von den Autoren im Fachbereich Informatik der TU Berlin über mehrere Jahre durchgeführten 2-semestrigen Lehrveranstaltungszyklus im Rahmen der DV-Grundausbildung für Wirtschaftswissenschaftler. Aus der Zielgruppe der Auszubildenden ergab sich, daß die Wissensvermittlung zwei Komponenten zu berücksichtigen hatte: 1. Das betriebliche Problem, für das es eine organisatorische Lösung zu suchen galt. 2. Die Entwicklung und Implementierung der EDV-spezifischen Teillösung auf einer Rechenanlage. Die projektorientierte auf einem konkreten Fall basierende Lehrveranstaltung ermöglichte es, beide Komponenten zu verbinden. Je nach Anwendungsfall wurde die organisatorische oder die softwaretechnologische Komponente mehr betont. Das Konzept des Buches fußt auf dieser Verbindimg von Wirtschaftswissenschaften und Informatik, wobei folgende Aspekte besonders berücksichtigt wurden: 1. Betriebswirtschaftliche Entwicklung von Anwendungssysterren (Systemansatz) und Methodik des Softwareentwurfs sind prinzipiell von gleicher Struktur; 2. die Entwicklung von Systemen - sei es nun ein rein organisatorisches System oder die Realisierung einer EDV-Komponente dieses Systems - läßt sich, solange es keine greifende cperationale Theorie dazu gibt, am besten durch praktisches Handeln lernen. Dies spiegelt sich in der Entwickimg von organisatorischen Lösungen, Algorithmen und deren Implementierung wider. 3. Anwendungsorientierte DV-Grundausbildung für Wirtschaftswissenschaftler sollte nicht rechner-, sondern anwendungs- und damit prcblemorientiert sein. Diese Orientierung führt zur Verwendung von COBOL als Programmiersprache. Daher ist auch die Entwurfstechnik zur Entwicklung von Algorithrren COBOL-orientiert. 4. Bereits dem Anfänger muß das Aufbauen auf vorhandenen Lösungen vermittelt werden. Dazu muß der EDV-orientierte Systementwickler frühzeitig den Umgang mit 'Schnittstellen' von Standardlösungen lernen, insbesondere solchen der Datenverwaltung.

VI

Vorwort

Die Durchführung dieses Konzeptes orientierte sich an folgenden Leitgedanken: Das Buch sollte sein: - praxisorientiert und prdblemnah: Als Einstieg werden Fallstudien und nicht wie sonst üblich 'Grundlagen' gewählt, - offen für Neuentwicklungen: Wie schon erwähnt, gibt es keine abgeschlossene operationale Theorie der Systementwicklung. Daher differieren die Fallstudien in Details - nicht im Ansatz - bei formalen Darstellungsrrethoden der Spezifikation, der Algorithmen- und Schnittstellendarstellung. Es koirmt hier darauf an, eine Konvention festzulegen und in einem Projekt einheitlich einzuhalten. Allgemeingültiges existiert auf diesem Gebiet nicht. Um den Umfang des Buches und so auch den Preis in Grenzen zu halten, konnten einzelne Problembereiche nur komprimiert dargestellt bzw. nur gestreift werden. Für die erfolgreiche Entwicklung eines Anwendungssystems in der Praxis ist es unumgänglich, sich weiteres Wissen über: - Darstellungstechniken der Systemanalyse und des Progranmentwurfs, vertiefte Methoden der Dateiorganisation, - Struktur und Anwendungsmöglichkeiten unterschiedlicher Programmiersprachen, - Gerätetechnik, - Projektmanagement, - Spezialgebiete des Rechtswesens (Datenschutz, Betriebsverfassungsbzw. Personalvertretungsgesetz), Soziologie und Psychologie am Arbeitsplatz (Akzeptanzpröblematik), Betriebswirtschaftslehre (Kostenrechnungsverfahren) zu erwerben. Dieses Wissen kann in der notwendigen Tiefe in dieser Einführung nicht vermittelt werden. Die Benutzung dieses Buches sollte gemäß dem Konzept der Verfasser van einer der beiden gleichwertigen Fallstudien ausgehen und den dort gegebenen Lesehinweisen für die Grundlagen folgen. Eine Bearbeitung beider Fallstudien ist bei Selbststudium dringend erforderlich, da für eine EDV-Einführung hohe Anforderungen gestellt werden

Vorwort

VII

und die Fallstudien unterschiedliche Schwerpunkte setzen. Wer den konzipierten Weg nicht beschreiten will, kann auch mit Teil II (Grundlagen) beginnen und dann die Fallstudien bearbeiten. Der nachfolgende Wegweiser zeigt die Möglichkeiten auf. Die den Fallstudien zugrundegelegte (COBOL-) Basissoftware kann in beschränktem Umfang Interessenten gegen Erstattung der Versandkosten auf Datenträgern zur Verfügung gestellt werden. Bei der Vielzahl der im Laufe der Jahre an der Grundausbildung Beteiligten läßt sich heute nicht mehr rekonstruieren, welche Anregungen und Ideen von wem in die Konzeption der Lehre einflössen. Ihnen allen ist zu danken. Namentlich sind in diesem Zusantrenhang Dipl.Ing. (ETH) M. Berger, cand.ing. M. Mattesius, Dipl.-Inform. H. Sternberg, Dipl. Kfm. R. Trill, Dipl. Kfm., Dipl. Math. E. Vfohlrapp zu erwähnen. Des weiteren danken wir Herrn Verwaltungsdirektor R. Latzke und seinem Assistenten, Herrn G. Lehr van Stadtkrankenhaus Offenbach/Main. Ohne ihre großzügige Unterstützung wäre der Aufbau der Fallstudie Krankenhaus nicht möglich gewesen. Ein ganz besonderes Anliegen ist es uns, Herrn Ing. (grad.) W. Hellenthal für die sorgfältige und ausdauernde Arbeit als 'Projektmanager1 der gesamten Herstellung des Manuskriptes, für die Herstellung aller Zeichnungen und das Überarbeiten vieler Progranme scwie für die Vielzahl nützlicher Hinweise besonders zu danken. Ebenfalls ist Frau B. Seifert für das Schreiben der Druckvorlagen und den Herren Dipl. Phys. S. Bürk, W. Reich und Dipl.-Inform. H. Zuse vom Informatik-Rechnerbetrieb der TU Berlin für die vielfältige Unterstützung zu danken.

Berlin, im März 1979

Thorsten Spitta Berthold Gasch Holger Franck

Wegweiser Die hier abgebildeten Wegweiser dienen zur Orientierung über die Vorgehensweise zur Erarbeitung der Grundlagen gemäß dem Konzept dieses Buches. I bezieht sich auf die Fallstudien, II auf den Grundlagenteil. Fall A: I

II

Fallstudie

Grundlagen

1.

2.3.1 2.(Aufgaben zu Algorithmen Alg1, Alg2) 3.2(Aufgabe zur Systemanalyse) 3.3

4.1(Aufgabe Alg 3-A; Implementierung Alg1 und Alg2 in COBOL) 4.10

4.

X

Wegweiser

Fall B: II Fallstudie

Grundlagen

1.1-

1.5

1.6(Aufgabe zur Systemanalyse)

2.1

2.1-

2.5.2

2.1.22.1.4

2.2(Aufgabe Alg 3-B 2.2.6

2.5.3(Aufgaben zu Algorithmen Alg1, Alg2) 3.

4.

2.2.7( Implementierung Alg1, Alg2, und Alg 3-B in COBOL) 4.

Inhaltsverzeichnis

Teil I: Fallstudien zur kcnmerziellen EDV Fall A: EDV im Krankenhaus (Umstellungen im Verwaltuncrsbereich) 1. Vorbemerkung 2. Vorstudie 2.1 Ausgangsproblem und Zielsetzung der Vorstudie . . 2.2 Ergebnisse der ersten Analyse 2.3 Lösungsweae 2.3.1 Alternative I 2.3.2 Alternative II 2.3.3 Kostenbetrachtuna 2.4 Bewertung und Auswahlentscheidung 3. Hauptstudie 3.1 Istanalyse 3.1.1 Phase I: Aufnahme 3.1.2 Phase II: Aufenthalt im Krankenhaus 3.1.3 Phase III: Entlassung 3.1.4 Grafische Darstelluncr 3.1.5 Weitere Schwachstellen 3.2 Organisatorisches Sollkonzept 3.2.1 Anforderunaen 3.2.2 Konfiguration der DV-Anlage 3.2.3 Aufgabenstellung zur Sollkonzeption 3.2.4 Lösungsvorschlag 3.2.4.1 Verbale Darstellung 3.2.4.2 Grafische Darstellung 3.2.5 Zusammenfassung der EDV-Funktionen 3.2.5.1 Funktionen der Dialogverarbeituncr 3.2.5.2 Funktionen der Stapelverarbeitung 3.3 Merkmalgewinnuna 4. Softwareentwickluna 4.1 Aufgabe zur Softwareentwicklung Alg3-A 4.1.1 Aufgabenstellung 4.1.2 Beispiellösung 4.2 Zur Datenbasis 4.3 Ausgabegestaltung der EDV-Funktion "Fakturieruna" . 4.4 Ableitung der zuaehörigen loaischen Datenstruktur . 4.5 Benutzer- und Basismaschine 4.6 Zugriffsweg und Dateiorcranisation 4.6.1 Struktur und Inhalt der Adreßtabelle 4.6.2 Zugriff zum Patienten- und Kassenstairansatz . . . 4.6.3 Auswirkungen 4.7 Schnittstellen der Basismaschine 4.7.1 Vorbemerkuna zur Schnittstellenbeschreibung . . . 4.7.2 Schnittstellenbeschreibung des Moduls "LOGFAK" . .

Seite 1 3 3 4 4 4 5 5 6 6 8 9 9 9 14 15 16 20 20 21 21 22 22 22 24 26 27 27 28 30 30 30 31 47 48 49 50 52 52 53 54 55 55 56

XII

4.8 4.8.1 4.8.2 4.8.3 4.8.4 4.8.4.1 4.8.4.2 4.9 4.10

Inhaltsverzeichnis

Entwarf des Anwendunqsprogramms "Fakturieruna" . Beschreibung der Benutzerschnittstelle Alqorithmischer Entwurf Stufe I und Stufe II . . . Modularisierung Algorithmischer Entwurf Stufe III "FAKKRA" "DATDIF" Die Benutzermaschine: "FAKKRA" und "DATDIF" . . . Grafische Systemübersicht

Seite 61 61 63 66 67 67 71 73 74

Anhänge zu Fallstudie A

76

Anhang Anhang Anhang Anhang

76 77 82 84

1: 2: 3: 4:

Patientenidentifikationszahl Formulare der Faktenerhebung Patientenstarrmsatz Die Programme "FAKKRA" und "DATDIF"

Fall B: EDV im Fertigungsbetrieb (Stücklistenverarbeitung)

101

1. 1.1 1.2 1.3 1.4 1.5 1.6

Vorstudie Systembeschreibung Ziel der Untersuchung Problembeschreibung und Alternativen Schwachstellenanalyse Vorentscheidung Aufgabe zur Systemanalyse

101 101 102 102 103 103 104

2. 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6

105 105 105 108 109 110 111 111 112 113 115 117

2.2.7 2.2.7.1 2.2.7.2 2.2.7.3 2.2.8 2.2.8.1 2.2.8.2 2.2.8.3

Hauptstudie Istanalyse Arbeitsabläufe Ressourcen Material- und Informationsfluß Bewertung des Istzustandes Sollkonzept Anforderungen an das Sollkonzept Konfiguration der EDV-Anlage Fertigungssteuerungs-Datenbasis Aufgabe zur Datenbasis Alg3-B Erzeugnisstrukturen in der Datenbasis Erster Entwurf eines Benutzerprograimis zur Stücklistenauflösung Zugriffe auf die Datenbasis Modul für elementare Dateizucrriffe: TSMB . . . . Modul für einstufige Bäume: TREE Modul für Zwischenspeicher: STACK Spezifikationsrahmen des Benutzerprogramms . . . Basismaschine Benutzermaschine Systemübersicht

3. 3.1

Softwareentavicklung Algorithmischer Entwurf

139 139

119 121 122 127 131 135 135 135 138

Inhaltsverzeichnis

3.2 3.3 3.3.1 3.3.2 3.4

Inplenentierunq in COBOL Proaranmtest Testdaten Ergebnisse Einschränkungen und Erweiterungen

4.

Systemeinführung

XIII

Seite 145 152 152 154 156 159

Anhänge zu Fallstudie B

161

Anhang 1 : Consolprotokoll zun Testlauf Anhang 2: Beispiellösungen

161 163

Teil II: Grundlagen

171

1. 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2 1.3 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5 1.5.1 1.5.3

SYSTEMANALYSE Konzeption des Systemansatzes Entstehung des Systemansatzes Systembegriff Ziele Umwelt Ressourcen Komponenten Management Begriffe Darstellungstechniken Graphen Entscheidungstabellen Entwicklungslogik Problemlösungsprozeß Schrittweises Verfeinern Zeitstruktur Entwicklungsschritte Vorstudie Softwareentwicklung

173 174 174 176 177 179 181 181 182 183 185 185 188 192 192 196 198 199 201 210

2. 2.1 2.2 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.4 2.5 2.5.1 2.5.2 2.5.3 2.5.3.1 2.5.3.2 2.5.3.3

DATEN und ALGORITHMEN Informationen und Daten Elementare Daten Datenstrukturen Die Strukturart Satz ('record') Die Strukturart Tabelle ('array') Die Strukturart Datei ('file') Zusammenfassung Datenbeschreibung Der COBOL-Ccnputer Grobskizze eines Carputers Programmiersprache und virtuelle Maschine . . . . Grundmodell der CGBOL-Maschine Felder und Daten Der (Intern-)Speicher Operationen auf dem Internspeicher

212 212 215 217 217 218 220 221 221 224 224 226 230 230 230 231

Inhaltsverzeichnis

XIV

2.5.4 2.5.4.1 2.5.4.2 2.5.5 2.5.5.1 2.5.5.2 2.5.6 2.6 2.6.1 2.6.2 2.6.3 Aufgabe 2.6.4 2.6.4.1 2.6.4.2 2.6.5 2.7 2.7.1 2.7.2 Aufgabe 3. 3.1 3.1.1 3.1.2 3.2 3.3 3.3.1 3.3.2 3.3.2.1 3.3.2.2 3.3.3 3.4 3.4.1 3.4.2 4. 4.1 4.1.1 4.1.2 4.1.3 4.1.3.1 4.1.3.2 4.1.4 4.1.4.1 4.1.4.2 4.2 4.2.1

Erweitertes Modell für eine leistungsfähige Ein-/Ausgabe Arten von Externspeichern Aufteilung des Intemspeichers Operationen, bezogen auf externe Speicher . Öffnen und Schließen von Dateien in COBOL . Lesen und Schreiben von Dateien Zusammenfassende Übersicht Algorithmen Sequenzen von Befehlen Prozeduren Wiederholung (Schleifen) Alg1: Druck-Algorithmus Kontrollstrukturen Fallunterscheidung Laufanweisung Begriff und Eigenschaften eines Algorithmus Top-Down-Entwickluna von Algorithmen Anwendungsbeispiel zur Top-Dcwn-Entwicklung Vorgehen bei der schrittweisen Verfeinerung Alg2: Sortier-Algorithmus

Seite

. . . . . .

. . . . . . . . .

EXTERNE SPEICHER und FILEORGANISATION Speicherarten und ihre Zugriffseigenschaften . Magnetband . I Magnetplatte Dateiorganisation und Zugriffsverfahren . . Zugriffsalgorithmen Adressen für direkten Zugriff mit Schlüssel . Suchen Sequentielle Datei Gestreute Datei Ändern Höhere Datenstrukturen auf Externspeichern (Adreßverkettung) Lineare Listen, realisiert als adreßverkettete Bäume, realisiert durch Adreßverkettungen . .

. . . . . .

Sätze . .

PROGRAMMENTWURF mit COBOL Elemente der Programmiersprache GOBOL Strukturen von COBOL Die Bedeutung von IDENTIFICATIONund ENVIRONMENT DIVISION Die DATA DIVISION (Datenteil) Die Beschreibung elementarer Daten Die Beschreibung von Datenstrükturen Die PROCEDURE DIVISION (Prozedurteil) Einfache COBOL-Befehle und Beispiel-1 Weitere Befehle und Beispiel-2 Programmentwurf und Modularisierungsansätze . . . Von der Hauptstudie zur Prograirmplanung . . . .

238 238 239 241 241 243 246 248 248 249 251 255 257 257 258 261 262 263 267 269 271 271 271 273 275 279 279 280 280 280 282 282 283 285 289 289 290 293 293 294 296 298 299 301 309 309

Inhaltsverzeichnis

4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.4

Aspekte der Softwareentwicklung Anforderungen an Anwendersoftware Hierarchischer Programnentwurf Zentralisierung von Funktionen Hegeln zur Verständlichkeit von Prograrrmen . . . Der Weg zur ffodularisieruna Modularisierung COBOL-Sprachelerrente zur Modularisieruncr . . . . Die LINKAGE SECTION ENTRY/EXIT PROGRAM-Anweisuna CALL-Anweisung Parameterübergabe Beispiel . Modell einer Schnittstellenbeschreibung von COBOL-Modulen Modul-Schnittstellenbeschreibuna Funktionen-Schnittstellenbeschreibuna

4.4.1 4.4.2

XV

Seite 309 311 312 316 317 318 318 320 320 321 322 323 323 325 326 327

Beispiellösungen zu Teil II

330

1. 2.

330 336

Alg1 und C0B1 Alg2 und C0B2

Anhänge Anhang 1. 2. 3. 4.

341 1: Die COBOL-Notationsspradhe (NtS) Syntaktische Elemente Syntaxbeschreibungen Konzept der Notationssprache Aufbau der Sprache

343 343 344 345 345

Anhang 2: Beschreibungsformalismen zu COBOL (COBOL-Syntaxschreibweise) 1. Syntaktische Elemente 2. Beispiel

347 347 347

Anhang 3: Codierung 1. Grundprinzipien der Codierung 2. Weitere Aufgaben eines Codes

349 349 351

Anhang 1. 2. 3. 4.

354 354 355 356

4: Betriebssystem und Job-Control Funktionen eines Betriebssystems Bestandteile eines Betriebssystems Arten von Betriebssystemen Die Schnittstelle des Betriebssystems zum Benutzer

Sachregister

357 361

Teil M Fallstudien zur kommerziellen EDV

Fall A: EDV im Krankenhaus (Umstellungen im Verwaltungsbereich)

1. Vorbemerkung

Seit Beginn der 60er Jahre erfolgte im Gesundheitswesen eine bislang nicht gekannte Ausgabensteigerung: 1960

8,965 Mrd. DM

1970

23,849 "

1975

58,031 "

Tab. 1: Krankenkassenausgaben"''' Der Staat reagierte auf diese Entwicklung mit gesetzlichen Maßnahmen. 1972 wurde das "Gesetz zur wirtschaftlichen Sicherung der Krankenhäuser und Regelung der Krarikenpflegesätze" (KHG) verabschiedet. Die im KHG § 4, Abs. 1 und 2 verlangte "sparsame Wirtschaftsführung" zielt auf eine bessere Ausnutzung der Ressourcen. Eine Minderimg krarikenhausspezifischer Leistungen soll dabei vermieden werden. Um den Nachweis der "sparsamen Wirtschaftsführung" erbringen zu können, entschlossen sich viele Krankenhäuser zur Einführung des bisher unüblichen kaufmännischen Rechnungswesens. Die dadurch ausgelöste Umorganisation im Finanzbereich führte in vielen Krankenhäusern zu weitergehenden Reorganisationsvorhaben im Verwaltungsbereich, die bei größeren Krankenhäusern nicht selten zum Einsatz der EDV führten. Die nun folgenden Kapitel zeigen den Weg vom Problem zur Lösung angelehnt an einen authentischen Fall. Lesehinweis: Man lese jetzt Teil II, Kap. 1.

1) Quelle: Frankfurter Rundschau v. 26.2.1977

4

2. Vorstudie

2. Vorstudie

Zur Vorstudie gehört neben der ersten Zieldefinition die Beschreibung der Grobstrukturen des Problembereichs, die Skizzierung von Lösungsalternativen, eine erste Schwachstellenanalyse sowie Vorentscheidungen über künftige Verfahrensweisen und Restriktionen.

2.1 Ausgangsproblem und Zielsetzung der Vorstudie Die Einführung des kaufmännischen Rechnungswesens bringt für die ohnehin schon überlastete Finanzabteilung weitere Arbeitsbelastungen mit sich. Aus unternehmenspolitischen Gründen möchte die Verwaltu»jsleitung personelle Aufstockungen möglichst vermeiden. Sie bittet die Stabsstelle für Reorganisation um die Anfertigung einer Vorstudie zur Entscheidungsfindung für das weitere Vorgehen. Die Verwaltungsleitung steht unter Zeitdruck, die Vorstudie muß schnellstens auf den Tisch.

2.2 Ergebnisse der ersten Analyse Eine erste grobe Analyse im Bereich der Patienten- und Finanzabteilung liefert folgende Ergebnisse: - Die Rechnungen an die Krankenkassen gehen 2 Monate verspätet aus dem Haus. Als Gründe werden dafür angegeben - Personalengpässe und - veraltete Buchungsautomaten. - Es erscheint fraglich, ob die Umschulung des alteingesessenen Personals vom kaireralen auf das kaufmännische Rechnungswesen möglich ist und rechtzeitig abgeschlossen werden kann.

5

2.3 Lösungswege

- Das Formularwesen zur Verwaltung der Patienten ist - undurchsichtig - es scheinen Formulare zu existieren, die keinem eindeutigen Verwendungszweck zugeordnet sind, - aufgebläht - eine Vielzahl von Formularen mit identischen Informationen werden dezentralisiert an unterschiedlichen Orten aufbewahrt. Ob dies notwendigerweise durch den Betriebszweck bedingt ist, läßt sich anhand der ersten Ergebnisse nicht beurteilen.

2.3 Lösungswege Zur ersten Entscheidungsfindung zeigt die Stabsstelle zwei Lösungswege auf. 2.3.1 Alternative I Das Formularwesen und die bisherigen Betriebsabläufe bleiben im wesentlichen unverändert. Die alten Fakturiermaschinen aus den 40er Jahren werden durch moderne, bedienungsfreundlichere und leistungsfähigere Buchungsautomaten ersetzt. Höchstwahrscheinlich wird eine Arbeitskraft in der Fakturierung eingespart. Kostenpunkt für die neuen Maschinen 120 000,— EM.^ Vorteil: - keine größeren Umstellungsprobleme, - schnell realisierbar, - Einsparung des durch verzögerten Rechnungsausgang verursachten Zinsverlustes (der Umsatz beträgt 40 Mio/Jahr). Nachteil:- die Umstellungsprobleme für die Buchhaltung sind mit einer Arbeitskraft mehr nicht gelöst, - bei steigender Auslastung und Inbetriebnahme weiterer Kapazitäten ist wieder mit Engpässen in der Fakturierung zu rechnen, - das mit seinen Schwächen behaftete Formularinformationssystem bleibt weiter in Kraft. 1) Die eingesetzten Preise können veraltet sein.

2. Vorstudie

2.3.2 Alternative II Die strukturellen Schwächen im Verwaltungsbereich werden grundsätzlicher und langfristiger angegangen. Die Stabsstelle schlägt den Einsatz der EDV mit gekauften problemadäquaten Programmen vor. Vorteil: - Die inhaltliche Problematik mit der Umstellung des Rechnungswesens fällt weg, da sich zu diesem Problemkreis anzupassende Programme auf dem Markt befinden, - der Fakturierungsengpaß wäre langfristig gelöst; es sind hier sogar Personalfreisetzungen zu erwarten, - das Formularinformationssystem würde grundsätzlich überprüft und neu gestaltet, - die bisher außer Haus bearbeiteten Datenverarbeitungsprobleme könnten teilweise im Haus bearbeitet werden, - auch die im Haus anfallenden, mit der Patientenaufnahme verbundenen Datenerfassungsarbeiten könnten mit der DVAnlage durchgeführt werden, - durch die Freisetzungseffekte werden neue Personalstellen nicht benötigt. Machteil:- Für eine dem Aufgabenbereich entsprechende Anlage ist mit Ausgaben von ca. 550 000,— EM zu rechnen, - zur Umorganisation muß eine Ist-Analyse durchgeführt werden, um darauf aufbauend eine genaue Konzeption für den Einsatz der DVAD ZU erarbeiten. Diese Studie ist zeitaufwendig und teuer, - die Überprüfung der Aufbau- und Ablauforganisation wird sich sicherlich vorerst negativ auf das Betriebsklima auswirken. 2.3.3 Kostenbetrachtung Ausgehend von der bisherigen Untersuchung legt die Stabsstelle eine Kostenbetrachtung unter folgenden Annahmen vor: - Beide Lösungen führen zur Reduktion des durch den Engpaß Fakturierung verursachten Zinsverlustes, - der Planungszeitraum wird mit 5 Jahren angenommen, - für Operating und Anpassung der Programme ist die schon bestehende DV-Abteilung zuständig und ausreichend besetzt, 1) DVA- Datenverarbeitungsanlage

7

2.3 Lösungswege

- bei Einsatz der EDV können in der Fakturierung 3, bei anderen Arbeitsabläufen mindestens eine weitere Arbeitskraft freigesetzt werden; weiterhin könnte ca. 30 % der "Außer-Haus-Software" übernommen werden. Alternative I Kosten/Einsparungsart

Betrag

1. Organisatorische Maßnahmen 2. Investitionskosten 3 Magnetkontenmaschinen à 40.000,— »1

120.000,— DM

Betriebskosten mtl. 500,— DM

30.000,— DM

3. Personalkosten 4. Umschulung 5. Soziale Auswirkung 150.000,— DM

Alternative II Betrag

Kosten/Einsparungsart 1. Organisatorische Maßnahmen +

10.000,— IM

+

500.000,— DM

Betriebsmittel mtl. 2000,— EM

+

120.000,— EM

Software

+

30.000,— EM

Ist-Analyse 2. Investitionen Anlage mit 2 Druckern 1 Wechselplattengerät 1 Festplattengerät 1 Bandstation 6 Sichtgeräte

3. Personal Einsparungen 4 Arbeitskräfte à 3.500,— DM/mtl.

840.000,— DM

8

2. Vorstudie

4. Umschulungen auf DV-Betrieb 3-Tage Kurs

+

6.000,— EM

+

12.000,— DM

als soziale Auswirkung der Freisetzimg 5. Sonstiges Übernahme von Außer-Haus-Sof tware

180.000,— DM 342.000,— EM

2.4 Bewertung und Auswahlentscheidung Die Verwaltungsleitung bemängelt - die

fehlenden Alternativen

III: Organisatorische Umgestaltung + Magnetkontenmaschineneinsatz, IV: Einsatz von EDV nur für die Buchhaltung + Fakturierung + organisatorische Umgestaltung, - den fehlenden Zeitrahmen für die EDV-Umstellung, - den zu groben Kostenvergleich. Die Stabsstelle räumt diese Mängel ein und begründet sie mit Personal - und zeitlichen Engpässen. Sie nimmt Stellung zu den fehlenden Alternativen: Zu III: Es sind nur minimale Personaleinsparungen zu erwarten, IV:

- Sie läßt keine Übernahme von "Außer-Haus-Software" zu, - die Personaleinsparungen sind geringer, - es bestehe die Gefahr einer organisatorischen Insellösung, eine Übernahme der Patientenverwaltung mit zeitkritischeren Informationen sei nicht möglich.

Unter längerfristigen unternehmenspolitischen Aspekten gibt die Verwaltungsleitung grünes Licht für Alternative II.

3.1 Istanalyse

9

3. Hauptstudie

Im folgenden wird der Weg eines stationären Kassenpatienten ohne Sonder leistungen^"' und die damit verbundenen Verwaltungsvorgänge beschrieben . Hinweis: Zugehörige Formulare sind im Anhang abgebildet.

3.1 Istanalyse Die Istanalyse orientiert sich an den Vorgängen, die den Patienten informationsmäßig begleiten, und zwar in den Phasen Aufnahme und Aufenthalt im Krankenhaus sowie Entlassung. Zur detaillierten Erfassving des Informationsflusses wird jeweils der Weg des Patienten durch verschiedene Abteilungen/Stellen (im Text unterstrichen) und die damit verbundenen Verwaltungsvorgänge beschrieben. Anschließend wird eine grafische Übersicht der Zusammenhänge gegeben. 3.1.1 Phase I: Aufnahme 1. Der Weg des Patienten Versehen mit der Einweisung seines Hausarztes betritt der Patient das Eingangsgeschoß und wird vom Pförtner zu dem zur zentralen Aufnahme gehörigen Schalter ambulante Aufnahme verwiesen. An diesem Schalter werden einige Personalien erfaßt, dann wird der Patient dem Aufnahmearzt zur Untersuchung überwiesen. Entscheidet dieser auf Verbleib im Krankenhaus, kehrt der Patient zum zur

1) Dies bedeutet: Die in Rechnung gestellten Kosten werden von einer gesetzlichen- oder Ersatzkasse getragen. Eine Sonderleistung bezüglich Behandlung oder Unterbringung liegt nicht vor. In dem beschriebenen Krankenhaus gibt es insgesamt 13 Abrechnungskategorien .

10

3. Hauptstudie

zentralen Aufnahme gehörigen Schalter stationäre Aufnahire zurück, um endgültig aufgenommen zu werden. Anschließend wird der Patient seiner Gruppe im Pflegebereich zugewiesen. 2. Verwaltungsvorgänge Am Schalter der ambulanten Aufnahme wird für den Patienten ein Adreßfeld mit folgenden Angaben ausgefüllt: - Name der Krankenkasse - Patienten-Identifikationszahl"'"

(I-Zahl)

- Name, Vorname, Geburtsdatum, Uohnort, Straße - Arbeitgeber - Datum und Uhrzeit der Aufnahme. Mit diesem Adreßfeld und der Einweisung kommt der Patient zum Aufnahmearzt. Das Adreßfeld ist als Matrize ausgebildet und kann zur Beschriftung weiterer Formulare verwendet werden. Der Aufnahmearzt weist den Patienten nach der Entscheidung auf Verbleib im Krankenhaus und nach telefonischer Rücksprache mit der betroffenen Abtei2) lung bzw. Gruppe

ein Bett zu. Hierzu verwendet er eine täglich

neue Liste, in der die freien Betten vermerkt sind. Nach Vorlage der formlosen Aufnahmebestätigung des Aufnahmearztes und der Bettenzuweisung wird der Patient am Schalter für Stationäre Aufnahme endgültig aufgenommen. Von einem der 10 Mitarbeiter des 24-stündig besetzten Schalters werden nach Auskünften des Patienten per Durchschlag mit der Schreibmaschine zwei Matrizen erstellt und eine freie 6-stellige Aufnahmenummer (sie ist fortlaufend) vergeben. Die auf der Matrize zu erfassenden Daten entsprechen den im oberen Teil des Aufnahmeblattes verlangten Angaben:

1) Siehe Anhang 1, Fallstudie A 2) Eine Pflegeabteilung umfaßt 4 Gruppen mit je 16 Betten.

3.1

11

Istanalyse

Aufnahmestammblatt

Stadtkrankenhaus

Aufnahme-Nr. / l*2ahl Abf.

Aufnahmelag ' Uh'ieit

Gruppe I Verlegt n. Ab'

. Zuname, Vornomen

Gruppe

Verlegt n. Abt.

om

Sonderleisiung Unterbringung

Gruppe

(Bitte onkreuien)

1-Bett- ; 2-BettDustfie

Bad

! KTW Bad

Familienstand

7. Religio' 6. 0«« Ehegatten Zu* und Vorname Geb.-Tag und -Ort Beruf Arbeitgeber Wohnung

r behandelt2 I Ambutont I Wann?

9. Der Eltern Zu- und Vornamen Geb.-Tag und -Ort Beruf Arbeitgeber Wohnung

Kotten übernohmeontrog

(Bitte ankreuzen) I. Einweisung»Oiognoie

Stodl, Anmeld.'Antr. < Kreis. Anmeld.'Antr. i

U. Untoll-Afl

Abschlagszahlungen angefordert am : . . . .

DM

angefordert om :

DM .

Bonkverb. des Pot. bzw. des .

EDV e r f a ß t o m . EDV erfaß» a m

Handz.

• Bonk/Psdi.-Konto b Unterbr.

EDV erfaßt

c

S'K. O. I

S ZW I - D A T I ! M-2

*



ENVIRONIE ST

DIVISION.

CONFIGHRATION

SECTION.

SO'TRCE-COIPHTEK. OBJ ECT-CO1PIJTRR.

I B I - 3 7 0 - 15S. IB1-370-158.

INPTfT-O'FTSECTIOS.

FILE-CONTROL.

DATA

DIVISION.

FILE

SECTION.

WORKING-STORAGE

BOOLESCHE 77 JA 77 NEIN

SECTION.

KONSTANT?

»BOOLESCHE VARIABLE 77 SCHALTJAHR-FLAG BR SCHALTJAHR 77

OATDIF-PRF-FËHLER-FLAG 88 DATDIF-PRF-FEHLER

P I C 9 (1) P I C 9 (1) PIC 9 (1) VALUE 1 . PIC 9 ( 1 ) VALU ? 1 .

VALUE VAL0E

1. 0.

42

4. Softwareentwicklung

77 77 77 77 77 77 77 77

INDEX-MONAT IVOEX-SCHAL7JAdR BASISJAHR X BASISDIFF T AG 1 TAG2 Ti t?^"]»

01

MONATS. 03 M O N A T - T A G E . OS JANUAR OS F SBI?V AR OS WAER7, OS APRIL OS HAI 05 JUNI OS JULI OS AUGUST 05 SEPTEMBER OS OKTOBER 05 NOVEMBER 05 DE7,5MBER 03 M O N A T - T A B R E02FIN ES

PTC PIC PIC PIC PIC PIC X (12) PIC X (1 2) PIC

MONAT-TAGE

9 (2) 9(1) 9 (2) V A L " E 68. 9(5) 9(5) VA LH E SPAC1'S. V A L U E SP AC'3 • 99.

PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC

9(2) 9 (2) 9 (2) 9 (2) 9 (2) 9 (2) 9 (2) 9 (2) 9(2) 9(2) 9 (2) 9 (2) 9(2) 9(5) 9 (S) 9 (5) • 9 (2) 9(5) •

01 01 01 01 01

S U M M K - Z W I - DA Tri M-1 SUM^E-Z3I-DATtJ1-2 7.W I - S U M M E BASIS JAHR-'ZA EHLER TAGES DIFFERENZ

PIC PIC PIC PIC PIC

01

DATUM-1. 03 TAG-E1 03 MONAT-El 03 JAHR-E1

PIC 9 (2) PIC 9(2) PIC 9 (2) •

DATUM-2. 0.3 TAG-E2 03 MONAT-E2 03 JAHR-E2

PIC 9(2) m PIC 9(2) PIC 9(2) •

ZWI-DATUM. 03 ZWI-JAHR 03 ZWI-MONAT 0 3 ZHI-TAG

PIC 9 (2) PIC 9(2) PIC 9(2) •

ZWI-DATUM-1. 03 JAHR-1 0 3 MONAT-1 03 TAG-1

PIC 9(2) PIC 9(2) PIC 9(2)

01

01

01

V A L U E 31 . VALUE 28. V A L U E 31. V A L U E 30. VALUE 31. V A L U E 30. VALUE 31. V A L U E 3 1. V A L U E 30. V A L U E 31. V A L U E 30. V A L U E 31. OCCURS 12

4.1 Aufgabe zur Softwareentwicklung

01

Z«I-DATTJM-2 03 JAHR-2 03 HONAT-2 03 TAG-2

PXC 9 ( PIC 9 ( PIC 9 (

PROCEDHR E D I V I S I O N . * + + •»• + • + + + +••• + + + + + + » + + STEUERUNG. HOVE M E I N TO O U T D I F - P R F - F E H L E R - F L A G . PSRFO RM E I N G A B E . PE3F0RM DATEN-PRUEFEN. I F NOT D A T D I F - P R F - F E t l L E R T H EN PS3FORM BERECHNUNG PERFORH AUSGABE. PSRFORM A B S C H L U S S . DATEN-PRUEFEN. HOVE T A G - E 1 TO T A G - 2 . HOVE H O N A T - E 1 TO M O N A T - 2 . HOVE J A H R - E I TO J A H R - 2 . HOVE T A G - E 2 TO T A G - 1 . HOVE M O N A T - S 2 TO H O N A T - 1 . HOVE J A H R - E 2 TO J A H R - 1 . PERFORM I S T - E I N G A B E - N H H E R I S C H . I F NOT D A T D I F - P R F - F E H L E R T H E N PERFORH I S T — H O N A T - M O E G L I C H PERFORA I S T - Z W I - D A T U M - 1 - G T - Z W 1 - 0 A T U H - 2 PERFORH I S T - Z W I - D A T I J M - 2 - G T - B A S I S DATTI M. BERECHNONG. MOVE Z W I - D A T U H - 2 TO Z H I - D A T U M . PERFORM T A G - K U M M U L A T I O N . HOVE Z W I - S O M M E TO S H M M E - Z W I - D A T O M - 1 . MOVE Z W I - D A T U M - 1 TO Z W I - D A T H M . PERFORM T A G - K U M M U L A T I O N . HOVE Z W I - S O M M E TO S O H N E - Z W I - D A T O M - 2 . PERFORM D A T - D I F P E R E N Z . I S T - E I NGA B E - NTT M E H I S C H . IF Z W I - D A T U M - 1 NOT N O M E R I C OR Z W I - D A T t J N - 2 NOT H O M E R I C THEN MOVE J A TO D A T D I F - P R F - F E H L E R - F L A G PERFORM F E H L E R M - N U ? ! .

4.

44

Softwareentwicklung

IST-MONAT-MOSGLICH. IF

MONAT-1 OB

12

MONAT-1




12

OR

MOVAT-2




JAHR-2

PERFORM

FEHLERB-BAS

MOVE

TO

JA

I S J

D A T D I F - P R F - F E H L E P - F L A G .

IST-TAGESZAHL-MOEGLICH. PERFORM PERFORM I F IP

I S T - D A T - 1 - 2 9 - F E B R - S C H A L T J I S T - D A T - 2 - 2 9 - F E B R - S C H A L T J

TAG 1

NOT

THEN

PERFORM

=

" 2 9 - 2 - S C H A L T J "

TAG2

NOT

THEN

PERFORM

=

I S T - T A G - 1 - M O E G L I C H . " 2 9 - 2 - S C H A L T J " I S T - T A G - 2 - M O E G L I C H .

1ST-D AT-1 - 2 9-FE BR-SC IF

MONAT-1 THEN

=

2

COMPUTE DIVIDE IF

HALTJ.

AND

TAG-1

=

BASIS DIFF U

INTO

REST

=

THEN

MOVE

29 =

JAHR-1

BASISDIFF

-

BASISJAHR

GIVING

X

REMAINDER

REST

0 " 2 9 - 2 - S C H A L T J "

TO

TAG1.

I S T - D A T - 2 - 2 9 - F E B R - S C H A L T J . I F

MOSAT-2 THEN

=

2

AND

COMPUTE DIVIDE I F

TAG-2

B A S I S D I F F 4

INTO

REST

=

THEN

MOVE

=

29 =

J A H R - 2

BASISDIFF

-

BASISJAHR

GIVING

X

" 2 9 - 2 - S C H A L T J "

TO

TAG2.

IST-TAG-1-MOEGLICH. I F OR

TAG-1

>

HONAT-TAB

TAG-1




MONAT-TAB

TAG-2


1 T H E N P E R F O R M MO N A T - R E C H N U N G VARYING INDEX-MONAT F R O M 1 3Y 1 HNTIL INDEX-MONAT = ZWI-MONAT. A H O Z W I - T A G TO ZW I - S U M M E . IF INDEX-SCHALTJAHR = 4 AND Z«I-MONAT > 2 T H E M ADD 1 TO 7. WI-S'J MME. JAHRE3-KHMM T TLIEFT'NG. A D D 3 6 S TO Z W I - S U M H E . IF INDEX-SCHALTJAHR = 4 T H R N ADD 1 TO ZWI-57JMME M O V E 0 TO I N O E X - S C H A L T J A H R . A D D 1 TO I N D E X - S C H A L T J A H R . MONAT-RECHNUNG. ADD MONAT-TAB

(INDEX-MONAT)

DAT-DIFFERENZ. COMP'JTE T A G E S D I F F E R E N Z = StJMME-ZWI-DATl'M-1 -

TO

ZHI-Sn»ME.

SOMME-ZWI-DATWM-2.

****************************************************

• E N D E DES

*********

KALENDERALGORITHMns

***************************************************

*•***********.

+ ***•*************************

*********

+

*********************

* EIN-AflSGABE * A L S E I N - ANSGABEMEDI'JH I S T I N D I E S E R L O E S H N G EIN T E R M I N A L * V O R G E S E H E N . DER MODtJLARE Af'FBAT! E R L A U B T ES J E D O C H , DAS * P R O G R A M M L E I C H T AN A N D E R E G E R A E T E A N Z U P A S S E N . *

• AUCH E I N S V E R W E N D U N G A L S U N T E R P R O G R A M M * -GERINGFU E G I G E A E N D E R U N G E N . ***********************

ERFORDERT

NOR

*********************************

46

4. Softwareentwicklung

3 INGA ÖET. DISPLAY " E INGA 3 E DATUM-1 " UPON CONSOLE. ACCEPT DATUM-1 FROM CONSOLE. DISPLAY "EINGABE DATTJM-2 •• UPON CONSOLE. ACCEPT DATUM-2 FROH C O N S O L E . AUSGABE. DISPLAY "DATUM-1 : " DATUM-1 UPON CONSOLE. DISPLAY "DATUM-2 : " D ATUM-2 UPON CONSOLE. DISPLAY "T AGES DIF FEREN7 : " TAG ES DIFFERENZ UPON F5HLE31-NN"!. DISPLAY DATUM-1 " " DATUM-2 UPON CONSOLE. DISPLAY "DIE EINGABE IST NICHT NUMERISCH" UPON

CONSOLS.

CONSOLE.

FEHLE 8M-MONAT. DISPLAY HON AT-2 " " MONAT-1 UPON CONSOLS. DISPLAY "MONAT U M M 0 2 G L I C H " UPON CONSOLS. FEHLERM-TAG1. DISPLAY DATUM-1 UPON CONSOLE. DISPLAY "TAG-1 GIBT ES DIESEN MONAT NICHT" UPON

CONSOLE.

FEHLERM-T AG2. DISPLAY DATUM-2 UPON CONSOLE. DISPLAY "TAG-2 GIBT SS DIESEN MONAT NICHT" UPON

CONSOLE.

*EHLERM-REIUENF. DISPLAY DATUM-1 " " DATUM-2 UPON CONSOLE. DISPLAY "2NTLA3SUNGSDAT. VOR EINLIEFERUNGSDAT" UPON FEHLEaM-BASISJ. DISPLAY DATUM-1 " " DATUM-2 UPON CONSOLE. DISPLAY "DATUM VOR BASISJAHR" UPON CONSOLE. ABSCHLUSS. STOP RUN.

Consolprotokoll einer Beispielsitzung:

.compwst släddf WATBOL ALGDDF ALGDDF COBOL OHNE FEHLER R»

1)

1) Dies ist eine Systemrückmeldung, die bestätigt, daß der CO0OLCcnpiler 'Watbol1 das Prograirm fehlerfrei übersetzt hat.

CONSOLE

4.2 Zur Datenbasis

47

. load aläddf (start EXECUTION BEGINS... EINGABE DATUM-1 WATBOL 11 .010178 EINGABE DATUM-2 WATBOL. 1) .010179 DATUM-1 t 010178 DATUM-2 : 010179 TAGESDIFFERENZ : 00365 Rr .load aläddf Cstart EXECUTION BEßlNS... EINGABE DATUM-l WATBOL .310479 EINGABE DATUM-2 WATBOL .021280 310479 TAG-1 GIBT ES DIESEN MONAT NICHT Ri .load släddf (start EXECUTION BEGINS... EINGABE DATUM-1 WATBOL .021178 EINGABE DATUM-2 WATBOL .010268 021178 010268 ENTLASSUNGSDAT. VOR EINLIEFERUNGSDAT R»

4.2 Zur Datenbasis In 3.3 wurde auf die Bedeutimg der Merkmalgewinnung und deren Umsetzung in eine strukturierte Datenbasis hingewiesen. Es ist Aufgabe der Softwareentwicklung, die zu den einzelnen EDV-Funktionen ermittelten Merkmale für ein Softwaresystem zu strukturieren. Ein Kriterium dabei ist die Bemühung, die Redundanz der Datenelemente möglichst gering zu halten. 1) Die Meldung WATBOL wird von Laufzeitsystem geliefert und kennzeichnet, daß eine Eingabe am Terminal erwartet wird.

48

4. Softwareentwicklung

Der in Anhang 3, Fallstudie A abgebildete Patientenstammsatz stellt eine solche Strükturierung von Merkmalen dar. Er liefert patientenbezogene Informationen für mehrere EDV-Funktionen.

4.3 Ausgabegestaltung der EDV-Funktion „Fakturierung" Das hier dargestellte Ausgabefeld bildet die Struktur der im Regelfall bei Entlassungen zu schreibenden Rechnungen. Es ist zu beachten, daß die in der Abbildung direkt an X anschließenden Namen zur Feldlänge dazu gehören (z.B. VORNAMEXXXXXXXX).

RECHNUNG STADTKRANKENHAUS 0.» STATIONAERE BEHANDLUNG

ZAHLUNGSHINUEIS: BITTE ZAHLEN SIE INNERHALB VON 10 TAGEN AUF EINES DER FOLGENDEN KONTEN: HYPO-BANK KTO-NR.J A05-47 SPARKASSE 0. KTO-NR.t 87360 BARZAHLUNGEN SIND NICHT MOEGLICH.

AN

DATUM J XX/XX/XX RECHNGSNR.J XXXXXXX

NAMEXDERXKRANKENKASSEXXXXXXXXXX STRASSEXXXXXXXXXXXXX PLZXORTXXXXXXXXXXXXXXXXXX **# PATIENTENANGABEN ### AUFNAHME-NR. J VERSICHERUNGS-NR.J PATIENT 2 HAUPTVERSICHERTER:

XXXXXX XXXXX NACHNAMEXXXXXXXXXXX NACHNAMEXXXXXXXXXXX

VORNAMEXXXXXXXX VORNAMEXXXXXXXX

##* ABRECHNUNG *#* VON

BIS

XX.XX.XX XX.XX.XX XX.XX.XX XX.XX.XX XX.XX.XX XX.XX.XX

TAGE

TARIF

XXXX XXXX XXXX

XXX.XX XXX.XX XXX.XX

BETRAG XXXXXX.XX XXXXXX.XX XXXXXX.XX

ABT

KL

GR

X X X

XX XX XX

XX XX XX

GESAMTBETRAG: XXXXXX.XX DM

4.4 Ableitung der zugehörigen logischen Datenstruktur

49

4.4 Ableitung der zugehörigen logischen Datenstruktur

Unter logischem Datensatz verstehen wir die Strukturierung jener Daten, die für die jeweilige EDV-Anwendungsfuriktion notwendig sind. Sie kann vom physich gespeicherten Satz abweichen. Unter Berücksichtigung der Tatsache, daß die Rechnungsnummer aus organisatorischen Gründen mit jedem Start des Fakturierungsprogramms neu hochgezählt wird, ergibt sich folgender logischer Datensatz: * * * * * * * * * * * * * * * * * * * * * *

*

* * * * * HC * * * * * * *

loä-satz. pat-aufnahme-nr. pat-aufnähme-Jahr NUM 1 ST. pat-laufende-nr NUM 5 ST. pat-name. pat-zuname ALPH-NUM 1 ST. pat-vorname ALPH-NUh 15 ST. pat-vers-name ALPH-NUM 35 ST. pat-versicherunäs-nr. pat-kass-nr ALPH-NUM 5 ST. pat-pat-nr 7 ST. ALPH-NUM pat-entlassunssdaten. pat-ent1assä-datum• pat-entlassä-taä NUM 2 ST. pat-entlassä-mon NUM 2 ST. pat-ent lasset-Jahr NUM 2 ST. pat-entlassä-zeit NUM 4 ST. pat-aufenthalt. pat-aufent 4 MAL INDIZIERT DURCH pat-aufent-:ind. pat-einweis-dat• pat-einweis-taä NUM 2 ST. pat-einweis-mon NUM 2 ST. pat-einweis-Jahr NUM 2 ST. pat-stockwerk ALPH-NUM 2 ST. pat-klinik ALPH-NUM 1 ST. pat-äruppe ALPH-NUM 1 ST. kass-kea• kass-nr ALPH-NUM 5 ST. filier ALPH-NUM 7 ST. kass-name ALPH-NUM 30 ST. kass-strasse ALPH-NUM 20 ST. kass-plz-ort ALPH-NUM 25 ST.

* * * * * # * # * * * * * * * * * * * * * * * * * * * * * * * * * * * *

50

4.

Softwareentwicklung

Für die patientenbezogenen Datenelemente ergibt sich Typ und Ausdehnung aus den tatsächlich physisch abgespeicherten Detenelementen im Patientenstammsatz (vgl. Anhang 3, Fallstudie A). Die physische Abspeicherimg der Datenelemente in der Krankenkassendatei entspricht der im Log-Satz angegebenen Strukturierung.

4.5 Benutzer- und Basismaschine Die Basismaschine (vgl. hierzu Teil II, 2.5.2) liefert dem Benutzerprogramm Fakturierung auf Anforderung den für die Verarbeitung notwendigen logischen Datensatz. Abb. 4.2 zeigt einen generalisierten Aufbau von Benutzerprogramm- (Benutzermaschine) und Basismaschine für EDV-Anwendungsfunktionen gemäß dem Konzept aus II.2.5.2.

Abb. 4.2: Übersichtsgrafik zur Systembildung

4.5 Benutzer- und Basismaschine

51

Aus Abb. 4.2 geht hervor, daß ein Abstraktionsmodell über mehrere Ebenen gebildet wird. Die oberste Ebene bildet der Benutzer. Dann folgt die Anwendungsprograrmierungsebene. Ihr ist die Zugriffsebene untergeordnet. Die Anwendungsprcgrammierungsebene wird auch als Benutzer-, die Zugriffsebene auch als Basismaschine bezeichnet. Je nach Zweck können die Anwendungsprograirircierungs- und die Zugriffsebene wiederum in eigene Ebenen untergliedert sein. Zwischen den Ebenen gibt es Schnittstellen (vgl. II.4.2.7, II.4.2.8 und 4.4). Deren Beschreibung muß mindestens bekanntgeben: - die Eingabe- und Ausgabedaten des betroffenen Moduls (z.B. Zugriffsmodul), - die Operationen (Funktionen), die das Modul zur Verfügimg stellt, - die Module bzw. Funktionen von Modulen, die es benötigt, - weitere, für die Benutzung notwendige Informationen. Für das Verständnis der noch folgenden Schnittstellenbeschreibung wird vereinbart: - Die durch den mit Eingabe bezeichneten Pfeil symbolisierten Daten werden von einer "höheren" Ebene (Benutzermaschine) an eine "tiefere" (Basismaschine) übergeben. - Die durch den mit Ausgabe bezeichneten Pfeil symbolisierten Daten werden von einer "tieferen" an eine "höhere" Ebene gereicht. Die auf einer Ebene ausgegebene Systemmeldungen sind Meldungen, die über Zustände der jeweiligen Maschine Auskunft geben (z.B. Fehlermeldungen ). Um die bisherigen Erläuterungen zu verdeutlichen: Die Basismaschine soll in unserem Anwendungsfall an die Benutzermaschine "Fakturierung" den in 4.4 abgeleiteten logischen Datensatz übergeben. Damit versteckt das Zugriffsmodul (die Basismaschine) die reale Datenbasis vor dem Anwendungsprogrammierer. Voraussetzung für den Entwurf der Benutzermaschine "Fakturierung" ist die Kenntnis und Festlegung der Schnittstellen. Bevor diese nun

4. Softwareentwicklung

52

beschrieben werden, wird - zum besseren Verständnis - auf die Zugriffsebene zur Bereitstellung des logischen Datensatzes eingegangen.

4.6 Zugriffsweg und Dateiorganisation Lesehinweis: Man lese Teil II, Kap. 3 noch einmal gründlichst. Aus der Sicht der Benutzer ist das Hauptordnungskriteriuir, die adJi-pat-au^nahrm-nfi

(Patientenaufnahme-Nr.), die fortlaufend auf-

steigend vergeben wird. Weiterhin wird zum Auffinden bestimmter Sätze ein Nebenordnungskriterium - das adA-itcutm-kz

(Adreßstatuskenn-

zeichen) - mit mehreren Ausprägungen benötigt. Eine für diese Problematik oft anzutreffende Dateiorganisationsform ist die index-sequentielle Organisation für das Hauptordnungskriterium sowie der Aufbau eines "inverted-file" für das Nebenordnungskriterium. Hierbei wird in Kauf genommen, daß der aufsteigende Nummernkreis öfter zur Reorganisation (vgl. II.3.2) zwingt und durch die unterschiedliche Verweildauer der Patienten im Krankenhaus eine lückenhafte Speicherimg entsteht. Für unser Lehrbeispiel wurde, da die index-seguentielle Organisationsform nicht vom System unterstützt wird, der Zugriff über eine Adreßtabelle abgewickelt. Hierzu wurde die allerdings unrealistische, mit der Fallstudie (4000 aktive Patientenstammsätze) schwerlich in Einklang zu bringende Annahme getroffen, daß die Adreßtabelle im Internspeicher zur Verfügung steht. 4.6.1 Struktur und Inhalt der Adreßtabelle Der Zugriff zum physisch abgelegten Patientenstammsatz läuft über folgende Adreßtabelle:

4.6 Zugriffsweg und Dateiorganisation

oidK-pout-aui^nakmz-m

Acutz-yiA

53

adi-itatui-kz

800011

05

E

800005

06

B

000000

07

F

800004

08

M

000000

09

F

800020

10

R

Hat das einem Patientenstamirsatz zugeordnete ad/1-itatu.A-kz

den

Wert: - F

so ist dies ein nicht belegter Satz,

- B

ein belegter Satz,

- E

ein für die Fakturierung freigegebener Satz,

- R

ein durch das Fakturierungsprogramm aisgearbeiteter Satz,

- M

ein zur 1. Mahnungsschreibung freigegebener Satz.

Die Liste kann vervollständigt werden. Die Zuweisung einer Aufnahme-Nr. und des zugehörigen

adn.-ita£uA-kz

mit der Ausprägung 'B' wird durch das Aufnahmeprogramm geleistet. Dementsprechend leistet das Entlassunqsproqramm die Veränderung des Wertes 'B' in 'E'. 4.6.2 Zugriff zum Patienten- und Kassenstammsatz Um die für die Fakturierung freigegebenen Sätze zu finden, wird die Adreßtabelle nach der Ausprägung 'E' des adt-Ata£ui-kz

durchsucht.

Bei Auffinden eines 'E' liefert die zugeordnete Ausprägung der Aatz-nA die Satzadresse des Patientenstammsatzes der direkt organisierten Patientenstammdatei. Der Zugriff auf die zur Fakturierimg notwendigen Daten der Kassendatei erfolgt über den Patientenstammsatz. Er liefert über den kcu>A-ke.y die Satzadresse des zugehörigen Kassenstammsatzes. Auch die

54

4. Softwareentwicklung

Kassendatei ist direkt organisiert. Abb. 4.3 verdeutlicht das bisher Gesagte: ADR-TABELLE

IADR-PAT-AUFNAHME-NR I SATZ-ADR I ADR-STATUS-KZ I ADR-PAT-AUFN.

PAT-DAT

PAT-KASS-NR

KASS-DAT

L^-j KASS-NR

Abb. 4.3: Zugriffsweg zu den Stairansätzen 4.6.3 Auswirkungen Die gewählte Zugriffsweg- und Dateiorganisation hat die Vorteile: - eine lückenhafte Speicherung zu vermeiden, - wenn die Adreßtabelle völlig im Internspeicher steht, werden mit nur 2 Lesezugriffen die für den Aufbau des logischen Satzes notwendigen Daten zur Verfügung gestellt.

4.7 Schnittstellen der Basismaschine

55

Nachteilig ist: - die Adreßtabelle kann erheblichen internen Speicherplatz belegen, - wird es notwendig, Teile der Tabelle auszulagern, erhöht sich somit auch die Zahl der durchschnittlich zur Bildung des logischen Datensatzes erforderlichen Zugriffe. Somit hängt es nun von dem verfügbaren internen Speicherplatz und der Größe des Krankenhauses (Anzahl der Patienten) ab, ob das beschriebene Verfahren sinnvoll ist.

4.7 Schnittstellen der Basismaschine Zu Entwurf und Implementierung der Benutzermaschine "Fakturierung" müssen die Schnittstellen der Basismaschine bekannt sein. 4.7.1 Vorbemerkung zur Schnittstellenbeschreibung Der hier beschriebene Weg zur Beschreibung der Schnittstellen weicht geringfügig von der in II.4.4.1 vorgeschlagenen Vorgehensweise ab. Um die logischen Aspekte der Datenübergabe hervorzuheben, werden die zu übergebenden Daten in Anlehnimg an das in 4.5 dargestellte Ebenenmodell beschrieben. Dies führt dazu, daß unter EINGABE, AUSGABE die gleichen Datenstrukturen bzw. -elemente genannt sein können. Ein mehr formaler Aspekt ist durch die Programmiersprache COBOL bedingt. Die Übergabe von Datenstrukturen in der LINKAGE SECTIO! darf nur mit Stufennummer Ol und 77 (vgl. II.4.1.3) erfolgen. Damit können Datenelemente zusammengefaßt werden, unabhängig davon, ob sie logisch zur EINGABE, zur AUSGABE oder zu beidem gehören. Um die für Schnittstellen notwendige Information zu liefern, wird vereinbart, daß die Stufennummer Ol zur Übergabe der Daten nur einmal Verwendung in der USING-Klausel (vgl. II.4.3.3) finden darf. Dem in der Beschreibung benutzten Begriff SCHNITTSTELLE wird dann die zu einem "ENTRY" (COBOL-ANS 68) gehörige USING-Klausel zugefügt. Wird die Gesamtstruktur der übergebenen Daten nicht an dieser Stelle erklärt,

56

4. Softwareentwicklung

dann ist ein Verweis zu geben, wo dies geschieht (z.B. LINKAGE SECTION). Nach der Norm von COBOL-ANS 74 ist die Verwendung des "ENTRY"-Befehls unerlaubt. Ein Modul wird direkt zu Beginn der PROCEDURE DIVISION und nur dort mit der Klausel PROCEDURE DIVISION USING... angesprungen. Damit vereinfacht sich auch die Schnittstellenbeschreibung. Die sprachformalen Aspekte können dann in der Modulschnittstellenbeschreibung, die logischen in den Funktionsschnittstellenbeschreibungen dargelegt werden. Eine Besonderheit stellt die Schnittstelle zur Benutzerebene dar, da hier die Übergabe nicht mittels der USING-Klausel erfolgt. Die exakte Aufführung aller zu einer AUSGABE gehörenden Datenelemente kann sehr aufwendig und unübersichtlich werden. Es wird deshalb vorgeschlagen, hier nur die Grobstruktur zu zeigen und über Verweise genauere Information zu ermöglichen. Diese etwas lässigere Verfahrensweise ist deshalb möglich, weil Druckbilder von der Gestaltung und Aussage her weitgehend selbsterklärend sind. Anders muß bei der EINGABE verfahren werden. Hier müssen die Anforderungen des EDV-Systems bezüglich der Daten eindeutig sein. Es sei darauf hingewiesen, daß die hier verwendete Basismaschine nur den logischen Datensatz für die Fakturierung liefert. Dies wurde aus didaktischen Gründen so gehalten. Mit der Übergabe eines Steuerparameters von der Benutzer- an die Basismaschine und geringfügigen Änderungen läßt sich diese zur allgemeinen Zugriffsmaschine erweitern. 4.7.2 Schnittstellenbeschreibung des Moduls "LOGFAK" Abb. 4.4 zeigt die durch die Schnittstellenbeschreibung festgelegte Basismaschine.

4.7 Schnittstellen der Basismaschine

57

Abb. 4.4: Basismaschine "LOGFAK" für die Krarikenhausanwendung Fakturierung Es sei noch einmal darauf hingewiesen, daß die Datenelemente, die in den Funktionsschnittstellen den Begriffen EINGABE, AUSGABE zugeordnet sind, nur die Kommunikation mit einer "höheren" Ebene betreffen (vgl. Abb. 4.4). 1. Modulschnittstellenbeschreibung * *



MODUL: 'LOGFAK'

*

* BEZEICHNUNG: * ZUGBIFF-DATENBAS IS-FAKTURIERUNG * BESCHREIBUNG: * LOGFAK G8EIFT AUF DIE SAETZE DE8 KASS-STABM-DATEI, * PAT-STAMM-DATEI UND AOR-TAB-DATEI ZÜ. ES STELLT * EINEN LOGISCHEN DATENSATZ F'JEK DIE ANWRNDtTNG * Z"R VERFtlEGDNG 'IND VERWALTET DAS ZU EINEM * PATIENTENSTAHMSATZ GEHOERIGE ADR-STATUS-KZ.

4. Softwareentwicklung

58

* « * * * * * * * *

SCHNITTSTELLEN: ENTHIELT DIE PUNKTIONEN; OEFFHEN DER DATSIEN LIEFERN DES LOGISCHEM SATZES KOREKKTUR DES A D K - S T A T U S - K Z ZURUECKSCHREIBEN VON A D R - T A B - S A T Z SCHLIESSEN DKii DATEIEN REIHENFOLGEBEDINGUNGEN OPNDAT; {LOGSAT;; ADRKOR) ;PWSADR;

OPNDAT LOGSAZ ADRKOR RVSADR CLSDAT CLSDAT;

2. Funktionsschnittstellenbeschreibungen * *

* *

FUNKTION

(ENTRY):

'OPNDAT'

*

* BEZEICHNUNG: * OP EN-DATE IEN * BESCHREI3UMG: * OEFFNET DIE DATEIEN * ADR-TAB-DATEI * PAT-STAfiM-DATEI * KASS-STAUN-DATEI * SCHNITTSTELLEN: * SYSTEBMELDMNG: * FEHLERMELDUNG FALLS DATEI SCHON *

GEOEFFNET.

ABBRUCH.

• *



FUNKTION

(ENTRY):

'LOGSAZ'

• *

* BEZEICHNUNG: * LOGISCHER-SATZ * BESCH REIBONG: * LOGSAZ LIEST EINMAL DIE A D R E S S T A B E L L E EIN, DURCHSUCHT * SIE NACH DEN A U S P R A E G O N G E N • E« DES ADR-STATUS-KZ. * BEI AUFFINDEN EINES «E» WERDEN DER ZUGEHOERIGE * P A T - S T A M K - S A T Z UND K A S S - S T A N M - S A T Z GELESEN S O W I E * DER L O G I S C H E SATZ AUFGEBAUT. * SCHNITTSTELLEN: * USING LOG-SATZ * L03-SATZ-GEF-FLAG * LOG-SATZ-EOF-FLAG * (STRUKTUR SIEHE LINKAGE SECTION ANHANG 4 * FALLSTUDIE A)

4.7 Schnittstellen der Basismaschine

*

59

EINGÄBE:

* AH S GABE: * LOGS ATZ * LOG-SAT7.-GEF- FLA G * L O G - S A T Z - E : ) F - FI,AG * VOHA'ISSRrZ'TNGEN : * 0PNDA7 * SYSTEMv1ELr>"NGEN: * 1. ADFi-TAB-SATZ NICHT GEP'TNDEN * 2 . ^ , AT-STA!1lM-3A^2-MrCi^T-Gí;F"NDE^ , * 1 . K A S S - S T A K I - S A T Z - N I C H T GEFUNDEN *

+

«



*

FUNKTION

(ENTRY) :

* ADRKOR'

* *

* BEZEICHNUNG: * AD3E3S-TABELLEN-K03REKTnR * BESCHREIBUNG: * NACH VERARBEITUNG DES LOGISCHEN SATZES WIRD D I E * ZHGEilOSRIGE AIJSP R A SG'I NG ' E ' DES A D R - S T A T U S - K Z AtTF 1 * R ' GESETZT. * SCHNITTSTELLEN: * VORAtlSETZUNG: * LOGS AZ *

PUNKTION

(ENTRY):

•RWSADR'

BEZEICHNUNG: REWRITE-SEQUENTI E L L - A D R - T A B - S A T Z BESCHREIBUNG: DIB A B G E A R B E I T E T E K O R R I G I E R T E A D R E S S T A B E L L E ZtlRU ECK GESCHRIEBEN. SCHNITTSTELLEN: VORAUSSETZUNGEN: (LOGSAZ)

WIRD

60

4.

FUNKTION

(ENTRY):

Softwareentwicklung

«CLSDAT«

BEZEICHNUNG: CLOS E-DAT EIEN bESCHREIBnNG: SC.iLIESST DIE DATEIEN ADR-TA3-DATEI PAT-STAM1-DATEI KASS-STArttt-DATEI SCHNITTSTELLEN: SYSTEMHELDMNÜ: F E H L E R " ! E L D'I NG

FALLS

DATEI

NICHT

OFFEN.

ABBR'ICH.

61

4.8 Entwurf des Anwendungsprogramms „Fakturierung"

4.8 Entwurf des Anwendungsprogramms „Fakturierung" An dieser Stelle setzt die Softwareentwicklung des Anwendungsprogramms der Anwendungsfunktion "Fakturierung" ein. Das Fakturierungsprogramm ist als Stapelprogramm geplant, das periodisch (täglich, wöchentlich, je nach Organisationsvorschlag) gestartet wird. Voraussetzung für Entwurf und Programmierung sind neben der Kenntnis der Schnittstellen zur Basismaschine auch die Anforderungen, die der Benutzer an das Programm stellt. Diese schon in 4.3 bei der Ausgabegestaltung gestellten Anforderungen werden nun in die Beschreibung der Schnittstelle zur Benutzerebene (Anwender-, Benutzerschnittstelle) mit einbezogen. Zur Erinnerung sei noch einmal gesagt, daß das Füllen des adA-itatu.6kz mit der Ausprägung 'E' Aufgabe des Entlassungsprogramms ist. 4.8.1 Beschreibung der Benutzerschnittstelle Grafische Übersicht:

Benutzerschnittstelle —

Abb. 4.5: Benutzerschnittstelle des Programms "FAKKRA"

62

4. Softwareentwicklung

Modulschnittstellenbeschreibung: * *

*

SODIII,:

»FAKKRA«

*

* * * * * * * * * * * * * * * * * * * *

BEZEICHNUNG: FAKTURIERUNG-KRANKENHAUS BESCHREIBUNG: 'FAKKRA' BEWIRKT D I E FAKTURIERU NG (RECHNUNGSSCHREIBUNG) EINES K R A N K E N H A U S E S FUER S T A T I O N A E R E PATIENTEN O H N E SONDEBLEISTUNG. SCHNITTSTELLEN: EINGABE: (DAS PROGR ABB WIRD NOR G E S T A R T E T ) AUSGABS: R E C H N U N G HIT KOPFnBBERSCHRIFTEN, RECHNUNGSNUMMER, DATUM, PATIENTENANGABEN, ZWISCHENUEBERSCHRIFT, POSTENZEILEN, SUMMENZEILE, (GENAUERE B E S C H R E I B U N G : A U S G A B E G E S T A L T U N G S V O R L A G E 4 . 3 ; DATENSTRtJKTUREN IN PROGRAMM " F A K K R A 1 ANHANG 4 F A L L S T U D I E A) B E N U T Z T E MODULE: LOGFAK (OPNDAT; L O G S A Z ; ADFKOR; DATDIF SYSTEMMELDUNGEN: 1- FEHLER IN D A T D I F 2. L O G S A T Z NICHT G E F U N D E N 3. L O G S A T Z E N D - O F - F I L E

EWSADR;

CLSDAT)

Die hier dargestellte Schnittstellenbeschreibung setzt im Grunde ein grobes Verständnis für die Algorithmisierung und Modularisierung des Anwendungsprogramms voraus. Aus didaktischen Gründen wurde vorgezogen, die Algorithmisierung und Modularisierung zusammenhängend darzustellen. Es empfiehlt sich deshalb, nach Lektüre von 4.8.3 und 4.8.4 die Benutzerschnittstellenbeschreibung nochmals zu lesen.

63

4.8 Entwurf des Anwendungsprogramms „Fakturierung"

4.8.2 Algorithmischer Entwurf Stufe I und Stufe II Analog zu der Voryehensweise in 4.1 werden wir den Entwurf für das Programm "FAKKKA" (Fakturierung-Krankenhaus) entwickeln. Stufe I:

* *

* *

# # # # # # # # # # # * * * * * *

Der Algorithmus 'FAKKRA' (Fakturierunä-Krankenhaus) # d r u c k t f u e r a l l e in d i e F a k t u r i e r u n ä e i n z u b e z i e h e n d e * Patienten Rechnungen. * D i e V e r a r b e i t u n ä s r e i h e n f o l ä e ist d u r c h d i e A d r e s s t a - * b e l l e vorslesleben. # Die aus den physisch abgespeicherten Datensaetzen # fuer die Fakturierunä notwendigen Datensaetze werden* von der Basismaschine ueberäeben - veAiegdatum datum

tageAcU^e/tenz

200978

220978

0000

pat-au^entue.ben.gabe.tab

220978

241078

0000

241078

251178

0000

200978

000000

000000

0000

220978 241078 000000 Abb. 4.7: Füllen der Ergebnistabelle

72

4. Softwareentwicklung

Aufgabe: Formulieren Sie einen Algorithmus der die Tabelle ufigibni^-tab füllt. Durch die Verwendimg von zwei Indices vereinfacht sich der Algorithmus. Beispiellösung: * # * # * * * * *

* * * * * * * * * * * * * * * * * *

*

DATENTEIL. (siehe Schnittstelleribeschreibunä 4.8.3) ersi-tab-ind-l erä-tab-ind-2 erä-tab-eof-flaä

NUM 1 ST WERT 1. NUM 1 ST WERT 2. BOOL 1 ST WERT 0.

* * * # # # # * *

* # * pat-eräebnis-tab-fuelleri. * UEBERTRAGE pat-auferit-ueberäabe (era-tab-ind-1) * NACH pat-eiriweis-datum VON # eräebnis-tab (erä-tab-ind-l). # WENN pat-auferit-ueberäabe-tab (erä-tab-ind-2) * = 0 ODER ersJ-tab-ind-2 > 4 # DANN UEBERTRAGE entlsss-daten-ueberäabe * NACH pat-verleä-datum (erd-tab-ind-i)* UEBERTRAGE 1 NACH erä-tab-eof-flad # UEBERTRAGE 2 NACH erä-tab-irid-1 # UEBERTRAGE 2 NACH erä-tab-ind-2 * SONST UEBERTRAGE pat-auferit-ueberäabe-tab * NACH pat-verleä-datum (erä-tab-ind-1)# ADDIERE 1 NACH erä-tab-irid-1 # erä-tab-ind-2. * PROZEDURTEIL•

*

* *

Auf eine separate Ausforntulierung des Gesamtalgorithmus von "DATDIF" kann verzichtet werden, da dieser weitgehend mit Stufe III des Entwurfs von Alg 3 (vgl. 4.1) identisch ist. Anhand des COBOL-Codes des Modul "DATDIF" in Anhang 4, Fallstudie A kann der Gesamtalgorithmus nachvollzogen werden.

4.9 Die Benutzermaschine: „FAKKRA" und DATDIF"

73

4.9 Die Benutzermaschine: „FAKKRA" und „DATDIF" Der nächste Schritt nach der bisher vorgenommenen Algorithirisierung des Problems i s t nach der letzten Verfeinerung

das Codieren und

Austesten der Module "FAKKRA" und "DATDIF". Die ausgetesteten Module sind in Anhang 4 von Fallstudie A abgedruckt. Aus Platzgründen wird auf d i e Darstellung von Systenrneldungen verzichtet und nur eine für den Benutzer erzeugte Fakturierung abgebildet: RECHNUNG ST A DTK 3 A f.'K EN H AU S 0 . , SAHI/INGSBINIEIS:

STATION A ERE BEHANDLUNG

BITTE ZAHLFN SIE INNERHALB VON 10 TAGEN AUF EINES DES FOLGENDEN KONTEN: HYPO-BANK KTO-NR.: 605-47 SPARKASSE 0. KTO-N3.: 87360 BARZAHLUNGEN SIND NICHT KOEGLICH.

AN

DATUM : BECHNGSNR.:

11/30/78 0000001

TECHNIKEß-KRANKENKASSE SOLINGERSTR.2 0011 EISENDORF ***

PATIENTENANGABEN

AUFNAHUE-NB. : VERS ICHERUNGS-NR.:

***

925140 55555

PATIENT : BALLENSCHUH HAH PTV ERSICHERTER: BALLENSCHUH ***

VON

ABRECHNUNG

OTTO OTTO

***

BIS

20.09.78 22.09.78 22.09.78 24.10.78 24.10.78 25.11.78

TAGS 2 32 32

TARIF 211.00 211.00 211.00

GESAMTBETRAG:

BETRAG 422.00 6752.00 6752.00

13926.00

ABT

KL

GB

3 4 3

5 4 4

74

4. Softwareentwicklung

4.10 Grafische Systemübersicht Abschließend noch die grafische Darstellung des Gesamtsystems:

Auf die Problematik der Inbetriebnahme des Softwaresystems wird nicht eingegangen.

Literatur

Weiterführende und benutzte Literatur: Couger, J. Daniel Knapp, Robert W. (eds) System Analysis Techniques John Wiley & Sons Inc. 1974 Eichhorn, S. Krankenhausbetriebslehre Bd. 1, Bd. 2 3. Aufl., Stuttgart - Berlin - Köln - Mainz 1975 Magistrat der Stadt Offenbach/M. (Hrsg.) Stadtkrankenhaus Offenbach/M. Festschrift zur Eröffnung des Krankenhausneubaus im Juni 1974 Tri11, R. Ist-analyse in Teilbereichen der Verwaltung des Stadtkrankenhauses Offenbach Main unter Berücksichtigung statistischer Erhebungs- und Darstellungsformen und Ansätze eines edv-orientierten Sollkonzeptes mit teilweiser Implementierung Diplomarbeit, TU Berlin 1978 Wedekind, H. Systemanalyse 2. Aufl., München - Wien 1976

Anhänge zu Fallstudie A

Anhang 1: Patientenidentifikationszahl (I-Zahl) Die Patientenidentifikationszahl setzt sich aus 9 Ziffern zusammen. Die ersten 6 Ziffern bilden das Gebutsdatum des Patienten. Die nächsten 2 sind den Anfangsbuchstaben des Familien- bzw. Mädchennamens zugeordnet. Die letzte Ziffer wird für die Geschlechtsbestinmung verwendet. Beispiele: Karl Schulze, geb. 24. 7. 1939, Einling := 240739781 (I-Zahl) Else Schulze, geb. 24. 7. 1940, Einling := 240740492 (I-Zahl) geborene Lehmann Teile des Schluessels für die Namenscodierung: 00 := Aa - Am 01 := An - Az 03 := Baa - Bat 04 := Beh - Ber

77

Anhang 2: Formulare der Faktenerhebung

Anhang 2: Formulare der Faktenerhebung

Die hier abgebildeten Formulare sind ein Teil der bei der Istanalyse vorgefundenen. 2-6* - o=>

d) o>

"3

N

c < •

o>

E

o c 4 T H E N MOVE E N T L A S S - Q A T E N - U E B E R G A B E TO P A T - V E R L E G - D A T U M (ERG-TAB-IND-1) MOVE J A TO E R G - T A B - E O F - F L A G MOVE 1 TO E R G - T A B - I N D - 1 MOVE 2 TO E R G - T A B - I N D - 2

Anhang 4: Die Programme „FAKKRA" und DATDIF"

5L3E

97

MOVE P A T - A U F K N T - 0 E B 2 R G A B 2 - T A 3 (2RG-TAB-IND-2) TO P A T - V E R L E G - D A T ' J M ( E R G - T A B - I N D - 1 ) ADD 1 TO E R G - T A I 3 - I N D - 1 , ERG-TAB-rND-2.

OATEN-PR'T Ë F E M . I F ERGEBNIS-TAB (ERG-TAB-IND-1) = H E R O E S OR E R G - T A B - I N D - 1 > « THEN P E R F O R A E R G - T A B E L L E - E O F 2L3 E «OVE P A T - E I N H E I S - T A G OF E R G E B N I S - T A B (ERG - T A B - I N D — 1) TO T A G - 2 mov PAT-EINWEIS-MON 0 ? E R G E B N I S - T A B ( E R G - T A B - I N D - 1) TO M O N A T - 2 HOVE P A T - E I N W E I S - J A H R OF E R G E B N I S - T A B ( E R G - T A B - I N D - 1) TO J A H R - 2 I O VE P A T - V E R L E G - T A G OF E R G E B N I S - T A B (ERG - T A B - I N D - 1) TO TAG - 1 MOVE P A T - V E R L E G - M O N OF 2 K G E B N I S - T A B ( E R G - T A B - I N D — 1) TO MON A T - 1 MOVE P A T - V E R L E G - J A HR ÜF E R G E B N I S - T A B (ERG - T A B - I N D - 1) TO J A H R - 1 PERFORI IST-EINGABE-NUMERISCH I F NOT DA TD I F - P R F - F E H L E R THEN P E R F O R M I S T - M O N A T - M O E G L I C H PEdFORM I S T - T AGESZ AïlL-ilOEGL ICH PERFORI IST-DATUM-1-GT-DATUM-2 PERFORM I S T - D A T n n - 2 - G T - B A S I S D A T I M ÄOD 1 TO E R G - T A B - I N D - 1 E L S E PERFORM E R G - T A B F L L E - E O F . E R G - T A BEL L E - E O F . HOVE .TA TO E R G - T A B - E O F - F L A G . MOVE 1 TO E R G - T A B - I N D - 1 . BERECHNUNG. I F ERGEBNIS-TAB (ERG-TAB-IND-1) NOT = Z E R O E S OR E R G - T A B - I N D - 1 > H THEN MOVE P A T - VER L E G - D A Tí?.M ( E R G - T A B - I N D - 1 ) TO Z W I - D A T U M PERFORM T A G - K U H M O L A T I O N MOVE Z W I - S O M M E TO S O M M E - D A T Ü M - 1 MOVE P A T - EINW E I S - D ATT' M ( E R G - T A B - I N D - 1 ) TO ZW I - D A T O H PEBFOR.1 T A G - K 0 MMOL AT I O N MOVE Z W I - S t J M M E TO S O M M E - D A T U M - 2 PERFORM D A T - D I F F E R E N Z ADD 1 TO E R G - T A B - I N D - 1 E L S E MOVE J A TO E R G - T A B - E O F - F L A G MOVE 1 TO E R G - T A B - I N D - 1 . IST-EINGABE-NUMERISCH. I F DATTIM-1 NOT N U M E R I C OR D A T O M - 2 NOT N U M E R I C THEN HOVE J A TO D A T D I F - P R F - F E H L E R - F L A G PERFORM F E H L E H M - N O M .

Anhänge zur Fallstudie A

98

I S T - . 1 0 N M - S O SGL I C H . IF MONAT- 1 > OR M O N A T - 1 < OR M O N A T - 2 > OR 1 0 N A L' - 2 < T l I E N MOVE J A PE3F08M I S T - T AGES7, A PERFORM PERFORM I F TAG1 TUEN I F TAG2 TtiEN

12 1 12 1 TO D A T D I F - P R F - F E H L F R - K L A G PEHLSRM-HONAT.

HL-MOEGL I C H . IST-3AT-1-29-F5BR-SCHALTJ IST-DAT- 2- 29-FEBR-SCHALTJ NOT = " 2 9 - 2 - S C H A L T J " PERFORM I S T - T A G - 1 - M O E G L I C H . NOT = " 2 9 - 2 - S C H A L T . ! " PET?FORI IST-TAG-2-MOEGLICH.

I S T - D A T - 1 - 2 9 - F E BP-SC HALTJ. I F M O N A T - 1 = 2 AND T A G - 1 = 2 9 THEN COMPUTE 3AS I S D I F F = J A H E - 1 3ASISJAHR D I V I D E a INTO BASISDIF*7 G I V I N G * REMAINDER I F REST = 0 T H E N MOVE " 2 9 - 2 - S C H A L T . T " TO T A G 1 . 1ST-DAT-2-29-FEBR-SCHALTJ. I F M O N A T - 2 = 2 AND T A G - 2 = 2 9 THEN COMPUTE 3 A S I S D I F F = J A H R - 2 - B A S I S J A H R DIV IDE 4 INTO 3 A S I S D I F F G I V I N G X REMAINDER I F REST = 0 T H E N MOVF " 2 9 - 2 - S C H A L T J " TO T A G 2 . I S T - T A G - V-MOHGLICH. I F TAG-1 > «0NAT-TA3 (MONAT-1) OH T A G - 1 < 1 T H E N MOVE J A TO D A T D I F - P R F - F E H L E R — F L A G PERFORM F E H L E R M - T A G 1 . IST-TAG-2-MOEGLICH. I F TAG-2 > M0NAT-TA3 (MONAT-2) OR T A G - 2 < 1 T H E N MOVE J A TO D A T D I F - P R F - F E H L E R - F L A G PERFORM F E H L E R M - T A G 2 .

I S T - D ATTJ M - 1 - G T - D A T ' J M - 2 . IF JAHR-1 < JAHR-2 THEN PERFORM F E H L E R M - R E I H E N F MOVE J A TO D A T D I F - P R F - F E H L E R - F L A G ELSE IF JAHR-1 = JAHR-2 THEN P E R F O R M M O N A T - P R U E F E N . MONAT-PRÜEFEN. I F MONAT-1


ISDAT(J3. I ? BASISJAHR > JAHR-2 T 4 E N PERFORA F E H L 3 F M - B AS I S J HOVE J A TO D A T D I F - P R F - F E H L B R - F L A G .

+

+



B E G I N N DES

+

+*+

EIGENTLICHEN

+

+

********* *******

KALENDERALGORITHMUS

***************************************************************

£ E j

J A H R E S - K U MMULIERUN3. ADD 3b5 TO Z W I - S U MME. I F INDEX-SCHALTJAHR = 4 T H E N ADD 1 TO Z W I - S U M M E MOVE 0 T O I N D E X - S C H A L T J A H R . ADD 1 TO I N D E X - S C H A L T J A H R .

E E E D E E E E E E I] D ij E E E E E E E I t E E

MONAT-RECHNUNG. ADD M O N A T - T A B

E E

TAG-KUMMULATION. MOVE ZERO TO 7 . W I - S U MM B . MOVE 4 T O I N D E X - S C H A L T J A H R . PE3F0R1 JAHRES-FCUMMULIERUNG VARYING BASISJA HR-ZAEHLER FROM B A S I S J A H R BY 1 UNTIL 3ASISJAHR-ZAEHLE8 = ZWI-JAHR. I F T.tf I - M O N AT > 1 T H E N PERFORM M O N A T - R E C H N U N G VARYING INDEX-MONAT FROM 1 BY 1 UNTIL INDEX-MONAT = ZWI-MONAT. ADD Z W I - T A G T O Z W I - S U M M E . I F I N D E X - S C H A L T J A H R = 4 AND Z W I - M O N A T > 2 T H E N ADD 1 TO Z W I - S U M M E .

(INDEX-MONAT)

TO ZWI-SUMME.

DAT-DIFFERENZ. COMPUTE TAGES D I F F E R E N Z ( E R G - T A B - I N D - 1 ) = SUMME-DATUM-1 - SUMHE-DATIIM-2. *************************************************************** • E N D E DES K A L F N D E R A L G O R I T H M U S ***************************************************************

100

FEKLERN-N'TM. DISPLAY "DI?

Anhänge zur Fallstudie A

EINGABE

IST

NICHT

NUMERISCH".

FEHLEFI-MüNAT. D I S P L A Y "MONAT

U N Ì102GL I C H " .

F E H L E N 1 - T AG 1 . DISPLAY "TAG-1

GIBT

E3

DISSEN

MONAT

NICHT".

F iüHLEilH-T AG2. DISPLAY "TA3-2

GIBT

ES

DIESEN

MONAT

NICHT".

FEHLEm-RSIHENF. D I S P L A Y " E N T L A S S E NGS D A T . FEHLERM-ßASISJ. D I S P L A Y "DATU:1 RTIECKSPRTING. GOSACK.

VOR

VOR

EINLIEFERUNGSDAT".

B A3 I S J A H E " .

Fall B: EDV im Fertigungsbetrieb (Stücklistenverarbeitung)

1. Vorstudie

Ein Mittelbetrieb der Maschinenbaubranche, die GETRIEBE KG, fertigt nach Bestellungen in Einzel- und Kleinserienfertigung Getriebe, vorwiegend für Werkzeugmaschinen. Trotz guter Kapazitätsauslastung (90 %) und als ausreichend zu betrachtender Gewinnspannen ist die Erlössituation des Unternehmens unbefriedigend. Die nachfolgende knappe Vorstudie soll die Ursachen aufdecken.

1.1 Systembeschreibung Der Betrieb ist folgendermaßen gegliedert:

Abb. 1.1: Aufbauorganisation (Leitungsstruktur) der GETRIEBE KG Die hier dargestellten vier Hauptabteilungen werden durch Ressortchefs geleitet, die der Unternehmensleitung unterstellt sind.

102

1. Vorstudie

Die Umwelt des Systems GETRIEBE KG bilden Kunden, die Produkte und Ersatzteile bestellen, sowie Lieferanten, die Rohmaterial und Halbfabrikate liefern. Wichtigste Ressource der Firma außer den Gebäuden und Produktionseinrichtungen ist eine EDV-Anlage aus den späten 60er Jahren. Über sie werden die Lohn- und Gehaltsabrechnungen sowie Teile der Buchhaltung und des Materialwesens abgewickelt.

1.2 Ziel der Untersuchung Ziel der Unternehmensleitung ist es, die Erlössituation so zu verbessern, daß auch bei einem Rückgang der Beschäftigung bis 65 % noch keine Verluste entstehen. Randbedingungen einer Sollkonzeption sind: - Die Durchlaufzeiten in der Produktion dürfen nicht erhöht werden, eine Verminderung ist wünschenswert; (davon hängt die Lieferbereitschaft des Unternehmens ab); - die Materialbestände dürfen wegen der damit verbundenen Kapitalbindung nicht erhöht werden.

1.3 Problembeschreibung und Alternativen Eine Analyse der letzten Jahresabschlüsse der Firma ergibt, daß das Umlaufvermögen in den vergangenen Jahren stark zugenommen hat. Es werden also recht hohe Lagerbestände an Roh- und Halbfabrikaten geführt. Die Lagerbestände waren auf Anordnung des Leiters "Beschaffung" vor zwei Jahren drastisch erhöht'worden, als immer wieder auftretende Produktionsstockungen aufgrund fehlenden Materials aufgetreten waren. Dies hatte zu Auftragsverlusten und Nacharbeit bei Einzelfertigungen geführt, die anderweitig verkauft werden mußten. Am Fertigungsdurchlauf kann nichts Auffälliges entdeckt werden; die Durchlaufzeiten erscheinen nicht überhöht.

1.5 Vorentscheidung

103

Die Prüfung der Materialbeschaff m g (Einkauf) führt zu dem Ergebnis, daß die Einkaufspreise und -konditionen nicht als ungünstig bezeichnet werden können. Von den Alternativen -

Lagerbestände Materialdisposition Durchlaufzeiten Einkaufsbedingungen

scheinen also die ersten beiden weiter betrachtenswert.

1.4 Schwachstellenanalyse Die Quelle fehlenden Materials vor Erhöhung der Lagerbestände schien nicht die eigentliche Bestellung gewesen zu sein, sondern die Ermittlung des notwendigen Bedarfs. Die•Bedarfsermittlung wird auf der betriebseigenen EDV-Anlage oft mit erheblichen Verzögerungen ausgeführt. Sie ist ohnehin nur alle 14 Tage möglich, da das Bedarfsrechnungsprogramm hohe Laufzeiten hat. So muß immer wieder improvisiert werden, um Bestellungen rechtzeitig auszulösen. Das der Bedarfsermittlung zugrundeliegende Stücklistenwesen mit Lochkarten ist schwerfällig und häufig nicht auf dem letzten Stand. Dadurch kommt es immer wieder zu Fehlbestellungen.

1.5 Vorentscheidung Die Betriebsleitung beschließt, das Stücklistenwesen mit EDV einer genauen Analyse zu unterziehen. Ziel der Analyse soll die Umstellung des Stücklistenwesens auf ein Datenbanksystem1'sein, wie es bereits vielfach in anderen Betrieben zu Zwecken der Fertigungssteuerung verwendet wird. 1) Eine Datenbank oder auch Datenbasis ist ein nach bestimmten festen Regeln aufgebauter Datenbestand, der in einem Conputer gespeichert ist. Er ist als System miteinander verknüpfter Grippen von Datenelementen aufgebaut, auf die nur nach bestimmten Kriterien mittels spezieller Funktionen zugegriffen werden kann.

104

1. Vorstudie

Lesehinweis: Man lese jetzt Teil II, Kap. 1 (II.l).

1.6 Aufgabe zur Systemanalyse SyB 1 Problem: Es soll eine schematische Zusammenfassung der Vorstudie erstellt werden. Aufgabe: 1. Zählen Sie die Elemente, Umwelt und Ressourcen der Getriebe KG auf. Gestalten Sie die Aufzählung als Blockdiagramm, wie es sich als Abb. 1.1 in Teil II findet. 2. 2.1 Welche Beziehungen bestehen zwischen den Elementen des Systems? Zählen Sie einige mögliche auf. 2.2 Welche Beziehung ist für unsere Betrachtung die wichtigste? 3. Welche Ziele außer den in 1.2 aufgeführten könnten Sie noch nennen, um eine Betriebsuntersuchung zu rechtfertigen?

2.1 Istanalyse

105

2. Hauptstudie

Die Hauptstudie kann aus Platzgründen nur die wesentlichsten Aspekte einer realen Systemuntersuchung berücksichtigen. Da das zu verwendende Datenbanksystem nicht entwickelt, sondern ein fertiges übernommen wird, wird es in diesem Abschnitt erläutert. Das in seiner Entwicklung dargestellte EDV-Programm ist ein Anwendungsprogramm, das mit Hilfe der Datenbank verwirklicht wird. 2.1 Istanalyse Die Istanalyse stellt den zu untersuchenden Bereich bezüglich der wichtigsten Arbeitsabläufe, verwendeten Daten und Hilfsmittel (Ressourcen) dar. Danach wird eine Systenxäarstellung bezüglich der wesentlichsten Ablaufelemente jedes Systems gegeben.: Material und Information. Ziel jeder Svstemgestaltung ist die Übereinstimmung von Material- und Informationsfluß. Daher werden die Informationsbeziehungen des von uns weiter zu betrachtenden Teilbereiches stärker herausgestellt. Die Darstellung ist aus räumlichen Gründen sehr knapp gehalten"*" . 2.1.1 Arbeitsabläufe Der Arbeitsablauf einer Bedarfsermittlung läßt sich folgendermaßen beschreiben: Der Sachbearbeiter bekommt von der Fertigungsplanung Lieferanfragen, den sogenannten Primärbedarf. Er prüft, ob die Produkte im Fertigfabrikatelager verfügbar sind. Wenn nicht, legt er die Formulare auf einen Stapel "Bedarfsrechnung" . Dieser wird 14-tägig wie folgt bearbeitet: Zusammenfassen der Primärbedarfe gleicher Produkte. Ablochen der Bedarfe. Prüfen und Eingabe in das EDV-Programm "Stücklistenauflö sung-Bedarf srechnung1'. Lesehinweis: Man lese jetzt II.2.1 bis II.2.5.2

1) Fallstudie A arbeitet diesen wichtigen Aspekt des Material- und Informationsflusses ausführlich heraus.

106

2. Hauptstudie

Das dem EDV-Programrr. zugrundeliegende Verfahren sei kurz skizziert: Für jeden eingegebenen Primärbedarf muß der entsprechende Erzeugnisstrukturbauir, aufgelöst werden, um den Bedarf an Baugruppen und Einzelteilen (= Sekundärbedarf) festzustellen. Beispiel: E = Endprodukt

Abb. 2.1: Erzeugnisstrukturbaurr. Die Knoten stellen teilespezifische Daten dar, die Kanten die Einbauroenge. So wird etwa für 3 x El

3 x 3 x 5 T 4 = 45 T4 benötigt.

Besteht Primärbedarf für mehrere Produkte, müssen die Sekundärbedarfe insgesamt ausgewiesen werden, da sie auch als ganzes beschafft werden müssen. Die Stücklisten der GETRIEBE KG wurden bei der Anschaffung der EDV-Anlage von Karteikarten auf Lochkarten übernommen. Diese Teilestammdatei wird vor jedem Programmlauf auf Magnetband kopiert, da die Datei häufig von Anfang an neu durchsucht werden muß, was mit Lochkarten maschinell nicht möglich ist. Außerdem ist die Lesegeschwindigkeit beim Magnetband höher als bei einem Lochkartenstapel. Die Speicherung erfolgt baukastenweise:

2.1 Istanalyse

107

D

u 0 J 1 +j 03 •8 S I3PLAY ' VZSKETTÜMGSF2HL5R ESD' ; STOP R"!J. TSD-DIPEKT-LESES. HEI\D TST; LILV ^ L I D :1) Baum ist ein Baum, in dem jeder Knoten nur höchstens n Nachfolger hat. Bäume werden meistens "umgekehrt" dargestellt: die Wurzel erscheint oben. Bäume tauchen z.B. als Erzeugnisstrukturen (vgl. Kapitel 3, 3.4.2) oder als Darstellungen von Organisationsstrukturen auf, in denen z.B. "Stelleninhaber" die Knoten bilden und "Weisungsbefugnis" die dargestellte Beziehung ist.

187

1.3 Darstellungstechniken

Niveau

Abb. 1.3: Organisationsstruktur: 2-stufiger 3-ärer (ternärer) Baum (2) Ablaufdiaqramme, in denen Funktionen, Tätigkeiten, Zustände oder Informationen als Knoten und zeitliche Reihenfolge, Informations-, Material- oder Energieflüsse als Beziehung dargestellt werden. Für die unterschiedlichen Knoten- und Kantenarten verwendet man unterschiedliche Symbole (z.B. Rechtecke für Funktionen, Kreise für Zustände). Verschiedene Formen von Ablaufdiagrammen sind Datenflußpläne, Tätigkeitsflußpläne, Programmablaufpläne. Für die Darstellung ihrer Elemente haben sich jeweils unterschiedliche Symbole herausgebildet (z.B. DIN 66001 und American National Standard Institute (ANSI) für Programmablaufpläne). (3) Netzpläne, die man erhält, wenn in den Tätigkeitsflußplänen angegeben wird, wieviel Zeit man für die einzelnen Tätigkeiten benötigt. Sie sind besonders geeignet, ein komplexes Projekt zu dokumentieren, zeitlich abzuschätzen und zu steuern. Wir wollen sie hier nicht näher behandeln, sondern verweisen auf die Literatur. (4) Präzedenzqraphen, deren Kanten angeben, welche Teilsysteme (Knoten) als Voraussetzungen für andere Teilsysteme notwendig sind.

188

1. Systemanalyse

1.3.2 Entscheidungstabellen Entscheidungstabellen legen die Beziehungen zwischen bestimmten Bedingungskonstellationen und Aktionen fest. In der Regel werden Entscheidungstabellen in folgender Form dargestellt: ENTSCHE1DUNGSTABEL LEN NR:

Datum:

Seite:

Aufgabe:

R,

R2

Rn

R3

rt^

B, B

2

BN

J'T

y

I * J

e\
< Grafisch sieht der Internspeicher jetzt so aus:

Pufferbereiche vgl. Abb.

FILE SECTION

2.18

Arbeitsbereiche

WORKING-STORAGE SECTION

vgl. Abb. 2 .18

Verbindungsbereiche




LINKAGE SECTION

Abb. 4.3. Ergänzung des Internspeichers um den Verbindungsbereich. 4.3.2 ENTRY/EXIT PROGRAM-Anweisung Im Prozedurteil eines Moduls können mehrere Abschnitte - die einzelnen Funktionen - aufgerufen werden. Sie beginnen jeweils mit einer Anweisung. ENTRY

literal-1

[USING1'

identifier-1

[identifier-2]

...]

und enden - je nach Programmierung - mit einer oder mehreren Anweisungen. paragraphenname. EXIT PROGRAM. 1) Die Bedeutung wird in 4.3.3 geklärt.

322

4. Programmentwurf mit C O B O L

Stößt der Prozessor auf eine EXIT PROGRAM-Anweisung, wird in das aufrufende Programm zurückgesprungen und mit der Abarbeitimg des nächsten Befehls nach dem Aufruf fortgefahren. Die gleiche Funktion wie EXIT PROGRAM erfüllt bei IBM-Compilern der Befehl GOBACK. Unterschied EXIT PROGRAM - GOBACK: GOBACK muß nicht in einem Paragraphen als einzige Anweisung stehen, sondern kann als letzter Befehl eines Befehlssatzes verwendet werden. 4.3.3 CALL-Anweisung Mit CALL werden getrennt übersetzbare Unterprogramme (Module) aufgerufen. Die Unterprogramme können in COBOL oder in einer anderen Programmiersprache codiert sein. CALL entspricht also PERFORM. Im aufrufenden Programm: CALL literal-1 [USING identifier-1

[identifier-2] ...] 1 )

Im aufgerufenen Prograitm: ENTRY literal-1 [USING identifier-3

[identifier-4] ...]

Erklärung: Mit CALL literal-1 wird ein anderes Programm oder ein Teil eines anderen Programms angesprungen, und zwar genau dort, wo in dem aufgerufenen Programm ENTRY literal-1 zu finden ist. Daraus ergibt sich auch, daß literal-1 in beiden Befehlen identisch sein muß. Mit der USING-Klausel werden in dem aufrufenden Prograirm definierte Datenelemente und Sätze dem aufgerufenen Prograirm oder Programmteil zugänglich gemacht oder von ihm nach Abarbeitung des aufgerufenen in Empfang genommen. Hierbei ist zu beachten: 1. Mit der USING Option können nur Datenelemente mit der Stufennummer 77 oder Sätze mit der Stufennumer Ol übergeben werden. 2. Im aufgerufenen Programm rrüssen die mittels der USING Option übergebenen Datenelemente oder Sätze im Datenteil in der LINKAGE SECTION deklariert sein (vgl. Bsp. 4.3.5). 1)

CALL (COBOL) =

RUFE

(NtS)

4.3 COBOL-Sprachelemente zur Modularisierung

323

Mit CALL werden im Gegensatz zu PERFORM also nicht nur Operationen, sondern auch Daten (USING-Klausel) zur Verfügung gestellt. 4.3.4 Parameterübergabe Die identifier der USING-Klausel im CALL und ENTRY Befehl müssen nicht identisch sein. Man nennt sie auch Parameter, die von einem an ein anderes Modul übergeben werden. Im aufgerufenen Modul heißen sie formale, im aufrufenden aktuelle Parameter. Merke: 1. Die Übereinstimmung der aktuellen und der formalen Parameter in Reihenfolge, Typ, Ausdehnung und Anzahl kann der Conpiler nicht prüfen (getrennte Übersetzbarkeit!). Sie ist sorgfältigst vom Programmierer zu überprüfen, da sonst Laufzeitfehler drohen. 2. Wird ein Datenelement durch ein aufgerufenes Programm verändert und war dies über die LINKAGE SECTION ansprechbar, so ist es auch für das aufrufende Prograitm geändert. Die Beziehung zwischen aktuellen und formalen Parametern, Speicherplatz in der WORKING-STORAGE eines aufrufenden Moduls und Referenzen in der LINKAGE SECTION eines aufgerufenen sei noch einmal im Bild dargestellt. aufrufaides Modul ( H auptprogr airan ) WORKING-STORAGE SECTION. datum

aufgerufenes Modul (Unterprogramm) LINKAGE SECTION. infa-datum




Abb. 4.4: Beziehung zwischen Arbeits- und Verbindungsbereichen (vgl. Abb. 4.3). 4.3.5 Beispiel 1. Unterprogramm (= aufgerufenes Modul) IDENTIFICATION DIVISION. PROGRAM-ID. BERECHNUNG REMARKS. DAS PROGRAMM SCHREIBT DIE RECHNUNG FUER EINEN PATIENTEN.

ENVIRONMENT DIVISION.

324

4. Programmentwurf mit C O B O L

DATA DIVISION.

LINKAGE SECTION. 77 RECHNUNG-GESCHRIEBEN Ol BERECHNUNGSDATEN 03 EINGANGSDATUM 03 AUSGANGSDATUM PROCEDURE DIVISION.

ENTRY 'AUFRUF' USING

PIC X. PIC 9(6) PIC 9(6).

RECHNUNG-GESCHRIEBEN BERECHNUNGSDATEN.

GOBACK. Nochmals: Es werden für die Daten der LINKAGE SECTION keine neuen Speicherplätze reserviert, so daß die Daten nicht doppelt im Internspeicher vorhanden sind, sondern nur Adreßverweise für Datenelemente gebildet, die im aufrufenden Modul als Speicherplatz (WORKING-STORAGE SECTION) deklariert sind. 2. Hauptprogramm (= aufrufendes Modul) IDENTIFICATION DIVISION. PROGRAM-ID. AUFRUFEN. REMARKS. DAS PROGRAMM ERFASST DIE ENTLASSUNG EINES PATIENTEN.

ENVIRONMENT DIVISION.

DATA DIVISION.

WORKING-STORAGE SECTION. 77 PAT-ENTLASSEN 01 VERWEILDATEN. 03 EINWEISDATUM 03 ENTLASSUNGSDATUM PROCEDURE DIVISION.

PIC X. PIC 9(6). PIC 9(6).

4.4 Modell einer Schnittstellenbeschreibung

325

CALL 'AUFRUF' USING PAT-ENTLASSEN VERWEILDAUER. MOVE ...

STOP RUN.

4.4 Modell einer Schnittstellenbeschreibung von COBOL-Modulen Auf die Bedeutung der Schnittstellenbeschreibung wurde schon in 4.2.8 eingegangen. Wir stellen hier ein Modell zur Schnittstellenbeschreibung vor, das sich für unsere Zwecke als brauchbar erwiesen hat. Ein Modul ist eine Datenstruktur mit Algorithmen (sogenannten Primitiven), die sie verwalten. Die Datenstruktur ist in der DATA DIVISION, die Primitiven sind in der PROCEDURE DIVISION realisiert. Das Modul bildet in einem Rechnersystem eine virtuelle Maschine. Die Schnittstelle eines Moduls liefert diejenigen Informationen, die das Modul nach außen bekanntgibt. Dies sind im wesentlichen: - die Daten, die es empfängt (Input) und abgibt (Output), - die Operationen, die es zur Verfügung stellt, - weitere Details, die seine Benutzung eindeutig beschreiben (näheres unter 4.4.1, 4.4.2). Informationen über Entwurfsentscheidungen bei der Wahl seiner Datenstruktur (en) , interne Arbeitsdaten oder Schnittstellen tiefer gelegener (d.h. vom Modul aufgerufener) Module muß das Modul verstecken ('information hiding'), dürfen also nicht in der Schnittstelle auftauchen. Ein COBOL-Modul zeigt folgende Schnittstellen: 1. Schnittstelle der virtuellen Maschine (Modul-Schnittstelle), 2. Schnittstelle einer Primitive (Funktionen-Schnittstelle).

4. Programmentwurf mit C O B O L

326

Die Funktionen-Schnittstellen stellen Verfeinerungsstufen der ModulSchnittstelle dar: COBOL-Modul

Modul-Schnittstelle Funktions - Schnittstel le -1

Funktions-Schnittstelle-2

Abb. 4.5. Prinzipskizze einer Schnittstelle eines COBQL-Moduls. 4.4.1 Modul-Schnittstellenbeschreibung Die Modul-Schnittstelle muß derjenige Benutzer kennen, der die Primitiven nicht anwenden will, aber Informationen über das Modul als Ganzes braucht; zum Beispiel zum Binden und Laden seines Benutzerprogramms, zur Information, was das Modul tut usw. Eine Modul-Schnittstelle muß Informationen über die Benutzung ihrer Primitiven verstecken.

327

4.4 Modell einer Schnittstellenbeschreibung

Syntax: FUNKTION» INTERFACE:

USING < b e n u t z t e iriodule>, GIVING O u r verfueäunä gestellte primitiven>« V0RAUSS.5 C t e x t ueber Voraussetzungen zur benutzunä des moduls> REIHENFOLGE:

RESTRIKTIONEN: BESCHREIBUNG:

Syritsx f u e r

Reihenfoläebedinauriäen!

: definiert durch t kollsterale (Reihenfolge beliebig) r sequentielle IF ' < p r 3 e d i k s t > bedingte C D optionale ••. wiederholte .'

CUSING

3 .

CUSING Cbenutzte primitiven der benutzten module>!l

C RESULT? 3

C TRANS? D . VORAUSS.? ;t» bezosäen auf diese primitive> CFEHLER.?] .

Beispiel? ENTRY 'F'OP' USING STACK-EMPTY-OR-NOT» TOP-ELEMENT. FUNKTION! AUSSPEICHERN DES OBERSTEN ELEMENTES EINES STACK". INTERFACE? RESULT? 77 STACK-EMPTY-OR-NOT PIC X(4). 88 STACK-EMPTY VALUE 'TRUE'. RESULT? Ol TOP-ELEMENT. 03 ELEMENT1 PIC 9(5). 03 ELEMENT2 PIC 9(5). VORAUSS.? PUSH. FEHLER.? MEHR ALS EINMALIGER AUFRUF VON POP MIT LEEREM STACK FUEHRT ZUM ABBRUCH.

Literatur

Weiterführende und benutzte Literatur: American National Standard Institute American National Standard Programming Language COBOL American National Standard Institute 1974 Brown, G.D. Advanced ANS COBOL with structured Programing John Wiley 1977 Floyd, Christiane Strukturierte Prograimiierung für COBOL Anwender Hamburg 1974 Geissler, R. u. K. ANS-COBOL Einführung und Arbeitsbuch für die Praxis München - Wien 1974 Hambeck, Klaus Einführung in das Programmieren mit COBOL Berlin - New York 1973 Weinberg, G.M., Wright,. S.E., Kaufmann, R., Goetz, M.A. High Level Cobol Programtiing Prentioe-Hal1-for-Winthrop 1977

Schnupp, P., Floyd, Chr. Software Berlin - New York 1976 Schnupp, P. Systerrprograrrmierung Berlin - New York 1975 Schulz, A. Methoden des Softwareentwurfs und strukturierte Programm.erung Berlin - New York 1978 Goos, G., Kastens, U. Prograitming Languages and the Design of Modular Programs in: Hibbard, P.G., Schuman, S. (eds) Constructing Quality Software Proceedings IFIP-TC2 Conference Novcbirsk, May 1977 North - Holland Koch/Simonsmeier Software Engeneering I Skript, TU Berlin, Fachbereich Inforamtik WS 1977/78

329

Beispiellösungen zu Teil II 1. Alg1 u n d C O B 1 1. Algorithmus rechnunäskopf. DATENTEIL. DATEIEN KAPITEL. DATEI kunden-dstei. kunden-ksrte. kunden-nr name-vorname PlZ stadt strasse-nr

ALPH-NUM 5 ST A L P H - N U M 2 6 ST ST ALPH-NUM A L P H - N U M 2 0 ST A L P H - N U M 2 0 ST

DATEI rechnS-kopf-datei. zeile-1. /* enthaelt name-vorname kunden-nr rechnunäs-nr #/ z e i l e - 2 . /# e n t h a e l t strasse-nr datum */ zeile-3. /* enthaelt plz stadt #/ ARBEITSSPEICHER karteri-zuende rechnä-nr

KAPITEL,

BOOL NUh

1 ST WERT 5 ST.

PROZEDURTEIL. rechnunäskopf. /# e b e n e 1 #/ NIMM AUF rechnä-nr. karten-zuende auf FALSCH setzen. MACHE karte-lesen. MACHE rechnunslskopf-drucken BIS karten-zuende. BEENDE AUSFUEHRUNG. rechnunäskopf-drucken. /# e b e n e 2 * / ADDIERE 1 ZU rechnä-nr. z e i l e - 1 uebertrasfeni S C H R E I B E z e i l e - 1 . zeile-2 uebertraäen? SCHREIBE zeile-2. z e i l e - 3 uebertraslen? S C H R E I B E z e i l e - 3 . karte-lesen. LIES kunden-dstei SATZ AM ENDE UEBERTRAGE 1 NACH

karten-zuende.

1.

331

1. Alg1 und COB1

2 . COBGL-Programm + + + + + + + + •• + + ••»• +••«••I- + + 4- + IDENTIFICATION DIVISION.

PROGRAM-ID. AUTHOR. DATE-WRITTEN. DATE-COBPILED

ALG1 . SPITTA.

06/05/78

ALG1

BEZEICHNUNG: ALGORITHBÜS 1 : RECHHDNGSKOPF FIT N K T I O N : DAS FOLGENDE PROGRABB S C H R E I B T EIMEN RECHNOBGSKOPF ADS DEN DATEN E I N E R L O C H K A R T E , D I E SATZ E I N E R KIJMDENDATEI I S T . D I E DATEI I S T IN EINER SATZBESCHREIBUNG •KOHDEN' FESTGELEGT. LOESUNGSWEG: NACH E I N L E S E N J E D E R LOCHKARTE WERDEN NACHEINANDER D R E I A U S G A B E Z E I L E N DES RECHNTJNGS K O P F E S G E D R t I C K T . DER RECHNONGSKOPF E N T H A E L T : A N S C H R I F T / KUNDENNUBBER / RECHNUNGSNUBBER / DATUB. D I E RECHNUNGSNUMMER WIRD VOH PROGRABB V E R G E B E N , UND ZWAR AB E I N E R ALS VORLAUFKARTE E I N G E G E B E N E N L E T Z T E N RECHNUNGSNUMMER. D I E R E I H E N F O L G E DER KUNDENKARTEN I S T B E L I E B I G .

ENVIRONMENT D I V I S I O N . • + ••»•••••••••••••• + •••»••• + + «• + CONFIGURATION

SECTION.

SOURCE-COBP0TER. OBJECT-COBPUTER. INPÖT-OUTPOT

IBB-370-158. IBB-370-158.

SECTION.

FILE-CONTHOL. SELECT KUNDEN-FILE SELECT RECHNG-KOPF-FILE

ASSIGN ASSIGN

TO TO

UR-25i»0R-S-SYSI!f. UH-14O3-S-STSO0T.

332

Beispiellösung zu Tell II

• + * + + • + •• 4-+ 4- • + • DATA D I V I S I O N . *•*• + + + + + + 4-4-+«• max-index. BEENDE AUSFUEHRUNG. einordnen-lesen. /# e b e n e 2 # / /* v o r a u s s e t z u n d i d u e l t i g e d e l e s e n e k a r t e #/ MACHE hochschieben BIS tab-nummer(lfd-index) < kunden-nr. UEBERTRAGE kunden-satz NACH tab-element tab-lenslth DANN UEBERTRAGE 'voll' NACH tabelle-voll meldunä und zuletzt Se lesene karte aussieben. hochschieben. UEBERTRAGE tab-element T A B - L E N G T H THEN D I S P L A Y ' T A B E L L E ZD K L E I N ! ' DISPLAY « 7.HLETZT G E L E S E N E DISPLAY ' • KMNDEN-SATZ.

KARTE:

EINORDNEN-LESEN. PERFORM H O C H S C H I E 3 E S U N T I L TAB-NUM MER ( L F D - I N D E X ) < K U N D E N - N R . HOVE KTTNDEN-S ATZ TO T A B - E L E M E N T ( L F D - I N D E X • 1 ) . S E T L F D - I N D E X TO Ì 1 A X - I N D E X . PERFORM K A R T E - L E S E N . HOCHSCHIEBEN. MOVE T A B - E L E M E N T ( L F D - I N D E X ) S E T L F D - I N D E X DO«N BY 1 .

TO T A B - E L E M E N T

'JEBERSCHRIFT-SCHREIBEN. DISPLAY SPACES. DISPLAY «SORTIERTE KARTENDATEI: • ; DISPLAY • ' ; DISPLAY AUSDRUCKEN. DISPLAY TAB-ELEMENT (LFD-INDEX).

3.

(LFD-INDEX

+

1)

SPACES.

Eingabedaten

FILE:

FILE

SYSOUT

A

CMS

1 2 4 1 6 S E I E R , FRANZ 13722 RICKRIEGEL, HEINRICH 1 3 7 2 3 H A E B E R L S , EGON 14211PFLEIDERER, ALOIS 14212SCHOLZ, FRANZ-ANTON-FELIX 11723RUHMER, FRIDOLIN 0 6 7 4 2 HAMMER, E R I K A 0 9 3 4 5 S T A M P E R L , EDE 11471MASSKRfJG, HEINER 1 1 4 7 2 POKAL, HEINRICH 1 1 4 7 3 SCHWENKER, J A N

4.2B

-

TD

BERLIN

1000BERLIN 33 2 0 0 0 HA 8BORG 1 1 7000STUTTGART 7460BALINGEN-KIRCHE 2000HAMBURG 2 2 6900HEIDELBERG-LEIMEN 7500KARLSRUHE 2 8 2 3 0 B A D REICHENHALL 2323LINGHOOR 2 323LINGMOOR 2 323LINGMOOR

JAEGEBNEISTE MALTESERSTF DOORNKATST AH H I M B E ^ BINSENKr BIERGA' KRIEG' NONN KOP MC ¥

340

Beispiellösung zu Teil II

4. Ausgabedaten

FILE5 FILE

SYSOUT

A

CMS 4.2B - TU BERLIN

TABELLE ZU KLEIN ! ZULETZT GELESENE KARTE 5 11472POKALt HEINRICH

2323LINGM00R

MOORAL

SORTIERTE KARTENDATEIi 06742HAMMERt ERIKA 09345STAMPERLt EDE 11471MASSKRUG» HEINER 11723RUMMER» FRIDOLIN 12416MEIERr FRANZ 13722RUCKRIEGEL> HEINRICH 13723HAEBERLE» EGON 14211PFLEIDERER r ALOIS 14212SCH0LZt FRANZ-ANTON-FELIX

7500KARLSRUHE 2 8230BAD REICHENHALL 2323LINGM00R 6900HEIDELBERG-LEIMEN 1000BERLIN 33 2000HAMBURG 11 7000STUTTGART 7460BALINGEN-KIRCHE 2000HAMBURG 22

KRIEGSS 7 NONNGAP KORNWE' BIERGC JAEGF MALT DOO' AM BJ

Anhänge

Anhang 1: Die COBOL-Notationssprache (NtS)

1. Syntaktische Elemente Syntax ist das Gefüge formaler Regeln zur Abfassung eines Textes in einer Sprache. Dieses Gefüge wird ausgedrückt durch bestimmte Sprachelemente, wie z.B. Punkt und Komma in der deutschen oder englischen Sprache. Eine formale Sprache ist eine Sprache, deren Aufbau durch eine Syntax beschreibbar und deren Semantik (Bedeutung der Sprachelemente und deren Zusammenhang) für jedes Sprachelement eindeutig angebbar ist. Zur Beschreibung der Syntax einer formalen Sprache (z.B. eine Programmiersprache) verwendet man syntaktische Elemente. Dies sind Formelzeichen, die dazu dienen, die Syntax allgemein zu fceschreiben. Die Beschreibung von formalen Sprachen kann wiederum durch eine formale Sprache erfolgen. Diese wird dann bezüglich der beschriebenen Sprache als Metasprache bezeichnet. Eine solche Metasprache in bezug auf COBOL stelle die COBOL-Notationssprache dar. Wir verwenden die syntaktische Beschreibungsform in Anlehnung an Backus und Naur, die sog. Backus-Naur-Formelsprache (BNF) (Einzelheiten hierzu bei: Backus et. al. und Schappert). Es bedeuten: (begriff)

Steht ein Begriff in spitzen Klammern, so handelt es sich um ein Merkmal oder auch Klassennainen. Bsp: (färbe) Wird statt des Merkmals eine Ausprägung geschrieben, fällt die spitze Klammer weg. Bsp: blau Alle Ausprägungen einer syntaktischen Beschreibung stellen syntaktische Elemente dar. Man nennt sie auch atomare Symbole.

::=

Ergibtsymbol (Steht hinter einem Merkmal, das in weitere Merkmale oder atomare Symbole aufgelöst wird.)

I

Logisches (exklusives) ODER (aus drucktechnichen Gründen verwenden wir dafür das Zeichen ! )

[ ]

Optionale Verwendung, d.h. das Sprachelement kann, muß aber nicht benutzt werden.

344

Anhang 1: Die COBOL-Notationssprache (NtS)

(begriff-liste)

Ein angehängtes "-liste" an einen Klassennamen zeigt an, daß die Klasse (bzw. Ausprägung des Merkmals) beliebig oft wiederholt werden kann.

Jedes Zeichen in einer Syntaxbeschreibung hat eine Bedeutung. Steht z.B. dort ein Punkt außerhalb spitzer Klammern, so ist er imbedingt zu verwenden. Exkurs: Der Punkt hat in COBOL eine zentrale Bedeutung als syntaktisches Element. Ein Punkt beendet einen Befehls-Satz oder eine Deklaration. Der durch den Punkt beendete Prograirmteil (in COBOL wie auch der NtS) kann sich über beliebig viele Zeilen erstrecken. Die Bedeutung von Komma und Semikolon ist nicht so fundamental wie die des Punktes. Sie dienen lediglich der optischen Gliederung des Textes und können auch fehlen. Mit Komma trennen wir Elemente einer Aufzählung, mit Semikolon mehrere Befehle eines Befehls-Satzes.

2. Syntaxbeschreibungen Eine Syntaxbeschreibung besteht aus syntaktischen Elementen und Merkmalen. Alle Merkmale werden so lange in syntaktische Elemente (= atomare Symbole) aufgelöst, bis rechts hinter dem Ergibtsymbol nur noch atomare Symbole stehen. Atomare Symbole sind nicht weiter auflösbar und somit Ausprägungen der Syntax. Sie stehen demzufolge nie in spitzen Klammern. Beispiel:

{ i » { * «

! ! isoriderzeichen? 1 ! 2 ! 3 ! 4 ! 5 ! 6 ! 7 ! 8 ! 9 ! 3 b c x a A C •• • Y B X * *

+ /

X

f

S *

345

4. Aufbau der Sprache

3. Konzept der Notationssprache Ziel der Verwendung einer Notationssprache zum Entwurf von COBOL-Programmen ist es, den Programmentwurf auf das Wesentliche zu lenken, nämlich auf den Entwurf von Datenstrukturen und auf ihnen operierender Algorithmen. Sie entkleidet COBOL vor allen diesem Ziel nicht dienenden problernfremden Details, lehnt sich aber doch so eng an COBOL an, daß eine direkte Umsetzung Algorithmus - Programm möglich ist. Aus diesem Grunde wird z.B. die Ausdehnung eines Datums mit angegeben, obwohl vom Problem her der Typ ausreichend wäre. Die NtS erleichtert sowohl das Erlernen von COBOL als auch das Erlernen des Entwurfs von Algorithmen schlechthin. Sie kann als verbale Alternative zur Entwurfstechnik m.H. von Struktogrammen (Schnupp, Floyd, Kap. 1.3.3) gesehen werden. Die deutsche Ausdrucksweise wurde gewählt, im Notationssprache und Inplementierungssprache (COBOL) klar voneinander zu trennen. Der Leser kann jedoch ebenso die entsprechenden COBOL-Sprachelemente direkt verwenden, wenn ihm die deutsche Ausdrucksweise als unnötiger Umweg erscheint.

4. Aufbau der Sprache Die NtS kennt zwei prinzipielle Sachverhalte, die sie beschreibt: 1. Daten

(Datenteil)

2. Operationen (Prozedurteil). Bestimmte Sprachelemente (= reservierte Worte) in beiden Teilen haben eine festgelegte Bedeutung und Schreibweise. Sie werden in Großbuchstaben geschrieben. Alle anderen Sprachelemente (= Programmiererworte) - das sind Namen, klartextliche Beschreibungen und Kommentare - werden in Kleinbuchstaben geschrieben. Sie sind weitgehend frei formulierbar. Sie bestehen aus Buchstaben, Ziffern und dem Bindestrich. Einzige formale

346

Anhang 1: Die COBOL-Notationssprache (NtS)

Einschränkung ist: Sie dürfen kein Leerzeichen enthalten. Exkurs: Das Leerzeichen hat in COBOL eine ähnlich zentrale Bedeutung wie der Punkt. Es ist Trennzeichen zwischen den syntaktischen Elementen der Sprache. Es wird wie folgt behandelt: Zwei syntaktische Elemente der Sprache werden durch ein oder beliebig viele Leerzeichen voneinander getrennt. Daraus ergibt sich, daß ein COBOL-Satz (der mit einem Punkt endet) sich über beliebig viele Zeilen erstrecken kann. Erläuternde Texte zum Algorithmus nennt man Kommentare. (Sie sind auch Teil eines COBOL-Programms, werden dort jedoch anders gekennzeichnet, nämlich durch * in Spalte 7 eines 80spaltigen Satzes (entspricht der Lochkarte)). Da die Einteilung in Spalten zu den problemfremden Details von COBOL gehört, haben wir für die NtS die Konvention der Programmierersprache PL/1 übernommen. In der NtS drücken wir Kommentare folgendermaßen aus: : $= /#

;t>

#/

Datenteil wie Prozedurteil bestehen aus Sätzen (beendet durch einen Punkt! ). Ein Satz im Datenteil beginnt i.d.R. mit einem Datennamen, dem die Attribute des Datums folgen. Ein Satz im Prozedurteil beginnt immer mit einem Befehlswort, dem Ergänzungen zum Befehl folgen. Ein Befehlswort ist immer ein reserviertes Wort. Den Aufbau im Zusammenhang und in der Anwendung entnehme man den zahlreichen Beispielen in Teil II, Kap. 2. Literatur: Backus, I.W. et.al.: Revised Report on the Algorithmic Language ALGOL 60, in: Numerische Mathematik 4 (1963), S. 420 - 453 Schappert, H.:

Deutsche Syntax einer englischen COBOL-Fassung, in: Elektronische Rechenanlagen 9 (1967) H. 2, S. 74 - 84

Anhang 2: Beschreibungsformalismen zu COBOL (COBOL-Syntaxschreibweise) In Manuals (Programndererhandbücher der EDV-Hersteller) werden zur Erklärung der COBOL-Syntax andere Formalismen verwendet. Sie weichen von BNF (vgl. Anh. 1) völlig ab. Sie sind international genormt, daher verwenden wir sie auch hier, haben jedoch den entscheidenden Nachteil, daß sie sich nicht auf einfache Weise mit zeilenweise druckenden EDV-Druckern darstellen lassen. (z.B. geschweifte Klammern über mehrere Zeilen)

1. Syntaktische Elemente 1. COBOL-Wörter mit fester Bedeutung sind mit Großbuchstaben geschrieben. Sie müssen korrekt geschrieben werden (einschl. eventueller Bindestriche) und dürfen nicht als Daten- oder Prozedurnamen verwendet werden. 2. Unterstrichene COBOL-Wörter nüssen geschrieben werden, wenn der gewollte Effekt erreicht werden soll. Nicht unterstrichene COBOL-Wörter können weggelassen werden. 3. Wörter in Kleinbuchstaben stehen für Daten- und Prozedurnamen, die der Programmierer frei wählen kann. 4. Eckige Klammern zeigen wahlweisen (optional) Text an. Er kann verwendet oder ausgelassen werden, je nachdem, was mit der Vereinbarung oder Anweisung bezweckt werden soll. 5. Geschweifte Klammern deuten an, daß von den untereinander in den Klammern stehenden Textteilen genau einer benutzt werden muß. 6. Drei Punkte zeigen an, daß der Text, der in den unmittelbar vorangegangenen Klammern steht, beliebig oft wiederholt werden kann.

2. Beispiel

ADD

datenname-l

datenname-2

! liter al-1

! literal-2 TO

datenname-3

[ datenname-4]

348

Anhang 2: Beschreibungsformalismen zu COBOL (Cobol-Syntaxschreibweise)

Erläuterungen: (1) ADD ist ein COBOL-Wort, das geschrieben werden muß, und zwar ein Befehlswort.

S

datenname-1 I literal-1 j

Der Wert, der auf ein Ergefcnisfeld addiert werden soll, darf sein entweder eine Variable

(datenname-1) oder eine

Konstante

S

( literal-1)

datenname-2 I literal-2

(

Es kann auch ein zweiter Wert auf das Ergefcnisfeld addiert werden. Dies ist wiederum entweder eine Variable oder eine Konstante.

(4) ... Die Punkte zeigen, daß auch weitere Werte auf das Ergefcnisfeld addiert werden können. (5) TO datenname-3. TO ist ein notwendiges COBOL-Wort und steht unmittelbar vor dem Ergefcnisfeld datennaire-3. (6) datenname-4

... Dies legt fest, daß die Addition auf mehrere

Ergefcnisfelder zulässig ist.

Anhang 3: Codierung

1. Grundprinzipien der Codierung

In diesem Anhang soll die knappe Aussage über die Codierung von Zeichen aus II.2.1 mit etwas mehr Hintergrund gefüllt werden. Dieser erscheint notwendig, da sich der Anwender von Conputern (insbesondere der Anwendungsprogrammierer) heute leider (!) immer noch mit Fragen der Darstellung von Zeichen im Rechnersystem konfrontiert sieht, obwohl die Darstellung von Zeichen im Rechner zu den technischen Details gehört, die außerhalb des Rechners keine Rolle spielen sollten. Bezüglich einer relativ umfassenden Darstellung zur Codierung, insbesondere deren informationstheoretischem Hintergrund sei auf das Buch von Dworatschek (Teil III, Kap. 2) verwiesen. 1.1 Begriffe Codieren ist die Umsetzung eines Alphabetes (vgl. II.2.1) in ein anderes. Die Umsetzungsvorschrift, meist dargestellt durch eine Zuordnungsliste, nennt man Code. Wie bereits bekannt, arbeiten Conputer intern nur mit zwei nöglichen Zuständen, d.h. ihr Zeichenvorrat umfaßt das Alphabet der Dualziffern (L,0 oder 1,0). Wie setzt man ein gebräuchliches Alphabet, z.B. das der Dezimalziffern, der Buchstaben u.a. in das Alphabet der Dualziffern um, d.h. wie codiert man? Der Vorgang sei an einem einfachen Beispiel erläutert: Aufgabenstellung: Das Alphabet der Dezimalziffern soll in das der DualZiffern umgesetzt werden. Da eine dezimale Stelle 10 Zustände, eine duale nur 2 zuläßt, ist eine Umsetzung nur über eine Erhöhung der Stellenzahl an Dualziffern möglich. 2 Dualstellen ermöglichen 4 Zustände, 3 ermöglichen 8 Zustande:

Anhang 3: Codierung

350

000

L . 9 _ o1 0 •2 = 2

00 LO _ 2 OL * 4 - 2 LL

00L OLL L00 _ 3 LOL * 8 - 2 LLO OLO LLL

Informationstheoretisch kann man folgende Gesetzmäßigkeit nachweisen: Mit n Stellen lassen sich 2 n Zustände verschlüsseln. Bisher haben wir mit 3 dualen Stellen erst 8 dezimale Zustände erfaßt. Da wir 10 Zustände codieren müssen, ist eine Erweiterung auf 4 duale Stellen notwendig. Dies ermöglicht entsprechend der obigen 4 Gesetzmäßigkeit die Codierung von 2 =16 Zuständen. 6 Zustände bleiben dabei ungenutzt. Wir werden sie in 2. wieder aufgreifen. Es gibt mehrere Möglichkeiten, die 10 benötigten Kombinationen, sog. Tetraden, zur Codierung einer Dezimalziffer aus den 16 möglichen auszuwählen. Sie sollen hier nicht besprochen werden (vgl. dazu z.B. Dworatschek). Für unsere Zwecke genügt es zu wissen, daß die 6 ungenutzten Kombinationen als Pseudotetraden bezeichnet werden. 1.2 Die Codierung von Zahlen Bisher haben wir mit Hilfe einer Tetrade nur eine Dezimalziffer codiert. Selbstverständlich kann man auch eine Dezimalzahl durch fortwahrende Erhöhung der Stellenzahl der Dualzahl codieren. Aus praktischen Erwägungen geht man jedoch heute anders vor: Eine Dezimalzahl wird ziffernweise in duale Tetraden verschlüsselt; der Computer rechnet intern im Dezimalsystem, wobei die Ziffern dual sind. Im Verkehr mit der Außenwelt des Conputers bedient man sich einer Darstellung der Tetraden und Pseudotetraden im Hexadezimalsystem (16 mögliche Zustände, 16 = 24). Dabei werden die Positionen 10 bis 15 mit den Großbuchstaben A bis F gekennzeichnet.

2. Weitere Aufgaben eines Codes

351

Es bedeuten: LOLO LOLL LLOO LLOL Tun

:A :B :C :D :E

T.T.T.T. :

F

1.3 Die Codierung weiterer Zeichen Um zu den Ziffern noch die Großbuchstaben und einige wichtige Sonderzeichen codieren zu können, benötigt man einen 6-bit-Code. Er erlaubt 26 = 64 rrögliche Zustände (10 Ziffern + 26 Großbuchstaben + 28 Sonderzeichen ). Er heißt BCD-Code (1binary coded decimal1) und war in der Datenverarbeitung lange Zeit sehr verbreitet. Heute verwendet man allgemein einen 8-bit-Code, um keinen Beschränkungen in der Darstellungsmöglichkeit von Zeichen zu unterliegen z.B. Kleinbuchstaben). 8

Ein 8-bit-Code erlaubt die Codierung von 2 = 256 Zuständen. Üblich sind der EBCDI-Code ('extended binary coded decimal interchange code') und der ASCII-Code ('American Standard code II'). Die 8 bit zur Verschlüsselung eines Zeichens heißen 1 Byte. Das Byte ist in vielen Corrputern die kleinste adressierbare Speichereinheit (sog. Bytemaschinen im Gegensatz zu Wortmaschinen, bei denen nur größere Einheiten adressierbar sind). Da man, wie in 1.1 dargestellt, eine Dezimalziffer in 4 bit = 1 Halbbyte vinterbringen kann, werden Zahlen häufig gepackt im 2. Halbbyte eines Byte dargestellt. Die erste, bei allen Ziffern gleiche Tetrade (= F (hexadezimal) für positive, D (hex.) für negative Zahlen) wird für die gesamte Zahl nur einmal gebraucht. Man spart so Speicherplatz.

2. Weitere Aufgaben eines Codes Neben der Umsetzung eines Alphabetes in ein anderes hat ein Code noch

352

Anhang 3: Codierung

eine weitere Aufgabe, die ihm sozusagen als "Abfallprodukt" zukommt: die Fehlererkennung. Was für Fehler sind damit angesprochen? In einem Coirputersystem werden die bits eines codierten Zeichens durch elektronische Impulse übertragen. Hierbei können technisch bebedingte Übertragungsfehler auftreten: ein bit wird verfälscht, also in sein Konplement verkehrt. (Da nur 2 Zustände möglich sind, kann ein Übertragungsfehler nur das Konplement bewirken!) Solche Fehler können mit einer gewissen Wahrscheinlichkeit erkannt werden. Die Methoden zur Erkennung sind entweder die Ausnutzung der Coderedundanz, das sind die Pseudotetraden, oder die Hinzufügung eines Prüfbits an jedes Byte. 2.1 Coderedundanz Entsteht durch einen Übertragungsfehler etwa einer Dezimalziffer eine Pseudotetrade, so kann dies als Fehler erkannt werden. Der 8-bitCode enthält eine erhebliche Coderedundanz (ca. 50 %), die die Sicherheit der Datenübertragung verbessert. 2.2 Prüfbits Erweitert man die Verschlüsselung eines Zeichens um ein sogenanntes Prüfbit, so ergibt sich folgende Möglichkeit: Das Prüfbit wird vom Conputer automatisch immer so gesetzt, daß die Quersumme der bits eines Bytes gerade (1parity even') oder ungerade ( 'parity odd1 ) ist. Die gewählte Methode ist vom Corrputersystem abhängig. Die Parität wird bei jeder Datenübertragung automatisch geprüft ('parity check'). Ist ein bit durch einen Übertragungsfehler verfälscht, wird das Zeichen als fehlerhaft zurückgewiesen, die Übertragung automatisch wiederholt. Bei Verfälschung von 2 bits gleichzeitig-versagt diese Methode. Die Wahrscheinlichkeit für diesen Fall ist jedoch sehr gering.

353

Literatur

Exkurs: Übertragungsfehler spielen vor allem bei der Datenfernübertragung (DFÜ) eine erhebliche Rolle. Unter DFU versteht man jede Datenübertragung über Kabel oder drahtlos über eine Entfernung von mehr als 600 bis 1000 m. Zu Einzelheiten dieses immer mehr in den Vordergrund der Datenverarbeitung rückenden Gebietes vgl. z.B. Öttl. Literatur: Dworatschek, S.: Grundlagen der Datenverarbeitung, 6. überarb. u. erweit. Auflage, Berlin - New York 1977 Öttl, K.:

Daten-Übertragung und -Fernverarbeitung, Berlin - New York 1974

Anhang 4: Betriebssystem und Job-Control

1. Funktionen eines Betriebssystems

Das Betriebssystem ist diejenige Software einer Rechenanlage, die zum Betrieb der Hardware und zum Ablauf der Anwendungssoftware notwendig ist. Es wird vom Hersteller der Hardware als Bestandteil des Conputers mitgeliefert. Ohne das Betriebssystem ist die Hardware totes Material, das keine Daten verarbeiten kann. Zwei zentrale Begriffe sind mit der Funktion eines Betriebssystems verbunden: - Betriebsmittel ('ressources') - Aufgaben

('tasks1).

Die englischen Begriffe haben sich in der deutschen Fachsprache eingebürgert. Ressourcen sind Hardware- und Softwarebestandteile des Computers, z.B. Ein-/Ausgabegeräte, Plattenlaufwerke, Prozessor, Internspeicher, aber auch Dienstprogramme zum Sortieren, Übertragen von Daten u.a. Tasks sind Programme oder Teile von Programmen, die bestimmte Ressourcen benötigen. Eine Folge von Tasks, meist bezogen auf einen bestimmten Benutzer, nennt man Job. Ein Job ist also ein Auftrag eines Benutzers an das Betriebssystem. Den zeitlichen Ablauf einer Task nennt man Prozeß. Die Funktionen eines Betriebssystems lassen sich in zwei prinzipiellen Aufgaben zusammenfassen: (1) Ressourcenverwaltung (2) Prozeßkoordination. zu (1): Die verschiedenen Tasks nüssen sich die knappen Ressourcen teilen. Dies sind vor allem Prozessorzeit, Internspeicherplatz, Ein-/ Ausgabeeinheiten. So können etwa mehrere Tasks zur gleichen Zeit den Drucker anfordern, den es nur einmal gibt: Es entsteht eine Warteschlange.

2. Bestandteile eines Betriebssystems

355

zu (2): Die Aufteilung der Tasks auf die Ressourcen erfolgt durch die Prozeßkoordination nach bestimmten Prioritätsregeln. Weiterhin muß sie gegenseitige Blockierungen von Tasks verhindern: Es kann vorkommen, daß zwei Prozesse gleichzeitig auf dieselbe Ressource zugreifen wollen (etwa einen auf einer Plattenspur gespeicherten Datensatz) oder daß sie genau gleichzeitig jeweils die Ressource anfordern, die der andere inne hat. Dann muß das Betriebssystem eine Situation der Art "bitte nach Ihnen, bitte nach Ihnen" ('deadlock') erkennen und danach in einen eindeutigen Ablauf bringen, d.h. eine "Verklemmung" vermeiden. Das Beispiel zeigt, daß die Prozeßkoordination die Tasks überwachen ('supervision') muß. Hierzu muß es sie unterbrechen können ('Interrupt' ), um selbst die Kontrolle zu übernehmen.

2. Bestandteile eines Betriebssystems

Der notwendige Bestandteil eines Betriebssystems, der sogenannte Nukleus ('nucleus' = Kern), sind die Programme zur Ressourcenverwaltung und zur Prozeßkoordination, die sogenannten Steuerprograinme. Dies sind Programme mit folgenden Aufgaben: - Verkehr mit dem Operator (Bediener der Rechenanlage) - Fehlerdiagnose und -behandlung - Unterbrechungsbehandlung (Prozeßüberwachung, -umschaltung) - Ein-/Ausgabebehandlung - Datentransfer zwischen Intern- und externen Speichern. Neben dem Nukleus werden auch meist sogenannte Arbeitsprogramme zum Betriebssystem gezählt. Dies sind vor allem: -Übersetzer ('Compiler'; vgl. II.2.5.2) - Binder ('linkage editor1) - Lader ('loader') - Dienstprogramme ('Utilities'). Erläuterungen: Ein compiliertes Programm ist noch nicht ablauffähig. Der Binder fügt zu dem vom Compiler erzeugten Maschinencode noch Systenprozeduren

Anhang 4: Betriebssystem und Job-Control

356

hinzu, z.B. zur Ein-/Ausgabebehandlung. Außerdem wandelt er vorläufige Adressen des vom Coirpiler erzeugten Objektprogramms in endgültige Adressen des Internspeichers um. Der Lader lädt das ablauffähige Programm in einen freien Internspeicherbereich und startet seine Ausführung. Dienstprogramme gibt es z.B. zum Sortieren, Mischen und Kopieren von Dateien, zur Fehlerdiagnose (= 'debugging' = entwanzen) oder zum Nullsetzen des Internspeichers.

3. Arten von Betriebssystemen Man unterscheidet heute zwei Grundtypen von Betriebssystemen: (1) Stapelsysteme (Batchsysteme) (2) Dialogsysteme. zu (1): Bei Stapelsystemen laufen die Jobs nach der Übergabe an den Rechner ohne weitere Eingriffsmöglichkeit durch den Anwender ab. Intern in der Anlage arbeiten diese Systeme heute fast ausschließlich überlappt, so daß etwa ein Job den Prozessor belegt, ein anderer den Drucker, ein dritter ein Plattenlaufwerk usw. (1multiprogramming1). Dies erfolgt, um den von allen Jobs eine gewisse Zeit benötigten Prozessor, der sehr viel schneller arbeitet als die externen Geräte, optimal auszunutzen. Der Prozessor müßte sonst warten, solange ein Prozeß ihn nicht benötigt. zu (2): Beim Dialogsystem kann der Anwender wahrend des Ablaufs seines Jobs in einen Mensch-Maschine-Dialog treten und während des Prograrrmablaufs Daten eingeben oder Ausgaben enpfangen. Meist wird im sogenannten time sharing - Verfahren gearbeitet, bei dem die Prozessorzeit jeweils kurze Zeit einem Benutzer zur Verfügung steht, danach dem nächsten usf. Durch die hohe interne Geschwindigkeit des Rechners, verglichen mit seiner eigenen dazu langsamen Arbeitsweise, hat der Benutzer den subjektiven Eindruck, die Anlage stehe ihm allein zur Verfügung.

4. Die Schnittstelle des Betriebssystems zum Benutzer

357

Ein Dialogsystem kann meist auch im 'batch mode' benutzt werden, d.h. es können parallel zum Dialogbetrieb auch Programme im Stapelbetrieb ohne menschlichen Eingriff ablaufen.

4. Die Schnittstelle des Betriebssystems zum Benutzer 4.1 Der Anwender als Benutzer Beim Stapelsystem hat der Anwender mit dem Betriebssystem keinerlei Berührung. Die Ablauf Vorbereitung der von ihm benutzten Programme übernehmen der Operator (das ist der Bediener des Coirputers) oder der Anwendung sprogrartinierer. Beim Dialogsystem muß der Anwender die Ablaufvorbereitung teilweise selbst vornehmen. Er muß dazu eine Koitmandosprache beherrschen, mit der er dem Betriebssystem Anweisungen erteilt, damit es sein Anwendungsprogramm ablaufen läßt. 4.2 Der Anwendungsprogrammierer als Benutzer Das Anwendungsprogramm und die dazugehörigen Daten genügt nicht als Eingabe für das Betriebssystem. Dem Betriebssystem muß mitgeteilt werden, was die Eingabe darstellt, was es mit ihr tun soll und welche bereits gespeicherten Daten es dem Prograrrm zur Verfügung stellen soll. Dies gilt für ein Stapel- wie für ein Dialogsystem. Bei letzterem bedient sich der Anwendungsprograircnierer der Kommandosprache und gibt die Kommandos im Dialog ein. Beispiel: (IBM 370, Betriebssystem CMS (1conversional monitoring system')): Ein COBOL-Prograiran mit dem Namen ABC steht auf Platte gespeichert zur Verfügung, ebenso die Eingabedaten unter der Bezeichnung FILE SYSIN. Eingaben des Benutzers sind in Kleinbuchstaben, Antworten des Systems in Großbuchstaben geschrieben. Die Systemantwort R steht für 'ready'.

Anhang 4: Betriebssystem und Job-Control

358

cobol Ri

filedef RJ load Ri

Aufruf des COBQL-Corrpilers

abc

sasin

file sysin steht auf Magnetplatte

disk

Aufruf des Laders für Programm ABC

abc

filedef

sysout

Ausgabe soll auf dem Bildschirm erfolgen

terminal

R» start EXECUTION

Startbefehl für das ladefähige Programm

BEGINS...

hier kann Diolog BenutzerProgramm erfolgen

Beim Stapelsystem muß der Anwendungsprogrammierer alle Anweisungen an das Betriebssystem vor der Übergabe des Jobs an das System aufschreiben wie vorher sein Programm. Hierzu dient eine sogenannte Job Control Lanquaqe (JCL), die man als Programmiersprache des Benutzers für das Betriebssystem auffassen kann. Ebenso wie eine Programmiersprache unterliegt sie einer genau festgelegten Syntax, die strenger ist, als die der Dialogsprache. Beispiel (JCL für IBM 360/370):

(jede Zeile ist eine Lochkarte)

//BEISPIEL //UEBUNG //C.SYSIN

(1) (2) (3)

!

JOB 0R61MEIER EXEC COBCLG DD *

COBOL-Proäramm

/* //C.SYSOUT //G,SYSOUT //G.CARDIN

DD DD DD

SYS0UT=A SYS0UT=A *

(4) (5,6) (7)

Eingabedaten

/* //

(8) (9)

Literatur

359

Erläuterungen: (1): Die Jobkarte kennzeichnet den Benutzer. Das Betriebssystem belastet die Abrechnungseinheit ORG mit den Rechnerkosten. (2): Mit Hilfe der EXEC-Karte werden interne Programme des Betriebssystems aufgerufen; hier der COBOL-Compiler (C), der Lader (L) und ein'Programm zum Starten (G = go). (3): Für die Compilation (C.) folgen in der Standard-Eingabe die Karten des Programms. (4): Dies ist die end-of-file-Marke: Das File COBOL-Programm ist zuende; es folgen weitere Jobkarten. (5,6): Die Ausgabe für den Schritt Compilation (C.) und 'go' (G.) erfolgt auf ein File mit dem Namen SYSOUT auf dem Drucker A. (7): Für den Schritt 'go' folgen die Eingabedaten unmittelbar als Karten. (8): End-of-file der Eingabedaten. (9): End-of-job-Karte.

Literatur: Krayl, H. , Neuhold, E.J., Unger, C.: Grundlagen der Betriebssysteme, Berlin - New York 1975 Tsichritzis, D.C., Bernstein, P.A.: Operating Systems, New York - London 1974

Sachregister

Ab 1 auf d i agr amm Ablaufstruktur ACCESS ACTUAL KEY Adaptabilität Adresse Adressierung -direkte Adresskette Adresstabelle Adressverweis Aendern Aktionsanzeiger Aktivität Akzeptanz Algor ithirus Alphabeth Alphanumerisch Anforderungen an die EDV Anker / Ankeradresse Anweisungen -elementare Anweisungen -selbstformulierte AnwenderSoftware Arbeitsbereiche Arbeitsprogramme Arbeitsspeicher Kapitel Array ADCII - Code Aufgabe Aufruf Ausdehnung Ausgabeeinheit Ausprägung Auswahl

187 268 307 307 , 312 225 , 273 156 52 284 279 188 182 203 212 , 214 , 216 , 202 , 114, 248 , 250 , 113, 239 355 239 217 351 182 249 215 224 343 257

Basismaschine Baukasten BaukastenStückliste Baum Baum -binaerer Baum -einstufiger Baum -mehrstufiger Baum -n-aerer Bedarfsrechnung / Bedarfsermittlung Bedingungsanzeiger Befehl

50, 135 , 228 , 127 114 186 , 285 285 114, 127 , 285 114, 286 285 103 , 105,, 139 188 224 , 231 , 298

308 230

248 349 221 208 115 266 266 226

Sachregister

362 Befehl -bedingter Befehl -unbedingter Benutzerfreundlichkeit Benutzerklasse Benutzermaschine Benutzermode11 Benutzerschnittstelle Betriebssystem Betriebsverf assungsgesetz Bildschirmgerät Binder Bit Block Boolesch Bottom-up-Ansatz Bruttobedarf Bundesdatenschutzgesetz Byte Bytemaschine BCD - Code

233 233, 245 311 206 50, 73, 135, 228 136 . 206, 209 61 226 179 f, 203 22 , 112, 136 355 214 239 , 272 216 , 222 198 139 , 144 180 215 351 351

CALL ... USING COBOL COBOL -reservierte Wörter COBOL -Maschine COBOL -Programmierer-Wörter COBOL -Schlüsselwörter COBOL -Zusatzwörter COBOL-Befehl ACCEPT COBOL-Befehl ADD COBOL-Befehl CLOSE COBOL-Befehl COMPUTE COBOL-Befehl DISPLAY COBOL-Befehl IF COBOL-Befehl MOVE COBOL-Befehl OPEN COBOL-Befehl PERFORM COBOL-Befehl READ COBOL-Befehl READ ... INVALID KEY COBOL-Befehl REWRITE COBOL-Befehl STOP RUN COBOL-Befehl SUBTRACT COBOL-Befehl WRITE COBOL-Befehl WRITE ... INVALID KEY Code / Codierung Coderedundanz Compiler

322 289 290 230 290 290 290 299 305 241 , 305 299 305 302 241 , 299 302 307 308 299 305 302 308 214, 352 228 ,

Darsteilungstechniken DATA DIVISION

185 ff 293 217 , 224, 238, 298 239

Datei Pateien

Kapitel

301

301

268, 349 355

363

Sachregister

Dateiorganisâtion Dateiorganisation -direkt Dateiorganisation -gestreut Dateiorganisation -index-sequentiell Dateiorganisation -sequentiell Daten Daten -analoge Daten -digitale Daten -elementare Datenbank Datenbasis Datenfernübertragung (DFUE) Datenflussplan Datengruppe Datenname Datensatz -logischer Datenschutz Datensicherheit / -Sicherung Datenstruktur Datenstruktur -höhere Datenteil Datenträger Datentyp Datentyp -alphanumerisch Datentyp -boolesch Datentyp -numerisch Datentypen -elementare Datentypen - strukturierte Deadlock Debugging Deklaration DFUE Dialogbetrieb Dialogsystem Dialogverarbeitung Dienstprogramme Diskette Display - Terminal Dispositionsstufe DIVISION -DATA DIVISION -ENVIRONMENT DIVISION -IDENTIFIKATION DIVISION -PROCEDURE Druck aufbere i tung Drucker

276 53 276 52 276 213 214 213 215 , 294 103 , 113 103 , 135 353 187 217 , 297 215 49 205 112 , 121 32 ff, 49, 131 231 , 239 , : 213 215 295 296 295 215 217 , 221 355 356 221 , 231 353 112, 136 , 356 27, 109 356 275 112 156 292 292 292 292 295 22 f

Ebene -Anwendungsprogrammierung Ebene -Zugriffe EDV-Systeme -Informationsbeschaffung Effizienz / Effektivität Eingabeeinheit Eingabegerät

51 51 203 , 207 f 312 224 232

364

Sachregister

Einzelprogrammierung End of file -Marke Entscheidungstabelle/-regel Entwicklung -top-down Entwicklungsschritte ENTRY ENTRY / EXIT PROGRAM ENVIRONMENT DIVISION Erhebungstechniken Erzeugnisstruktur Erzeugnisstrukturdatei Externe Speicher Externspeicher

310 244, 253 188 ff 31 f, 262, 310 199 ff 56 ff 321 293 193 117, 186 113 224 238

Fakturierung Fallunterscheidung Fehlererkennung Fehlerfall Feinentwurf Feld Festplatte / Festkopfplatte FIFO -Prioritätsregel File FILE SECTION FILLER Flexibilität Floppy Disk Forir.ularwesen Fremdvergabe Funktion Funktionen -Schnittstelle Funktionsschnittstellenbeschreibung

6, 48, 51, 56, 61 ff 257 352 265 267 215, 230 274 131 217 294 303 112, 312 275 5, 12, 2 0 202 51, 318 325 ff 56 ff

Gepackte Speicherung Graphen Grobentwurf Gruppenprogrammierung

351 185 ff 26 7 310

Hardware Hauptstudie Hexadezimalsystem Hintergrundspeicher Hinzufügen HIPO -Technik Hybrider Ansatz

22 6 201 ff 350 274 279 39, 314 198

IDENTIFIKATION DIVISION Implementierung Index Informatik Information Information Hiding

293 19 5 33, 219, 278 213 204 ff, 213 319

365

Sachregister

Informationsanalyse Informationsfluss Input Inside-out-Ansatz Integer Internspeicher Inverted file Istanalyse

203, 204 9 ff, 103, 109 183 198 215 131, 141 f, 224, 230, 274 52 9, 193 f

Jo-jo-Ansatz Job Job Control Language (JCL) Job-Control

198 354 358 137

Kapitel Kassenstammsatz Kennsatz Key Keywords Klassennarr.e Kommandosprache Kommentar Konfiguration Konstante Konstanten -figurative Konstanten / Literale Kontrollstruktur

292 53 272 276 , 280 290 343 357 346 21 , 108, 112, 202 209 216 , 268 291 291 257 , 268

Label record Lader L auf anwe i sung Leitdatei Lesen Lesen -sequentiell LIFO -Prioritätsregel LINKAGE SECTION Liste -lineare Literal Löschen Lösungsvorschlag

272 356 257, 260 114 241 254 131 55 f, 320 283 , 285 216, 234, 291 f 279 194 f

Magnetband Magnetbandkassetten Maschinenbefehl Maschinenprogramme / -spräche Materialfluss Materialwirtschaft Meilensteine Merkmal Metasprache

246 , 271 271 251 228 103 , 109 112 199 28, 343 343

366

Sachregister

Modifizierbarkeit Modul -Schnittstelle Modul / Modularisierung Modulschnittstellenbeschreibung Multiprogramming

312 325 ff 66, 318 56 ff 356

Netzplan NIL NOMINAL KEY Notationssprache Nukleus Numerisch Nutzwertanalyse

187 115, 118 308 31, 212 355 216, 221 195

Objekt Objektprogramm Oeffnen (v. Dateien) Operationen Operationen -arithmetische Operator Optional words Ordnungsbegriff / -kriterium Organisation -gestreute Organisation - index-sequentielle Organisation -seauentielle Organisationsstruktur Output Outside-in-Ansatz

261 228 241 231 236 236, 357 290 52, 276, 280 276 278 276 186 f 18 3 197

Paragraph Parameter Parität Patientenstammsatz Personalvertretungsgesetz Pflichtenheft PICTURE Plattenstape 1 / -laufwerk Präzedenzgraph Pre-checked loop Primärbedarf Problematische Situation Problemlösungsprozess PROCEDURE DIVISION PROGRAM-ID Programmatik Programm Programmablaufplan Programmiererwörter Programmiersprachen Prozedur Prozedurteil Prozess Prozessor

292 323 ff 352 29, 48, 52 f 179 f, 203 208 294 274 187, 204 253 103, 136 195 192 ff 298 29 3 22 7 225 187, 253, 254 345 227 f, 268 249, 299 231 261, 354 224, 262

367

Sachregister

Prüfbit Pseudotetrade Pufferbereiche

352 349 239

Qualifizierung Quellprogramm Queue

228

Random processing Real Rechnungswesen -kaufmännisches Record Redundanzfreiheit Rekursion Reorganisation Repräsentation Reservierte Wörter Ressource Richtigkeit Robustheit (-Software) Rücksprungadresse Satz Schleife Schliessen (v. Dateien) Schlüssel Schnittstelle Schnittstellenbeschreibung Schreib- / Lesekopf Schreiben Schrittweise Verfeinerung Schwachstellenanalyse Sektor Sekundärbedarf SELECT-Klausel Semantik Sequenz Software Software -Außer-Haus Softwareentwicklung Sollkonzept Sollsystem Sollsystem -betriebliches Sortierfolge SPACE Speicher Speicherkapazität Speichermedien

317 131 275 215 4 217 111 249 52, 278 213 345 3^4 152, 262, 264, 266, 311 311 251 217 , 222, 292, 298 251 f, 259, 265 241 276 , 279 51, 55, 122, 135, 319 , 325 ff 51 246 241 31 f, 192, 196 ff, 211 , 262, 267, 310 193 273 105 , 136 293 227 , 232, 343 249 202 , 226, 311 7 f 210 f 20 194 202 214 , 276 303 224 , 230 112 238

368

Sachregister

Speicherung -sequentielle Spezifikation Spezifikationsrahmen Sprache -formale Spur Stack Stapelsystem Stapelverarbeitung Stepwise refinement Steuerprogramme Stückliste Stücklistenauflösung Stufennummer Subskript Subsysteme Suchargument / -begriff Suchbegriff Suchen Suprevisor Symbole -atomare Syntax System System -abstraktes System -dynamisches System -geschlossenes System -konkretes System -offenes System -relativ geschlossenes System -soziales System -sozio-technisches System -statisches System -ziele System -Grenzziehung System -Komponenten System -Management System -Mensch-Maschine-System System -Ressourcen System -Umwelt Systemansatz Systems review Systemsoftware

283 208 ff 135 , 206 f, 209 f 343 273 131 356 27, 108 , 110 267 355 103 , 110 119, 139 295 f 219 181, 196 272 272 279 355 343 227 , 232 , 343 176 185 184 f 184 185 184 184 185 176 185 177 ff 179 177, 181 f 177 , 182 f 185 177 , 181 177, 179 f 174, 200 , 202, 211 198 113 , 226

Tabelle

131, 217, 219 f, 223 , 283 , 297 187 354 251, 257 , 266, 268 106 , 113, 141 119 113 252 , 261 , 266

Tätigkeitsflussplan Task Teilalgorithmus TeileStammdatei Teileverwendung Terminal Terminationskriterium

369

Sachregister

Testen Time sharing Top-down-Ansatz Transformationsfunktion Traversierung

152 356 197 184, 313 119

Ueberlaufprobleme Unterbrechung

278 355

Variable Verarbeitungsform Verbindungsbereiche Vereinbarung Verhalten -menschliches Verifikation Verkettung Verständlichkeit Verweildauer Virtuelle Maschine Voraussetzung Vorstudie VALUE

216, 268 275 321 221, 231 175 311 117 f 317 14 , 23 227

Wechselplatte Wert Wiederholung WORKING-STORAGE-SECTION Wort Wortlänge Wortmaschine

274 215 , 2 6 2 251, 257 294 225 , 230 225 351

Zeichen Zeichenvorrat Zeitstruktur Zeitwirtschaft Zelle Zentralisierung von Funktionen Zielerreichung -Maßstab Zielfestlegung Zugriff

214 214 198 f 112 225 316 177 f, 182 194 111, 135, 271 ff, 274 f, 279 279 51, 122 52 243, 282 226, 230 233, 237 273

Zugriffsalgorithmen Zugriffsmodul Zugriffsweg Zurückschreiben Zustände Zustandsbild Zylinder

262,

266

199 ff 303

w DE

G K. Hambeck

Walter de Gruyter Berlin-New York Einführung in das Programmieren in COBOL 2., verbesserte und erweiterte Auflage. 15,5 x 23 cm. X, 163 Seiten. 1978. Kartoniert DM 24,ISBN 3 11 007574 1 (de Gruyter Lehrbuch)

Kimm / Koch /

Simonsmeier /

Tontsch

Einführung in Software Engineering

15,5 x 23 cm. 306 Seiten. 56 Abbildungen. 9 Tabellen. 1979. Plastik flexibel DM 38,- ISBN 3 11 007836 8 (de Gruyter Lehrbuch)

Schnupp/Floyd Software Programmentwicklung und Projektorganisation 2., durchgesehene Auflage. 15,5 x 23 cm. 260 Seiten. 74 Abbildungen. 6 Tabellen. 1979. Gebunden DM 58,- ISBN 3 11 007865 1 (de Gruyter Lehrbuch)

A. Schulz

Methoden des Software-Entwurfs und Strukturierte Programmierung 15,5 x 23 cm. 179 Seiten. 1978. Plastik flexibel DM 42,- ISBN 3 11 007336 6 (de Gruyter Lehrbuch)

P. Schnupp

Rechnernetze Entwurf und Realisierung 15,5 x 23 cm. 193 Seiten. 1978. Gebunden DM 58,ISBN 3 11 007290 4 (de Gruyter Lehrbuch) Preisänderungen vorbehalten

w DE

G B. Grupp

Walter de Gruyter Berlin-New York Modularprogramme für die Fertigungsindustrie Neutrale Beurteilung • Einsatzerfahrungen Umstellungsprobleme 15,5 x 23 cm. 202 Seiten. 1973. Gebunden DM 48,ISBN 3 11 004260 6

B. Grupp

Elektronische Einkaufsorganisation Ein Lehr- und Handbuch 15,5 x 23 cm. 211 Seiten. 1974. Gebunden DM 5 8 ISBN 3 11 004430 7

D. S. Koreimann Lexikon der

angewandten Datenverarbeitung 11,5 x 18,8 cm. 339 Seiten. 1977. Gebunden DM 34,ISBN 3 11 0069911

Ch. Reichard

Betriebswirtschaftslehre der öffentlichen Verwaltung 15,5 x 23 cm. 287 Seiten. 80 Abbildungen. 1977. Plastik flexibel DM 34,- ISBN 3 11 007133 9 (de Gruyter Lehrbuch)

H.H.Hinterhuber Strategische

Unternehmungsführung

15,5 x 23 cm. 280 Seiten. 1977. Plastik flexibel DM 48,ISBN 3 11 007121 5 (de Gruyter Lehrbuch)

Kieser/Kubicek Organisation 15,5 x 23 cm. 448 Seiten. 1976. Plastik flexibel DM 34,ISBN 3 11 006565 7 (de Gruyter Lehrbuch) Preisänderungen vorbehalten

w DE

G L. Kruschwitz

Walter de Gruyter Berlin-New York Investitionsrechnung 15,5 x 23 cm. XIV, 318 Seiten. 1978. Plastik flexibel DM 39,50 ISBN 3 11 007341 2 (de Gruyter Lehrbuch)

Wetzel/

Mathematische Propädeutik

Skarabis/

für Wirtschaftswissenschaftler

S. Krüger

Simulation

Naeve/Buning

3 überarbeitete Auflage. 15,5 x 23 cm. 215 Seiten. Mit einigen Abbildungen. 1975. Plastik flexibel DM 22,ISBN 3110058928 (de Gruyter Lehrbuch)

Grundlagen, Techniken, Anwendungen 15,5 x 23 cm. 223 Seiten. 1975. Plastik flexibel DM 38,ISBN 311004210X (de Gruyter Lehrbuch)

w. Elben

Entscheidungstabellentechnik Logik, Methodik und Programmierung 15,5 x 23 cm. 140 Seiten. 1973. Plastik flexibel DM 24,ISBN 3110043181 (de Gruyter Lehrbuch)

w. Wetzel

Statistische Grundausbildung für Wirtschaftswissenschaftler 2 Bände. 15,5 x 23 cm. Plastik flexibel (de Gruyter Lehrbuch) I: Beschreibende Statistik 172 Seiten. 40 Abbildungen. 54 Tabellen. 1971. DM 22,- ISBN 3 11 003747 5 II: Schließende Statistik 278 Seiten. 77 Abbildungen. 49 Tabellen. 1973. DM 28,- ISBN 3 11 003748 3

Preisänderungen vorbehalten