Kalábovi

Kalábovic wikina

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.

Odkaz na výstup diff

pitel:isz:zivotni_cyklus_softwaru [03. 07. 2012, 13.53:46] (aktuální)
Řá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
  
/var/www/wiki/data/pages/pitel/isz/zivotni_cyklus_softwaru.txt · Poslední úprava: 03. 07. 2012, 13.53:46 (upraveno mimo DokuWiki)