woensdag 16 april 2014

Van kleine projecten naar grote projecten

ovoWeb houdt zich al geruime tijd bezig met het ontwikkelen van apps en websites. We zien duidelijk dat er een verschil is tussen kleine projecten en grote projecten. Kleine projecten zijn gemakkelijk om te ontwikkelen en kunnen zelfs door één persoon worden uitgevoerd. Als het groter wordt, dan wordt het al snel complex en velen zullen afhaken om zoiets te ontwikkelen.

Om de complexiteit een beetje af te vangen, maken software ontwerpers gebruik van software architectuur. De software architect stelt eerst de hoofdvorm van de software vast. Dit zijn zogenaamde "architectural styles". Een voorbeeld van zo'n architectural style is "client-server". Dit houdt in dat er één server is en meerdere clients die communiceren met de server. ovoWeb maakt meestal gebruik van deze architectuur.

Vervolgens kan een architect één of enkele "software patterns" kiezen. Deze patterns geven vorm aan de structuur van de applicatie. Een bekende is "MVC" ofwel "Model-View-Controller". Hiermee wordt de controle over de applicatie, zoals het invoeren van gegevens of het klikken op een link, gescheiden van de presentatie (de "views") van de gegevens. Ook wordt de presentatie van de gegevens gescheiden van de gegevens zelf ("model"). In de praktijk blijkt dat de structuur van de gegevens ("model") veel minder wordt aangepast dan de presentatie van de gegevens ("views"). Door "MVC" toe te passen, is het makkelijker om de code te onderhouden.

Naast de architectural styles en patterns worden ook vaak diagrammen gebruikt om in kaart te brengen hoe de software componenten gaan werken en welke interacties er plaats vinden tussen de verschillende componenten maar ook de interacties tussen de software componenten en de gebruikers van de software. Het proces om software in elkaar te zetten is voor kleinere projecten nog eenvoudig, maar voor grotere projecten wordt het al snel complex. Door de besproken technieken wordt een deel van de complexiteit afgevangen en worden de risico's van een project kleiner en zal de app - of website - binnen aanzienlijke tijd worden gerealiseerd.