Definiëren en meten van de software kwaliteit van front end programmacode - Info Support

Afstuderen

HBO AfstuderenWO AfstuderenGet Smarter @ Info SupportMinor 30ECAfstudeeropdrachten 2012

Professionals

ProfessionalYoung ProfessionalStaf / ManagementKenniswerkerAlle vacatures

Over Ons

CultuurPersoonlijke OntwikkelingArbeidsvoorwaardenInformatie aanvragenOntmoet Ons

Definiëren en meten van de software kwaliteit van front end programmacode

Endeavour, de ontwikkelstraat van Info Support, is een framework bestaande uit people, process en tools met als doel het totale softwareontwikkelproces beter beheersbaar te maken gedurende de lifecycle van een applicatie.

Om ervoor te zorgen dat met hoge kwaliteit Endeavour software wordt geschreven, worden een aantal hulpmiddelen aangeboden. Deze hulpmiddelen richten zich niet alleen op de gehele architectuur, maar bijvoorbeeld ook op specifieke lagen binnen een J2EE applicatie, zoals de “front end”. Voor de front end zijn bijvoorbeeld guideline documenten opgesteld voor onder meer Java Server Faces, Eclipse Rich Client en Swing.

Wat daarin duidelijk naar voren komt is dat een aantal guidelines geschikt zijn voor alle technieken en sommige specifiek voor een bepaalde techniek. Daarnaast worden er continu nieuwe technieken en frameworks om UI te realiseren geïntroduceerd in de Java wereld. Een algemene set (onafhankelijk van de gebruikte techniek) aan guidelines voor het realiseren van UI code is gewenst. Hierbij gaat het niet om de realisatie van gebruiksvriendelijke UI maar puur om de kwaliteit van de code te bewaken.

Naast guideline hulpmiddelen om de kwaliteit te bewaken biedt Endeavour ook configuraties voor specifieke tooling, als Checkstyle en Findbugs, die geautomatiseerd de best practices controleren. Deze configuraties zijn echter niet specifiek voor front end code maar van toepassing op alle code binnen het te realiseren software systeem.

De vraag die nu op tafel ligt is of er guidelines zijn die specifiek gelden voor “front end” gerelateerde programma code ongeacht welke techniek gebruikt wordt. In navolging daarvan is de vraag of (en hoe) tools als Checkstyle, Findbugs geschikt gemaakt kunnen worden om dan die guidelines automatisch te meten.

Opdracht

Onderzoek hoe de software kwaliteit van front end applicaties gedefinieerd en gemeten kan worden ongeacht welke specifieke techniek of framework gebruikt wordt.
De focus ligt daarbij ten eerste op het identificeren en in kaart brengen van de moeilijkheden met UI development. Als input hiervoor kan gebruik worden gemaakt van de expertise van andere Info Supporters met front end code ontwikkeling. Ook bieden de reeds beschikbare Endeavour documenten (t.a.v. JSF, Swing, Eclipse RCP, JavaFx) en vanzelfsprekend zelf te vinden bronnen input.

Het doel is om generieke aspecten te bepalen waarmee de kwaliteit van UI code bepaald kan worden waarbij geen rekening gehouden hoeft te worden met welke specifieke techniek of framework er gewerkt wordt. Vervolgens kan gekeken worden welke categorieën er te identificeren zijn onder UI development en hoe die hun eigen regels hebben. Denk bijvoorbeeld aan code richtlijnen voor een Web UI ten aanzien van een Desktop UI. Tot slot dient in kaart gebracht te worden hoe verschillende technieken dan ook nog invloed kunnen hebben op de guidelines. Gelden er bijvoorbeeld voor JavaFx nog andere guidelines dan voor Swing en hoe wordt dat gedocumenteerd?

Wat er uit de voorgaande studie volgt kan in een vervolgtraject omgezet worden naar het geautomatiseerd meten van de geformuleerde richtlijn. Afhankelijk van de beschikbare tijd binnen het afstudeertraject zal met de opdrachtgever afgesproken worden wat er dan gerealiseerd dient te worden. Voorbeelden hiervan zijn:
1. Maak het mogelijk dat de algemene gevonden aspecten van UI code kwaliteit geautomatiseerd gemeten worden middels bijv. configuraties voor Checkstyle/Findbugs etc.
2. Maak een Checkstyle/Findbugs configuratie die de gevonden kwaliteitsaspecten voor een bepaald type framework meet, bijvoorbeeld JSF, JavaFx of Swing.

Indien bepaalde aspecten niet geautomatiseerd door een tool gemeten kunnen worden dan dient inzichtelijk gemaakt te worden hoe ze wel worden gemeten. Denk daarbij bijvoorbeeld aan een code review checklist.

Benodigde kennis & interesse

Onderzoeksvaardigheden
Goal Questions Metric methode als mogelijke onderzoeksuitvoering
Kennis van Rich client development is een pre
J2EE
UI ontwikkeling
JSF
Eclipse RCP

HET NIEUWE AFSTUDEREN