Dynamische data dictionaries
of
"Maatwerksystemen in de tijd en voor het geld van standaardpakketten."

Bij het ontwikkelen van systemen komen onder andere de volgende twee aspecten aan bod:

Hier gaat de aandacht naar het programma, d.i. het instrument om op de gewenste wijze de gegevens te manipuleren. Eerst wordt ingegaan op de gedachte dat in de toekomst de noodzaak tot programmeren helemaal moet vervallen. Vervolgens wordt een voorbeeld besproken van een produkt dat hieraan voldoet.

Programma's zonder programmeren

Data-manipulaties zijn er van een beperkt aantal soorten (bijvoorbeeld gegevens presenteren op een scherm, aanvullen, wijzigen, ...). Deze manipulatie-soorten kun je vooraf te definiëren en formuleren in eenmalige programma's of modules, zodat de noodzaak tot herhaaldelijk programmeren van dezelfde procedures komt te vervallen. Deze methode wordt reeds vaak gebruikt. Men beschikt over "libraries" met verschillende nuttige modules en functies.
Enkele bekende data-manipulaties:

Deze werkmethode blijkt in de praktijk veel tijd te besparen in het ontwikkelingsproces van systemen.
Met deze methode vervalt de noodzaak tot programmeren echter nog niet volledig. Men moet immers, afhankelijk van de gebruikerssituatie, altijd nog een "stuur"-programma maken (en dus ook testen, aanpassen, verbeteren, ...) om bewerkingen aan gegevens te koppelen. Om een addtionele tijdwinst in het ontwikkelingstrajekt te realiseren moet de noodzaak tot programmeren helemaal vervallen. Dit betekent dat alle gebruikersafhankelijke aspecten niet meer in programma's maar in bestanden dienen te worden opgenomen. Zo dient te worden aangegeven dat het kiezen van menu optie X tot een bewerking Y moet leiden in bestand Z. Deze regel kan ook in een bestand worden opgenomen. Zo zou één record uit een menu-bestand er als volgt kunnen uitzien:

Menu-optie Tekst Bestand Bewerking
5.1 Onderhoud verkoopgegevens VERKOPEN APPEND

Het programma presenteert (sub-)menu's aan de gebruiker, en weet dat wanneer optie 5.1 wordt gekozen, dat het bestand VERKOPEN moet worden geopend, en dat de APPEND-functie moet worden gestart. Deze (vooraf en éénmalig) geprogrammeerde functie bestaat uit een aantal onderdelen, zoals het presenteren van leeg record op het scherm, het wachten op gebruikersinvoer, controles op de invoer, opslag in het bestand.
Het tonen van een record op het scherm, of het accepteren/controleren van gebruikersinvoer betekent op zijn beurt weer dat de APPEND-functie in dit voorbeeld moet weten wat de structuur van het VERKOPEN bestand is, wat de inhoud- en layout-voorschriften zijn, ...

Een methode om dit te bereiken is deze structuur-, layout- en andere gegevens in een data dictionary op te nemen, zodat onze APPEND-functie aan de hand daarvan precies weet wat er moet gebeuren, en hoe.

Bestand Veld Format Controle
VERKOPEN DATUM DD/MM/JJJJ DATUM <= today
VERKOPEN PRODUKT XXXX
VERKOPEN AANTAL 9999 AANTAL >0

Het hierboven geformuleerde voorbeeld is duidelijk een vereenvoudiging. Een menu-bestand zal gegevens moeten bevatten over sorteervolgordes, wel/niet te tonen velden, .... De data dictionary zal eveneens meer gegevens dienen te bevatten. Men denke niet alleen aan veldtype of -lengte, maar ook of invullen verplicht is, of een ingevulde waarde uniek moet zijn, of die voor moet komen in een hulptabel, ...

Een voorbeeld van het product

Door Dragon Court is een prototype opgezet van een systeem als hierboven omschreven. Inhoudelijk heeft het systeem als doel het tonen van liquiditeitsprognoses voor een treasury.

Het menu-bestand heeft een recordlayout zoals aangegeven in de linker kolom, en optie 2.3 is bijvoorbeeld ingevuld zoals aangegeven in de rechter kolom:

Process level: 2.3
Text for menu line: Financiële verplichtingen
Process type (F/V/M/P/S): F
Related data file: FINTRANS
Related index file:
Name of view to display:
Program to run:
Fields to display: contractnr,transnr,bedrag
Field headers: contract,tx,bedrag
Record display condition: datum Display continue condition:
Record mark condition:
Record reverse condition:
Footnote during display:
Report form for printing: FINTRANS

Hieruit blijkt dat menu-optie 2.3, onderhoud financiële verplichtingen, op een bestand werkt (procestype is "F"), en wel FINTRANS, dat geïndexeerd is met FINTRANS.NTX. De overige velden zijn verboden, optioneel of verplicht, afhankelijk van de keuze van procestype:

F=file, één bestand onderhouden/zien
V=view, een combinatie van gerelateerde bestanden,
M=roep een volgend submenu,
P=programma, d.i. een niet standaard module dat moet worden gerund,
S=selecteer een te onderhouden bestand uit een lijst.

In het geval van proces type "F" weet het programma dat een bestand moet worden onderhouden. Op dat moment wordt de aangegeven velden van het bestand op het scherm getoond, samen met de opgegeven kolomkopjes, voorzover het record aan de voorwaarde voldoet (hier: de transactiedatum ligt niet later dan een week na vandaag). De gebruiker krijgt, afhankelijk van zijn bevoegdheden, rechten om gegevens toe te voegen, te raadplegen, te wijzigen en/of te verwijderen. Deze rechten moeten blijken uit de dan op het scherm geboden opties.

In het tweede bestand, data dictionary bestand, worden per data-veld, de volgende gegevens bijgehouden:

De derde poot van het systeem is het programma waarin opgenomen zijn alle commando's voor het afhandelen van een aantal standaard data-manipulaties. Hierin is inmiddels de volgende set data-manipulaties gecodeerd:


  • Login (ID/password, 3 pogingen; passwords ge-encrypt opgeslagen)
  • Controle gebruikersbevoegdheden
  • Afhandelen (sub)menu-presentatie, en verwerken gekozen optie
  • Invoeren/wijzigen gegevens, inclusief:
  • Importeren gegevens, verschillende bestandsoorten
  • Printen gegevens, verschillende formaten en layouts
  • Exporteren gegevens, verschillende bestandsoorten
  • Zichtbaar maken van views, d.i. een set gerelateerde gegevensbestanden, inclusief
  • Verwijderen gegevens, inclusief controle of sleutelvelden niet elders reeds gebruikt
  • Creëeren/wijzigen data-bestandsstructuren (zie invoeren/wijzigen gegevens)
  • Aanmaken/aanpassen menu-structuur in betreffend bestand (zie invoeren/wijzigen gegevens)
  • Printerdefinitie en -selectie
  • Backup/Restore

  • In essentie is het, met deze twee bestanden (een menu-bestand en een data dictionary), en de reeds bestaande module-library, mogelijk om binnen zeer kort termijn een systeem op te leveren zonder één letter te programmeren.

    Samenvatting:

    Eigenschappen van het produkt:
    "Maatwerksystemen in de tijd en voor het geld van standaardpakketten."


    o Return to the Goldware Home Page

    Copyright © 1995 Goldware. All Rights Reserved. Last update 15 feb 1996.