Uživatelské nástroje

Nástroje pro tento web


pitel:isz:zivotni_cyklus_softwaru

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.


pitel:isz:zivotni_cyklus_softwaru [30. 12. 2022, 13.43:01] (aktuální) – vytvořeno - upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 +====== Životní cyklus softwaru ======
 +[[wp>Software development process]]
 +
 +===== Etapy =====
 +  - Analýza a specifikace požadavků (8 %)((Procenta v závorkách ukazují finanční a časovou náročnost jednotlivých etap.))
 +  - Architektonický a podrobný návrh (7 %)
 +  - Implementace (12 %)
 +  - Integrace a testování (6 %)
 +  - Provoz a údržba (67 %)
 +
 +==== Analýza a specifikace požadavků ====
 +Snažíme se přesně specifikovat co zákazník chce (ale neřešíme jak toho dosáhnout), protože on to většinou neví. V této etapě také zjistíme jestli to zákazník produkt opravdu potřebuje. Výstupem může být analýza rizik, ale především **akceptační testy** -- testy, které si provede zákazník při převzetí, a pokud jsou splněny, je SW v pořádku.
 +
 +==== Architektonický a podrobný návrh ====
 +Naplánování rozdělení na podproblémy, specifikace jejich funkcionalit a rozhraní mezi nimi. Také se plánují podrobnější testy systému.
 +
 +Také je vhodné už teď naplánovat postup nasazení, protože zatím nejsme ve stresu a tlačeni časem a tak se nad tím dá v klidu zamyslet.
 +
 +==== Podrobný návrh ====
 +Podrobnější zamyšlení nad jednotlivými moduly, jejich algoritmy a datovými strukturami. Výstupem by měl být odhad ceny a jednotlivých modulů, jejich nároků na lidské zdroje a čas. Výstupem by také měly být podrobnější testy jednotlivých modulů
 +
 +==== Implementace a testování součástí ====
 +Programování, realizace, dokumentace.
 +
 +==== Integrace a testování systému ====
 +Začlenění jednotlivých modulů dohromady a jejich testování. Při testování se často vracíme k předchozímu kroku, kvůli opravám chyb.
 +
 +==== Akceptační testování a instalace ====
 +Otestování systému uživatelem, který se na základě (ne)splnění akceptačních testů produkt (ne)převzít. Proto jsou akceptační testy důležité, jinak by mohl zákazník oddalovat převzetí projektu (a samozřejmě by nechtěl za prodloužení platit) a my bychom na něj neměli žádné páky.
 +
 +==== Provoz a údržba ====
 +Řešení problémů při provozu a opravy nalezených chyb. Také rozšiřování o nové funkce.
 +===== Základni modely =====
 +==== Vodopádový ====
 +[[wp>Waterfall model|{{http://upload.wikimedia.org/wikipedia/en/thumb/e/e2/Waterfall_model.svg/200px-Waterfall_model.svg.png }}]]
 +Jednotlivé etapy na sebe navazují. Až je jedna etapa dokončena, začne teprve další. Nejjednodušší a nejpřirozenější model.
 +
 +Nevýhodou je, že když zákazník dostane hotový produkt a něco si rozmyslí, musí se začít v podstatě od začátku. Což může být problém, protože analytici už nejspíš pracují na jiném projektu a tento si jen matně vybavují. V reálném životě se navíc jednotlivé etapy často překrývají, nebo jsou dokonce v jiném pořadí.
 +
 +==== Iterativní a inkrementální ====
 +[[wp>Iterative and incremental development|{{http://upload.wikimedia.org/wikipedia/commons/a/ac/Iterative_development_model_V2.jpg }}]]
 +Jednotlivé etapy (kromě prvotní analýzy a předání produktu) se opakují, a teprve až je vše v pořádku, dojde k předání výsledného softwaru.
 +
 +==== Spirálový ====
 +[[wp>Spiral model|{{http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Spiral_model_(Boehm,_1988).svg/200px-Spiral_model_(Boehm,_1988).svg.png }}]]
 +Jednotlivé etapy se opakují jako u iterativního modelu, ale je zde zaveden tzv. **prototyp**, který si může zákazník vyzkoušet. Při každé další iteraci je tak výsledek značně blíže cíli, protože velmi rychle získáváme zpětnou vazbu od zákazníka.
 +
 +**Prototyp** se od "verze s omezenou funkcionalitou" liší tím, že je po otestování zahozen, a nový prototyp se vytváří znovu (často se však "zrecyklují" staré fungující kusy projektu).
 +
 +==== RUP ====
 +[[wp>IBM Rational Unified Process]]
 +
 +FIXME
 +
 +==== Agilní ====
 +[[wp>Agile software development]]
 +
 +===== Shrnutí =====
 +  * nutnost plánování projektu, protože jinak je to naprostý chaos
 +  * základní fáze: analýza požadavků, návrhy, implementace, testování a odevzdávání, provoz a údržba (nejnáročnější)
 +  * vodopádový model, iterativní model, spirálovitý model (prototypy)
 +  * RUP: iterativní vývoj, aktivní správa požadavků, komponentová struktura, ověřování kvality, vizuální modelování, řízení změn
 +  * RUP fáze: zahájení, příprava, konstrukce, předávání
 +  * RUP disciplíny: tvorba podnikového modelu, správa požadavků, analýza a návrh, implementace, testování, nasazení
 +  * Agilní: krátké časové úseky, malé jednotky lidí, kteří se starají o své moduly, rychlé vytváření meziproduktů, snížený důraz na dokumentaci, ...
 +  * Agilní metody: například extrémní programování
 +  * Agilní postupy: např. test-driven programming, analýza a code-refactoring