Informaticasite van het Lauwers College te Buitenpost                 © R.J. van der Beek
 
[15.1 Systeemtheorie]  [15.2 Informatiesystemen]  [15.3 Real-time systemen]  [15.4 Kennissystemen]  [15.5 Simulatiesystemen]
[15.6 Embedded systemen]   [15.7 Ontwikkelmethoden]   [15.8 SDM]   [15.9 DSDM]   [Opgaven H15]        

Hoofdstuk 15 Systeemontwikkeling

In de ICT wordt vaak het begrip "systeem" gebruikt: een computersysteem, een informatiesysteem, een besturingssysteem, een databasesysteem, enz.
We gaan er daarom eerst wat dieper op in wat een systeem nu eigenlijk is, en welke begrippen daarbij verder om de hoek komen kijken.

  15.1 Systeemtheorie

Overal in de wereld kom je systemen tegen. Je kunt bijvoorbeeld je eigen lichaam beschouwen als een systeem. Een auto is ook een systeem en wel een systeem om voort te bewegen.
Het woord systeem is eigenlijk een heel algemeen gebruikt woord waaraan nogal veel verschillende betekenissen worden toegekend.
Zo praten schilders over een verfsysteem.
In de computerwereld heb je het begrip besturingssysteem. Een netwerksysteem is weer heel iets anders.
In de krant lees je vaak de uitdrukking "het politieke systeem" en in de scheikunde heb je "het periodiek systeem van de elementen".

In de systeemtheorie krijgt het begrip systeem een wat preciezere betekenis dan in de dagelijkse taal:

Een systeem is een samengesteld object, ofwel een object dat bestaat uit andere objecten, die we componenten noemen. Deze componenten kunnen elkaar (direct of indirect) beïnvloeden, meestal dient dat om een bepaald doel te bereiken.

Compositie.
Er zijn verschillende manieren om systemen te beschrijven. Eén ervan is dat je elke component van het systeem beschrijft tot op detailniveau. Deze manier van beschrijven heet compositie. De onderdelen worden gewoon opgesomd.
Een verfsysteem is meestal eenvoudig op die manier te beschrijven. Het bestaat bijvoorbeeld uit het afvlakken m.b.v. plamuur, dan één grondlaag en twee afwerklagen met lakverf.

Subsystemen: segmentsysteem en aspectsysteem.
Als je een groot systeem wilt beschrijven dan beschrijf je meestal niet elke component van het systeem tot op detailniveau. Je noemt dan meestal een aantal zogenaamde deelsystemen of subsystemen.
Bij een auto kun je zeggen dat er een motor in zit, je hebt de carrosserie, de stoelen, de stuurinrichting, enz. Je hebt dan vier deelsystemen genoemd, maar die heb je niet tot op detailniveau beschreven.

Je kunt kunt bijvoorbeeld de motor uit de auto apart als een systeem bekijken en beschrijven. Die bevat een cilinder, een zuiger met zuigerveren, een krukas, in- en uitlaatkleppen, bougies, een carburateur.
En ook die subsystemen kun je weer apart belichten, en zo kun je steeds verder gaan.

Een bedrijf dat auto's uitdeukt en spuit is alleen maar geïnteresseerd in de carrosserie van de auto. Wat er onder de motorkap zit is voor zo'n bedrijf niet relevant, die componenten van het autosysteem laten ze buiten beschouwing.
Ze kijken dus maar naar een gedeelte van de componenten, en dat gedeelte noem je dan wel een segmentsysteem.

Als je een netwerksysteem beschrijft kun je ook een aantal deelsystemen aangeven.
Daarbij kun je alleen naar de hardware kijken, en beschrijven welke werkstations er zijn en welke server(s) en welke bekabeling gebruikt wordt.
Je kunt ook alleen naar de gebruikte software kijken, en beschrijven welke toepassingen op de werkstations draaien, hoe ze onderling communiceren, of de cliënt/server architectuur wordt gebruikt of een andere methode.
Je let dan alleen op een bepaald aspect van het systeem, en daarom noem je dat deelsysteem dan wel een aspectsysteem.
Bij een aspectsysteem maak je de onderverdeling dus niet door naar afzonderlijke onderdelen te kijken, maar door naar de functies van het systeem te kijken.
Bij een netwerksysteem is de hardware dus een aspectsysteem, en ook de software is een aspectsysteem.

De omgeving en de interface van een systeem
Als je een systeem volledig wilt beschrijven moet je niet alleen de componenten opnoemen, je moet ook nog de structuur of de relaties tussen de componenten beschrijven. Welke componenten beïnvloeden elkaar en op welke wijze gebeurt dat? Vaak gebeurt dat d.m.v. een constructietekening.

Ook moet je kijken naar de grenzen van het systeem. Alles wat buiten het systeem valt heet omgeving.

Van alle onderdelen die niet tot het systeem behoren, en dus tot de omgeving horen, zijn er enkele die tot de directe omgeving behoren.
De directe omgeving bestaat uit de objecten waarmee het systeem relaties onderhoudt. Van een auto kun je zeggen dat de straat en de bestuurder bij de directe omgeving horen.

Een beschrijving van de relaties van systeemcomponenten met de objecten uit de omgeving heet een interface.
De wielen van een auto maken contact met de weg, waarop de auto rijdt. Dit contact is een deel van de interface van de auto met zijn omgeving. Op het dashboard ziet de bestuurder hoe snel de auto rijdt, het oliepijl, de temperatuur, de toerensnelheid, enz. Dat is dus ook een deel van de interface van de auto met zijn omgeving.

Open en gesloten systemen
Open systemen hebben relaties met de omgeving. Vrijwel elk bestaand systeem is open want relaties met de omgeving zijn er vrijwel altijd.
Als de onderdelen van een systeem geen relatie hebben met de omgeving maar alleen met elkaar dan wordt het systeem gesloten genoemd.

Het inwendige van de aarde is een gesloten systeem: de hoeveelheid materie blijft gelijk, en er is geen invloed van buiten op.
Ook het heelal wordt door de meeste sterrenkundigen als een gesloten systeem beschouwd: er zijn geen relaties met de omgeving omdat erbuiten gewoon niets is.

Bij de biologisch-dynamische landbouw wordt door vruchtwisseling en organische bemesting de vruchtbaarheid van de bodem op natuurlijke wijze in stand gehouden. Het veevoer wordt op het eigen bedrijf verbouwd, zo kun je een vrijwel gesloten ecologisch systeem krijgen. Het bedrijf als geheel is natuurlijk niet gesloten, maar als je alleen kijkt naar de manier waarop de bodem vruchtbaar wordt gehouden (dat is dus een aspectsysteem) wel.

Systeemmodellen, black-box
Heel vaak zijn systemen behoorlijk ingewikkeld, en dan werk je liever met een vereenvoudiging van dat systeem. Je laat dan een heleboel minder belangrijke informatie weg. Zo'n vereenvoudiging noemen we een systeemmodel.

Aspecten van het systeem die niet veel bijdragen aan het gedrag dat we willen bestuderen, nemen we in een model niet mee. Een model hoort dus bij een doel waarvoor het is ontwikkeld. Een model is per definitie incompleet en moet dus altijd worden gewantrouwd!

Een autokaart van Nederland kun je beschouwen als een systeemmodel van het wegennet van Nederland. Je kunt er met zo'n kaart prima achter komen hoe je op de beste manier met de auto van Buitenpost naar Amsterdam komt, maar informatie over paden, het uitzicht, de beplanting van de bermen enz, zit niet in het model.

Er zijn veel complexe systemen, waarvan de mensen de werking niet volledig begrijpen, bijvoorbeeld het weer.
Maar als je het weer wilt voorspellen moet je toch weten hoe het ongeveer in elkaar zit.
Voor weersvoorspellingen zijn verschillende systeemmodellen gemaakt.
Omdat elk model een vereenvoudiging van de werkelijkheid is, zullen er altijd situaties optreden waarin dat model verkeerde voorspellingen geeft. En het ene model geeft soms een andere voorspelling dan het andere model.
Soms wordt dat bij het weerbericht ook vermeld.

