Informaticasite van het Lauwers College te Buitenpost                 © R.J. van der Beek
 

Hoofdstuk 15 Systeemontwikkeling en UML

15.1 Systemen

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.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.1.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.1.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.1.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.1.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.1.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