H1: Levenscyclus van IS
Levenscyclus van IS:
bestaat uit opeenvolgende fasen waarin systeem wordt gepland,
ontworpen, gebouwd, geïmplementeerd en onderhouden, doel is om
systemen te ontwikkelen die beantwoorden aan veranderende noden en
omstandigheden
- 2 hoofdaanpakken
o Predictieve levenscycli (o.a. watervalmodel)
o Adaptieve levenscycli (o.a. iteratief, incrementeel, Agile)
- Fasen in de levenscyclus
o Projectplanningsfase
vastleggen van scope, haalbaarheid (technisch en economisch),
planning en budget
o Analysefase
verzamelen en modelleren van vereisten in natuurlijke taal en
visuele modellen
o Ontwerpfase
vertaling van analyse naar technische ontwerpen: databanken,
interfaces, netwerken
o Implementatie- en onderhoudsfase
programmeren, testen, dataconversie, training gebruikers en
systeemonderhoud.
Predictieve levenscycli
- Watervalmodel (Royce, 1970)
o Strikte opeenvolging van fasen, zonder terugkoppeling
o Elke fase eindigt met formeel goedgekeurde documentatie =
document-gebaseerd
o Beperkt aanpasbaar aan veranderingen: vereisten bevriezen voor
ontwerp, ontwerp bevriezen voor implementatie
o Niet-realistisch, vereisten nooit van 1ste keer correct, volledig,
consistent
o Gemodificeerd watervalmodel
toelaten van parallelle taken om doorlooptijd te verkorten want
normaal kan volgende fase pas aanvangen wanneer vorige
volledig is afgesloten
- Personeel
o Projectmanagement (1 of meerdere personen)
Projectuitvoering: controle of alles volgens planning
verloopt
Projectbijsturing: aanpassen bij afwijkingen
, Afsluiting: formeel afronden van het project
o Uitvoerders = de programmeurs, ontwerpers, analisten
- Prototyping
= schaalmodel om bepaalde kenmerken van artefact te controleren,
oplossing voor gebrek aan feedback in watervalmodel
o Gebeurt tijdens analyse- of ontwerpfase
o 2 types (jaren ’80) => zie H3
Throw-away, discovery (voor analyse, wordt weggegooid)
Evolutionair (groeit door tot volwaardig systeem)
o Doel
feedback op vereisten vragen alvorens implementatiefase
begonnen is
Adaptieve levenscycli
- Spiraalmodel (Boehm)
o Werkt met kwadranten
gelijkaardig aan watervalmodel
1: doelstellingen, alternatieven en voorwaarden vastleggen
2: alternatieven evalueren en risico’s adresseren =>
grootste risico’s eerst aanpakken: gebruik van prototypes
om te zien of risico’s opgelost kunnen worden
3: ontwikkel en verifieer volgende versie van (software)
product
4: o.b.v. inzichten opgedaan in eerste iteratie bepalen wat
er in volgende cyclus van spiraal zal gebeuren
Volgende cyclus behandelt stuk dat 2de grootste risico
inhoudt
o Vernieuwingen
Focus op risico’s, van grootste naar kleinste
Configureerbaar: niet elk project moet volgens zelfde
werkwijze worden uitgevoerd
Als er geen risico’s zijn, dan wordt spiraal maar 1 keer
doorlopen = +/- watervalmodel
- Incrementele ontwikkeling
o Zeer verwant aan iteratieve ontwikkeling
focus ligt op toevoegen van functionaliteit in elke iteratie
Bij iteratieve ontwikkeling ligt nadruk op het herhalen van
de fasen
o Praktijk
meeste processen zowel incrementeel als iteratief
,- Iteratieve ontwikkeling
o Voert watervalmodel meerdere keren uit
Iteraties duren bv. 6 weken tot 3 maanden => op einde
geen document maar stuk software waarbij men feedback
van eindgebruikers vraagt
Feedback van gebruikers wordt telkens verwerkt en
gebruikt als extra input voor analysefase van volgende
iteratie
o Inhoud
Belangrijkste functionaliteit eerst, optionele
functionaliteiten zullen pas in latere iteraties aan bod
komen
Subsysteem per subsysteem functionaliteit toevoegen
Eerst meest complexe en risicovolle delen: dit is in het
spiraalmodel het verplichte criterium
o Voordelen
Snelle feedback, hogere acceptatie want wijzigende
vereisten incorporeren en meer betrokkenheid
eindgebruiker, vroeger testen
o Nadelen
Moeilijk in te schatten totale duur en kost want blijft
doorlopen tot men geen feedback meer geeft, veel
coördinatie nodig
Recente evoluties
- Unified Process (UP)
o Methode die tussen predictief en adaptief zit
gebaseerd op UML, iteratief binnen fasen, populair maar geen sta
ndaard
Geen levenscyclusproces maar ontwikkelingsmethodologie
in ruimere zin = commerciële methodologie, OO
methodologie
Ontwikkeld door Rational Software (IBM) => jaren ‘90
o Managementlevenscyclus = strikt sequentieel
=> timeboxing binnen fasen om beheersbaarheid te behouden
Inceptie: scope, baten
Elaboratie: vereisten, architectuur
Constructie: bouwen en testen
, Transitie: oplevering en onderhoud
o Technische levenscyclus
iteratie binnen fase wel toegestaan maar ook tussen fases nog
altijd niet
o 6 adviezen
iteratief ontwikkelen, systeemvereisten definiëren en beheren,
componentarchitecturen gebruiken, visuele modellen maken,
kwaliteit controleren, wijzigingen beheren
o Verschil met watervalmodel
analyse, ontwerp, programmatie, testen komen in elke fase in
verschillende mate voor
- Agile ontwikkeling (‘lichtgewicht’)
o Opgesteld in ‘Manifesto for Agile Software Development’ (2001)
o Belangrijke waarden
individuen en samenwerking > processen/tools, werkende
software > documentatie, klantrelatie > contracten, flexibiliteit >
rigide planning
o Kernprincipes
continue oplevering, motivatie, communicatie, eenvoud, reflectie,
samenwerking, duurzaamheid, goede architecturen, technische
kwaliteit, efficiëntie
o Agile methodologieën
Extreme Programming (XP) door Kent Beck: user stories en
user acceptance criteria, continue testen en integratie, ‘pair
programming’, nauwe samenwerking met eindgebruikers,
zeer adaptief
Scrum: zelforganiserende teams, werk in sprints (ca. 2
weken), met dagelijkse scrums, rollen: product owner,
scrum master, teamleden
Backlog = lijst van gewenste functionaliteiten
Retrospectives om werking voortdurend te verbeteren
User stories:
zeer korte en informele beschrijvingen van vereisten ipv user cases
Pair programming:
2 programmeurs zitten achter zelfde toetsenbord bij ontwikkeling,
kwaliteit, kostenbesparing, eerste ontwikkelt software terwijl tweede
probeert te begrijpen wat eerste doet en reageert, teaching-on-the-job
Levenscyclus van IS:
bestaat uit opeenvolgende fasen waarin systeem wordt gepland,
ontworpen, gebouwd, geïmplementeerd en onderhouden, doel is om
systemen te ontwikkelen die beantwoorden aan veranderende noden en
omstandigheden
- 2 hoofdaanpakken
o Predictieve levenscycli (o.a. watervalmodel)
o Adaptieve levenscycli (o.a. iteratief, incrementeel, Agile)
- Fasen in de levenscyclus
o Projectplanningsfase
vastleggen van scope, haalbaarheid (technisch en economisch),
planning en budget
o Analysefase
verzamelen en modelleren van vereisten in natuurlijke taal en
visuele modellen
o Ontwerpfase
vertaling van analyse naar technische ontwerpen: databanken,
interfaces, netwerken
o Implementatie- en onderhoudsfase
programmeren, testen, dataconversie, training gebruikers en
systeemonderhoud.
Predictieve levenscycli
- Watervalmodel (Royce, 1970)
o Strikte opeenvolging van fasen, zonder terugkoppeling
o Elke fase eindigt met formeel goedgekeurde documentatie =
document-gebaseerd
o Beperkt aanpasbaar aan veranderingen: vereisten bevriezen voor
ontwerp, ontwerp bevriezen voor implementatie
o Niet-realistisch, vereisten nooit van 1ste keer correct, volledig,
consistent
o Gemodificeerd watervalmodel
toelaten van parallelle taken om doorlooptijd te verkorten want
normaal kan volgende fase pas aanvangen wanneer vorige
volledig is afgesloten
- Personeel
o Projectmanagement (1 of meerdere personen)
Projectuitvoering: controle of alles volgens planning
verloopt
Projectbijsturing: aanpassen bij afwijkingen
, Afsluiting: formeel afronden van het project
o Uitvoerders = de programmeurs, ontwerpers, analisten
- Prototyping
= schaalmodel om bepaalde kenmerken van artefact te controleren,
oplossing voor gebrek aan feedback in watervalmodel
o Gebeurt tijdens analyse- of ontwerpfase
o 2 types (jaren ’80) => zie H3
Throw-away, discovery (voor analyse, wordt weggegooid)
Evolutionair (groeit door tot volwaardig systeem)
o Doel
feedback op vereisten vragen alvorens implementatiefase
begonnen is
Adaptieve levenscycli
- Spiraalmodel (Boehm)
o Werkt met kwadranten
gelijkaardig aan watervalmodel
1: doelstellingen, alternatieven en voorwaarden vastleggen
2: alternatieven evalueren en risico’s adresseren =>
grootste risico’s eerst aanpakken: gebruik van prototypes
om te zien of risico’s opgelost kunnen worden
3: ontwikkel en verifieer volgende versie van (software)
product
4: o.b.v. inzichten opgedaan in eerste iteratie bepalen wat
er in volgende cyclus van spiraal zal gebeuren
Volgende cyclus behandelt stuk dat 2de grootste risico
inhoudt
o Vernieuwingen
Focus op risico’s, van grootste naar kleinste
Configureerbaar: niet elk project moet volgens zelfde
werkwijze worden uitgevoerd
Als er geen risico’s zijn, dan wordt spiraal maar 1 keer
doorlopen = +/- watervalmodel
- Incrementele ontwikkeling
o Zeer verwant aan iteratieve ontwikkeling
focus ligt op toevoegen van functionaliteit in elke iteratie
Bij iteratieve ontwikkeling ligt nadruk op het herhalen van
de fasen
o Praktijk
meeste processen zowel incrementeel als iteratief
,- Iteratieve ontwikkeling
o Voert watervalmodel meerdere keren uit
Iteraties duren bv. 6 weken tot 3 maanden => op einde
geen document maar stuk software waarbij men feedback
van eindgebruikers vraagt
Feedback van gebruikers wordt telkens verwerkt en
gebruikt als extra input voor analysefase van volgende
iteratie
o Inhoud
Belangrijkste functionaliteit eerst, optionele
functionaliteiten zullen pas in latere iteraties aan bod
komen
Subsysteem per subsysteem functionaliteit toevoegen
Eerst meest complexe en risicovolle delen: dit is in het
spiraalmodel het verplichte criterium
o Voordelen
Snelle feedback, hogere acceptatie want wijzigende
vereisten incorporeren en meer betrokkenheid
eindgebruiker, vroeger testen
o Nadelen
Moeilijk in te schatten totale duur en kost want blijft
doorlopen tot men geen feedback meer geeft, veel
coördinatie nodig
Recente evoluties
- Unified Process (UP)
o Methode die tussen predictief en adaptief zit
gebaseerd op UML, iteratief binnen fasen, populair maar geen sta
ndaard
Geen levenscyclusproces maar ontwikkelingsmethodologie
in ruimere zin = commerciële methodologie, OO
methodologie
Ontwikkeld door Rational Software (IBM) => jaren ‘90
o Managementlevenscyclus = strikt sequentieel
=> timeboxing binnen fasen om beheersbaarheid te behouden
Inceptie: scope, baten
Elaboratie: vereisten, architectuur
Constructie: bouwen en testen
, Transitie: oplevering en onderhoud
o Technische levenscyclus
iteratie binnen fase wel toegestaan maar ook tussen fases nog
altijd niet
o 6 adviezen
iteratief ontwikkelen, systeemvereisten definiëren en beheren,
componentarchitecturen gebruiken, visuele modellen maken,
kwaliteit controleren, wijzigingen beheren
o Verschil met watervalmodel
analyse, ontwerp, programmatie, testen komen in elke fase in
verschillende mate voor
- Agile ontwikkeling (‘lichtgewicht’)
o Opgesteld in ‘Manifesto for Agile Software Development’ (2001)
o Belangrijke waarden
individuen en samenwerking > processen/tools, werkende
software > documentatie, klantrelatie > contracten, flexibiliteit >
rigide planning
o Kernprincipes
continue oplevering, motivatie, communicatie, eenvoud, reflectie,
samenwerking, duurzaamheid, goede architecturen, technische
kwaliteit, efficiëntie
o Agile methodologieën
Extreme Programming (XP) door Kent Beck: user stories en
user acceptance criteria, continue testen en integratie, ‘pair
programming’, nauwe samenwerking met eindgebruikers,
zeer adaptief
Scrum: zelforganiserende teams, werk in sprints (ca. 2
weken), met dagelijkse scrums, rollen: product owner,
scrum master, teamleden
Backlog = lijst van gewenste functionaliteiten
Retrospectives om werking voortdurend te verbeteren
User stories:
zeer korte en informele beschrijvingen van vereisten ipv user cases
Pair programming:
2 programmeurs zitten achter zelfde toetsenbord bij ontwikkeling,
kwaliteit, kostenbesparing, eerste ontwikkelt software terwijl tweede
probeert te begrijpen wat eerste doet en reageert, teaching-on-the-job