Soms doet het er voor iemand niet toe hoe het systeem in elkaar zit, als hij of zij maar weet wat er in het systeem gaat en wat er als reactie uit komt.
Je hoeft dan niets van de componenten van het systeem te weten.
Als je een systeem zo vereenvoudigt, dan noem je dat een black-boxmodel.
Een black-boxmodel beschrijft alleen maar wat er in het systeem gaat en wat er als reactie uit komt.

In hoofdstuk twee is beschreven hoe een and-poort in elkaar zit (zie de linker figuur hieronder, dat is duidelijk ook een vereenvoudiging van de werkelijkheid, dus een model).
In de volgende schakelingen werd de andpoort als een black-box beschouwd: er werd alleen gelet op de input en de output (zie de rechter figuur hieronder).

  15.2 Informatiesystemen

Om in de informatiebehoefte van een bedrijf te voorzien, worden zogenaamde informatiesystemen gebruikt.
De vijf elementen waarmee je te maken hebt bij een informatiesysteem zijn:
  1. Gegevens (invoergegevens, gegevensverzamelingen, uitvoergegevens)
  2. Programmatuur
  3. Apparatuur
  4. Mensen
  5. Procedures
De definitie van een informatiesysteem is:

Een informatiesysteem is het geheel van mensen, apparaten, programma's en procedures dat zorgdraagt voor de informatievoorziening van (een deel van) de organisatie, product of dienst.

Een informatiesysteem is een model. Het is een aspectsysteem waarbij het verwerven van informatie de belangrijkste functie is. Als je het heel globaal bekijkt kun je een informatiesysteem in een algemeen geldend model weergeven, het zogenaamde spinmodel.



Toelichting:
  • Wat gebeurt er?
    Invoergegevens kunnen direct bewerkt worden tot uitvoergegevens of bewaard worden om later als input te dienen.
    Er zijn programma's nodig om de invoer te verwerken, dat noem je gegevensverwerking.
    Die verwerking levert uitvoergegevens, en in de uitvoergegevens is de gevraagde informatie verpakt.
  • Hoe gebeurt het?
    De verwerking van de gegevens vindt plaats via procedures.
    De procedures geven aan hoe met het informatiesysteem moet worden omgegaan. Dit kunnen afspraken zijn op het gebied van communicatie en informatie tussen de belanghebbenden, maar ook de standaardprocedures die bij de computerprogramma's worden gebruikt.
  • Waarmee gebeurt het?
    De gegevensverwerking wordt door mensen uitgevoerd, meestal met behulp van apparatuur zoals computers, printers enz.
Soorten informatiesystemen.
Er zijn verschillende soorten informatiesystemen. Deze hebben ieder een eigen doel en een toepassingsgebied.
We onderscheiden de volgende systemen:
  • administratieve en productie-informatiesystemen
  • real-time systemen
  • kennissystemen
  • simulatiesystemen
  • embedded systemen
De eerste soort is al in hoofdstuk 14 al besproken, hieronder bespreken we in het kort de administratieve en productie-informatiesystemennog nog even. De andere systemen worden in de volgende paragrafen besproken.

Administratieve en productie-informatiesystemen.
Vrijwel alle bedrijven gebruiken software ter ondersteuning van de normale bedrijfsprocessen.
Daarbij wordt meestal gebruik gemaakt van Word, Excel, enz., de zogenaamde Office-pakketten.
Maar er zijn ook speciale programma's, die je als particulier eigenlijk nooit tegenkomt.

Workflow Management Systemen
Het ordelijk en gestructureerd verlopen van bedrijfsprocessen wordt steeds meer geregeld met of zelfs door programmatuur. Dit soort programma's worden Workflow Management Systemen (WFM) genoemd.
WFM-toepassingen zorgen voor het op een gestructureerde manier verdelen van werk tussen de leden van een groep, en het stroomlijnen van werkprocessen.

ERP
Het begrip ERP staat voor Enterprise Resource Planning, dat is software dat binnen organisaties gebruikt wordt ter ondersteuning van alle processen binnen het bedrijf.
Met een ERP-pakket kunnen in principe alle bedrijfsfuncties worden bestuurd.
Een ERP-programma bestaat meestal uit deelprogramma’s (modules) die allemaal een specifieke taak ondersteunen.
Bijvoorbeeld programma's die worden gebruikt om de financiële administratie te voeren of de voorraden bij te houden.
Die programma's kunnen allemaal van dezelfde gegevens gebruik maken, zodat de gegevens van bijvoorbeeld klanten en producten binnen de organisatie maar één keer ingevoerd hoeven te worden, omdat één enkele database wordt gehanteerd.
ERP-software wordt o.a. geleverd door SAP en door Exact.

CAD/CAM
In bedrijven waar producten worden ontworpen worden vaak CAD-programma's gebruikt. CAD is de afkorting van Computer Aided Design, en het programma AutoCAD is een bekend programma dat veel wordt gebruikt door ingenieurs en architecten.

CAD/CAM staat voor Computer Aided Design / Computer Aided Manufacturing.
Een CAD/CAM-systeem is een programma waarmee je kunt ontwerpen, maar ook fabriceren.
Als het te maken product is getekend m.b.v. het CAD-gedeelte dan kan er een zogenaamde CNC-file worden aangemaakt waarmee een CNC draai- of freesmachine aangestuurd kan worden.

EDI
EDI is de afkorting van Electronic Data Interchange, en met EDI-software wordt software bedoeld waarmee de elektronische uitwisseling van gegevens tussen twee of meer organisaties wordt geregeld.
EDI is een standaard voor de elektronische uitwisseling van bepaalde bedrijfsdocumenten, zoals orders, rekeningen, en bepaalde berichten of bevestigingen.

  15.3 Real-time systemen

Een real time systeem is een systeem waarbij hoge eisen worden gesteld, omdat ze snel moeten kunnen reageren op invoer.
De reactietijd, ook wel respons- of antwoordtijd genoemd, ligt meestal in de orde van milliseconden of minder.
Bij soft real-time systemen mag de tijdsgarantie zo nu en dan overschreden worden zonder dat dit fataal is, bijv. een Mp3-speler is een soft real-time systeem.
Bij een hard real-time systeem kan het catastrofale gevolgen hebben als het resultaat te laat beschikbaar komt.
Dat betekent dus dat alle activiteiten beslist op tijd moeten worden uitgevoerd.
De juiste acties moeten worden uitgevoerd binnen de gestelde tijd. Meestal is dat een korte tijd, maar dat is niet altijd zo. Een boot die met een snelheid van 25 knopen de oceaan over vaart heeft genoeg aan één positiebepaling per seconde. Dat is niet snel, maar het moet wel betrouwbaar zijn en niet uitvallen. Voor realtime toepassingen is een nauwkeurig en betrouwbaar systeem nodig.

Maar heel vaak is snelheid wel belangrijk.
Bij een onbemand voertuig is het heel belangrijk dat er, als de voorganger te dicht in de buurt komt, snel geremd wordt. Als het remcommando te laat komt vindt er een botsing plaats. Niet alleen snel remmen is van levensbelang, maar ook de garantie dat er altijd snel genoeg geremd wordt.
Wanneer een systeem tijdsgaranties kan geven, noemen we het systeem real-time.
Alle onderdelen van zo'n systeem moeten snel werken, want als er één onderdeel te traag is, dan is het hele systeem traag.
Dus niet alleen de microprocessor, maar ook het interne geheugen, de communicatieverbindingen en de randapparaten moeten snel werken.

Elk real-time systeem is gebaseerd op een maximale responstijd, die niet overschreden mag worden.
Zo'n systeem is natuurlijk ook gebouwd in een snelwerkende programmeertaal.
Tijdkritische programmadelen vereisen extra aandacht en de bijbehorende algoritmen en informatiemodellen moeten zo eenvoudig mogelijk blijven.

Belangrijk is ook dat het besturingssysteem of andere toepassingen de processor niet op ongewenste momenten gebruiken.
Dat kan de responstijd vertragen tot boven de toegestane grens.

