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:
- Gegevens (invoergegevens, gegevensverzamelingen, uitvoergegevens)
- Programmatuur
- Apparatuur
- Mensen
- 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: |
| dan is de verdeling op tijdstip 1: |
|
en op tijdstip 2 weer: |
|
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
|