H6 Realisatiefase

Embed Size (px)

Citation preview

  • 1. Realisatiefase

2. Wat behandelen we niet?

  • Programmeertechnieken.

3. Keuze van de programmeertaal. 4. Coderingsstandaards. 5. Defensief programmeren. 6. Programmeren per contract. 7. Problematiek van hergebruik. 8. ... 9. Wat behandelen we wel?

  • Iteratieve aanpak.

10. Onrealistische aanpak

  • Voer volledige analyse uit.

11. Maak contract met klant. 12. Voer volledig ontwerp uit. 13. Programmeer:

  • slaafse uitvoering van ontwerp;

14. geen analyse en ontwerp mee; 15. geen contact met klant. Test 16. Watervalmodel 17. Beter

  • Iteratieve aanpak hanteren;

18. Gebruiker/ opdrachtgever in elke fase van de ontwikkeling betrekken, ook in de realisatiefase. 19. Iteratieve aanpak

  • Initile analyse uitgevoerd.

20. Basisarchitectuur ligt vast. 21. Splits realisatie op in hapklare delen (iteraties). 22. Voer voor elke iteraties telkens dezelfde stappen uit (analyse, ontwerp, coderen, testen). 23. Komt zo steeds dichter bij uw doel. 24. Iteratieve aanpak 25. Iteratieve aanpak 26. Iteratieve aanpak 27. Watervalmodel 28. Watervalmodel

  • Fase na fase uitvoeren.

29. Voordelen:

  • Duidelijke aandacht voor analyse en ontwerp.

30. Een duidelijk procesmodel met goed gedefinieerde mijlpalen (milestones). 31. Watervalmodel

  • Nadelen
  • Te weinig communicatie tussen de teams (over de muur gooien).

32. Te gedetailleerde mijlpaalrapporten. 33. Moeilijk om alle specificaties te achterhalen voor de realisatie begint. 34. Pas een product op einde van life-cycle

  • Tast vertrouwen van klant aan.

35. Demotiverend voor ontwikkelingsteam. 36. Watervalmodel 37. Iteratieve aanpak: voordelen

  • Klant confronteren met werkende versie:
  • specificatiefouten vroeg detecteren en corrigeren;

38. gemakkelijker om nieuwe vereisten op het spoor te komen. Motiverender voor het ontwikkelingsteam: positieve feedback op een werkend programma. 39. Iteratieve aanpak: gevaren

  • Neiging om te snel te gaan coderen en analyse en ontwerp te verwaarlozen.

40. Iteraties lopen uit de hand:

  • steeds nieuwe iteraties;

41. kosten en duur van project swingen de pan uit. houdt prijsovereenkomst met klant in het oog ==> nieuwe vereisten opnemen in vervolgproject. 42. Uitvoeren van n iteratie

  • Selecteer uit te voeren feature.

43. Maak grondige analyse. 44. Maak detailontwerp. 45. Codeer en test. 46. Integreer. 47. Evaluatie door klant. 48. Uitvoeren van n iteratie 49. Uitvoeren n iteratie

  • Kies te realiseren element:
  • Feature driven: heel kleine stappen ==> n feature = n functionaliteit.
  • vb. lijsten moeten in pdf-formaat opgeslagen kunnen worden.

Use-case driven: grotere gehelen ==> werk n use-case volledig uit. Voer analyse uit:

  • verdere detaillering van globale analyse

50. analysedocumentatie aanpassen ! 51. Uitvoeren n iteratie

  • Ontwerpen
  • Globale architectuurmodel respecteren;

52. streven naar lage koppeling en hoge cohesie; 53. gebruik van (uml) visuele modellen: round trip engineering

  • meer focus op goed ontwerp;

54. goed gedocumenteerd. 55. Uitvoeren n iteratie

  • coderen==> iteratief:
  • invoeren instructies

56. compileren en testen programmeur test eigen module: unittesten of moduletesten 57. documenteren

  • commentaarregels

58. headerblok 59. bijlagen 60. Uitvoeren n iteratie

  • Integreren in bestaande applicatie

61. Opnieuw grondig testen. 62. Evaluatie door gebruiker. 63. Evaluatie van de iteratie. 64. Plannen volgende iteratie. 65. Uitvoeren van n iteratie

  • Elke iteratie moet leiden toe een werken geheel (runnable version).

66. Agile manifesto http://www.agilemanifesto.org/ Individuals and interaction Working software Customer collaboration Responding to change Craftmanship Processen and tools Comprehensive documentation Contract negotation Following a plan Crap 67. Voorbeelden van iteratieve aanpak

  • XP (Extreme Programming) en SCRUM

68. Veel aandacht voor:

  • Korte iteraties (sprint, planning game)

69. Test Driven Development 70. Pair Programming 71. Eenvoud van ontwerp 72. Continuous integration 73. Refactoring 74. Vertegenwoordiger van klant in het team (product owner)