ZSI / Metódy a nástroje – ako sa robia projekty
Metódy a nástroje – ako sa robia projekty
Základy softvérového inžinierstva
Sergej Chodarev (sergejx.net)
Aký je proces vývoja softvéru?
Programujeme kým to nebude hotové?
Proces vývoja softvéru
- Musíme pochopiť, čo programujeme – analýza
- Musíme premyslieť spôsob a štruktúru riešenia – návrh
- Musíme overiť, či program funguje – testovanie
- Musíme ho pripraviť na používanie – nasadenie
Ako sú tieto procesy usporiadané?
Vodopádovy model (waterfall)
Vodopádovy model (waterfall)
- Royce, Winston (1970), "Managing the Development of Large Software Systems", Proceedings of IEEE WESCON, 26 (August): 1–9
- uvádza tento model, ale zároveň ho kritizuje
V-model
- Zvýrazňuje vzťahy medzi analýzou/návrhom a verifikáciou/validáciou
Špirálový model
Nedostatky
- Môžeme získať presné požiadavky dopredu?
- Vieme čo všetko máme analyzovať dopredu?
- Vieme všetko navrhnúť skôr ako začneme implementovať?
- Stačí testovať až na konci?
Agile Software Development
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Manifesto for Agile Software Development
Agilný vývoj
- Rozdelenie na krátke iterácie (týždeň)
- Neoddeliteľnosť analýzy, návrhu, implementácie a testovania
- Neustála komunikácia so zákazníkom
- spresňovanie požiadaviek
- validácia riešení
- Neustále testovanie (test-driven developnent)
- Neustála integrácia a nasadenie (continuous integration/deployment)
Agilne techniky
- Extreme programming (XP)
- Scrum
- a ďalšie
Čo najrýchlejšia spätná väzba
Hodnoty
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan