Životní cyklus informačního systému
Pojem
Životní cyklus projektu se skládá z jednotlivých etap, které si můžeme představit jako na sebe naskládané kamenné kostky, které takto složené tvoří např. most. Most v našem případě znamená náš cíl projektu, tedy správně fungující informační systém (IS), a jednotlivé kostky si představíme jako jednotlivé etapy stavby našeho mostu. Nejprve zjistíme, zda se vyplatí most vůbec postavit, tzn. zda přistoupit k jeho realizaci, tedy zjistíme, zda bude opravdu výhodnou investicí, zda jej lidé opravdu potřebují (v případě IS zachycujeme požadavky na systém tzn. jeho funkčnost, design, návaznost na jiné systémy, integraci s ostatními systémy, reakční dobu,…). V případě, že se stavba mostu (tvorba IS) opravdu vyplatí, nastává fáze analýzy, kdy se vytváří nákresy mostu, odhady nákladů a zdrojů (v případě IS jde o konceptuální model, který zachytí danou skutečnost v rámci modelu).
V další části vytvoříme přesný nákres mostu (v případě IS vytvoříme implementační model systému, tedy konkrétního návrhu IS), nastává proces stavby mostu (vývoj dané aplikace), tedy samotný vývoj a dále následná implementace a zavedení (nainstalování a spuštění aplikace), kdy je most podroben zátěžovým zkouškám (provedení zátěžových testů na systém)a je spuštěn zkušební přechod (zkušební provoz aplikace). Poté je most uveden do běžného užívání, je v provozu a neustále udržován (udržování IS), jako např. drobné opravy, úklid (změny v IS) a v případě, že hrozí zhroucení, tj. když již ani úpravy a rekonstrukce nemají smysl či se finančně nevyplatí (IS je tak zastaralý a nefunkční, že se nevyplatí opravy a nejlepší možností je vytvořit nový), nastává fáze stažení z užívání (zbourání mostu).
Jak jsme již uvedli na příkladu výše, životní cyklus vývoje IS se skládá z jednotlivých etap (můžeme říci, že i z jednotlivých fází). Jedná se o kompletně pokrytý cyklus vývoje IS od jeho počátků, kdy zvažujeme, zda IS vůbec vyvíjet, přes zachycení jeho požadavků, tvorbu konceptuálního a implementačního (designového) modelu, implementaci, zavedení, testování až po údržbu systému a jeho provoz, v některých případech i stažení systému z užívání.
Každý proces vývoje IS můžeme tedy popsat prostřednictvím životního cyklu. Obecně si zde definujeme jeho základní etapy, kterými jsou:
- zachycení požadavků na systém (týká se funkčnosti, designu, návaznosti na jiné systémy, integrace s ostatními systémy, reakční doby atd.),
- tvorba konceptuálního modelu (zachycení skutečností v rámci modelu),
- tvorba implementačního modelu (jedná se již o konkrétní návrh IS),
- implementace a zavedení,
- testování,
- udržování systému a provoz,
- stažení systému z užívání.
Pojem životního cyklu je velice rozšířený. I když jej chápeme správně jako jednotlivé po sobě jdoucí a na sebe navazující fáze tvorby IS, tedy jako posloupnost kroků, které je třeba vykonat pro dosažení úspěšného vývoje IS, přizpůsobujeme si jej podle svých požadavků a potřeb. To nám umožňuje dosáhnout vyšší efektivity a produktivity při vývoji a mimochodem to životnímu cyklu vůbec neubírá na jeho důležitosti a významu, neboť právě definování životního cyklu a jeho fází bylo základem a nutností pro možnost vzniku metodik. Metodiky pro řízení a vývoj IS využívají životní cyklus jako svůj základ a definované fáze umožňují podrobněji určit jednotlivé činnosti, na které jsou aplikovány přímo jednotlivé metody. Začátky a konce etap životního cyklu jsou základními klíčovými milníky, podle kterých se řídí vývoj jednotlivých metodik.
Jak již bylo řečeno, ne vždy jsou však fáze životní cyklu striktně definovány. Různí autoři chápou IS z odlišného hlediska, například produktového hlediska, z hlediska vývoje vlastního IS či podle používané metodiky. Uveďme si nyní několik příkladů.
Kendall[1] uvádí tyto fáze vývoje:
- identifikace problémů, možností a cílů (stanovení strategie vedoucí k realizaci tvorby IS),
- definování informačních potřeb (proč má produkt vzniknout a jaké informační potřeby uspokojí),
- analýza systémových potřeb (zkoumáme systémové potřeby nezbytné pro tvorbu vlastního IS),
- návrh doporučeného systému (navrhujeme, jak bude systém řešen v dané technologii a jaké postupy budou uplatněny),
- vývoj a dokumentace k softwaru,
- testování a zavádění softwaru,
- údržba a hodnocení systému.
Podle Polák [2] a má životní cyklus fáze:
- zadání,
- analýza,
- návrh,
- implementace,
- testování a provoz.
Podle Řepy [3] vychází životní cyklus z dané metodiky a jako doporučení uvádí, že je dobré pro každou metodiku stanovit:
- cíl etapy (proč etapa má být provedena a co je jejím výsledkem),
- účel a obsah etapy (popis role etapy v celém vývoji systému, shrnutí činností prováděných v etapě),
- předpoklady zahájení etapy (kdy je možné začít s pracemi v rámci dané etapy),
- kritéria ukončení etapy (kdy je možné prohlásit etapu za ukončenou),
- klíčové dokumenty etapy (seznam dokumentů, vyprodukovaných nebo upravených v dané etapě, které musí být schváleny vedením projektu),
- kritické faktory etapy (na co je třeba v etapě dávat největší pozor, faktory, které mohou způsobit problémy při vývoji),
- činnosti etapy (seznam a popis činností, které se v etapě provádějí),
- návaznosti činností v etapě (graficky vyjádřená návaznost a souběžnost provádění jednotlivých činností etapy).
Také se zmiňuje o tom, že každá etapa se skládá z činností a zdůrazňuje, že pro každou činnost by měla existovat metodika, kterou je činnost popsána.
Metodika by měla obsahovat:
- cíl činnosti,
- postup (jednotlivé kroky činnosti). Kroky určují, co je třeba udělat v rámci příslušné činnosti, mohou probíhat i opakovaně,
- vstupy (podklady). Uvést, z jakých dokumentů a dalších materiálů se v danéčinnosti čerpá, na jaké dokumenty se navazuje,
- výstupy (produkty). To znamená, jaké produkty a dokumenty se v dané činnosti vytvářejí nebo upravují, případně v členění:
- klíčové dokumenty,
- ostatní produkty,
- zúčastněné profese a odpovědnost (profese, které se účastní prací na dané činnosti a za co odpovídají).
- doporučené techniky a nástroje. Techniky, které se v činnosti používají, jejich možná podpora a ostatní nástroje vývoje IS.
Z výše uvedeného tedy vyplývá, že životní cyklus může být chápán různě. Přesto existují národní a mezinárodní standardy, které popisují posloupnost kroků a přesné určení jaké metody, techniky, nástroje, dokumenty, řízení atd. použít při vývoji IS.
Český standard životního cyklu
V České republice byl v prosinci roku 2002 vydán Standard ISVS 005/02.1 pro náležitosti životního cyklu informačního systému, který vydal Úřad pro veřejné informační systémy v Praze. Standard se vztahuje na IS veřejné správy a na projekty akvizice, vývoje, provozu a údržby těchto systémů a věnuje se především dokumentaci a jednotlivým krokům, které musí být provedeny pří vývoji IS. Standard definuje základní postupy a náležitosti procesů životního cyklu informačního systému nebo jeho části s hlavními cíli:
- zajistit řízení a zejména kvalitní organizaci a kontrolu projektů rozvoje IS v rámci organizace správce ISVS,
- zajistit kvalitní řízení vývoje, provozu a údržby informačního systému jako celku,
- připravit věcný podklad pro atestace informačních systémů nebo projektů jejich rozvoje,
- poskytnout správcům informačních systémů veřejné správy možnost efektivněji kontrolovat dodavatele komplexních řešení (zejména externí subjekty) rozšířením počtu a přesnou definicí kontrolních bodů, ve kterých lze zpracovávaný projekt ovlivnit nebo v krajním případě zastavit tak, aby nedocházelo k dalším zbytečným finančním a časovým ztrátám,
- vést jednotnou strukturovanou dokumentaci jednotlivých projektů tak, aby nebyly ohroženy personálními změnami v řešitelských týmech.
Dále jsou standardem sledovány cíle:
- definovat návaznosti jednotlivých projektů v organizaci správce ISVS,
- vést evidenci o jednotlivých informačních systémech, projektech jejich rozvoje a jejich meziresortních návaznostech pro potřeby (a podle metodických požadavků) Úřadu pro veřejné informační systémy,
- zajistit základní kontrolu účelnosti vynakládání finančních prostředků na projekty ICT ze státního rozpočtu.
Mezinárodní standardy
Mezinárodní standardy pronikají také na území České republiky a jejich dodržování se stává jedinou z možností jak obstát na konkurenčním trhu. V této podkapitole se zaměříme na ty nejznámější.
ISO/IEC 12207 [4]
ISO/IEC 12207 je mezinárodní standard určený pro softwarové procesy v rámci životního cyklu (Software Life Cycle Processes). Tento standard byl poprvé navržen v roce 1988 a publikován v roce 1995 a stanoven jako společný mezinárodního rámec pro vývoj, dodávky, podporu a údržbu softwaru. Standard se věnuje především třem zásadním procesům: procesům primárního životního cyklu, podpoře procesů životního cyklu a organizačním procesům životního cyklu.
ISO/IEC 15504 [5]
ISO/IEC 15504 Software Process Improvement and Capability Determination, známý pod zkratkou SPICE, je mezinárodní rámec pro hodnocení procesů, který byl vyvinut Joint Technical Subcomittee v období mezi standardem ISO (International Organization for Standardization) a IEC (International Electrotechnical Comission). Byl odvozen ze standardu procesu životního cyklu ISO 12207 a modelů dospělosti (maturity models) jako je model CMM (o modelu CMM je pojednáno v kapitole 8.5.2.1), Bootstrap a Trillium. Standard obsahuje referenční model, který definuje dimenze procesů a dimenze "způsobilosti" (capability). Dimenze procesů jsou rozděleny do pěti kategorií procesů na dimenzi zákazník/dodavatel, inženýrství, podpora, řízení a organizace. Vyspělost procesů (capability of processes) je měřena pomocí atributů procesu a jsou definovány mezinárodním standardem devíti atributy jako je výkonnost procesů, řízení procesů, dále definice, rozmístění, měření, kontrola, inovace a optimalizace procesu. Každý z těchto atributů je hodnocen pětibodovým hodnocením od nedosaženo (not achieved) až po plně dosaženo (fully achieved). Standard poskytuje návod na to, jak provádět hodnocení procesů, obsahuje model pro toto hodnocení a doporučené nástroje používané pro hodnocení.
Závěr
Životní cyklus kompletně pokrývá celý vývoj IS, který se skládá z jednotlivých etap/fází, které na sebe navazují. Každý IS lze popsat pomocí životního cyklu, jehož základními etapami je zachycení požadavků na systém, tvorba konceptuálního a implementačního modelu, implementace, zavedení, testování, udržování systému a jeho provoz a v některých případech také i stažení systému z užívání.
Jednotliví vývojáři si životní cyklus přizpůsobují podle svých vlastních potřeb, tzn. ne vždy se shodují názvy etap a jejich rozdělení do dílčích činností a úkolů u všech projektů. To umožňuje každému přizpůsobit si životní cyklus podle svých potřeb, čímž dochází ke zvýšení efektivity a produktivity.
Pro snadnější pochopení životního cyklu existují národní a nadnárodní standardy. Zmínili jsme český standard ISVS 005/02 z roku 2002, který se vztahuje na IS veřejné správy a na projekty akvizice, vývoje, provozu a údržby těchto systémů, dále se věnuje především dokumentaci a jednotlivým krokům, které musí být provedeny pří vývoji IS.
Nejznámějšími mezinárodními standardy je Standard ISO/IEC 12207 a ISO/IEC 15504. ISO/IEC 12207 je Standard pro softwarové procesy v rámci životního cyklu (Software Life Cycle Processes) a je návodem, jak správně řídit projekt IS. Standard ISO/IEC 15504 (Software Process Improvement and Capability Determination) nám může pomoci při zlepšování procesů v rámci vývoje IS, které vedou k zvýšení efektivnosti a produktivity práce.
Reference
- Kendall, K.E. Systém Analysis and Design. Prentice Hall, 1991
- Polák, J. Merunka, V. Carda, A. Umění systémového návrhu. Grada, Praha 2003, ISBN 80-247-0424-2
- Řepa, V. Analýza a návrh informačních systémů. Ekopress, Praha 1999, ISBN 80-86119-13-0. str. 17-19
- ISO/IEC 12207 Software Life Cycle Processes [online]. SEPT Supplying Software Engineering Standards Information to the World 2008. Dostupné na: http://www.12207.com/
- SO/IEC 15504 Software Process Improvement and Capability Determination. Organizational Maturity [online], Dostupné na: http://www.iso.org/iso/iso_catalogue.htm