elomax

[ Techniek ] [ Shop ] [ Site map
Inleiding ] Processor ] Ontwikkelomgeving ] Interrupts ] Digitale I/O ] Seriele communicatie ] Timers ] A/D Conversie ] Puls teller ] SPI ] Watchdog ] Clock monitor ] EEPROM ] Configuratie ] [ Ontwerp technieken ] Toepassings voorbeeld ]

Terug
Omhoog

Software ontwerp

In de loop van de ontwikkeling van de software engineering is al veel geschreven en gezegd over het ontwerpen van software. Vele methoden en technieken zijn bedacht en verfijnd naarmate er meer ervaring mee werd opgedaan.

Enkele van de methoden zijn strikt formeel, andere zijn wat vrijer. Er is niet één techniek of methode de enig zaligmakende; de grootte van het project, de grootte van het projectteam, de mate waarin naar verwachting de software later aangepast en uitgebreid zal moeten worden, de mate waarin de programmeurs ervaring hebben met een bepaalde methode, het type software dat geschreven moet worden (een besturing met nauwe relatie met de hardware, of juist een database applicatie waarin alleen met data gewerkt wordt), dit zijn allemaal aspecten die de keuze voor of tegen een bepaalde methode bepalen. De belangrijkste tip die we kunnen geven is eigenlijk:

Mààk een ontwerp.

Gebruik Uw inventiviteit, creativiteit en kennis van zaken om, vòòrdat U ook maar één regel programmeert, voor Uzelf goed vast te stellen:

  • Wàt er gemaakt moet worden.

  • Hòe het gemaakt kan gaan worden.

Door het probleem van te voren goed te overdenken voorkomt U veel werk in de uitvoeringsfase.

Wanneer U weet wat er gemaakt moet worden, en hoe U dit denkt aan te pakken, zult U dit op één of andere wijze willen opschrijven. Twee eenvoudige hulpmiddelen hiertoe zullen hieronder besproken worden.

Flowcharts

Met een flowchart kan de afloop van een programma eenvoudig in een schema worden weergegeven. Hiertoe zijn drie symbolen voldoende.

 

Programma afloop

Het programma loopt via de lijnen tussen de symbolen. De snelheid waarmee het programma wordt uitgevoerd is geen onderdeel van de representatie. Bij een flowchart worden alle acties en beslissingen oneindig snel doorlopen. Ook andere limieten die in een normale computer een rol kunnen spelen (eindig geheugen, eindige reken nauwkeurigheid, etc.) spelen in een flowchart geen rol.

Normalerwijze wordt een flowchart van boven naar beneden doorlopen. Wanneer een lijn van beneden naar boven gaat, dient er een pijl in de lijn te worden getekend.

Actie

Een rechthoek geeft een actie aan. De actie die wordt uitgevoerd staat in de rechthoek beschreven. Een rechthoek heeft één uitgang, maar kan meerdere ingangen hebben (minimaal één.)

Conditie

Met een ruit wordt een splitsing aangegeven in de programma afloop. Na een ruit kan het programma één van twee routes volgen. De route die genomen zal worden is bepaald door de voorwaarde die in de ruit beschreven staat.

Wanneer de ruit te krap is voor de tekst die erin geschreven moet worden, kan hij verbreed worden.

Terminals

Met cirkels worden programma begin- en eindpunten weergegeven. Een circel kan ook gebruikt worden als 'label' in een flowchart. Hierdoor wordt het mogelijk een flowchart over meerdere pagina's te verdelen. Een programmalijn eindigt dan in een cirkel met bijvoorbeeld label 'A', en op een andere pagina start een ander deel van de flowchart weer met een cirkel met label 'A'. De twee flowcharts sluiten dan op elkaar aan op de plaats van de cirkel.

Voorbeeld

Een voorbeeld van een flowchart die de programma afloop laat zien van een eenvoudige routine die het getal 'b' vermenigvuldigt met 28 ,is hieronder gegeven.

 

Toestandsdiagrammen