Het garanderen van een maximale responstijd is niet eenvoudig.
Beveiligingsaspecten spelen een belangrijke rol.
De processor die het geheel bestuurt, moet altijd zonder onderbreking en vertraging blijven werken.
Een standaard pc-besturingssysteem waarin taakverdeling (multitasking) voorkomt, is daarvoor niet echt geschikt.
Vaak wordt gebruik gemaakt van een speciaal besturingssysteem, een zogenaamd RTOS (real-time besturingssysteem).
Vaak moet een groot aantal randapparaten worden aangestuurd of moeten al die randapparaten gegevens voor de verwerking leveren. Dat moet natuurlijk precies passen in de verwerkingscyclus van het systeem.
De gegarandeerde correcte aansturing van die randapparatuur is vaak een kostbare zaak door extra beveiligingsmaatregelen.
In een kerncentrale worden alle essentiële onderdelen meestal driedubbel uitgevoerd, om ervoor te zorgen dat bij uitval de reserveonderdelen direct kunnen worden ingeschakeld.
Uiteraard moeten ook de aansturingsprogramma's daarvoor zijn aangepast.
Een automatische piloot wordt dubbel geïnstalleerd.
De systemen draaien dan parallel dezelfde programma's en controleren elkaar.
Ze kunnen ook constateren of een 'collega-systeem' is uitgevallen, en ze kunnen bij een storing zelfstandig doorgaan met de verwerking van alle processen.

De ontwikkeling van real-time systemen brengt door bovengenoemde eisen extra kosten met zich mee.
Door de complexiteit en de benodigde speciale expertise kan een real-time ontwikkelingsproject enkele jaren duren. Tientallen ontwikkelaars leveren mogelijk hun bijdrage.


Voorbeeld:
Sterrenkundigen willen steeds beter en verder in het heelal kunnen kijken.
Astron in Dwingeloo is bezig met de radiotelescopen SKA en LOFAR.

SKA is de Square Kilometer Array, een radiotelescoop bestaande uit circa 1000 kleinere telescopen die over een vierkante kilometer opgesteld staan.
LOFAR is de Low Frequncy Array, een radiotelescoop die bestaat uit een aantal stations die in een straal van 100 kilometer rond Dwingeloo staan.

De data, die uit al deze losse telescopen komt, moeten worden verstuurd, samengevoegd en verwerkt.
Al die telescopen moeten gericht blijven op hetzelfde doel, dus ze moeten dezelfde bewegingen maken. Verschrikkelijk grote datastromen dus.


Enkele voorbeelden van real-time systemen zijn:
  • automatische piloot (landingssystemen)
  • hartbewakingssysteem in ziekenhuizen
  • pacemakers bij patiëten
  • besturingssystemen van telefooncentrales
  • mobiele telefoniesystemen
  • procesbeheersingssystemen in chemische fabrieken
  • communicatiesystemen in een auto
  • inbraakalarm-meldingsysteem.

  15.4 Kennissystemen

Kennissystemen worden ook wel expertsystemen genoemd.
Een kennissysteem of expertsysteem is een computerprogramma dat kennis bevat over een bepaald gebied, bijvoorbeeld medische kennis.
Het programma kan met deze kennis redeneren en zo aan de hand van ingevoerde gegevens een advies geven aan de gebruiker.
Denk bijvoorbeeld aan een medisch-diagnostisch kennissysteem, dat in staat is om op basis van gegevens over de patiënt (symptomen zoals koorts, bloeddruk, enz.) een diagnose te stellen en een therapie aan de hand te doen.
Zulke systemen beschikken dus niet alleen over een hoeveelheid medische kennis, maar ook over het vermogen met deze kennis te redeneren.

Een ander voorbeeld van een kennissysteem is het belastingprogramma, dat je kunt downloaden van de belastingsite en dat je door de regels van de belastingaangifte loodst.

Bij een kennissysteem zijn twee belangrijke elementen: een database met gegevens en een redeneeralgoritme.

In de database met gegevens zijn niet alleen de geregistreerde feiten belangrijk maar ook de relaties tussen die feiten.
Ook wordt informatie opgenomen over de mogelijke reacties van gebruikers.
Daardoor kan afhankelijk van de reactie van de gebruiker wat er op het scherm verschijnt worden aangepast aan de behoefte van de gebruiker.

Het redeneeralgoritme is een methode om de informatie, die de gebruiker nodig heeft, te zoeken. Afhankelijk van de geregistreerde feiten en antwoorden van de gebruiker wordt er een zoekpad doorlopen om de gewenste informatie te vinden.
Als de informatie niet wordt gevonden via dat zoekpad, wordt volgens het redeneeralgoritme een ander zoekpad gekozen.

Het redeneeralgoritme wordt ontwikkeld in nauwe samenwerking met experts. Die geven aan hoe zij afhankelijk van de situatie en de antwoorden van een gebruiker het volgende zoekpad kiezen.

Bij de ontwikkeling van kennissystemen worden vaak logische programmeertalen zoals Smalltalk of Prolog gebruikt.

Een schaakprogramma kan ook worden beschouwd als een kennissysteem.
Bij computerschaken is het belangrijk het aantal varianten, dat voor bestudering in aanmerking komt, te verkleinen. Hierbij wordt gebruik gemaakt van inzicht in het schaakspel.
Moderne schaakprogramma's registreren de waardering van stellingen van al eerder gespeelde partijen in een database.
De experts, dat zijn de schaakgrootmeesters, geven aan hoe zij een bepaalde zet in een bepaalde stelling waarderen.
Zij schatten bovendien wat de waarde van die stelling voor de tegenstander wordt. In die inschatting kunnen grootmeesters verschillende redeneringen gebruiken, die in redeneermechanismen kunnen worden omgezet.

Een schaakprogramma heeft een beperkte tijd voor een partij beschikbaar. Het systeem probeert in die beperkte tijd telkens van zo veel mogelijk zetten van tevoren de zetwaardering te beredeneren. Daarom worden in professionele schaakcomputers zeer snelle processoren gebruikt.
De randapparatuur speelt bij kennissystemen meestal geen belangrijke rol.

Er zijn verschillende schaakprogramma's ontwikkeld, die als ze tegen elkaar spelen niet telkens dezelfde partij spelen.
Immers de verliezer registreert zijn verlies in de database. Daardoor zal de volgende keer ergens in het spel een andere zetwaardering optreden en de partij wordt anders voortgezet.
Je kunt dan dus zeggen dat het schaakprogramma van zijn verliespartij geleerd heeft, het is intelligent. Daarom wordt een schaakprogramma een kunstmatig intelligent systeem genoemd.

Kunstmatige intelligentie (KI)
KI wil ontdekken hoe intelligentie werkt bij mensen en hoe we dat na kunnen bootsen in computers.
Bij Kunstmatige Intelligentie gaat het dus om de vraag hoe je kennis in een computer kunt stoppen en hoe je die computer op een intelligente manier met die kennis kunt laten omgaan.

Kennissystemen zijn een belangrijk product van Kunstmatige Intelligentie.
Met behulp van kennissystemen kan kennis worden vastgelegd, en hierdoor ben je minder afhankelijk van de deskundige.
Verder kunnen kennissystemen worden ingezet bij het opleiden van deskundigen.
Ook kan de computer behulpzaam zijn bij voorbereidend werk, zodat de deskundige er pas in het laatste en moeilijkste stadium van ontwikkeling aan te pas komt.

Herkenningssystemen of identificatiesystemen zijn ook voorbeelden van kennissystemen.
Daarbij speelt de randapparatuur een belangrijke rol.
Een camera of vergelijkbaar randapparaat zorgt namelijk voor de gegevensinvoer, en de invoer van een beeldopname levert in verhouding een grote hoeveelheid informatie op. Immers alle beeldpunten moeten door de camera worden doorgegeven naar de processor die het beeld gaat verwerken.
De redeneermechanismen voor herkenning van geschreven letters, een vingerafdruk, een stem, een oog, een gezicht en een auto met kenteken zijn zeer verschillend.
Je hebt er namelijk niets aan als je een eerder genomen opname punt voor punt vergelijkt met de zojuist ingevoerde, want geen enkele opname zal dan als exact dezelfde worden geïdentificeerd.

