Beweren en bewijzen/de zuilen/Artefacten/4. Structuur
literatuur |
int i;main(){for(;i["]<i;++i\ ){--i;}"];read('-'-'-',i+++"hell\ o, world!\n",'/'/'/'));}read(j, i,p){write(j/p+p,i---j,i/i);} |
Artefact dat een tekst print[1] |
---|
Nadat we eigenschappen kunnen specificeren waarvan we graag willen dat ze waar zijn, kunnen we op zoek gaan naar een ding dat deze eigenschappen heeft. Desnoods moeten we het zelf bedenken en maken.
Hiernaast staat zo'n →artefact afgebeeld. Het heeft de eigenschap een bepaalde tekst op het scherm te printen.
Een leek ziet hier een brij van tekens. Een goede programmeur zou meteen zeggen: dit is een C-programma, maar het is hartstikke ongestructureerd opgeschreven. Dat klopt, en in Beweren en bewijzen/de zuilen/Formalisering/2. Precisie wordt uitgelegd hoe men iets dergelijks t.b.v. de menselijke lezer overzichtelijker kan opschrijven: zo dat zijn structuur meteen zichtbaar wordt.
De structuur is namelijk, zo als bij alle voor een bepaald doel bedachte artefacten, de oorzaak dat het werkt: op een vernuftige manier zijn onderdelen als declaraties, functie-aanroepen en lussen in elkaar gezet om de specificatie (een bepaalde tekst printen) waar te maken. Dat bij de gekozen opmaak deze structuur voor mensen nauwelijks meer te achterhalen is doet aan het correct functioneren niets af. Wie de structuur begrijpt kan de eigenschap verklaren.
Omdat men van het kijken naar zulke tekenreeksen niet goed wordt, kijken we naar een mooier artefact; het principe is hetzelfde.Hier rechts zie je een hoop hout, blik en verf, vernuftig in elkaar gezet om een eigenschap waar te maken, in casu dat men er muziek mee kan doen klinken. Het voldoet aan de specificatie "orgel", die we hier niet uitwerken, maar die je in de organistenopleiding kunt leren.
Ook hier is de structuur de oorzaak dat het functioneert. De orgelbouwer heeft hier wél geprobeerd om deze structuur zichtbaar te maken; hij had dezelfde onderdelen ook veel rommeliger bij elkaar kunnen zetten of in een doos verbergen. Maar hij heeft ook weer allerlei barokke versieringen aangebracht die er niet toe doen en onze blik belemmeren.
Maar wat is nou eigenlijk structuur?
Inhoud
Ontleding
Allereerst is structuur geen inherente eigenschap van dingen maar iets dat wij mentaal aan een ding opleggen. En we kunnen aan hetzelfde ding verschillende structuren opleggen. Streng genomen mag men het daarom niet over dé structuur van iets hebben. Een onmuzikale vuilnisverwerker die naar het orgel kijkt ziet meteen: hout, lood (waarvoor bepaalde voorschriften gelden maar wat wel geld waard is) en verf (waardoor je het hout niet zo maar mag verbranden). Hij zal meteen vragen, of er ook gouden contacten in zitten. ("Nee, meneer, dit is een mechanisch, geen elektronisch orgel.")
Structuur is iets wat wij (en zeker de ontwerper, de gebruiker en de sloper) in gedachten aan het ding opleggen. In veel opleidingen leert men, dingen te ontleden langs standaard-structuren die hun nut hebben bewezen. Een werktuigbouwkundige die de kast van een koffie-volautomaat opent, zal daar meteen een kookpannetje, een molentje, een pompje en een filtertje zien omdat zij gewend is daarnaar te zoeken. Een huisvrouw ziet misschien alleen een wirwar aan blokjes en slangetjes. Of zo'n blokje een pompje is of een stuk geluidsisolering of een houder van het kookpannetje, valt niet makkelijk te zien. Een organist, die naar de plaatjes hiernaast kijkt, ziet allereerst geen hoop hout en lood. Hij ziet direct vier sub-orgels: hoofdwerk, borstwerk, rugpositief en pedaalwerk. Allemaal apart te bespelen, maar ook aan elkaar te koppelen. Als hij wat "fijnkorreliger" kijkt, ontdekt hij in elk van deze vier een aantal registers en, ja, als men nóg nauwkeuriger kijkt, bestaat een register uit een aantal pijpen en elke pijp uit houten of metalen buizen met een lipje.
→Structuur zegt welke onderdelen op welke manier in elkaar zitten. Een beschrijving van zo'n structuur noemen we een →blauwdruk van het artefact. Een "gestructureerd opgemaakt" computerprogramma lijkt op zijn eigen blauwdruk (zie "Een programma is een programma is een programma" [...]), maar buiten de wereld van de computerprogramma's is er meestal een duidelijk verschil tussen de beschrijving van een ding (de constructietekeningen in de werkplaats van de orgelbouwer, tegenwoordig niet op papier maar in de computer) en het ding zelf (een hoop materie in een kerk). We bedenken structuren als oorzaak voor gewenste eigenschappen.
Onderdelen
literatuur |
Een →blauwdruk van een artefact bevat een beschrijving van de onderdelen die men wil onderscheiden, en wel in termen van specificaties: voor elk onderdeel is aangegeven wat het doet, maar niet hoe het dat doet. Alles wat eerder gezegd is voor de specificatie van een artefact, geldt ook voor de respectievelijke specificaties van zijn onderdelen, alleen zijn de waarneembare fenomenen aan de buitenkant van de onderdelen meestal fenomenen binnen het artefact.
Het orgel is behoorlijk complex. (Zie een B&B-werkstuk) De deurbel is een eenvoudiger voorbeeld.
Een artefact dat voldoet aan de specificatie van een elektrische deurbel (...) kan worden gemaakt uit
- een batterij,
- een schakelknop,
- een elektrische bel en
- een tweeaderige kabel
met deze specificaties, geschreven in →geformaliseerde natuurlijke taal conform onze criteria voor specificaties:
Batterij: Er staat een spanning op contact A. Knop: Als er een spanning op contact A staat geldt: op contact B staat een spanning dan en slechts dan als de knop ingedrukt is. Bel: Rinkelt dan en slechts dan als er een spanning op contact C staat. Kabel: Dan en slechts dan als er een spanning op contact B staat, staat er een spanning op contact C.
Samenhang
Een →blauwdruk moet niet alleen aangeven wat de onderdelen zijn maar ook hoe ze in elkaar zitten. In het deurbelvoorbeeld, geschreven in →geformaliseerde natuurlijke taal, gebeurt dit door de discipline om bij de specificatie van elk onderdeel precies dezelfde woorden te gebruiken als we het over dezelfde fenomenen hebben. (Ter verduidelijking zijn deze door kleuren gemarkeerd.) De samenhang van de onderdelen van een artefact bestaat er tenslotte in dat sommige onderdelen sommige waarneembare fenomenen met elkaar delen.
Dat betekent dat deze vier onderdeelspecificaties samen al alle voor een →blauwdruk nodige informatie bevatten.
Functioneel netwerk
De menselijke lezer zal geholpen worden door een diagram dat het →functioneel netwerk visualiseert:
De ImageMap-extensie is niet geïnstalleerd.
We tekenen elk onderdeel als blokje en elk tussen twee onderdelen gedeeld fenomeen als lijn. Je mag van de lijn een pijl maken om aan te duiden dat het ene onderdeel een fenomeen veroorzaakt en het andere erop reageert. Echter, een lijn is voldoende. De pijl kan ter ondersteuning van de gedachten dienen. Laat pijlpunten weg als je niet kunt uitleggen wat je ermee wilt zeggen. Verder hebben we er hier voor gekozen om de namen van de fenomenen precies overeen te laten komen met die uit de natuurlijke taal. In het werkstuk zullen die namen in het netwerk echter overeen moeten komen met de namen van de predikaten en functies die in het domeinmodel gedefinieerd zijn. Tot slot kan een fenomeen ook door meer dan twee onderdelen gedeeld worden. In dat geval tekenen we een splitsing in de lijn. Ook kunnen hier pijlpunten worden toegevoegd ter ondersteuning van de gedachten.
Aan de aansluitpunten waar de kabel en de batterij verbonden zijn met de schakelknop dan wel met de bel is er sprake van interne fenomenen. In dit voorbeeld zijn het spanningen op bepaalde contacten.
De structuur van de Westminsterklok (Pol van Aubel). Een mogelijke bron van verwarring is hier dat sommige functionele eenheden abstract als blokje met verbindingen getekend zijn en sommige als kleine afbeeldingen van het corresponderende ding. Geeft dit diagram nu weer wat we zien of wat we denken?
Blauwdruk
Een →blauwdruk beschrijft de →structuur van een →artefact. Daartoe werd een groot aantal talen ontwikkeld, allen met hun eigen voor- en nadelen. De essentie is altijd dat voor elk onderdeel een specificatie (of een verwijzing naar een elders staande specificatie) gegeven wordt en duidelijk is welke onderdelen welke fenomenen met elkaar en welke met de omgeving delen.
Als de samenhang niet meteen zichtbaar is, kan t.b.v. de menselijke lezer een diagram worden toegevoegd. Dan moet het diagram wel precies bij de specificaties passen, anders ontstaat alleen verwarring.
Indien gewenst kunnen de nodige fenomenen uiteraard nader gespecificeerd worden in natuurkundige eenheden. In elk geval is van belang:
- De daadwerkelijke onderdelen van deze installatie moeten hun specificaties waar maken.
- "Een spanning op contact X" moet in al deze specificaties precies dezelfde betekenis hebben (geen knel).
spraakverwarring
|
Causaliteit
De in de blauwdruk van de deurbel beschreven structuur is de oorzaak (Lat. "causa") dat het werkt.
We gebruiken een horizontele streep tussen blauwdruk en specificatie van het geheel om aan te geven dat we vinden dat een gegeven structuur de oorzaak is van een zekere eigenschap:
Batterij: Er staat een spanning op contact A. Knop: Als er een spanning op contact A staat geldt: op contact B staat een spanning dan en slechts dan als de knop ingedrukt is. Bel: Rinkelt dan en slechts dan als er een spanning op contact C staat. Kabel: Dan en slechts dan als er een spanning op contact B staat, staat er een spanning op contact C. -------------------------------------------------------------------------------------------------------------------------------- Dan en slechts dan als de knop ingedrukt is rinkelt het.
Hoe we ons ervan kunnen overtuigen dat deze bevinding klopt, wordt uitgelegd in Beweren en bewijzen/de zuilen/Zekerheid/1. Overtuigen en latere hoofdstukken.
Workflow
Er zijn allerlei manieren om op zoek te gaan naar een geschikte structuur. In Taxonomy/3. Patterns/Workflow is er een beschreven:
The definitions given here apply to →artefacts whose purpose is
Conforming to the →Chinese Box principle, activities can be composed of sub-activities, which can be considered at a lower level. The same holds for products, instruments, production steps, recipes, etc.
Basic concepts
The story
Relations
|
Belanghebbenden
We kunnen nu helder onderscheiden tussen verschillende →belanghebbenden en hun belangen en plichten.
- De →opdrachtgever, in casu de bezitter van het huis, heeft er belang bij dat de specificatie van de hele deurbel waar gemaakt wordt.
- De →ontwerper, in casu de schrijver van een leerboek voor elektriciens, bedenkt bovenstaande blauwdruk van de specificatie en overtuigt zichzelf en de lezers van zijn boek ervan dat de door de horizontale streep aangegeven causaliteit ook werkelijk geldt, met andere woorden: dat het ontwerp klopt.
- De →leverancier van het geheel, in casu de elektricien, en de opdrachtgever sluiten een contract over de correcte →implementatie van de specificatie.
- De →maker, in ons geval eveneens de elektricien, is verantwoordelijk voor de correcte →realisatie vanhet ontwerp uit het leerboek.
- De maker sluit contracten met één of meer →leveranciers omtrent de levering van de onderdelen. De onderdeelspecificaties maken deel uit van deze contracten.
- De Leveranciers zijn ervoor verantwoordelijk, dat de geleverde onderdelen aan de genoemde specificaties voldoen.
Kwaliteitscriteria blauwdruk
|
- ↑ Copyright © 1984, Landon Curt Noll. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this this copyright and notice are included in its entirety and remains unaltered. All other uses must receive prior permission in writing from both Landon Curt Noll and Larry Bassel.[1]