+31 (0) 53 30 33 600

Hoe realiseer je kwalitatief goede code

  – Zorg ervoor dat softwarecomponenten op een losse manier met elkaar zijn verweven (‘Couple Architecture components Loosely’)   – 

– Blog 9 – 

Kwalitatief goede software voorkomt hoge kosten voor onderhoud en aanpassingen, performance problemen, downtime, gegevensverlies en imagoschade. Vandaar dat we bij OVSoftware garant staan voor de goede kwaliteit van de softwarecode die we opleveren. Dit doen we onder andere door bij de ontwikkeling van maatwerk softwareoplossingen, de tien richtlijnen voor codekwaliteit van de Software Improvement Group (SIG) toe te passen. In een serie van tien blogs leggen onze IT-specialisten uit wat deze richtlijnen zijn, hoe zij developers ondersteunen bij het schrijven van code en welke voordelen ze opleveren voor de klant.

‘Couple Architecture Components Loosely’ – Wat houdt dat in?
Software bestaat uit een aaneenschakeling van componenten, blokken code die elk een eigen doel en functie hebben en daarmee een bijdrage leveren aan het totale systeem. In een goed ontworpen systeem worden deze blokken weergegeven als op elkaar gestapelde lagen, die bij voorkeur maar langs één route met elkaar in verbinding staan: van boven naar beneden. Vergelijk het met lego bouwstenen die je normaal gesproken op elkaar stapelt, van beneden naar boven. Een gebruiker bekijkt de stapel legostenen altijd van bovenaf, de functionaliteit die het systeem te bieden heeft.

Emil Cristen

Meer informatie? Neem contact met mij op!
Figuur uit ‘Building maintainable software’ - Designed versus implemented architecture
Figuur uit ‘Building maintainable software’ – Designed versus implemented architecture

Van daaruit werk je naar beneden, waarbij je telkens een niveau dieper komt. Het bovenste blokje presenteert een scherm waarin de gebruiker zijn naam en adres  invoert. In het blokje daaronder worden naam en adres verder uitgesplitst in losse onderdelen: voornaam/achternaam/tussenvoegsel en de verschillende elementen van het adres. In het derde blokje wordt bepaald hoe deze informatie wordt weggeschreven en in welke database dat gebeurt etc.

 


In deze SIG-richtlijn gaat het vooral om hoe componenten onderling samenhangen en met elkaar communiceren en dat de lijnen waarlangs de communicatie verloopt niet kriskras alle kanten opgaan. Hoe deze richtlijn daar invulling aangeeft is door:

  • communicatie tussen het component en ‘de buitenwereld’ zo veel mogelijk te beperken.
  • communicatie door middel van een van te voren opgesteld contract, ook wel een interface genoemd, te definiëren.
  • te voorkomen dat functies van onderliggende componenten één-op-één worden doorgesluisd via een bovenliggende component.

Met dit beeld in het achterhoofd begint men aan het ontwikkelen van softwaresystemen, alleen wijst de praktijk uit dat dit gedachtegoed na verloop van tijd steeds minder consequent wordt toegepast.


De richtlijn toegepast in de praktijk
Het primaire uitgangspunt van deze richtlijn is dus om componenten zoveel mogelijk geïsoleerd te laten functioneren. De buitenwereld hoeft niet te weten welke specifieke functies er allemaal in een component beschikbaar zijn. Het is alleen relevant om dié functies beschikbaar te stellen waar de buitenwereld (lees de gebruiker/systeem) iets mee moet. En dat beschikbaar stellen van functies doen we door het opstellen van een zogenaamd contract. Hierin wordt precies beschreven hoe de buitenwereld met het component kan communiceren. Zo’n contract noemen we ook wel een interface. Het opstellen van één of meerdere interface(s) is een exercitie waarbij goed moet worden nagedacht over wat de component zou moeten toestaan aan input en vragen van buitenaf. Hoe de  component dat vervolgens intern organiseert en afhandelt is voor de buitenwereld niet van belang, zolang het maar gebeurt.

 


Zo helpt de richtlijn mij als ontwikkelaar
De toepassing van deze richtlijn zorgt ervoor dat ik als ontwikkelaar de controle heb over wat er met  en in mijn componenten gebeurt. Elke component staat op zichzelf, heeft zijn eigen doel en functie. Dat betekent dat ik snel door de code kan navigeren als ik op zoek ben naar specifieke functionaliteit. Omdat een component geïsoleerd is voor wat betreft zijn werking, kan er ook eenvoudig  functionaliteit worden toegevoegd of aangepast zonder dat de buitenwereld daar iets van merkt.

Ook maakt deze richtlijn de mogelijkheid om een component geheel te vervangen door een andere eenvoudiger, zolang we de interface maar intact laten. Dit zien we vaak bij bijvoorbeeld communicatie met databases. De ene keer gebruiken we SQL Server, de andere keer MySQL of Oracle. Voor de buitenwereld maakt het niet uit waar iets wordt vastgelegd. Tenslotte biedt deze richtlijn mij de mogelijkheid om de component uitgebreid te voorzien van testen. Zowel voor wat betreft de interne werking van de component als de interface met de buitenwereld. Hierdoor weet je zeker dat de communicatie tussen de component en de buitenwereld zonder problemen overeind blijft.


Dit levert de richtlijn op voor de klant
Net als de andere richtlijnen van de SIG, draagt ook deze richtlijn bij aan betere een kwaliteit van de software voor onze klanten. Code wordt beter gestructureerd en de impact van een aanpassing wordt verkleind omdat je slechts een onderdeel van het systeem wijzigt en niet het totale systeem. Aanpassingen kunnen hierdoor in minder tijd worden gerealiseerd, de foutgevoeligheid gereduceerd en de stabiliteit van de software verbeterd.


Over de auteur
Emil heeft zijn IT-kennis en kunde opgebouwd bij uiteenlopende bedrijven in diverse functies en is sinds 2019 als IT professional betrokken bij OVSoftware. Vanaf februari 2020 vervult hij daarnaast ook de rol van CTO, waarbij hij nauw betrokken wil blijven bij de uitvoer van software development projecten die het bedrijf voor klanten uitvoert. Emil beschikt naast technische skills over veel affiniteit met de business waardoor hij voor opdrachtgevers eenvoudig de link tussen beide kan maken.

Contact

Wil je meer informatie over OVSoftware?
Neem dan contact op.

Werken bij OVSoftware

Wil je meer weten over onze bedrijfscultuur en vacatures?
Bekijk dan onze werken bij pagina

Branches

Wil je meer weten over de branches waarbinnen OVSoftware actief is?
Bekijk de branches.

Referenties & Projecten

Lees hier klantreferenties en door OVSoftware begeleide lopende en afgeronde projecten waar wij trots op zijn.

Over ons

OVSoftware is één van de eerste softwarebedrijven van Nederland.
Lees meer over ons.

Volg ons op