Elk herkenningssysteem vereist specifieke kennis van de te herkennen objecten. Zo weten we van een gezicht dat de afstand tussen beide ogen als één van de vele identificatiekenmerken kan worden benut. Voor vingerafdrukken of een stem gelden weer andere kenmerken.
De herkenningssystemen werken meestal met een zogenoemd herkenningsniveau. Als alle herkenningskenmerken zijn gecontroleerd kan een herkenningswaarde worden bepaald. Daaruit kan dan met een bepaalde zekerheid (die nooit 100% is) worden verondersteld dat de herkenning juist is.

Een andere toepassing van kunstmatige intelligentie is het gebruik van een neuraal netwerk.
De structuur van kunstmatige neurale netwerken is geïnspireerd door de structuur van de hersenen.
Een biologisch neuraal netwerk bestaat uit een groot aantal zenuwcellen, neuronen genoemd, die onderling informatie uitwisselen. Elk neuron heeft een antenne-achtige structuur waarop de signalen afkomstig van andere neuronen als ingangssignalen binnen komen. Deze signalen leiden in het neuron tot lokale veranderingen in de interne potentiaal. De mate waarin een inkomend signaal de interne potentiaal verandert, hangt af van de sterkte van de verbinding tussen twee neuronen, de zogenaamde synaps. Als in het neuron de interne potentiaal een bepaalde drempelwaarde overschrijdt, genereert het neuron een kortdurende spanningspiek (actiepotentiaal). Deze actiepotentiaal plant zich voort naar andere neuronen in het netwerk. Deze actiepotentialen zijn de informatie-eenheden die tussen neuronen worden uitgewisseld.

In een neuraal netwerk wordt zo'n complexe kluwen van verbindingen in een computerprogramma nagebootst.
De informatie in een neuraal netwerk ligt besloten in de sterkte van de synaptische verbindingen.
Deze sterkte kan als gevolg van een leerproces veranderen. Inmiddels zijn een aantal mechanismen bekend die ertoe leiden dat synaptische verbindingen van sterkte veranderen en daarmee informatie opslaan.
Een kunstmatig neuraal netwerk kan getraind worden om patronen te herkennen. Het is daardoor heel geschikt in toepassingen als handschriftherkenning.

Nog een aantal voorbeelden van kennissystemen zijn:
  • adviessystemen: kredietverlening, hypotheek, verzekering
  • roostersysteem
  • NS-reisplanner
  • storingsafhandeling in elektriciteitsnetwerken
  • waterstandvoorspellingssysteem
  • herkenningssystemen
  • een systeem om machinaal te vertalen

  15.5 Simulatiesystemen

Een bekend computerspel als voorbeeld van een simulatiesysteem is de Flight Simulator. Daarin kun je als piloot naar vele bestemmingen vliegen. Op het scherm van je pc zie je precies hoe je de vliegvelden van die bestemmingen moet aanvliegen en welke omstandigheden je daarbij kunt verwachten.

Maar niet alleen als computerspel wordt dit gebruikt, in de opleiding van piloten worden ook computersimulaties gebruikt om te leren omgaan met een bepaald vliegtuig. En sinds enkele jaren kunnen kandidaat-machinisten bij de spoorwegen leren omgaan met een locomotief met behulp van een simulator.

De resultaten van de weersvoorspellingsystemen zien we dagelijks op televisie.
Op een landkaart wordt door bewegende bewolking getoond hoe het weer zich de afgelopen dagen heeft ontwikkeld. En bovendien zien we wat de verwachting voor de komende tijd is.
Om het weer te kunnen voorspellen is het nodig meteorologische processen te simuleren.
In dynamische computersimulaties worden de veranderingen in de tijd van het systeem nagebootst.
Door de huidige meetapparatuur en de digitale verwerking ervan is de weersvoorspelling veel betrouwbaarder geworden.

In simulatiesystemen gelden fundamenteel altijd grote beperkingen. Een exact en volledig model van de werkelijkheid is in principe nooit mogelijk.
Elke simulatie is gebaseerd op het beeld en het model dat de bedenkers en ontwikkelaars van de werkelijkheid hebben.
Een goede modelvorming is vaak zeer specifiek voor een bepaald toepassingsgebied en vereist zeer veel kennis van dat vakgebied.
De ontwikkeling van professionele simulatiesystemen begint met grondige onderzoeken, om te komen tot een in de praktijk bruikbaar en betrouwbaar model.

De simulatie-uitvoer bestaat meestal uit bewegende beelden en geluid. Dat vereist zeer veel verwerkingskracht. De gebruiker wenst een hoge werkelijkheidsbeleving en daarvoor wordt speciale randapparatuur ontwikkeld. Die moet bewegende beelden met hoge kwaliteit kunnen presenteren.

Bij de productie van televisieprogramma's en films worden ook simulatiesystemen toegepast.
Modellen van gebouwen of andere objecten en bewegingsmodellen van mensen en dieren worden gebruikt om een film te produceren. Sommige films worden zelfs volledig met simulatiesystemen gemaakt.
De productie van tekenfilms is sterk vereenvoudigd. Een groot deel van de tekenfilmbeeldjes kan door simulatie en beeldbewerking worden gemaakt.

Met speciale randapparaten kunnen simulaties worden uitgebreid tot virtual reality systemen.
De simulatie kan dan als levensechte ervaring worden beleefd. Een VR-helm speelt daarin als randapparaat een essentiële rol. Als de gebruiker de helm opzet wordt via twee schermen een driedimensionaal beeld getoond.
Dat beeld verandert met de beweging van de gebruiker. De positie van de helm en de richting waarin de gebruiker kijkt worden op elk moment exact bepaald. Als er een verandering in die positie optreedt, wordt het 3D-beeld voor de gebruiker overeenkomstig aangepast. Zo is het mogelijk 'in een gebouw rond te lopen' en het te 'bekijken' zonder dat het gebouw werkelijk bestaat.

Discrete benadering in tijd en cellulaire automaten.
In dynamische computersimulaties worden de veranderingen in de tijd van het systeem nagebootst.
Om deze continue veranderingen goed op een computer te kunnen berekenen, wordt altijd gekozen voor een discrete benadering. Hierbij wordt de tijd opgedeeld in kleine blokjes. De toestand van het systeem wordt op basis hiervan stapsgewijs berekend, door middel van iteratie.

Naast de tijd kan ook de ruimte worden opgedeeld in kleine blokjes; we noemen dit cellulaire automaten.
Bij het onderzoek van complexe processen in de natuur, zoals koraalgroei, bloedstroming in het menselijk lichaam, verdeling van insecten en/of bacteriën over de ruimte, de verspreiding van epidemieën of bosbranden, enz. bestaat de basis van de simulatiemodellen uit cellulaire automaten (ontwikkeld door John von Neumann).
De essentie van cellulaire automaten is hoe een willekeurige eenvoudige reeks van enen en nullen in het volgende tijdstip tot een andere reeks enen en nullen ontwikkelt.
Als dat oneindig vaak gebeurt ontstaan er uit ogenschijnlijk eenvoudige regels complexe patronen.
Aaneengrenzende vakjes, tijdstappen en ontwikkelingsregels, meer heb je niet nodig om een cellulaire automaat te bouwen.


Een voorbeeld:

We bekijken een rooster in het platte vlak gedurende een bepaalde tijd.
De coördinaten van een vakje geven we aan met (i,j) en de tijd met n.
De inhoud van dat vakje op tijdstip n geven we aan met P(i,j,n), en die variabele kan alleen de waarde 0 of 1 aannemen. (als de waarde 1 is zeggen we dat de lokatie (i, j) bezet is op tijd n, is de waarde 0 dan is de lokatie vrij).
De dynamica van het systeem wordt beschreven door overgangsregels te definiëren. Dat kan bijvoorbeeld via de volgende regels:
  • Als een lokatie (i, j) bezet is op tijd n (dus P(i,j,n)=1 ) en twee of drie van de aangrenzende buren zijn ook bezet zijn, dan blijft de lokatie bezet (dus P(i,j,n+1)=1).
  • Als een lokatie (i, j) bezet is op tijd n (dus P(i,j,n)=1 ) en nul, één of vier of meer van de aangrenzende buren zijn ook bezet, dan komt de lokatie vrij (dus P(i,j,n+1)=0).
  • Als een lokatie (i, j) vrij is op tijd n (dus P(i,j,n)=0 ) en precies drie van de aangrenzende buren zijn bezet, dan wordt de lokatie bezet (dus P(i,j,n+1)=1).
