1 / 29

Princ ípy softvérového inžinierstva Prednáška 1 2 : Met ódy tvorby softvéru

Princ ípy softvérového inžinierstva Prednáška 1 2 : Met ódy tvorby softvéru. Mária Bieliková, Jakub Šimko maria.bielikova @stuba.sk j akub.simko @ stuba.sk. Stav bodov zo vstupn ých testov ( zost áva posledný). Metódy tvorby softvéru.

huntsman
Download Presentation

Princ ípy softvérového inžinierstva Prednáška 1 2 : Met ódy tvorby softvéru

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Princípy softvérového inžinierstvaPrednáška 12:Metódy tvorby softvéru Mária Bieliková, Jakub Šimko maria.bielikova@stuba.sk jakub.simko@stuba.sk

  2. Stavbodov zo vstupných testov (zostáva posledný)

  3. Metódy tvorby softvéru

  4. Softvéroví inžinieri sa viac než 50 rokov snažili prísť na vždy úspešný postup tvorby softvéru • toto sa nepodarilo (a zrejme sa ani nepodarí) • avšak neznamená to, že nemáme nič v rukách...

  5. Prístupy k tvorbe softvéru „úplné“ (metódy) „čiastkové“ (praktiky) individuálne praktiky riešiace partikulárny problém / aspekt vývoja skupiny praktík snažiace sa pokryť celý vývoj Tohto je veľa ... ... aj tohto • Príklady: • SSADM • Unifiedprocess • Test drivendevelopment • Scrum (agilná metóda) • ... • Príklady: • sledovanie prípadov použitia • prototypovanie • vzájomná validácia modelov • testovanie (rozličné druhy) • refaktoring, aplikácia vzorov • ... pomerne rôznorodá zbierka využívané v ... Zopár metód si ukážeme Prečo?

  6. Za každou metódou treba hľadať snahu vysporiadať sa s neistotou • Ak by som to brutálne zjednodušil: • Metóda buď kladie dôraz na dobrú prípravu (špecifikácie, návrhu...) • [proaktívny prístup] • [prediktívne riadenie] • ... alebo sa snaží rýchlou spätnou väzbou zisťovať problémy čo najskôr • [reaktívny prístup] • [adaptívne riadenie]

  7. Vodopádový vývoj softvéru je typický dôrazom na prípravu

  8. V-model je adaptáciou vodopádového prístupu

  9. Inkrementálny vývoj je reaktívny: pridávanie malých kúskov softvéru ktoré sa vzápätí validujú

  10. Iteratívny vývoj je tiež reaktívny: vytvára softvér na viac krát, postupne vylepšuje fidelity (hodnovernosť)

  11. Kombinovaný iteratívno-inkrementálny vývoj je taktiež reaktívny

  12. Reaktívnym prístupom (II vývoj), sa darí neistotu odstraňovať lepšie Nie je to však pravidlo

  13. Poznámka: • vodopádovýani iteratívno-inkrementálny vývoj ešte nepredstavujú metódy vývoja softvéru • sú na to príliš abstraktné • tvoria však jasný základ konkrétnejších metód

  14. Príklad „tradičnej“ vodopádovej metódy:SSADM (Structured systems analysis and design method) • Vznik v 80tych rokoch (britská vláda) • Namodelujme podrobne biznis ... • ... najmä dátové entity a ich transformácie ... • ... a postupne odvoďme štruktúru softvéru. • Formálne procesy • Veľa dokumentácie • Veľa expertného odhadovania

  15. Diagramy tokov údajov boli jednou z kľúčových techník SSADM

  16. Etapy SSADM (nasledujú jedna po druhej) • 0. Štúdia vhodnosti • Prieskum súčasných podmienok • Biznis modelovanie a stav po zavedení softvéru (často pomocou diagramu tokov údajov) • Špecifikácia požiadaviek (kompletná, verifikovaná) • Modelovanie tokov údajov • Logické dátové modely • Modelovanie udalostí a života entít • Technické rozpracovanie (architektúra, použité technológie, odhady implementačných nákladov, ...) • Logický návrh • (Dátové modely, algoritmy, používateľské rozhrania...) • Fyzický návrh (implementácia) Tu bol najväčší dôraz

  17. Príklad tradičnej iteratívno-inkrementálnej metódy:UP (UnifiedProcess) • Koniec 90tych rokov (IBM, Jacobson, Booch, Rumbaugh) • Najznámejšia adaptácia:RationalUnifiedProcess • (iné adaptácie: OpenUP, Agile Unified Process) • Iteratívno-inkrementálny vývoj • Dopredu identifikovať riziká a predchádzať im • Dopredu a dobre premyslieť architektúru • Use-casedriven(neustálne sledovanie prípadov použitia, viď sledovateľnosť požiadaviek)

  18. Unifiedprocessrozlišuje 4 fázy projektu Zdroje Konštrukcia Zavedenie Rozpracovanie Inicializácia Čas

  19. V každej fáze unifiedprocessje rozličná intenzita typov prác (tzv. disciplín)

  20. RAD (Rapid ApplicationDevelopment): snaha dodávať rýchlejšie a adaptívnejšie • 90te roky (James Martin) • Na začiatku len rámcová špecifikácia • Potom prototypovať so zapojením používateľov • Na záver upratovať, testovať, dokumentovať, nasadzovať Oproti Unifiedprocess ešte intenzívnejšie iterovanie

  21. Agilné metódy: silno iteratívno-inkrementálny prístup s dôrazom na veľkú adaptívnosť • Druhá polovica 90tych rokov a neskôr • Agilemanifesto:http://agilemanifesto.org/ • Individuals and Interactions over processes and tools • Working Software over comprehensive documentation • Customer Collaboration over contract negotiation • Responding to Change over following a plan

  22. Agilných metód je (ako inak) viacero • RAD • Scrum • Kanban • ExtremeProgramming • Lean Software Development • ...

  23. Príklad za všetky agilné metódy: Scrum

  24. Scrum: pracuje sa v striktne pravidelných iteráciách (šprintoch) Jediným meradlom úspechu je fungujúci softvér na konci iterácie

  25. Komunikácia v tíme prebieha na dennej báze. Zákazník je prakticky členom tímu.

  26. Komunikácia v tíme prebieha na dennej báze. Zákazník je prakticky členom tímu.

  27. Test driven development (TDD): testy skôr ako implementácia + malé a časté iterácie

  28. Posledná poznámka: prototypovanie • Prototyp == pokusne vytvorený softvér pomáhajúci zisťovať vlastnosti budúceho softvéru • Rozlišujeme: • Evolučný prototyp • prototypujemenajistejšie súčasti • Prototyp na zahodenie • prototypujemenajmenej isté súčasti

  29. Zhrnutie: metód tvorby softvéru je veľa • SSADM • Unifiedprocess • Rapid applicationdevelopment • Agilné metódy (Scrum, Kanban, ...) • Test drivendevelopment • ... • Líšia sa v použitých praktikách • Líšia sa (okrem iného) aj mierou iteratívnosti • Žiadna nefunguje univerzálne • Žiadna neposkytuje komfort „mechanickej“ práce • Vždy ale treba nejakú použiť, inak to bude chaos

More Related