De ontwikkelingscyclus van een softwareproduct

De verschillende activiteiten in de ontwikkelingscyclus van een softwareproduct kunnen in een aantal fasen samengebracht worden.

Voor grote projecten worden al die fasen in extenso doorlopen, voor kleinere projecten worden sommige fasen en activiteiten gecomprimeerd uitgevoerd. Eventueel is er terugkoppeling tussen bepaalde fasen.

De volgende figuur omvat een overzicht van de fasen in de ontwikkelingscyclus van een softwareproduct.

Fasen in de ontwikkelingscyclus van een softwareproduct

FaseActiviteitenBedoeling
VereistenontwikkelingOpstellen van een "Requirements"-documentStructureren en detailleren van de eisen gesteld door de klant (in een lastenboek) aan het af te leveren product en de productcomponenten.
SpecificatieOpstellen van een specificatiedocumentSamenstellen van een gestructureerde beschrijving van het eindproduct en de productcomponenten als antwoord van de leverancier op de eisen gesteld door de klant.
SpecificatieBouwen van een prototypeVastleggen van een eerste, voorlopige concrete uitwerking van bepaalde (meestal visuele) delen van het eindproduct zoals beschreven in het specificatiedocument. Een prototype geeft de klant een eerste, concrete indruk van het eindproduct (en de productcomponenten). Die indruk is weliswaar onvolledig, maar kan helpen om het productieproces te sturen en eventuele misverstanden van bij de aanvang van het project te vermijden.
DesignOpstellen van een designdocumentVastleggen van de productarchitectuur, d.w.z. van de verschillende onderdelen van het eindproduct en de samenhang (communicatie, interfaces) tussen die onderdelen.
OntwikkelingOpstellen van een testplanVastleggen van de uit te voeren tests.
OntwikkelingConfigureren van de ontwikkelingsomgevingVastleggen van de tools die voor de ontwikkeling zullen gebruikt worden, van de structuur van de ontwikkelingsomgeving en van de regels die voor de ontwikkeling moeten gevolgd worden.
OntwikkelingCoderenBouw van de artefacten van het eind-product (voornamelijk softwaremodules en documentatie). Module testing behoort tot deze activiteit.
OntwikkelingIntegreren van de softwaremodulesAssembleren van de verschillende subsystemen tot het gevraagde eindproduct en zijn componenten.
TestingUitvoeren integratietestsValideren van de interfaces tussen de geïntegreerde softwaremodules, die voordien slechts afzonderlijk getest zijn.
TestingUitvoeren van de Factory Acceptance Tests (FAT)Vaststellen bij de leverancier, in aanwezigheid van de klant, dat het geïntegreerde product de gevraagde functionaliteit levert. Deze activiteit geldt als een eerste, voorlopige oplevering aan de klant.
InstallatieInstalleren van het eindproductInstalleren van het eindproduct en de productcomponenten bij de klant en integreren in de infrastructuur van de klant. De productdocumentatie wordt afgeleverd.
TestingUitvoeren van de on-Site Acceptance Tests (SAT)Uitvoeren van de acceptatietests bij de klant.
TrainingOpleiden van productgebruikersVertrouwd maken van de eindgebruikers met de functionaliteit van het eindproduct.
MaintenanceLeveren van supportOnderhouden van het eindproduct na installatie, d.w.z. terwijl het in één of meerdere productieprocessen bij de klant wordt gebruikt.
Project managementManagen van projectEerder dan een vastomlijnde fase is dit een continuë activiteit doorheen het hele project, vanaf het vastleggen van de vereisten tot en met de maintenance fase. Project management omvat zowel planning als opvolging van het project.

De "deliverables" van een project (de af te leveren artefacten) zijn:

  • werkdocumenten die na de levering van het eindproduct niet meer relevant zijn: verslagen van meetings, doe-lijsten, lijsten van bugs, enzoverder.
  • eindproducten die de eigenlijke levering uitmaken: natuurlijke het operationele softwareproduct zelf, maar evengoed het specificatiedocument, de gebruikers- en de technische documentatie, het technische ontwerp en het testplan.