op te nemen. Het is duidelijk dat dat weer ten koste gaat van een ander doel van modulariteit: de eenvoud en her kenbaarheid van de module. In de volgende sectie komen nog andere eigenschappen van een goede module aan de orde. Modulariteit De klassieke criteria waaraan een goede module moet voldoen, zijn: complexiteit, koppeling en cohesie. De complexiteit van een module kunnen we eenvoudig defi niëren als het aantal specificaties (het aantal ;'s) in het schema. De koppeling is in wezen de mate waarin een module zijn complexiteit aan de omgeving toont. Hoe meer complexi teit een module toont, hoe meer consequenties een wijzi ging in de module zal hebben voor de omgeving, en hoe moeilijker het zal zijn om de module te wijzigen. Koppe ling is dus het omgekeerde van „information hiding" (details van specificaties verbergen voor de omgeving). Op basis van de complexiteit laat koppeling zich nauw keurig definiëren als het gemiddelde aantal keren dat elke specificatie voorkomt in het schema van een andere module. De koppeling bepaalt daarmee het aantal andere modulen waarmee elke wijziging in de structuur van de module zal moeten worden afgestemd. De grootte en het gewicht (in de zin van aantal lezers) van het publieke domein is dus bepalend voor de koppeling. De koppeling van een module is minimaal als het publieke domein leeg is en maximaal als het hele schema zichtbaar is voor elke andere module. De cohesie van een module is de mate waarin een modu le erin slaagt zich af te sluiten voor de complexiteit van de omgeving. Een module met een goede cohesie is dus ongevoelig voor wijzigingen in de structuur van de om geving. Cohesie laat zich definiëren als het quotiënt van het aantal eigen en het totale aantal specificaties in het schema van de module. De cohesie is dus de relatieve complexiteit van het eigen domein. Een module met maximale cohesie heeft geen vreemd domein. Hij gebruikt geen gegevens uit de omgeving. Een module met minimale cohesie heeft geen eigen do mein: hij gebruikt uitsluitend gegevens uit de omgeving. Merk op dat cohesie en koppeling van een module onaf hankelijk van elkaar kunnen worden gevarieerd. Wel is het zo dat vergroting van de koppeling van de ene module vermindering van cohesie voor een andere module im pliceert. Modulair beheer van constraints Door een schema in modulaire vorm te specificeren, wordt een aantal voordelen verkregen. Het eerste voor deel is dat de modulen eenvoudig zijn en herkenbaar voor de gebruiker. Daartoe moeten modulen wel overeen komen met bestaande taakclusters in de organisatie. Het is een bekend verschijnsel dat niet-informatici worden afgeschrikt door gegevensstructuur-diagrammen. Het ge volg is dat de gebruikers geen binding voelen met het gegevensbank-schema, en ook geen verantwoordelijk heid nemen voor structuur en inhoud van de gegevens bank. De informatici kunnen deze verantwoordelijkheid echter niet waarmaken, omdat zij onvoldoende binding hebben met het toepassingsgebied. Bij een modulaire structuur heeft een gebruiker alleen met zijn eigen schema te maken. Dat is in principe niet complexer dan de zaken waarvoor het verantwoordelijk NGT GEODESIA 93 - 7 is. De ervaring leert dat daardoor de eindgebruikers het schema accepteren en feitelijk gaan gebruiken. Dit komt de snelheid van systeemontwikkeling en de kwaliteit van de gegevens zeer ten goede. Een tweede voordeel is dat het beheren van het stelsel van constraints en regels veel gemakkelijker wordt. Bij een niet modulair schema treft men doorgaans alle constraints aan in een lange lijst onderaan het schema. Daarbij worden vaak alleen die constraints opgenomen, waarvan men verwacht dat het DBMS ze kan controleren. De overige regels raken verspreid over de documentatie van de verschillende programma 's. Omdat doorgaans meerdere programma's met dezelfde regel te maken hebben, ontstaat een enorme redundantie in regels en constraints: elke regel staat op verschillende plaatsen vermeld. Zoals bekend geeft redundantie onver mijdelijk problemen bij onderhoud: als een regel wijzigt, is het moeilijk om de consequenties te overzien en niet onwaarschijnlijk dat de wijziging niet op alle plaatsen wordt doorgevoerd. Fouten in programma's, verkeerde gegevens in de gegevensbank en verkeerde resultaten in rapporten zijn hiervan onvermijdelijk het gevolg. Bij een modulaire structuur staan regels bij elkaar in het schema van een module. Zo'n schema is klein en over zichtelijk. Omdat de vreemde domeinen uit de schema's kunnen worden afgeleid, kan eenvoudig een programma worden gemaakt dat aangeeft waar door de wijziging de onafhankelijkheid van andere modulen wordt verstoord. Omdat het niet altijd noodzakelijk is om eigen constraints ook aan andere modulen te laten zien, kunnen de ge volgen van wijzigingen worden beperkt. Door bij het ont werp en het onderhoud voortdurend de koppeling en de cohesie te bewaken, kan de flexibiliteit van het systeem worden gewaarborgd en bewaakt. Gevolgen voor (geo)grafische gegevens In geografische gegevens is de samenhang veel sterker dan bij conventionele, bestuurlijke toepassingen. Niet alleen is er meer samenhang door diepere hiërarchische structuren, ook zijn er meer en complexere constraints. Daardoor zal het onderhoud van zulke systemen veel moeilijker zijn dan van klassieke, relationele systemen. Dezelfde ervaring ziet men bij systemen voor produkt- gegevens, waar een zelfde soort complexiteit optreedt. Naarmate meer geografische gegevens in elektronische vorm worden beheerd en meer gebruik wordt gemaakt van deze gegevens door geautomatiseerde systemen, zullen de eisen voor integriteit strenger en daarmee de problemen bij onderhoud groter zijn. Modulair ontwerp en beheer van zulke systemen kan dan een oplossing bie den voor veel problemen. Literatuur 1. Bekke, J. H. ter, Database Ontwerp. Stenfert Kroese. Leiden 1988. 2. Chen, P., The Entity Relationship Model Towards a Unified View of Data. TODS, 1:1, 1976. 3. Codd, E. F., A Relational Model of Data for Large Shared Data Banks. Comm ACM, Vol. 13, no. 16, juni 1970. 4. Date, C. J., An Introduction to Database Systems. 5th ed. Addi son Wesley, 1990. 5. Elmasri, R., S. B. Navathe, Fundamentals of Database Systems. Benjamin/Cummings, 1989. 6. Kim, W., F. H. Lochovski (ed.), Object-Oriented Concepts, Data bases and Applications. ACM Press, 1989. 7. Pels, H. J., Gegevens: Analyse, Modellering en Beheer. Sam- som, 1992. 8. Wintraecken, J. J. V. R., Informatie-analyse volgens NIAM, in theorie en praktijk. Academic Service, 1987. 323

Digitale Tijdschriftenarchief Stichting De Hollandse Cirkel en Geo Informatie Nederland

(NGT) Geodesia | 1993 | | pagina 7