De cellulaire automaat gedefinieerd door deze regels heet de 'Game of Life'.

Als op tijdstip 0 de verdeling als volgt is:
00000
01110
00000
dan is de verdeling op tijdstip 1:
00100
00100
00100
en op tijdstip 2 weer:
00000
01110
00000

en zo gaat het steeds verder.



Andere praktijkvoorbeelden van simulatiesystemen zijn:
  • Simulaties ten dienste van onderwijs. In plaats van een echt systeem gebruiken leerlingen een simulatie om iets te leren.
    SimQuest is een programma waarmee dergelijke simulaties kunnen worden ontwikkeld.
  • Simulaties van natuurlijke systemen, die bijvoorbeeld gebruikt worden om te onderzoeken hoe de waterkwaliteit in een zoetwatermeer kan worden verbeterd, of hoe de visproduktie in een visvijver kan worden verhoogd
  • Proefdiervervangende simulaties.
  • Sterkteberekeningen in een mechanisch ontwerp.
  • Botssimulaties voor de automobielindustrie
  • Voorspellingen over de verkeersafwikkeling op wegen
  • Nabootsing van menselijke gedragingen, zoals verkeersafwikkeling van voetgangersstromen. Hierdoor kan bijvoorbeeld nagegaan worden hoe mensen zich gedragen bij een noodtoestand.
  • Computersimulaties in de moleculaire mechanica en moleculaire dynamica om eigenschappen van moleculen te voorspellen.
  • Computersimulaties om processen en stromen te optimaliseren.

  15.6 Embedded systemen

Ontzettend veel ICT-toepassingen werken zonder standaard beeldscherm en standaard toetsenbord.
We hebben het dan over embedded systemen.
Deze producten worden 'onzichtbaar' door een microcomputer bestuurd en hebben hun eigen specifieke randapparatuur voor invoer en uitvoer.
De processor is samen met het intern geheugen en de poorten voor invoer en uitvoer in een chip ondergebracht. Besturingsprogramma's en speciale randapparaten completeren het systeem.
Die randapparatuur kan bijvoorbeeld bestaan uit een klein schermpje waarop enkele lampjes, standaardsymbolen of letters kunnen oplichten. Dat kan ook een klein toetsenbord zijn, waarop de gebruiker met enkele knopjes of druktoetsen het product bedient.

Een fietscomputer is een duidelijk voorbeeld van een product met een embedded systeem.
Ook een rekenmachine bevat een embedded systeem.
Ook in wasmachines en verschillende andere apparaten in de keuken worden steeds vaker en steeds meer embedded systemen toegepast. Daardoor worden diverse functies aan die producten toegevoegd die zonder embedded systeem niet mogelijk zouden zijn.
Als een product in grote aantallen kan worden verkocht en gebruikt, is het mogelijk de verkoopprijs te beperken. De kosten van de ontwikkeling van het product inclusief de ontwikkeling van het embedded systeem kan dan worden verdeeld over die grote aantallen.

Kenmerken van embedded systemen kunnen sterk verschillen omdat de producten waarin ze zijn 'ingebed' sterk kunnen variëren.
Er zijn veel embedded systemen, zoals bijvoorbeeld in een fietscomputertje, die voor enkele euro's kunnen worden geproduceerd.
De toegepaste besturingssystemen bevatten dan uitsluitend de noodzakelijke basisfuncties.
Ook de toepassingsprogramma's zijn relatief klein (enkele Kb) en de mens-machinecommunicatie bestaat vaak uit enkele knopjes voor de bediening.
Enkele lampjes of een klein schermpje zorgen voor de uitvoersignalen.

Maar een straaljager, waarin meer dan honderd gespecialiseerde embedded systemen zijn opgenomen, kost tientallen miljoenen euro's. Een groot deel van die embedded systemen in de straaljager moet bovendien voldoen aan de kenmerken van real-time systemen. Er is dan sprake van real-time embedded systemen.
Om de kosten te beperken wordt zo veel mogelijk gebruikgemaakt van gestandaardiseerde processoren en randapparaten.
Eigen ontwikkeling blijft vaak toch nog nodig voor specifieke randapparatuur en specifieke mens-machinecommunicatie.
In deze embedded toepassingen worden doorgaans ook hoge eisen gesteld aan de responstijd van de systemen.
Dat betekent dat snelle processoren geheugensystemen en randapparaten moeten worden toegepast.

Ook in veel apparatuur in de woonkamer zit embedded software, en dat breidt zich snel uit.
In een paar jaar is de embedded software in een kleuren-tv van 16 KB gegroeid naar 2 MB.
Vergelijkbare groei treedt op bij de ontwikkeling van digitate cdspelers en dvdspelers en mobiele telefoons.

Nog een aantal producten met embedded systemen:
  • chipknip en betaalpas
  • calculator
  • digitaal horloge, stopwatch of wekker
  • fietscomputer
  • (mobiel) telefoontoestel
  • pacemaker; gehoorapparaat
  • magnetron
  • televisie, videorecorder, camera
  • auto: cruise control, navigatieapparatuur, enz.
  • (gok-, geld-, koffie-, parkeer-)automaat
  • kopieermachine

  15.7 Ontwikkelmethoden

Er zijn in de afgelopen jaren een aantal methoden bedacht om geautomatiseerde systemen te ontwikkelen.
Bij die verschillende methoden is één factor die steeds terug komt: het opdelen in fasen.
Een geautomatiseerd systeem ontwikkelen is een ingewikkelde zaak en de ontwikkeling wordt daarom aangepakt in fasen. Een moeilijke opdracht kan immers gemakkelijker gemaakt worden door opdeling in kleinere stukjes.

Ontwikkelmethoden, technieken, gereedschappen
We hebben het in de vorige alinea over methoden gehad. Maar wat wordt daar eigenlijk mee bedoeld?
Een ontwikkelmethode of ontwikkelstrategie is een manier waarop het ontwikkelen van een informatiesysteem kan worden aangepakt, een denkwijze over de manier waarop het ontwikkelingsproces in de loop van de tijd zal worden uitgevoerd.
Anders gezegd: een vaste, weldoordachte manier van handelen om een bepaald resultaat te behalen.

Daarbij worden technieken en gereedschappen gebruikt.
Een techniek is een manier en de wijze van noteren, waarop een deel van de ontwikkeling plaatsvindt.
In het hoofdstuk over informatieanalyse (hoofdstuk 12) hebben we bijvoorbeeld de FCO-IM techniek gebruikt.

Gereedschappen zijn hulpmiddelen die het gemakkelijk maken een techniek toe te passen.
In het hoofdstuk over informatieanalyse (hoofdstuk 12) hebben we bijvoorbeeld het programma FCOCASE gebruikt om de FCO-IM techniek uit te voeren.

Er zijn twee ontwikkelmethoden, waarvan alle anderen zijn afgeleid.
De eerste methode is de watervalmethode, ook wel lineaire methode genoemd.
De tweede is de cyclische of evolutionaire methode.

De watervalmethode
De watervalmethode heeft als voornaamste kenmerk de fasering van de ontwikkeling.
Deze methode werd in de beginjaren van het ontwikkelen van geautomatiseerde systemen veel toegepast, van circa 1975 tot circa 1990.
Ieder project heeft een definitiefase, analysefase, ontwerpfase, en realisatiefase. Sommige fasen worden weer opgedeeld in subfasen, en de gebruikte termen voor de fasen verschillen soms, maar het komt steeds op hetzelfde neer.
Fase na fase wordt doorlopen, waarbij de output van de ene fase de input vormt voor de andere fase.
De fasen kunnen alleen na elkaar plaatsvinden, dus pas als de eerste fase afgerond is kan de tweede starten, enz.



