Analyse
GCC viert zilveren jubileum
25 jaar geleden bracht Richard Stallman zijn vrije en opensource C-compiler uit. Sindsdien is GCC uitgegroeid tot een kracht van betekenis in de computerindustrie, waarmee vriend en vijand rekening...
25 jaar geleden bracht Richard Stallman zijn vrije en opensource C-compiler uit. Sindsdien is GCC uitgegroeid tot een kracht van betekenis in de computerindustrie, waarmee vriend en vijand rekening...

Met de Open GPS Tracker-app kunnen bezitters van een Android-telefoon hun route opnemen en op een kaart weergeven. Ondertussen hebben meer...
De eerste klap is een daalder waard, weet ook Hans Clevers. In zijn eerste interview sinds bekend was gemaakt dat hij DWDD-president Robbert Dijkgraaf opvolgt bij de KNAW zei de wereldberoemde...
31 oktober 2011
Een paar maanden geleden daagde Verum ontwikkelaars uit om zijn ASD:Suite in te zetten voor compleet nieuwe applicaties. Onlangs ontvingen de tien beste inzenders een Ipad 2 voor hun creaties. De absolute winnaars: een simulator van een boordcomputer voor in de auto en een ASD-remake van het klassieke arcadespel Space Invaders.

1.
Naam: Martin Keesen
Project: Simulator on-board unit
Besteding: Van april tot en met juni wekelijks meerdere (lange) avonden
Beschrijving:
De on-board unit (OBU) maakt het verzekeringsmaatschappijen mogelijk een bonus te geven aan bestuurders die zich houden aan de verkeersregels en hun rijgedrag aanpassen aan de omstandigheden. De aanschafkosten en vooral de communicatiekosten zijn echter te hoog voor een sluitende businesscase. De simulator is bedoeld om aan te tonen dat de gebruiker extra voordelen heeft bij de aanschaf van de OBU. Verschillende scenario’s zoals snelheidsadvies, filevoorspelling en stilstaand verkeer kunnen worden uitgeprobeerd. De code van de userinterface is strikt atomair opgezet, wat wil zeggen dat één event leidt tot één enkele respons. Het gedrag van de simulator is geheel vastgelegd in een ASD-model waaruit de C#-code wordt gegenereerd.
Ervaringen:
Het is goed mogelijk om snel een prototype te bouwen waarvan het gedrag geheel gebaseerd is op een ASD-model. De uiteindelijke versie van de simulator bevat zestien componenten en 24 interfaces. Het is noodzakelijk om bij het wijzigen van een component een modelcheck uit te voeren op alle omliggende interfaces. Aangezien er geen ondersteuning voor dit proces is, bestaat de kans dat je voortborduurt op een onvolledig gecontroleerd systeem. De magere ondersteuning voor het werken met data dwingt tot het maken van extra componenten. Zelfs de eenvoudigste vergelijking tussen posities of snelheden moet je onderbrengen in zogeheten foreign components. De verificatie kan erg lang duren als een component veel asynchrone events moet verwerken. Dit dwingt tot het maken van decomposities die in eerste instantie niet voor de hand liggen.
2.
Naam: Terry Dennemans
Project: I2C-protocol
Besteding: 45 uur
Beschrijving:
In dit project is een Ethernet-gebaseerde I/O module ontwikkeld die het I2C-protocol gebruikt voor de communicatie tussen de verschillende componenten. Dit protocol is gemodelleerd met ASD, samen met de andere softwarelagen. De testapplicatie stuurt alle I/O aan en geeft de gegenereerde I2C-signalen weer.
Ervaringen:
De ASD:Suite is erg gebruikersvriendelijk en zorgt ervoor dat je model compleet wordt. Het toont ook de problemen in je model. Het laatste jaar is het gereedschap met stappen vooruitgegaan en het begrijpen van de modelfouten is een peulenschil geworden. De gegenereerde code was gemakkelijk te integreren. ASD doet zelf niets met data, maar met behulp van hulpcomponenten zijn toch data-intensieve applicaties te bouwen. Om ervoor te zorgen dat je model doet wat het moet doen, blijft het nodig de modellen te testen aan de buitenkant. Anderen kunnen de modellen gemakkelijk reviewen.
3.
Naam: Willie Aarnink
Project: Tweet/retweet-applicatie
Besteding: Tachtig uur
Beschrijving:
Via een Twitter-account luistert de applicatie naar tweets die een verzoek bevatten, bijvoorbeeld om Fibonacci-getallen te berekenen: ‘Fibonacci(14)?’. De toepassing maakt voor dergelijke verzoeken taken aan en verdeelt die over de beschikbare processoren in het systeem. Na afloop van de berekening wordt het antwoord verstuurd in een tweet: ‘Fibonacci(14) = 377’.
Ervaringen:
ASD vraagt een specifieke manier van denken, een combinatie van zowel overzicht hebben als oog hebben voor detail. Verantwoordelijkheden van componenten moet je duidelijk hebben, details moeten kloppen, dan loopt het modelleren lekker. Als je je de denkwijze eenmaal eigen hebt gemaakt, kun je er heel snel applicaties mee ontwikkelen. De gegenereerde broncode integreert naadloos in je bestaande ontwikkelomgeving. De mooiste ASD-modellen hebben een wiskundige schoonheid door hun symmetrie: een mooiweerpad impliceert een slechtweerpad. Het model is pas compleet als beide zijn meegenomen. Ook de wetenschap dat ze mathematisch zijn geverifieerd, geeft de modellen een hoge waarde.
4.
Naam: Danilo Bojovic
Project: Controller voor verlichting en zonwering
Besteding: Twee maanden
Beschrijving:
Dit project laat zien hoe de ASD:Suite voor domotica is te gebruiken. Het representeert het gedrag van een simpele controller die kunstlicht en gemotoriseerde zonwering in kantoren beheert. Hij werkt in handmatige of automatische modus. Zijn gedrag is afhankelijk van de data verkregen uit twee sensoren: de eerste meet de buitentemperatuur en de lichtsterkte, de tweede detecteert wanneer iemand in de kamer is. Op basis van de waarde van de lichtsterkte buiten doet de controller de zonwering omhoog of omlaag en schakelt hij het licht aan of uit. In de handmatige modus is dit te regelen met de bijbehorende schakelaars.
Ervaringen:
Mijn belangrijkste les is dat het er bij software-engineering niet om gaat om C of C++ te programmeren maar om een product te positioneren in zijn context, externe interfaces af te spreken, het systeem in componenten op te delen, et cetera. Het is fascinerend dat de modellen formeel zijn te bewijzen en foutvrij zijn voordat er code wordt gegenereerd, dat ze gemakkelijk zijn te porten naar verschillende platforms en in verschillende talen zijn om te zetten.
5.
Naam: Milica Topic
Project: Lift
Besteding: Twee maanden
Beschrijving:
De besturing van de lift betreft de logica voor het naar boven of naar beneden gaan tussen verdiepingen en het automatisch openen en sluiten van de deuren. De lift kan worden opgeroepen vanaf elke etage en in de cabine zitten knoppen voor elke verdieping. De passagier kan het sluiten van de deur onderbreken.
Ervaringen:
Het was een hele uitdaging om de ASD:Suite te gebruiken vanwege zijn unieke eventgedreven en componentgebaseerde karakter. Groot voordeel is de mogelijkheid om systeemgedrag te verifiëren en zodoende foutvrije code te genereren.

