Software voldoet niet aan de kwaliteitseisen die je aan een normaal product zou stellen. Dat zegt hoogleraar softwaretechnologie Marko van Eekelen tijdens zijn oratie op de Open Universiteit in Heerlen. De hoogleraar stelt dat een analyse van de software de kwaliteit zou verbeteren. Tijdens zijn vijf jaar durende onderzoeksperiode op de Open Universiteit gaat de hoogleraar onderzoeken hoe de kwaliteit van software is te verbeteren.
‘Het verschil tussen software en andere producten is dat software geen garantie geeft op kwaliteit of dat je er van op aan kunt. Je moet bij de installatie voorwaarden accepteren dat je de maker niet aansprakelijk stelt, mocht het mis gaan', zegt Van Eekelen. Dat software niet 100 procent te vertrouwen is, komt omdat het maken van programmatuur erg moeilijk is. ‘Het is lastig om de code precies goed te krijgen. En daarnaast zijn er pas recent goede hulpmiddelen in opkomst waarmee je kunt bewijzen dat software bepaalde eigenschappen heeft', aldus de hoogleraar.
Hulpmiddelen die Van Eekelen bedoelt, zijn analysetools. Deze tools kunnen bijvoorbeeld aantonen dat de software bij een bepaalde invoer een bepaalde uitvoer levert. Dat kan belangrijk zijn als de software een apparaat moet besturen. ‘Analysetools zijn ook van belang op het gebied van de aansprakelijkheid', zegt de hoogleraar. ‘Als een analyse aantoont dat de software niet voldoet aan bepaalde eigenschappen, dan kan een maker wegens nalatigheid voor een groter bedrag aansprakelijk worden gesteld.'
Toepassen van analyse
Volgens de hoogleraar wordt er veel onderzoek gedaan naar analysetools, maar is er weinig kennis over het toepassen van analyse in de praktijk. Dat hoopt Van Eekelen door zijn onderzoek te verbeteren. Om het in de praktijk toe te kunnen passen, zal in veel gevallen bijscholing van professionals nodig zijn. De Open Universiteit wil hiervoor cursussen gaan ontwikkelen.
Wat Van Eekelen ook gaat onderzoeken is hoe gebruikers een softwareproduct gebruiken. ‘Hieruit kan blijken dat gebruikers bepaalde delen van de software niet gebruiken, bijvoorbeeld omdat het niet werkt.' Van Eekelen wil bij dit laatste onderzoek in eerste instantie vooral kijken naar educatieve software en de lesmateriaaldatabase Wikiwijs.
hmm…..
In de regio Eindhoven worden een aantal van dit soort tools toch al wel een aantal jaren toegepast (Tiobe’s TICS, boundschecker, purify)
Ook (test-)coveragetools, zoals bullseye heb ik voorbij zien komen
He @PaVaKe, je mist de point. Het is verkeerd te vertrouwen op allerlei tooltjes. Een voorbeeld: hoe vaak heb je het afgelopen jaar wel niet gehoord dat bepaalde software nog problemen had met schrikkeljaren? Als de programmeur geen kennis heeft van het domein waarvoor hij actief is, dan helpt daar geen enkel tooltje tegen. Het bovenstaande voorbeeld is natuurlijk triviaal, maar als je zelfs voor een Krups koffiezetapparaat tegenwoordig na het openen van de doos eerst een firmware-update moet doen, dan denk ik: software is inderdaad nog lang niet volwassen.
Software hoeft niet beter geanalyseerd te worden. Software zou eens VANUIT EEN MENSELIJK(ER) STANDPUNT gemaakt moeten worden met USER INTERFACES (GUI’s) die OP DE MENS en zijn,haar menselijke capaciteiten achter de computer AANSLUITEN.
Maar ja waar LEER je dit nog? Niet op scholen en in bedrijven want daar word alleen maar gekeken naar de
PROBLEM STATE, BUSINESS CASE en het DATA MODEL, STATE-DIAGRAMS.. om maar eens een paar begrippen uit het UML pakket te pakken. MENSEN van vlees en bloed worden voorgesteld als kouwe poppetjes, button-pushers, actors zonder verdere end_user_properties.
Er word in de huidige software ontwerp methodologie op GEEN ENKELE PLEK, WIJZE rekening gehouden met de menselijke pysche, verwerkingscapaciteit, overzichtelijkheid en informatie capaciteit. En wat krijg je dan?
Mooi gelikte Grafische User Interfaces (GUI;s) op de duurste en snelste machines, waar zelfs geen hond me kan werken, omdat je er puur door verzopen word in onoverzichtelijk gepresenteerde informatie.
LESS == MORE
Het feit dat er tegenwoordig MEER MOGELIJK IS wil nog niet zeggen dat je – als software ontwikkelaar – hier ook GEBRUIK van moet maken. In dit geval geld “LESS is MORE”. omdat de gepresenteerde informatie overzichtelijk en in een keer geconsumeerd kan worden GEEST, ZINTUIGEN van de MENSELIJKE GEBRUIKERS van een systeem.
DAT is – inmijn ogen – wat de kwaliteit van huidige generatie software sterk kan verbeteren, zonder verder extra inspanningen en tools te verspillen 🙂
Keep It Stupid Simple, Less == More!
Mensen zijn nu eenmaal geen machines, hoe hard sommige lagen van deze bevolking dit door je strot willen doordrukken.
@Poekie
Het gebruiken van tools en het interpreteren van de uitkomsten van de analyze is en blijft mensenwerk; dat je niet blind moet vertrouwen op de tools ben ik dan ook helemaal met je eens.
Ik was alleen enigszins verbaasd dat er iemand onderzoek naar de analyzes gaat doen, terwijl er al langere tijd tools voor zijn ter ondersteuning, die ook gebruikt worden.
Overigens is mijn Krups espresso-apparaat makkelijker: echt digitaal; 2 aan/uit schakelaars, in een logical OR stand gekoppeld. Komt geen bit sofware aan te pas, en maakt heerlijke espresso 😉
Moet je niet beginnen met eerst eens goede kwaliteitscriteria op te stellen waaraan software zou moeten voldoen? En dan bedoel ik niet allerlei technische criteria (opgesteld door IT-ers die zich laten beïnvloeden door de technische moeilijkheidsgraad) maar menselijke criteria die beschrijven hoe de software zich in algemene zin moet gedragen zodat deze geschikt is voor normaal menselijk gebruik.
Daarnaast zou de wet moeten verbieden dat softwareleveranciers gebruiksvoorwaarden opleggen waarin bijna letterlijk staat “dit product is niet geschikt voor welk gebruik dan ook”.
@PaVaKe: Ik was niet bij de oratie, maar ik vermoed dat Van Eekelen het had over onderzoek waarmee zulke tools worden gebouwd. Sommige gebruiken technieken dit regelrecht uit een proefschrift of wetenschappelijk artikel komen.
@RV: deze tools kunnen laten zien of de ontwikkelaars netjes gewerkt hebben, ze kunnen op problemen wijzen en soms concrete fouten opsporen. Dat is nuttig. Over de gebruiksvriendelijkheid zegt die analyse niets; over de ingewikkeldheid van de software wel. Dat software simpel en gebruiksvriendelijk moet zijn is waar, maar het lijkt me niet dat hij dat wordt als we hem niet proberen te analyseren. Natuurlijk moet je het bestaan van analysetools niet als excuus gebruiken om software ingewikkelder te maken.
@Jos W: Zulke clausules zijn in Nederland dacht ik niet rechtsgeldig; er is altijd produktaansprakelijkheid. Dus de wet verbiedt dit al. En wat die menselijke criteria betreft, er zijn al uitgebreide richtlijnen en conventies voor user interfaces, wat wil je daar aan toevoegen?
Voor wie er meer van wil weten: mijn volledige oratie (met alle uitleg en nuances) is beschikbaar op
http://www.ou.nl/Docs/Onderzoek/Oraties/2010/Marko_van_Eekelen_LevenLangComputerenofFoeteren.pdf
Mooi dat Marco van Eekelen weer de nodige geldkranen aanspreekt voor software analysetools die er in alle maten en soorten zijn (Cornerstone’s G4/Analyzer een multi-taal, multi-database, multi-platform analysetool, Tiobe’s TICS voor OO-talen, SIG’s services, MF-Revolver voor Cobol etc.) Ik denk niet dat de kennis en kunde in 4-5 jaar studietijd voorbij de huidige geavanceerde analyseproducten kan. Dat vergt langdurige toewijding en multi-taalkennis. Marco van Eekelen kan zich inderdaad beter toeleggen op het opleiden van IT-ers (post-doctoraal) om resultaten van analyse een betere plaats te geven.
Dat zou de echte bijdrage zijn van het geld dat in de leerstoel wordt gestoken.