H6 Realisatiefase

1,282 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,282
On SlideShare
0
From Embeds
0
Number of Embeds
31
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

H6 Realisatiefase

  1. 1. Realisatiefase
  2. 2. Wat behandelen we niet? <ul><li>Programmeertechnieken.
  3. 3. Keuze van de programmeertaal.
  4. 4. Coderingsstandaards.
  5. 5. Defensief programmeren.
  6. 6. Programmeren per contract.
  7. 7. Problematiek van hergebruik.
  8. 8. ... </li></ul>
  9. 9. Wat behandelen we wel? <ul><li>Iteratieve aanpak. </li></ul>
  10. 10. Onrealistische aanpak <ul><li>Voer volledige analyse uit.
  11. 11. Maak contract met klant.
  12. 12. Voer volledig ontwerp uit.
  13. 13. Programmeer: </li><ul><li>slaafse uitvoering van ontwerp;
  14. 14. geen analyse en ontwerp mee;
  15. 15. geen contact met klant. </li></ul><li>Test </li></ul>
  16. 16. Watervalmodel
  17. 17. Beter <ul><li>Iteratieve aanpak hanteren;
  18. 18. Gebruiker/ opdrachtgever in elke fase van de ontwikkeling betrekken, ook in de realisatiefase. </li></ul>
  19. 19. Iteratieve aanpak <ul><li>Initiële analyse uitgevoerd.
  20. 20. Basisarchitectuur ligt vast.
  21. 21. Splits realisatie op in hapklare delen (iteraties).
  22. 22. Voer voor elke iteraties telkens dezelfde stappen uit (analyse, ontwerp, coderen, testen).
  23. 23. Komt zo steeds dichter bij uw doel. </li></ul>
  24. 24. Iteratieve aanpak
  25. 25. Iteratieve aanpak
  26. 26. Iteratieve aanpak
  27. 27. Watervalmodel
  28. 28. Watervalmodel <ul><li>Fase na fase uitvoeren.
  29. 29. Voordelen: </li><ul><li>Duidelijke aandacht voor analyse en ontwerp.
  30. 30. Een duidelijk procesmodel met goed gedefinieerde mijlpalen (milestones). </li></ul></ul>
  31. 31. Watervalmodel <ul><li>Nadelen </li><ul><li>Te weinig communicatie tussen de teams (“over de muur gooien”).
  32. 32. Te gedetailleerde mijlpaalrapporten.
  33. 33. Moeilijk om alle specificaties te achterhalen voor de realisatie begint.
  34. 34. Pas een product op einde van life-cycle </li><ul><li>Tast vertrouwen van klant aan.
  35. 35. Demotiverend voor ontwikkelingsteam. </li></ul></ul></ul>
  36. 36. Watervalmodel
  37. 37. Iteratieve aanpak: voordelen <ul><li>Klant confronteren met werkende versie: </li><ul><li>specificatiefouten vroeg detecteren en corrigeren;
  38. 38. gemakkelijker om nieuwe vereisten op het spoor te komen. </li></ul><li>Motiverender voor het ontwikkelingsteam: positieve feedback op een werkend programma. </li></ul>
  39. 39. Iteratieve aanpak: gevaren <ul><li>Neiging om te snel te gaan coderen en analyse en ontwerp te verwaarlozen.
  40. 40. Iteraties lopen uit de hand: </li><ul><li>steeds nieuwe iteraties;
  41. 41. kosten en duur van project swingen de pan uit. </li></ul></ul>houdt prijsovereenkomst met klant in het oog ==> nieuwe vereisten opnemen in vervolgproject.
  42. 42. Uitvoeren van één iteratie <ul><li>Selecteer uit te voeren feature.
  43. 43. Maak grondige analyse.
  44. 44. Maak detailontwerp.
  45. 45. Codeer en test.
  46. 46. Integreer.
  47. 47. Evaluatie door klant. </li></ul>
  48. 48. Uitvoeren van één iteratie
  49. 49. Uitvoeren één iteratie <ul><li>Kies te realiseren element: </li><ul><li>Feature driven: heel kleine stappen ==> één feature = één functionaliteit. </li><ul><li>vb. lijsten moeten in pdf-formaat opgeslagen kunnen worden. </li></ul><li>Use-case driven: grotere gehelen ==> werk één use-case volledig uit. </li></ul><li>Voer analyse uit: </li><ul><li>verdere detaillering van globale analyse
  50. 50. analysedocumentatie aanpassen ! </li></ul></ul>
  51. 51. Uitvoeren één iteratie <ul><li>Ontwerpen </li><ul><li>Globale architectuurmodel respecteren;
  52. 52. streven naar lage koppeling en hoge cohesie;
  53. 53. gebruik van (uml) visuele modellen: round trip engineering </li><ul><li>meer focus op goed ontwerp;
  54. 54. goed gedocumenteerd. </li></ul></ul></ul>
  55. 55. Uitvoeren één iteratie <ul><li>coderen ==> iteratief: </li><ul><li>invoeren instructies
  56. 56. compileren en testen </li></ul><li>programmeur test eigen module: unittesten of moduletesten
  57. 57. documenteren </li><ul><li>commentaarregels
  58. 58. headerblok
  59. 59. bijlagen </li></ul></ul>
  60. 60. Uitvoeren één iteratie <ul><li>Integreren in bestaande applicatie
  61. 61. Opnieuw grondig testen.
  62. 62. Evaluatie door gebruiker.
  63. 63. Evaluatie van de iteratie.
  64. 64. Plannen volgende iteratie. </li></ul>
  65. 65. Uitvoeren van één iteratie <ul><li>Elke iteratie moet leiden toe een werken geheel (runnable version). </li></ul>
  66. 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. 67. Voorbeelden van iteratieve aanpak <ul><li>XP (Extreme Programming) en SCRUM
  68. 68. Veel aandacht voor: </li><ul><li>Korte iteraties (sprint, planning game)
  69. 69. Test Driven Development
  70. 70. Pair Programming
  71. 71. Eenvoud van ontwerp
  72. 72. Continuous integration
  73. 73. Refactoring
  74. 74. Vertegenwoordiger van klant in het team (product owner) </li></ul></ul>

×