De watervalmethode had in de praktijk nogal wat nadelen.
De watervalmethode nam voor grote projecten veel tijd in beslag. Projecten duurden vaak een jaar of langer.
Het informatiesysteem moest eerst worden ontworpen, gebouwd en getest worden voordat het in gebruik kon worden genomen. Tegen de tijd dat het zover was waren de gebruikerswensen al weer veranderd en voldeed het systeem niet meer aan de verwachtingen.
De ontwikkelingen in hard- en software gaan zo snel dat de kans bestaat een systeem of product to ontwikkelen voor verouderde hardware en met verouderde technieken.
Bovendien verandert de omgeving van een systeem vaak sterk gedurende een jaar.
Vanwege deze nadelen zijn ontwikkelaars op zoek gegaan naar snellere methoden.

Toch worden nog wel onderdelen van de watervalmethode gebruikt, deze methode vormt nog steeds de basis voor de meeste projectmanagement-methoden.
Elke methode heeft er onderdelen uitgelicht, bijvoorbeeld de in Nederland ontwikkelde methode SDM (System Development Methodology), zie paragraaf 4.

De cyclische methode
Deze methode wordt ook wel de evolutionaire methode of het spiraalmodel van Boehm genoemd.
Ook worden de afkortingen RAD (Rapid Application Development) of EVO (Evolutionaire systeemontwikkeling) er wel voor gebruikt.
Bij deze methode gaat men ervan uit dat het onmogelijk is in één keer een volledig systeem, dat aan alle wensen voldoet, te ontwikkelen.
Vanaf circa 1990 begon men met deze methode.
Als het systeem gemaakt wordt begint men vrij snel met de realisatie van een beginproduct. Het hoeft nog niet volkomen duidelijk te zijn welke functies het systeem allemaal moet hebben. Want door de bijdrage van de gebruiker van het beginproduct kan het steeds verder uitgebreid en verbeterd worden.
Het wordt dus in opeenvolgende versies gebouwd en getest.
Daarbij wordt er begonnen met de lastigste problemen of met de problemen waaraan het hoogste risico zit.
Er kan ook voor gekozen worden het informatiesysteem niet in z'n geheel in één keer in de hele organisatie in te voeren, maar het bijvoorbeeld eerst voor één afdeling in te voeren.
Deze versie wordt dan een pilot (dat is een testversie) genoemd. Het is dan de bedoeling het informatiesysteem aan te passen en het installatieproces te verbeteren zonder dat dit grootschalige gevolgen heeft voor de hele organisatie.
In de volgende stappen kan het deel van de organisatie, waarin het wordt ingevoerd, geleidelijk toenemen, totdat het systeem in de laatste stap in de hele organisatie wordt ingevoerd.

Als het nieuwe informatiesysteem in de hele organisatie wordt ingevoerd gaat men vaak eerst een periode schaduwdraaien. Dat betekent dat gedurende een proefperiode het oude en het nieuwe informatiesysteem beide in gebruik zijn, zodat men als er iets mis gaat met het nieuwe systeem, altijd weer kan terugvallen op het oude.

Dit wordt ook wel parallelverwerking genoemd. Daarbij is het nieuwe systeem het primaire informatiesysteem, maar de gegevens worden gedurende de proefperiode ook nog met het oude informatiesysteem verwerkt.

Soms ook wordt er eerst een prototype gemaakt.
Een prototype is een experimentele, meestal beperkte, versie van het informatiesysteem.
Een prototype kan dienen om de functionaliteit en toepasbaarheid te demonstreren en te testen.
Maar met een prototype kan ook het gedrag en de toepasbaarheid worden onderzocht, of er kan een indruk worden gekregen van de snelheid (of andere prestatiekenmerken) van het systeem.
Een prototype is meestal niet een volledig informatiesysteem, het kan zich bijvoorbeeld concentreren op de gebruikersinterface, of op een erg belangrijk verwerkingsonderdeel.

Bij de cyclische methode kunnen tussen twee versies in de eisen aan de beschrijving en de bouw van het informatiesysteem veranderen door opgedane ervaringen bij het testen.
Dit proces heeft veel overeenkomsten met de Deming-cirkel (zie hoofdstuk 13).
Deze cirkel wordt ook wel de PDCA-cyclus genoemd:
  • P van Plan of voorbereiden - plannen: je stelt een verbeterplan op
  • D van Do of uitvoeren: je voert het verbeter- of actieplan uit.
  • C van Check of opvolgen en evalueren: je evalueert de resultaten en het effect van het verbeterplan
  • A van Act of bijsturen en verankeren: je stuurt de activiteit opnieuw bij als de resultaten onvoldoende waren
  • Vervolgens start een nieuwe PDCA-cyclus met het oog op continue verbetering.
In elke cyclus komen de fasen verzamelen van eisen, ontwerp, implementatie en testen naar voren. Deze fasen worden in dit geval wel tijdvensters genoemd, die duren een aantal weken tot een maand, waarna telkens de volgende versie van het product wordt opgeleverd.



De RAD-methode DSDM is een voorbeeld van de cyclische methode, zie paragraaf 15.9

  15.8 SDM: System Development Methodology

In 1970 werd de eerste versie van SDM ontwikkeld, dat is een voorbeeld van de waterval-methode.
In 1974 kwam de Engelse versie op de markt en daarna heeft het gebruik ervan een grote vlucht genomen.
SDM behandelt de gehele levenscyclus van een informatiesysteem, van het begin tot het eind (tot er dus weer een nieuwe versie van het systeem wordt opgezet).
De levenscyclus is opgedeeld in fasen en in elke fase worden de activiteiten exact beschreven.
In de jaren zeventig van de vorige eeuw sprak men over een levenscyclus van ongeveer zeven jaar , dus na circa zeven jaar werd er meestal weer om een nieuwe versie gevraagd.
In de tabel hieronder worden de fasen opgenoemd, en daaronder worden ze beschreven. Omdat de eerste ontwikkelaars dat deden nummert men ze nog steeds van 0 tot 7.

