HB-Anwender schafft sich mehr Flexibilität:

Dürftiges Doku-Angebot zwingt zum Eigenbau

14.10.1983

Heute angebotene Entwurfs- und Dokumentationssysteme sind meist sehr umfangreich und unterstützen dabei nur ein bestimmtes Verfahren, welches vom Benutzer übernommen werden muß.

Anwender, die solche Systeme nicht anschaffen können oder wollen, aber ohnehin Datenbank- oder

TP-Software einsetzen, verfügen über die notwendigen Voraussetzungen zur Erstellung ihres eigenes

Entwurfs- und Dokumentationssystems. Der folgende Beitrag von Hans-Helmut Grote, Programmierer

bei der Sparkassenbuchungsgemeinschaft, Bad Nenndorf, stellt ein vom Anwender entwickeltes Konzept

vor, das es dieser Gruppe ermöglicht, ein eigenes Entwurfs- und Dokumentationssystem aufzubauen.

Realisiert wurde das "Software-Dokumentations-System" (SDS) in Cobol auf einer Honeywell Bull 66 DPS, ist jedoch auch auf Anlagen der Serie 60/66 unter DMIV-TP lauffähig. Der Maskengenerator unterstützt "Questar"- Bildschirmgeräte, eine Anpassung an andere Displaytypen ist möglich.

Der Einsatz auf anderen Anlagen wird erleichtert, wenn folgende Voraussetzungen gegeben sind: ANSI 74 Cobol mit String/Unstring-Verb, eine Codasyl-Datenbank sowie die maskengesteuerte Ein-/Ausgabe von Nachrichten.

Durch die Organisation in Funktionen und Operationen kann SDS ebenso auf anderen Anlagen implementiert werden, zumal der gesamte vitale Code nur 2460 Zeilen umfaßt, wobei 520 Zeilen auf Definitions-und 1940 Zeilen auf Prozeduranweisungen entfallen.

