Onderhoudbaarheid?

Hoe definieer je Onderhoudbaarheid van toepassingen?

Het begrip onderhoudbaarheid van toepassingen wordt in deze gedefinieerd als het totaal van activiteiten die nodig zijn om kosteneffectieve ondersteuning te bieden voor een softwaresysteem. Activiteiten die hiervoor nodig zijn, worden zowel tijdens het project als na de Go-Live uitgevoerd.

Onderhoudbaarheid kan worden onderverdeeld in de volgende drie deelgebieden:

Analyseerbaarheid Dit is het gemak waarmee bepaald kan worden hoe de aanpassingen precies uitgevoerd moeten worden. Indien er sprake is van correctief onderhoud, dan is hier eveneens het traceren van de fout nodig en inbegrepen in dit aspect.
Aanpasbaarheid Dit is het gemak waarmee de aanpassingen doorgevoerd kunnen worden. Denk bijvoorbeeld aan het aantal plaatsen en regels code die bij de aanpassingen betrokken zijn.
Testbaarheid Dit is het gemak waarmee gecontroleerd kan worden dat het systeem (nog steeds) volgens de specificaties werkt na de gemaakte aanpassingen.

De factoren die invloed hebben op de complexiteit van het onderhoud van de toepassing zijn afhankelijk van het soort onderhoud dat moet uitgevoerd worden.

Correctie

(Correctief + Preventief)

De complexiteit van het op te lossen incident speelt uiteraard een rol.

De grootte van de te onderhouden toepassing. In het geval van deze opdracht kunnen we dit goed bepalen en afbakenen daar alle specificaties zo goed als gekend zijn.

De ondersteuning van debugging tools om de fout op te sporen.

Verbetering

(Adaptief + Perfectief)

De hoeveelheid nieuwe functionaliteiten die toegevoegd moeten worden.

De ondersteuning vanuit de softwarearchitectuur waar tijdens het project mee rekening wordt houden.

Ten slotte bereiden we ons tijdens de ontwikkelingen voor om een optimaal te onderhouden toepassing op te leveren. Dit doen we door aandacht te besteden aan de volgende zaken:

Consistentie We zorgen dat er consistentie is bij het ontwikkelen van de toepassing. Dit wil zeggen dat er gewerkt wordt met eenduidige ontwikkelstandaarden die consequent worden toegepast door alle ontwikkelaars op het project. Dit betekent zowel langst de frontend kant als de backend kant. Op die manier wordt er eenduidige code geschreven die tijdens de onderhoudsperiode optimaal kan gelezen en onderhouden worden.
Zelfbeschrijvendheid Samen met bovenstaande, zorgen de standaarden (zoals coding guidelines) ervoor dat de code zeer leesbaar en zelfbeschrijvend is. Dit wil zeggen dat wanneer een ontwikkelaar die niet aan het project gewerkt heeft maar wordt ingeschakeld tijdens de onderhoudsfase, de code vlot kan lezen en dat de intentie van de code duidelijk naar boven komt. Dit komt het opsporen van eventuele fouten ten goede en zal het uitvoeren van aanpassingen versnellen doordat er geen tijd verloren gaat aan het onnodig debuggen van de applicatie om deze begrijpelijk te maken.
Simpelheid Doordat deze standaarden door alle ontwikkelaars gevolgd worden, kan er ook voorzien worden in eenvoudige code. Hierdoor vermijden we ‘spaghetti-code’ die de zaken complexer maken dan ze zijn. Bijvoorbeeld het gebruik van de juiste hulpklassen of het opsplitsen van logica in verschillende klassen, komt de eenvoud van de code ten goede en dus ook het onderhoud.
Modulariteit Zoals hierboven al kort aangehaald is het van groot belang om de toepassing modulair te ontwikkelen. Dit wil zeggen dat er zoveel mogelijk code, die functionaliteiten voorstellen, gescheiden zitten in verschillende klassen.
Testbaarheid Ten slotte moet de toepassing zo testbaar mogelijk zijn. Dit wil zeggen dat we moeten kunnen testen in hoeverre de aanpassingen geen verstoringen elders in het systeem veroorzaken. Deze vorm van regressie kunnen we tegengaan door tijdens de ontwikkelingen de nodige unit testen en integratie testen te schrijven. Hierbij is ook belangrijk dat voor elke bug in de logica, die naar bovenkomt tijdens de testfases, ook een code test wordt geschreven tijdens de aanpassingen voor deze bug. Dit geldt uiteraard ook voor nieuwe functionaliteiten die moeten ontwikkeld worden tijdens de onderhoudsfase.

Onder eenduidige ontwikkelingsstandaarden rekenen we het gebruik van design patterns, code guidelines, het ontwikkelen van de nodige code testen die automatisch kunnen lopen,… Dit zijn allemaal goede en bewezen standaarden die een meerwaarde hebben op de onderhoudbaarheid van de toepassing en die moeten beschreven zijn in de Projectaanpak en die tijdens het onderhoud worden aangehouden en toegepast.

Leave a comment