Metodika projektového řízení vývoje softwarových aplikací
Softwarové aplikace jsou v současné době většinou vyvíjeny na projektové bázi s použitím objektově orientovaných metod. Na Fakultě informačních technologií VUT Brno mají studenti možnost navštěvovat různé druhy kursů. Kurs Softwarové inženýrství je seznámí se základními fázemi vývoje softwaru, především s analýzou a návrhem využívajícím objektově orientovaný přístup. Praxi v objektově orientované implementaci mohou studenti získat v jednom z následujících kursů, kterými jsou C ++ programovací jazyk, Java programovací jazyk a Objektově orientované programování v Pascalu. V kursu Řízení projektů založených na počítačích jsou studenti seznámeni s procesy, nástroji a technikami projektového řízení a především je jim zde prezentována metodika projektového řízení. Studenti v rámci tohoto předmětu řeší projekt, jehož předmětem je vývoj softwarové aplikace. Metodika pomáhá studentům využít při realizaci a řízení jejich projektů znalosti získané v uvedených předchozích kursech. Je zaměřena na projektové řízení vývoje objektově orientovaných softwarových aplikací. Při sestavování metodiky byl nejdříve vytvořen jednoduchý životní cyklus vývoje produktu, do kterého byly následně integrovány projektově řídící aktivity.
Obr. 1. Použitý jednoduchý cyklus vývoje softwarové aplikace
V článku je stručně naznačena výchozí situace v oblasti vývoje softwarových aplikací a používaných metod a nástrojů, je představen jednoduchý životní cyklus vývoje softwarové aplikace a je pojednáno o integraci projektově řídících aktivit do jednoduchého životního cyklu vývoje softwarové aplikace. Dále je představena metodika projektového řízení vývoje softwarových aplikací používaná při výuce, konkrétně její struktura, uživatelské rozhraní a příklady produktově orientovaných a projektově řídících aktivit.
Vývoj softwarových aplikací
Při vývoji softwarových aplikací se v současnosti nejčastěji používá objektově orientovaný přístup, jehož prostředkem pro modelovaní aplikace je jazyk UML (Unified Modeling Language). Vývoj softwarové aplikace zpravidla probíhá v typickém životním cyklu.
Objektově orientovaný přístup
Objektově orientovaný přístup je založen na myšlence, že věci, které spolu logicky souvisejí, především data a operace, by měly tvořit jeden celek. Takový celek se nazývá objekt. Data a operace jsou potom zapouzdřeny v objektech a vně objektu jsou viditelné pouze data a operace, které jsou potřebné pro spolupráci s ostatními objekty. Tento přístup usnadňuje modelování a pochopení rozsáhlých a složitých systémů a jejich opakované použití. Softwarová aplikace je v tomto případě modelována jako množina spolupracujících objektů.
Unified Modeling Language (UML)
UML je průmyslově standardizovaná grafická notace pro specifikování, zobrazování, konstruování a dokumentování prvků systému. Zjednodušuje komplexní proces návrhu prostřednictvím tvorby vizuálních modelů. Standardním způsobem definuje rozsáhlou množinu prostředků, které se uplatňují při návrhu softwarových aplikací, a používá se jako základní modelovací jazyk při objektově orientovaném přístupu. V metodice vývoje softwarových aplikací se z UML uplatňují především diagramy pro modelování funkčních schopností a statické a dynamické struktury.
Model životního cyklu vývoje softwarové aplikace
Životní cyklus vývoje softwarové aplikace je proces, kterým softwarový produkt prochází během svého vývoje. Tvorba produktu začíná myšlenkou a končí vytvořeným produktem. Životní cyklus vývoje stanovuje aktivity, které transformují původní myšlenku na požadovaný softwarový produkt. V současnosti existuje velké množství podob (modelů) životních cyklů, lišících se v závislosti především na softwarovém produktu a postupu použitém při jeho vývoji. Nejznámější modely životního cyklu vývoje softwaru jsou uvedeny v tab. 1.
|
Tab. 1. Modely životního cyklu vývoje softwaru a jejich použitelnost při uplatnění objektového přístupu |
|
Model |
Použitelnost při uplatnění objektového přístupu |
vodopád |
nevhodný |
spirála |
vhodný |
rychlý vývoj aplikace |
vhodný |
řízená iterace |
velmi vhodný |
|
Jak již bylo uvedeno, navržená metodika je určena pro studující předmětu řízení projektů založených na počítačích. Studenti zde v týmu řeší projekt, kterým je vývoj softwarové aplikace. Z důvodu krátké doby, která je na realizaci projektu k dispozici, byly mezi požadavky na metodiku jednoduchost životního cyklu vývoje produktu a současně dobrá použitelnost při objektově orientovaném způsobu vývoje. K tomu byl vytvořen jednoduchý model životního cyklu vývoje softwarových aplikací s fázemi a vazbami mezi nimi podle obr. 1.
Jde o model podobný modelu typu vodopád, od kterého se ale liší možností opakovaného vracení do předchozích fází, je-li to třeba. Ve fázi analýzy se formulují požadavky a stanovují se funkce budoucí softwarové aplikace. Fáze návrhu určuje, jak vytvořit požadovanou softwarovou aplikaci. Zde se především navrhuje uživatelské rozhraní a statická a dynamická struktura aplikace. Při implementaci je vytvořen zdrojový kód aplikace, který je ve fázi testovaní ověřen. Náplní fáze instalace je zavedení produktu do používání u konečného uživatele.
Integrace projektově řídících aktivit
Jednoduchý model životního cyklu vývoje softwarových aplikací představený v předchozí kapitole se soustřeďuje pouze na produktově orientované použití, tj. stanovuje, jak softwarovou aplikaci vytvořit, ale ne jak její tvorbu řídit. Integrace projektově řídících aktivit do jednoduchého životního cyklu vývoje aplikace je ukázána na obr. 2.
Obr. 2. Integrace projektově řídících aktivit do životního cyklu vývoje aplikace
Jak je patrné, vznikly přidáním projektově řídících aktivit do modelu dvě nové „liniové“ fáze, a to plánovaní projektu a uzavření projektu. Všechny liniové fáze, původní produktově orientované i obě nově přidané, ve schématu na obr. 2 obsahují projektově řídící aktivity z následujících typů: zahajovací, plánovací, prováděcí, kontrolní a uzavírací (jak na obrázku naznačuje průběžná fáze projektové řízení, probíhající paralelně se všemi liniovými fázemi).
Metodika projektového řízení
V této kapitole je pro účely výuky krátce představena zavedená metodika projektového řízení vývoje softwarových aplikací.
Struktura
Metodiku tvoří jednotlivé objekty, které je možné klasifikovat do tříd. Statickou strukturu metodika lze poté vyjádřit prostřednictvím diagramů tříd (obr. 3).
Obr. 3. Diagram tříd – struktura „metodika“
Na nejvyšší úrovni se metodika skládá z fází uvedených spolu s vazbami v obr. 2. Fáze se následně skládají z kroků, které představují množinu několika souvisejících aktivit. Aktivita je základní jednotka pracovní činnosti. Je vykonávána jednou či několika osobami, které v metodice reprezentují některou z rolí. Aktivita může být buď produktově orientovaná nebo projektově řídící. Každá aktivita většinou má vstupy, které transformuje na výstupy, a pro její vykonání může být použit nějaký nástroj nebo technika. Metodika poskytuje šablony pro některé vstupy, výstupy, techniky a nástroje.
Uživatelské rozhraní
Aby metodika byla snadno přístupná a aktualizovatelná, je publikována v podobě webových stránek. Je tudíž přístupná prostřednictvím internetových prohlížečů. Uživatel může volit mezi českou a anglickou verzí.
Tab. 2. Příklad nástroje: Rozvrh schůzky 15. 5. 2004 |
|
Čas |
Téma |
Role |
10:00 |
přivítání a představení |
vedoucí projektu |
10:15 |
plán projektu |
vedoucí projektu |
10:45 |
diskuse |
– |
| |
Uživatelské rozhraní v prostředí internetového prohlížeče Internet Explorer v. 5.0 je ukázáno na obr. 4. Je rozděleno na dvě části. Levá část obsahuje výčet jednotlivých fází, pod kterými jsou odsazeny kroky. Pod kroky jsou odsazeny jednotlivé aktivity. Produktově orientované a projektově řídící aktivity jsou od sebe odlišeny. V pravé části jsou uvedeny podrobné údaje o vybrané fázi, kroku nebo aktivitě z levé části.
Produktově orientované aktivity
V následujících odstavcích jsou představeny dvě produktově orientované aktivity tak, jak jsou prezentovány v popisované metodice.
Obr. 4. Uživatelské rozhraní
Vytvoření diagramu tříd
Produktově orientovaná aktivita vytvoření diagramu tříd je charakterizována takto:
název: vytvoření diagramu tříd,
popis: diagram tříd reprezentuje statickou strukturu systému a klasifikuje prvky, mezi kterými jsou různé vztahy (obr. 5); protože u velkých projektů poskytují třídy příliš nízkou úroveň abstrakce, seskupují se související třídy do skupin, přičemž mezi skupinami jsou minimální závislosti; tyto skupiny se nazývají packages a diagram zobrazující skupiny a jejich vztahy se označuje jako package diagram (obr. 6). Každá třída se může vyskytovat pouze v jedné skupině (package),
vstup: dokument specifikace požadavků (šablona v textovém editoru Microsoft Word),
výstup: v dokumentu návrh bude reprezentována statická struktura systému,
techniky a nástroje: diagram tříd, package diagram,
role: návrhář.
Obr. 5. Příklad diagramu tříd
Programování přírůstku
Podobně je charakterizována aktivita programování přírůstku:
- název: programování přírůstku,
- popis: programátor realizuje některou z částí systému podle návrhu,
- vstup: dokument návrh (šablona ve Wordu),
- výstup: přírůstek kódu,
- techniky a nástroje: objektově orientované metody (programovací jazyky),
- role: programátor.
Projektově řídící aktivity
Na ukázce jsou dále tak, jak jsou prezentovány v metodice, představeny ještě dvě projektově řídící aktivity.
Definování a přiřazení základních rolí v projektu
Projektově řídící aktivita definování a přiřazení základních rolí v projektu je charakterizována takto:
název: definování a přiřazení základních rolí v projektu,
popis: na začátku projektu je třeba definovat základní role nutné pro realizaci projektu a přiřadit je členům týmu; v první řadě je třeba definovat roli vedoucího projektu a dále ostatní role; za základní role se považují role vedoucího projektu, analytika a zákazníka, další role se většinou stanovují až v průběhu plánování projektu, kdy vznikne jejich potřeba,
vstup: dokumenty plán projektu a organizace projektu (šablona ve Wordu),
výstup: dokumenty plán projektu a role projektu (šablona ve Wordu),
techniky a nástroje: role by měly být přiřazeny na základě vlastností, odbornosti a zkušeností členů týmu,
role: vedoucí projektu.
Obr. 6. Příklad package diagramu
Přezkoumání plánu projektu
Podobně je charakterizována aktivita přezkoumání plánu projektu:
název: přezkoumání plánu projektu,
popis: před ukončením etapy zahájení projektu přezkoumává vývojový tým plán projektu; vedoucí projektu seznamuje členy týmu s jejich rolemi a informuje je o cílech projektu, plánu projektu a stavu jeho plnění; vývojový tým má možnost se k plánu projektu vyjádřit a plán projektu schválit nebo specifikovat jeho úpravu,
vstup: dokument plán projektu (šablona ve Wordu),
výstup: dokument přezkoumání plánu projektu (šablona ve Wordu),
techniky a nástroje: příklad viz tab. 2,
role: vývojový tým.
Závěr
Popsanou metodiku projektového řízení vývoje softwarových aplikací již studenti použili při řešení svých projektů a shledali ji užitečnou. V současnosti je metodika na základě získaných zkušeností zdokonalována pro použití v následujícím běhu kursu. Lze předpokládat, že zkušenosti, které studenti získají při práci s danou metodikou, jim budou užitečné i v jejich budoucích školních i pracovních projektech.
Poděkování
Práce vznikla v rámci grantu FR1692/2004/G1 Využití objektově orientovaného vývoje v projektovém řízení.
Literatura:
[1] CANTOR, M. R.: Object-oriented Project Management with UML. Willey, 1998, ISBN 0-471-25303-0.
[2] MURCH, R.: Project management best practice for IT professionals. Prentice Hall, 2001, ISBN 0-13-021914-2.
[3] STILLER, E. – LEBLANC, C.: Project-Based Software Engineering. Wesley, 2002, ISBN 0-201-74225-X.
[4] FORSBERG, K. – MOOZ, H. – COTTERMAN, H.: Visualizing project management. 2nd ed., Willey, 2000, ISBN 0-471-35760-X.
[5] A Guide to the Project Management Body of Knowledge (PMBOK Guide). Project Management Institute, 2000.
David Bednář
(bednar@fit.vutbr.cz),
Jitka Kreslíková
(kreslika@fit.vutbr.cz)
Článek je zredigovanou verzí stejnojmenného příspěvku předneseného na konferenci Project Management – PRONT 04, Praha, listopad 2004 (http://www.evida.cz).
|