NummerNaam fase
0Vooronderzoek
1Definitiestudie
2Functioneel ontwerp
3Technisch ontwerp
4Programmeren en toekennen van taken
5Testen
6Conversie en invoering
7Gebruik en beheer van het systeem

  1. Vooronderzoek.
    Tegenwoordig wordt er bijna nooit met een nieuw informatiesysteem begonnen terwijl er helemaal nog niets is. Je begint meestal niet from scratch (zo wordt dat in goed nederlands gezegd), meestal is er al wel een systeem, maar dat voldoet niet meer aan de eisen.
    Er wordt daarom eerst onderzocht welke problemen het oude informatiesysteem heeft veroorzaakt. Uiteindelijk ontstaat er een plan om het informatiesysteem te verbeteren of te vernieuwen.
    Het vooronderzoek wordt afgesloten met een rapport, en als het plan wordt goedgekeurd begint men aan fase 1.

  2. Definitiestudie
    De definitiestudie is erop gericht inzicht te verkrijgen in het probleemgebied.
    De bestaande processen worden onderzocht en de problemen worden tot op detailniveau uitgeplozen.
    Daarna worden doelstellingen geformuleerd en mogelijke oplossingen uitgedacht. Van elke oplossing wordt bekeken wat voor soort systeem er nodig is en wordt ook bekeken hoeveel dat globaal kost.
    Er worden ook functionele eisen aan een mogelijke oplossing gesteld.
    Functionele eisen zijn de eigenschappen die een systeem moet hebben om te doen wat het moet doen.
    Alle informatie van deze fase komt in een rapport met daarin aangegeven welke oplossing de voorkeur geniet.
    Dit rapport is een mijlpaal. Dat wil dus zeggen dat pas na goedkeuring van het rapport verdergegaan wordt.

  3. Functioneel ontwerp
    Nadat een bepaalde oplossing gekozen is, wordt onderzocht wat het systeem, dat gebouwd gaat worden, allemaal moet kunnen (dus welke functies moeten moeten kunnen worden verricht) en welke gegevens daarbij gebruikt moeten worden.
    Dit heet het functioneel ontwerp.

  4. Technisch ontwerp
    Aan de hand van het functioneel ontwerp kan er een werkelijk programma uitgedacht worden. In deze fase wordt vastgelegd hoe de in het functioneel ontwerp vastgelegde functionaliteit gerealiseerd gaat worden. Er vindt ook een onderverdeling plaats in technische eenheden zoals programma's, modules en functies.
    Dit gebeurt zo gedetailleerd dat de ontwikkelaar in de volgende fase precies weet wet er gebouwd moet worden.
    Alle schermen met hun invoervelden, berekeningen, controles en ondersteunende schermen worden beschreven.
    De interface moet aan een aantal eisen voldoen. Het moet duidelijk zijn waar elk onderdeel voor dient, dat heet ook wel de transparantie van de bediening.
    Het technisch ontwerp wordt afgesloten met een test op papier waarbij wordt nagegaan of de detaillering voldoende is om verder te gaan en of alle functionele eisen erin verwerkt zijn. Dit is weer een mijlpaalproduct.

  5. Programmeren en toekennen van taken
    In deze fase worden de programma's van het systeem geschreven volgens de technische specificaties die in de vorige fase vastgelegd zijn.
    Elk apart programma wordt geschreven met de bestanden die erbij horen en afzonderlijk getest. De test houdt in dat er bekeken wordt of de specificaties gehaald worden.

  6. Testen
    Alle deelprogramma's worden nu in samenhang getest. Hierbij worden ook de procedures meegenomen en de gebruikershandelingen bekeken.
    De klant doet in deze fase een formele acceptatietest. Dit wil zeggen dat de klant controleert of alle functionaliteiten volgens de specificaties gebouwd zijn. Zo niet, dan zal het programma door de programmeur bijgesteld moeten worden en wordt dat onderdeel opnieuw getest.
    De mijlpaal van deze fase is een door de klant ondertekend acceptatierapport.

  7. Conversie en invoering
    Bij de invoering van het nieuwe systeem is het in veel gevallen zo dat er een oud systeem bestond.
    De gegevens van dat oude systeem zullen omgezet moeten worden zodat ze geschikt zijn voor het nieuwe systeem.
    Dit heet conversie.
    Bij de invoering wordt de gebruiker geschoold in het gebruik van het nieuwe systeem.
    Na de scholing is het informatiesysteem klaar. Maar deze fase wordt pas afgerond als de systeemdocumentatie compleet is.
    De systeemdocumentatie is de beschrijving van het systeem met daarin de programma's, de bestanden, de procedures en een beschrijving van de handmatige handelingen die nodig zijn.

  8. Gebruik en beheer van het systeem
    Zodra het systeem af is, wordt het in gebruik genomen. Tijdens het gebruik vindt er regelmatig een evaluatie van het systeem plaats, waarbij gekeken wordt of het systeem nog wel voldoet.
    Dit levert ideeën op voor de volgende systeemontwikkeling die op termijn weer gaat plaatsvinden.

    Voor het beheer is het bijvoorbeeld belangrijk dat men back-ups van de bestanden maakt.
    Het beheer betekent hoofdzakelijk het operationeel houden van het informatiesysteem, en het eventuele herstel ervan.

    Voor het ontwikkelen van een geautomatiseerd informatiesysteem, fase 0-6, werd in de jaren 1970-1980 ongeveer 1 tot 2 jaar uitgetrokken. De fase Gebruik en beheer duurde vijf jaar of langer. Daarna vonden de meeste bedrijven het noodzakelijk een nieuwe ontwikkeling te starten, dus een systeem ging circa zeven jaar mee.

  15.9 DSDM: Dynamic System Development Method

In de beginjaren negentig van de vorige eeuw werden er zogenaamde RAD-methoden ontwikkeld. RAD staat voor Rapid Application Development. Een bekende RAD-methode is DSDM. Dynamic System Development Method is een methode die vanaf 1995 is ontwikkeld.

DSDM is gebaseerd op negen principes:
  1. Actieve betrokkenheid van gebruikers is noodzakelijk.
  2. DSDM-teams zijn gemachtigd besluiten te nemen.
  3. Het team levert regelmatig producten.
  4. De producten moeten onmiddelijk bruikbaar zijn voor het doel waarvoor ze ontwikkeld zijn.
  5. Herhalende en cyclische ontwikkeling zijn nodig om te komen tot een juiste oplossing.
  6. Wijzigingen tijdens de ontwikkeling zijn terug te draaien.
  7. Er wordt uitgegaan van een hoog niveau van benodigheden.
  8. Er wordt gedurende de gehele levencyclus van een product getest.
  9. Alle betrokkenen moeten samenwerken en meewerken.
  1. Actieve betrokkenheid van gebruikers is noodzakelijk.
    In DSDM staat de gebruiker centraal.
    Beslissingen die genomen zijn zonder de gebruiker daarbij te betrekken roepen vaak weerstand op, de gebruiker is dan meestal niet tevreden met het product.
    Bij SDM staan gebruikers buiten het ontwikkelproces en geven alleen informatie, maar bij DSDM zijn de gebruikers actief betrokken bij het ontwikkelproces.

  2. DSDM-teams zijn gemachtigd besluiten te nemen.
    De teams bestaan uit gebruikers en ontwikkelaars. Zij moeten beslissingen kunnen nemen wanneer uit overleg en voortschrijdend inzicht blijkt dat specificaties anders zijn dan eerder afgesproken.
    Wanneer teamleden steeds terug moeten naar hun management vertraagt dat.

  3. Het team levert regelmatig producten.
    Het werk van DSDM-teams richt zich op producten die op te leveren zijn in een afgesproken tijd.
    De tijd is kort, daarom zal het team alleen die activiteiten ontplooien die nodig zijn om het doel (een product opleveren) te bereiken.

  4. De producten moeten onmiddelijk bruikbaar zijn voor het doel waarvoor ze ontwikkeld zijn.
    De nadruk van DSDM ligt op het leveren van producten met een bepaalde functionaliteit in een vooraf vastgestelde tijd.
    De producten moeten bij oplevering werken en dus meteen van nut zijn.
    Bij de vroegere ontwikkelingsmethoden (gebaseerd op de watervalmethode) was de ontwikkelperiode lang en daardoor was de kans groot dat de behoefte van het bedrijf veranderd was en dus het product niet meer bruikbaar. Dat probeert men bij de DSDM-methode te voorkomen.

  5. Herhalende en cyclische ontwikkeling zijn nodig om te komen tot een juiste oplossing.
    Bij de DSDM-methode sturen de ontwikkelaars steeds bij wanneer de gebruikers met kritiek komen op het product.
    Daardoor maakt DSDM het mogelijk dat systemen steeds blijven groeien.
    Dit is een goed voorbeeld van het toepassen van de Deming-cirkel (zie hoofdstuk 13): plan, do, check, act.

  6. Wijzigingen tijdens de ontwikkeling zijn terug te draaien.
    Als gebruikers met een verandering van het programma niet tevreden zijn, kan deze verandering simpel teruggedraaid worden door aan de voorlaatste versie verder te bouwen.
    Omdat er vaak verschillende ontwikkelingen tegelijkertijd plaatsvinden is het verschrikkelijk belangrijk een goed versiebeheer te hebben.

  7. Er wordt uitgegaan van een hoog niveau van benodigdheden.
    De specificaties van het programma, het doel en de reikwijdte zijn net zoals bij andere methoden van groot belang.
    Door de cyclische en zich herhalende ontwikkeling zullen bepaalde specificaties in een later stadium pas gedetailleerd beschreven worden. Zo zal men altijd uitgaan van het hoogst bereikbare niveau in functionaliteiten van een programma of een systeem, maar het zal niet allemaal op hetzelfde moment bereikt worden.

  8. Er wordt gedurende de gehele levenscyclus van een product getest.
    Testen wordt niet gezien als een apart proces maar is onderdeel van de systeemontwikkeling.
    Elk programma en elk deelsysteem wordt getest bij oplevering en zodoende zorgt de gebruiker er voor dat het gemaakte onderdeel ook aan de wensen voldoet.
    In het begin van de ontwikkeling wordt er getest op functionaliteit van het ontwikkelde deel.
    Aan het eind van het ontwikkelingsproces is de test van het grotere geheel belangrijk.

  9. Alle betrokkenen moeten samenwerken en meewerken.
    Omdat snelheid een van de aspecten is van deze vorm van systeemontwikkeling kan de ontwikkeling alleen goed gaan wanneer alle betrokkenen meewerken.
    Als de gebruikers onvoldoende meewerken dan is dat de doodsteek voor het proces. Er zal dan onvoldoende feedback zijn om de verschillende onderdelen volgens specificaties to bouwen en het systeem kan gemakkelijk een flop worden.
