X36SIN: Softwarové inženýrství Životní cyklus a plánování 1
Kontext Minule jsme si řekli, co to je deklarace záměru, odborný článek, katalog požadavků, seznam aktérů a seznam událostí. Seznam aktérů a seznam událostí vyjadřujeme pomocí modelu jednání (use case model). Ještě pár poznámek k dotazům 2
Co je výstupem projektu v SIN? Základní výstup je dokumentace projektu. Ta představuje především specifikaci problému pomocí analytického modelu, ale budeme požadovat, abyste tento model vytvořili pomocí nástrojů CASE. To Vám umožní generovat z modelu kostru řešení a ověřit si tak, že model je smysluplný. Výstupem tedy není jen dokumentace, ale i pilotní kostra řešení. 3
Co to je dokumentace projektu? Dokumentace projektu obsahuje: Úvodní studii (deklarace záměru, odborný článek, katalog požadavků, model jednání, scénáře, popis dat, rozpočet) Analytickou dokumentaci (funkční, datový a dynamický model vytvořený pomocí CASE) Část dokumentace návrhu (architektura, komponenty) Projektovou dokumentaci (řešitelský tým, matice zodpovědnosti, prezentace, posudek) Pilotní kostra řešení (získaná částečně generováním z modelu a ručně doplněná) 4
Kdy má být co hotovo? Dokumentaci budete vytvářet postupně. Každý postupný krok bude přesně určen. Co není na service, neexistuje! Pro nejbližší dobu jsou následující termíny: Do konce 2.týdne - ustavení týmů, výběr projektu Do konce 3.týdne - kontroluje se stránka projektu, zda jsou na ní všechny potřebné informace, kvalita stránky se boduje (0-10 bodů) Není-li něco hotovo včas, body se nepřidělí (navíc lze později získat záporné body). 5
Produkce software Produkce Produkce software software (Software (Software Process) Process) zahrnuje Management Management projektu projektu Plánování Plánování Řízení Řízení Zajištění Zajištěníkvality je obvykle realizována projekty Projekt Projekt Projekt Projekt Projekt zahrnuje Projekt Tvorbu Tvorbu SW SW produktu produktu Analýza Analýza Návrh Návrh (design) (design) Implementace Implementace Testování Testování používá Metodiky Metodiky projektového projektového managementu managementu Metodiky Metodiky tvorby tvorby softwaru softwaru používá 6
Úroveň procesu tvorby software Maturity Levels Proces se vylepšuje Optimalizující (5) Proces je kvalitativně měř ěřen a řízen Řízený (4) zpětn tná vazba Proces je definován Proces je opakovatelný Opakovatelný (2) Definovaný (3) měř ěřen ení integrovaný proces řízení projektu Iniciální (1) základní řízení projektu by SEI (Software Engineering Institute) 7
Příklady nástrojů pro řízení projektů MS Project (Microsoft) SWING_PWeb (testovací provoz) 8
9
Příklady CASE nástrojů Rational Rose (IBM) Poseidon for UML (Gentleware) Umbrello UML Modeller (GNU) MagicDraw UML (No Magic) Enterprise Architect (SPARX Systems) Power Designer (Sybase) 10
11
12
13
14
15
16
Jak se to naučíte používat? Všechno zcela jistě těžko Budete si muset vybrat Cvičící vám pomohou Váš dodavatel OS vám pomůže Váše HW konfigurace vám pomůže Zbytek záleží na vás 17
Cíl výuky SI Vysvětlit pokud možno všechny činnosti, které souvisejí s přípravou softwarových projektů, poskytnout posluchačům přehled a dovednosti, které jsou nezbytné pro tuto činnost, aby mohli bez obtíží komunikovat se specialisty a měli přehled o užívaných technikách, metodách a nástrojích. Specialisty se zde myslí jak odborníci ve zvolené oblasti, tak odborníci na informatiku a programování, ale i manažeři různých úrovní. 18
Hrubý životní cyklus programového díla Nápad Vznik Instalace Provoz a údržba Zánik cca 20% života cca 80% života 19
Životní cyklus program. díla Nápad Neformální specifikace (odborný článek, úvodní studie) Formální specifikace (analýza) Dekompozice (návrh) Řešení komponent (modulů) Implementace komponent Testování komponent Integrace komponent do celku Testování celku (akceptační test) Instalace Provoz a údržba Programování ve velkém Programování v malém 20
Fáze tvorby SW produktu Úvodní studie (feasibility study) podklady pro rozhodnutí, zda vůbec má projekt smysl Analýza (analysis) průzkum sledovaného subjektu vytvoření dostatečně přesné specifikace produktu Návrh (design) dekompozice systému na části reengineering procesů Implementace (implementation) realizace komponent definovaných v návrhu a jejich sestavení do výsledného produktu 21
Náročnost fázíživotního cyklu Každý produkt by měl projít všemi fázemi životního cyklu Ze statistik (pro velké systémy řádově stovky tisíc řádků kódu) vyplývá, že úsilí věnované těmto fázím by mělo být rozděleno zhruba v poměru: analýza 40% návrh 40% implementace 20% Pokud nevěnujeme počátečním fázím dostatečné úsilí, projeví se to zvýšenými nároky při implementaci či údržbě systému 22
Cena a pravděpodobnost chyby 100 95 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 0 Úvodní studie Analýza Návrh Implementace Provoz Cena Pravděpodobnost 23
Modely životního cyklu Pro standardizaci postupů jsou zavedeny typové modely životních cyklů, např.: Model vodopád (Waterfall) Model průzkumník Přírůstkový model Spirálový model Model životního cyklu určuje základní schéma postupu Životní cyklus by měl vždy začínat dostatečně přesnou specifikací a návrhem Není nutno realizovat celý systém najednou naopak přírůstky poskytují uživateli dobrý pocit postupu prací 24
Model vodopád Nikdy se nevracet zpět 25
Model průzkumník Nejsme schopni odhadnout dopředu, jak to dopadne 26
Přírůstkový model 27
Spirálový model PROVOZ ANALÝZA IMPLEMENTACE NÁVRH 28
Jiné modely životního cyklu Model RAD (Rapid Application Development) model určený pro dobře srozumitelné a dobře vymezené problémy, s malými riziky, využívající krátký vývojový cyklus (cca do 3 měsíců), problém je rozdělen na samostatné moduly Evoluční model využívá skládání komponent, které mohou být vyvíjeny současně, či zakoupeny a upraveny Formální metody využívají specifikací řízený styl vývoje, tj. generování programů ze specifikací Extrémní programování 29