Besturingen worden vaak ontworpen voor apparaten of systemen die in een beperkt aantal bedrijfstoestanden kunnen zijn. Een voorbeeld is een videorecorder, waar (onder meer) de volgende bedrijfstoestanden herkend kunnen worden:

  • cassette uitgeworpen

  • cassette ingevoerd

  • stilstaan

  • spelen

  • spoelen

Het is over het algemeen de taak van de besturing deze bedrijfstoestanden (states) te volgen en te controleren. Het is dan ook vaak zinvol deze bedrijfstoestanden op te nemen in een diagram (een toestandsdiagram, ofwel state-diagram.)

State

In een state-diagram wordt een bedrijfstoestand weergegeven door een rechthoek. In de rechthoek staat de naam van de state.

Er worden ook vaak cirkels gebruikt om een state aan te geven. Welke U kiest is een kwestie van smaak of gewoonte.

Overgangen

De overgang van de éne naar een volgende state wordt weergegeven door een lijn met een pijl aan het eind. Bij de lijn staat de conditie beschreven waaronder de toestandsverandering optreedt.

Acties

Vaak moet de besturing een actie uitvoeren om het te besturen apparaat van toestand te laten veranderen, of als gevolg van de toestandsovergang. De te ondernemen actie wordt eveneens naast de lijn geschreven, meteen onder de voorwaarde waaronder de toestandsovergang zich voordoet.

Voorbeeld 1

Een voorbeeld van een systeem dat in een aantal onderscheiden toestanden kan verkeren, is gegeven in de onderstaande figuur. Hier is een rat opgesloten in twee kooien die met elkaar verbonden zijn via een buis. Het dier kan via de buis van kooi A naar kooi B en terug lopen, en passeert daarbij onderweg twee lichtsluisjes die de aanwezigheid van de rat kunnen detecteren. Het is de opdracht van de software om bij te houden in welke van de twee kooien de rat zich op elk moment bevindt

.

Stel dat de rat zich in kooi A bevindt. Als hij zijn snuit in de buis steekt, blokkeert hij de lichtinval op detector A. Deze gebeurtenis wordt herkend door de software als 'A=0', en leidt ertoe dat wordt overgegaan naar de volgende toestand ('voor detector A'.) Wanneer in deze toestand 'A=1' wordt, is de rat blijkbaar teruggekropen, en wordt de toestand 'in kooi A' weer aangenomen. Als echter ook detector B geblokkeerd wordt ('A=0 en B=0'), dan is de rat in de buis terechtgekomen. Toestand 'voor detector A en voor detector B' wordt aangenomen. Kruipt de rat in deze toestand een stukje terug ('A=0 en B=1') dan wordt de vorige toestand weer actief, maar kruipt de rat verder ('A=1 en B=0') dan wordt de volgende toestand actief. Zo wordt het gedrag van de rat gevolgd, en weet de software op elk moment waar de rat zich bevindt.

Voorbeeld 2

Een ander voorbeeld van een apparaat dat zich in verschillende states kan bevinden, en bestuurd kan worden door een micro-controller, is een snickers-automaat. Het state-diagram van de automaat is hieronder gegeven.

De software volgt niet alleen de verschillende states van de machine, maar zorgt ook voor de besturing ervan. Hiertoe moet de besturing bij de overgangen tussen de verschillende states een actie ondernemen. Deze acties worden weergegeven in het diagram, meteen onder de voorwaarde waaronder van state gewisseld wordt.

Een belangrijke gebeurtenis uit de buitenwereld is 'reset'. Als de machine wordt aangezet, worden alle laden vergrendeld en komt de machine in de toestand 'laden vergrendeld'.

De machine blijft in deze toestand, totdat een munt wordt ingeworpen. In reactie hierop worden de laden ontgrendeld, en komt de machine in de state 'laden ontgrendeld'.

Deze state blijft actief totdat de klant één van de laden heeft geopend. In reactie hierop kunnen de laden weer vergrendeld worden, en komt de automaat in de state 'lade geopend'.

Wanneer de lade weer wordt gesloten, kan de state 'laden vergrendeld' weer worden aangenomen, en wordt gewacht op de volgende muntinworp.

 

© 2005...2008 Elomax [Voorwaarden ]