Beschrijving van DSDM
DSDM is een methode die de ontwikkeling van IT-systemen vastlegt in een raamwerk van een tijdsplanning (timeboxes), en die tijdsplanning is vrij kort.
De duur van het project en de te gebruiken hulpbronnen worden vastgelegd, maar de specificaties die gerealiseerd zullen gaan worden in het verloop van het project kunnen variëren.
Dus in DSDM is de tijd vooraf vastgelegd en het gewenste product maar ten dele.
Een kenmerk van DSDM is dat het volledig onafhankelijk is van leveranciers, ontwerpmethodes en van ontwikkelomgevingen.
Verder is het kenmerkend dat de eindgebruiker zeer actief deelneemt aan het ontwikkelingsproces.
In het begin van het project worden de specificaties op globaal niveau ingedeeld op prioriteiten, volgens het zogenaamde MoSCoW-principe.
De afkorting MoSCoW staat voor de gewenstheid van de diverse onderdelen van het gewenste systeem:
  • Must have - die onderdelen moeten in ieder geval worden gerealiseerd;
  • Should have - zouden eigenlijk moeten worden gerealiseerd, maar zijn niet onmisbaar;
  • Could have - onderdelen die handig zijn om op te nemen, maar zonder problemen achterwege kunnen blijven;
  • Would not have - onderdelen die waarschijnlijk niet aan bod komen, maar die in de toekomst interessant zijn
De systematiek is weergegeven in onderstaande figuur, en daar onder is het beschreven.



Het proces bestaat uit vijf fasen:
  1. Haalbaarheidsonderzoek
  2. Bedrijfsonderzoek
  3. De functiebepalende cyclus
  4. De cyclus ontwerpen en bouwen
  5. De implementatie cyclus
  1. Haalbaarheidsonderzoek.
    In het haalbaarheidsonderzoek wordt onderzocht of de applicatie ontwikkeld kan worden met DSDM.
    Er wordt vooral gekeken of aan de voorwaarden, technisch en organisatorisch, kan worden voldaan.
    Dit onderzoek duurt ongeveer twee weken.

  2. Het bedrijfsonderzoek.
    In het bedrijfsonderzoek wordt de totale activiteit van het project bekeken in het licht van het functioneren van het bedrijf.
    In grote lijnen wordt beschreven waaraan de applicatie moet voldoen en hoe het systeem opgezet gaat worden. Ook wordt de onderhoudbaarheid van het systeem beschreven.
    Dit onderzoek duurt niet langer dan een maand.

  3. De functiebepalende cyclus.
    Deze fase is één van de twee fasen waarin prototypes gebouwd worden.
    In deze fase gaat het vooral om de functionaliteiten.
    Het prototype in deze fase is een programma dat vooral bedoeld is om er achter te komen wat het programma moet doen. Dit gebeurt door analyse door gebruiker en ontwikkelaar.
    Voor de analyse worden allerlei technieken gebruikt die ook in de traditionelere methoden gebruikt worden.

  4. De cyclus ontwerpen en bouwen.
    Gedurende deze fase is het belangrijkste dat de prototypes zodanig gebouwd zijn dat ze echt gebruikt kunnen worden.
    De overgang van de vorige fase naar deze fase is gebaseerd op overeenstemming tussen gebruikers en ontwikkelaars van een deel van het functionele model. Dit kan stap voor stap gebeuren.
    Er is daarom geen harde scheidslijn tussen de vorige fase en deze fase. Sommige onderdelen zijn nog in fase 3 (functiebepaling), terwijl andere al in fase 4 (bouwen) zijn.

  5. De implementatiecyclus.
    In de implementatiefase wordt het nieuwe (deel)systeem ingevoerd in het bedrijf, en de gebruikers worden getraind. Verder wordt de bedrijfsvoering herzien ten aanzien van die zaken die geautomatiseerd zijn.
    Uit die herziening volgen vier mogelijkheden, kijk maar naar de pijlen die daaruit voortkomen in bovenstaande figuur.
    • Alles werd opgeleverd en juist geïmplementeerd en er is geen behoefte aan verdere ontwikkeling (dus geen pijl).
    • Een nieuwe functionele omgeving is ontdekt gedurende de ontwikkeling en implementatie. De ontwikkeling start dan weer bij het bedrijfsonderzoek (Pijl 1).
    • Een minder essentieel deel van de functionele omgeving ontbreekt, bijvoorbeeld door tijdgebrek.
      Er wordt weer gestart met het bepalen van de functionaliteiten (Pijl 2).
    • Een niet nieuw functioneel onderdeel was onvoldoende ontwikkeld en er moet nog een extra inspanning geleverd worden in ontwerp en bouw (Pijl 3).
Tijdframes (timeboxes)
DSDM gebruikt tijdframes.
Aan het einde van het tijdframe moeten er één of meerdere werkende producten worden opgeleverd.
Er worden verschillende tijdframes achter elkaar gepland als er veel producten opgeleverd moeten worden.
Een tijdframe heeft gemiddeld een lengte van zes weken.
Elk tijdframe bestaat uit drie delen: deel 1 bestaat uit onderzoek of het team nog in de juiste richting gaat, dan volgt de verfijning (deel 2) en als laatste (deel 3) de controle waarbij alle onderdelen die nog openstaan afgerond worden en gekeken wordt naar vervolgacties.
Doordat de tijd krap is, is een directe communicatie in het team (gebruikers en ontwikkelaars) noodzakelijk.

In een vastgestelde korte tijd moet altijd een resultaat kunnen worden opgeleverd, want volgens de Paretoregel of de 80/20-regel kun je met 20 procent van de inspanning 80 procent van het werk gedaan krijgen.
Hiermee bedoelt men eigenlijk gewoon dat je je op de juiste zaken moet concentreren.

Het patroon van het 80/20 principe werd voor het eerst in 1897 ontdekt door de Italiaanse econoom Vilfredo Pareto (1848 - 1923).
Sindsdien is het vele malen herontdekt in uiteenlopende situaties.
Het staat bekend onder verschillende namen, bijvoorbeeld de 80/20 regel, de Wet van Pareto, het principe van de minste inspanning.

Vilfredo Pareto was een Italiaanse econoom die had opgemerkt dat 20% van de Italianen 80% van de totale rijkdom van het land bezaten.
Dit geldt ook voor de gehele aardbol: 80% van de rijkdommen op onze planeet is in handen van 20% van de bewoners.
Deze wet kan worden toegepast op een heleboel gebieden, bijvoorbeeld op de verkeersveiligheid: 20% van de automobilisten veroorzaken 80% van de ongevallen.
Het kan ook worden toegepast op de sociale zekerheid: 20% van de mensen nemen 80% van de onkosten voor hun rekening.
Bij een bedrijf bepalen meestal slechts 20% van de klanten samen zo'n 80% van de omzet.
Zelfs blijkt het meestal zo te zijn dat 20% van je kleren 80% van de tijd door je gedragen worden.

Het Pareto Principe geeft aan dat een gering aantal oorzaken (beperkte input of moeite) verantwoordelijk is voor het merendeel van de resultaten (output of beloning).