1.
Naam: Hans Kuppens
Project: SpASDInvaders
Besteding: Twee maanden met de nodige nachtelijke uurtjes
Beschrijving:
SpASDInvaders is een remake van Space Invaders, het klassieke arcadecomputerspel uit 1978. Dit spel was destijds een ongekend groot succes en naar nu blijkt, kun je hiermee in 2011 nog steeds goed scoren op coolness. Voor wie het spel desondanks niet kent: een groep ruimtewezens nadert in een zigzagbeweging de aarde. De speler kan ze met een laserkanon vernietigen, maar ze laten zelf ook bommen vallen. Gelukkig kun je schuilen achter een viertal bunkers, zolang deze nog niet zijn kapotgeschoten. Op willekeurige momenten komt boven in beeld een moederschip voorbij, dat na vernietiging nog extra bonuspunten oplevert. Je hebt het spel gewonnen als alle aliens zijn vernietigd, maar laat je ze te laag komen dan verlies je. Hetzelfde geldt als je wordt geraakt door een buitenaardse bom.
Ervaringen:
De SpASDInvaders-applicatie is multithreaded opgebouwd, wat wil zeggen dat het alien-leger, de kogels, het laserkanon en het moederschip elk op een eigen thread draaien (met elk een eigen timer). Interacties zijn met callback-events geïmplementeerd; polling-mechanismes zijn bewust niet toegepast. Voor handgeschreven C++ al gauw een nachtmerrie, met ASD is dit bij wijze van spreken een fluitje van een cent.
Ook zakelijk heb ik de voordelen van ASD ervaren. Een belangrijk aspect is dat softwarecomponenten van verschillende teamleden (zelfs van verschillende bedrijven) samen tot een werkende applicatie moeten worden gebouwd. Doordat de interfaces tussen ASD-componenten eenduidig zijn, zijn softwarefouten als gevolg van interpretatieverschillen te voorkomen. Ook in de latere onderhoudsfase, wanneer het te lang geleden is geweest dat je aan de softwarecomponent hebt gewerkt, behoedt ASD je voor onverhoede fouten.
Werken met ASD is echter niet triviaal. Het vergt absoluut enig abstract denkniveau en goede softwareontwerpen ontstaan pas na het verkrijgen van ruime ervaring met de ASD:Suite. Voor de beginnende ASD-gebruiker is de ASD-cursus feitelijk een must en het raadplegen van een ervaren consultant vergroot de kans op succes aanzienlijk.
2.
Naam: Filip Stachowiak
Project: Besturing voor verkeerslichten
Besteding: Veertig uur
Beschrijving:
De applicatie modelleert de besturing van verkeerlichten op Tanganskaya Ploschad, een van de grootste kruispunten in Moskou.
Ervaringen:
Hoewel het normaal een nachtmerrie is om een dergelijke toestandsmachine te modelleren, was dat met ASD eenvoudig. Het gemak zit ’m niet alleen in de editor maar ook in de debugger voor sequentiediagrammen, in de modelvergelijker en in de modelchecker. Het is een goed gereedschap om signalen af te handelen van verschillende bronnen.
3.
Naam: Ivana Todosijevic
Project: Zelfservice
Besteding: Twee maanden
Beschrijving:
De applicatie is een kassasysteem voor zelfbediening in supermarkten. Het systeem bestaat uit twee componenten: een om de bon te maken en een om de betaling af te handelen. Voordat de klant een product in zijn mandje kan doen, moet hij het voor een barcodescanner houden. Als het om alcohol gaat, moet hij aantonen dat hij achttien jaar of ouder is om het te mogen kopen. Nadat alle producten zijn gescand, wordt de bon gemaakt en kan hij afrekenen – contant of met een bankkaart.
Ervaringen:
De ASD:Suite is gemakkelijk in gebruik en dwingt je om diepgaand na te denken over je productrequirements. Het gereedschap helpt je om een betere softwarearchitectuur te krijgen voordat je aan de implementatie begint.
4.
Naam: Nenad Terzic
Project: CNC-systeem
Besteding: Twee maanden
Beschrijving:
In dit project is met behulp van de ASD:Suite een CNC-systeem gesimuleerd. De systeemsoftware realiseert verschillende functies, waaronder de initialisatie, de motorbesturing, de veiligheidsdeurbesturing en het alarmsysteem. De motorbesturing is gebaseerd op start- en stopacties van de operator en op de waarde van sensoren.
Ervaringen:
Grote voordelen ten opzichte van traditionele ontwikkelmethodes zijn de componentgebaseerde methodologie, de automatische wiskundige verificatie en de codegeneratie voor een breed scala aan executieplatforms. Dankzij de gebruiksvriendelijke interface is de ASD:Suite bovendien geschikt voor beginnende engineers.
5.
Naam: Jelena Baluban
Project: Stofzuiger
Besteding: Twee maanden
Beschrijving:
De ASD-stofzuiger heeft twee sensoren: eentje om het soort oppervlak te detecteren en eentje om de hoeveelheid stof daarop te bepalen. Op basis hiervan past de applicatie de zuigkracht aan zodat de energiebehoefte minimaal is.
Ervaringen:
Aanvankelijk was het werken met de ASD:Suite een beetje verwarrend omdat dat heel anders gaat dan met de programmeertalen die ik gewend ben. Het kostte wat tijd om het gereedschap te leren kennen. Heel handig is dat het alle mogelijke scenario’s checkt. Na verificatie is het zaak om voorzichtig te blijven omdat dit niet betekent dat je alles goed hebt geprogrammeerd.

© Bits & Chips | Deze pagina op internet: http://www.bits-chips.nl/nieuws/bekijk/artikel/asd-wedstrijd-toont-toepassingen-in-onverwachte-hoek.html