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 Produkcesoftware software (Software Process) (Software Process) zahrnuje
Management Managementprojektu projektu ••Plánování Plánování ••Řízení Řízení ••Zajištění Zajištěníkvality kvality
je obvykle realizována projekty Projekt Projekt Projekt Projekt Projekt Projekt
zahrnuje Tvorbu TvorbuSW SWproduktu 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
Proces je kvalitativně měřen a řízen
Optimalizující (5)
zpětná vazba
Řízený (4)
měření
Proces je definován Definovaný (3)
Proces je opakovatelný integrovaný proces řízení projektu Opakovatelný (2)
základní řízení projektu Iniciální (1)
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
cca 20% života
Vznik Instalace Provoz Zánik
a údržba
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) Programování ve velkém Řešení komponent (modulů) Implementace komponent Testování komponent Integrace komponent do celku Programování v Testování celku (akceptační test) malém Instalace Provoz a údržba 20
Fáze tvorby SW produktu Úvodní
studie (feasibility study)
podklady
Analýza
pro rozhodnutí, zda vůbec má projekt smysl
(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 Cena Pravděpodobnost
50 45 40 35 30 25 20 15 10 5 0 Úvodní studie
Analýza
Návrh
Implementace
Provoz
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)
Evoluč ční model
využívá skládání komponent, které mohou být vyvíjeny současně, či zakoupeny a upraveny
Formální metody
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
využívají specifikací řízený styl vývoje, tj. generování programů ze specifikací
Extrémní programování
29