SDS stellt sich dem Anwender als Summe einfacher Funktionen dar, die durch eine in Kommandosprache geschriebene Prozedur aufgerufen werden und so die gewünschten Systemleistungen ergeben. System und Benutzerdaten werden dabei in der SDS-Datenbasis abgelegt, die den Kern des Entwicklungssystems bildet. Die Funktionen sind entsprechend ihrer Aufgabe zu Routinen zusammengestellt und in Online- und Batch-anwendung gegliedert (Abb. 0.

SDS-Online stellt dem Benutzer Systemleistungen am Datensichtgerät zur Verfügung:

- CTL analysiert die Benutzereingabe, liest die zugeordnete, in Kommandosprache geschriebene Prozedur von der Datenbasis und übergibt die Kontrolle an die Routine DNN.

- DNN interpretiert die Anweisungen der Prozedur und führt die vom Benutzer geforderten Funktionen aus.

- FRM generiert Ein-/Ausgabe-Beschreibungen und transformiert diese in Bildschirmmasken.

- SPN übergibt Aufträge an SDS-Batch.

- SDS-Batch führt Benutzeranforderungen in der Batch-Umgebung aus.

- CNV modifiziert Daten der Datenbasis SDSBSE, erstellt druckaufbereitete Berichte oder gibt Daten auf die sequentiellen Dateien WRK und TRN aus.

- Systemdateien

Die Datenbasis SDSBSE bildet den Kern des Entwicklungssystems. Die Struktur der Datenbank bestimmt die Operationen, die ausgeführt werden können. Dateneinträge werden durch IDN mit den Feldern Datei (FLE), Satzart (RCD) und Schlüssel (KEY) identifiziert; die Daten der Einträge als ENT-Sätze gespeichert. Für einen Eintrag kann der Benutzer mehrere ENT-Sätze anlegen, die dann durch die Angabe im Feld Satzart unterschieden werden Jeder ENT-Satz kann durch Dokumentationssätze beschrieben werden. Dokumentationssätze werden als DCM Sätze gespeichert und mit dem übergeordneten ENT-Satz verkettet.

Die Struktur der Dateneinträge wird durch NDE- und SCR-Sätze gebildet. Für jeden Eintrag kann ein

NDE-Satz angelegt werden, der den SCR-Sätzen übergeordnet ist. Die SCR-Sätze sind mit dem NDE-Satz durch zwei Ketten verknüpft, wobei ENTSYN die synthetische und ENTANL die analytische Kette bezeichnet.

Die Struktur der Datenbank wird grafisch abgebildet, in dem die Sätze (records) als Rechtecke und die Ketten (sets) als Pfeile dargestellt werden.

Die beschriebene Datenbank ist unter SDS mit dem Honeywell Bull Produkt IDS II (Integrated Data Storage) realisiert. IDS n entspricht den

Codasyl-Empfehlungen für Daten

bankzugriff und Datenbankverwaltung.

- Datenstruktur

Ein Datenbereich enthält ein oder mehrere Datenfelder, die durch das Zeichen TAB (Horizontal Tab) voneinander getrennt sein können. Das Trennzeichen muß dem Zeichen entsprechen, das bei formatierten Bildschirmnachrichten die einzelnen Felder trennt. Datenbereiche sind variabel lang, sie werden durch eine Zeichenfolge aus ET (End-of-Text), EOT (End-of-Transmission) und EOM (end-of-medium) abgeschlossen.

- Speicherformat

Datenbereiche, die im Speicher verwaltet werden, sind mit einer Definition (DFN) versehen, die den Datenbereich hinsichtlich des Namens, des Typs, der Länge und der Dezimalstellen beschreibt.

- Ein-/Ausgabeformate

Datenbereiche, die auf der Datenbasis SDSBSE abgelegt werden, sind mit einer Identifikation (IDN) versehen, die den Bereich hinsichtlich der Datei (FLE), der Satzart (RCD) und des Schlüssels (KEY) beschreibt. Die Satzart ermöglicht dem Benutzer unterschiedliche Satzarten innerhalb einer Datei anzulegen. Der Schlüssel identifiziert den Datenbereich, der bis zu 18 Stellen umfassen kann und innerhalb einer Satzart eindeutig vergeben werden muß.

- Nachrichtenformat

Datenbereiche, die als Nachrichten zwischen dem System und dem Benutzer am Datensichtgerät ausgetauscht werden, müssen den Anforderungen des Datensichtgeräts genügen. Datensichtgeräte können in Normalmodus und Formatmodus betrieben werden.

Im Normalmodus wird die Formatierung des Bildschirms durch den Benutzer gesteuert, der Nachrichten mit den Steuerzeichen für Wagenrücklauf und Zeilentransport versehen muß, um das gewünschte Bild zu erzeugen. Eine Maske kontrolliert im Formatmodus die Formatierung des Bildschirms, die Informationen über die Art und die Lage der Felder irr Format enthält: Fixe Felder werden vom Datensichtgerät angezeigt, ihr Inhalt kann durch den Bediener nicht geändert werden. Variable Felder nehmen Informationen auf, die zwischen. Bediener und System ausgetauscht werden.

- Arbeitsspeicher

Der Arbeitsspeicher ist bereichsorganisiert. Die Datenbereiche sind mir den Definitionen versehen, die zur Verwaltung des Speichers erforderlich sind.

Bei der Zuordnung eines Datenbereiches wird die Definition beginnend bei der nächsten verfügbarer Zeichenstelle in den Arbeitsspeicher übertragen und der belegte Speicher um die Länge des Datenbereichs und um die Länge der Definition erhöht.

Bei der Freigabe eines Datenbereiches werden alle nachfolgenden Datenbereiche so verschoben, daß der

freie Bereich geschlossen am Ende des Arbeitsspeichers zur Verfügung steht. Der belegte Speicher verringert sich um die Länge der Definition und um die Länge des Datenbereiches.

- Verarbeitungskonzept

Die Verarbeitung unter SDS ist transaktionsorientiert. SDS Transaktionen werden durch Benutzeranforderungen abgerufen. Für jede Benutzeranforderung ist eine in Kommandosprache formulierte Prozedur auf der Datenbasis SDSBSE verfügbar, deren einzelne Anweisungen die benötigten Funktionen aufrufen und steuern. Die Transaktionsverarbeitung Online erfolgt im Teilhaberbetrieb unter Kontrolle eines TP-Monitors. Der TP-Monitor - koordiniert den Empfang und die Verteilung der Nachrichten im Terminal-Netzwerk, - analysiert die Empfangsnachricht(en) und aktiviert die entsprechende Verarbeitunsroutine und - ordnet den Transaktionen die erforderlichen Systemmittel zu.

Der TP-Monitor ist bei SDS mit dem Honeywell Bull Produkt TDS (Transaction Driven System) unter DMIVTP realisiert. TDS benutzt hier zur Identifizierung der Verarbeitungsroutine die erste Stelle der Empfangsnachricht und kommuniziert mit den in Cobol geschriebenen Routinen über Datenfelder des TP-Constantund Transaction-Storage innerhalb der Linkage Section.

Die Transaktionsverarbeitung Batch erfolgt unter Kontrolle einer Routine, die Daten der Standardeingabedatei (accept) liest. Die auszuführende Verarbeitung wird durch das erste Zeichen der Eingabe gesteuert. Bei Angabe des Zeichens (-) werden Anweisungen von der Standardeingabedatei gelesen, als Prozedur zusammengestellt und in den Arbeitsspeicher geladen. Bei Angabe des Zeichens wird die angegebene Prozedur von der Datenbasis geladen, bei Angabe des Zeichens wird die Verarbeitung der Transaktionen beendet und auf Jobende verzweigt.

- Kommandosprache

Die Kommandosprache dient dazu,

Systemfunktionen aufzurufen und den Ablauf der Funktionen zu steuern.

Prozeduren bestehen aus einem Schlüsselbegriff, der sich aus den ersten drei Stellen der Verrichtung und den ersten drei Stellen des Objektes zusammensetzt, einer Prozedurbezeichnung sowie aus einer Anzahl von Anweisungen.

Anweisungen setzen sich aus einem Schlüsselwort und einer Reihe von Operanden zusammen. Das Schlüsselwort bestimmt die Funktion, die aufgerufen werden soll, die Operanden bezeichnen Datenbereiche die verarbeitet werden sollen.

- Aufbau einer Prozedur

Zur Erläuterung der Arbeitsschritte beim Aufbau einer Prozedur wird die Anforderung (Einfügen Abkürzungen) verwendet, die es ermöglicht, Abkürzungen zu erfassen und in die Datenbasis SDSBSE einzuspeichern. Die Maske INSMNC kontrolliert die Bedienerführung. Die Maske wird definiert und mit der Anforderung "generiere Maske" generiert. Die Prozedur wird, wie unter Abb. 2 gezeigt, aufgebaut und mit Hilfe der Anforderung "lade Kommando" in die Datenbasis geladen.

Nach fehlerfreiem Ablauf der aufgeführten Verarbeitungsschritte kann die Prozedur online durch "Einfügen Abkürzungen" angefordert werden.

Nach Aufruf der Prozedur wird die Maske zum Erfassen der Abkürzungen gesendet und die Bedienereingabe erwartet. Die empfangene Nachricht zerlegt sich in die Felder Name (NME), Beschreibung (DSC) und Benutzerantwort (RSP). Enthält die Benutzeranwort die Angabe "E" endet die Transaktion und zeigt das SDS-Grundbild an. Enthält das Element NME Leerstellen, wird die Nachricht "Fehler Abkürzung" ausgegeben. Bei fehlerfreier Eingabe wird ein Dateneintrag aus NME und DSC gebildet und in die Datenbasis gespeichert, wobei DTA als Datei, MNC als Satzart und NME als Schlüssel Verwendung finden. Ist der Eintrag bereits vorhanden, erscheint die Nachricht "Abkürzung bereits vorhanden". Bei Datenbankfehlern wird eine entsprechende Meldung aufgebaut und gesendet. Die Transaktion dauert solange, bis der Bediener sie durch Eingabe von "E" in Benutzerantwort (RSP) beendet.

Das System ist einsatzbereit, interessierten Anwendern kann ein Benutzerhandbuch mit detaillierter Beschreibung des Systems und der Kommandosprache zum Selbstkostenpreis zur Verfügung gestellt werden.

Die wichtigsten aufzurufenden Funktionen der Kommandosprache

ASG (assign)

Die ASG-Funktion legt Datenbreiche

im Benutzer-Arbeitsspeicher an.

BLD (build)

Die BLD-Funktion ruft Verarbeitungsroutinen (SPN, FRM) und fordert Benutzereingaben an.

CPT (compute)

Die CPT-Funktion weist einem Datenbereich den Wert eines arithmetischen Ausdrucks zu.

END (end)

Die END-Funktion beendet die Verarbeitung einer Prozedur oder einer Unterroutine.

ERS (erase)

Die ERS-Funktion löscht Dateneinträge der Datenbasis.

FNS (finish)

Die FNS-Funktion schließt die Systemdateien.

ISL (isolate)

Die ISL-Funktion isoliert Datenelemente aus Datenbereichen und stellt diese und eine Beschreibung der Daten im Benutzerarbeitsspeicher zur Verfügung. JMP (jump) Die JMP-Funktion unterbricht die lineare Folge der Anweisungen und setzt die Verarbeitung bei einer anderen Anweisung fort. Der Sprung kann von Bedingungen abhängig gemacht werden.

PLT (plot)

Die PLT-Funktion ermöglicht die graphische Darstellung von einfachen

Benutzerdaten wie Datenstrukturen, Programmstrukturen.

PSH (push)

Die PSH-Funktion verwaltet einen vom Benutzer zugeordneten Kellerspeicher.

RCV (receive)

Die RCV-Funktion stellt die empfangenen Nachrichtenformate im Arbeitsspeicher zur Verfügung.

RDY (ready)

Die RDY-Funktion eröffnet die Systemdateien.

RLS (release)

Die RLS-Funktion gibt Datenbereiche des Arbeitsspeichers frei

RDR (read)

Die RDR-Funktion liest Dateneinträge der Systemdateien und stellt die Daten im Arbeitsspeicher bereit.

SND (send)

SND-Funktion sendet Datenbereiche.

SRT (sort) Die SRT-Funktion sortiert die Datei WRKFLE.

TFR (transfer) Die TFR-Funktion überträgt Datenbereiche.

TRN (transform) Die TRN-Funktion transiormiert Beschreibungen von Datenelementen in Bildschirmmasken.

UPD (update) Die UPD-Funktion ändert Dateneinträge Der Datenbasis.

WRT (write) Die WRT-Funktion gibt Datenbereiche auf die Systemdateien aus.

XTR (extract) Die XTR-Funktion zerlegt Datenbereiche in Datenelemente anderer Datenbereiche.