+ All Categories
Home > Documents > Srovnávací analýza metodik vývoje software -...

Srovnávací analýza metodik vývoje software -...

Date post: 24-Sep-2019
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
67
Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Vyšší odborná škola informačních služeb Vladimír Popelka Srovnávací analýza metodik vývoje software Bakalářská práce 2009
Transcript
Page 1: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

Vysoká škola ekonomická v Praze

Fakulta informatiky a statistiky

Vyšší odborná škola informačních služeb

Vladimír Popelka

Srovnávací analýza metodik vývoje

software

Bakalářská práce

2009

Page 2: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

Zadání bakalářské práce

Page 3: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

Prohlášení

Prohlašuji, že jsem bakalářskou práci na téma „Srovnávací analýza metodik vývoje

software“ vypracoval samostatně. Všechny zdroje použité při zpracování této

bakalářské práce uvádím v přiloženém seznamu použité literatury.

V Praze dne …………………

…………………………

Vladimír Popelka

Page 4: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

Poděkování

Rád bych věnoval své poděkování paní PhDr. Heleně Kučerové za odborné vedení,

ochotu, připomínky a cenné rady při zpracování tématu bakalářské práce.

Dále děkuji panu Ing. Josefu Gabrielovi, zaměstnanci společnosti Unicorn a.s., za

odborné konzultace.

Page 5: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5

Obsah

1. Úvod..........................................................................................................................9

1.1 Cíl práce............................................................................................................9

1.2 Klíčová slova ....................................................................................................9

1.3 Hypotéza...........................................................................................................9

1.4 Metodologie práce ..........................................................................................10

1.5 Zdůvodnění výběru tématu práce ...................................................................10

1.6 Představení společnosti UNICORN ...............................................................11

2. Rizika spojená s návrhem a realizací software ..................................................12

2.1 Problémy při vývoji software .........................................................................12

2.2 Základní příčiny problémů .............................................................................14

2.3 Příčiny výskytu chyb ......................................................................................15

2.4 Eliminace problémů vývoje software .............................................................17

3. Porovnání metodik vývoje software ....................................................................18

3.1 Agilní a rigorózní metodiky ...........................................................................18

3.1.1 Charakteristika směrů vývoje software...............................................18

3.1.2 Tabulka porovnání rigorózních a agilních metodik............................19

3.1.3 Porovnání a rozdíly směrů vývoje software .......................................21

3.1.4 Manifest agilního vývoje software .....................................................21

3.2 Výběr metodik pro porovnání.........................................................................22

3.2.1 Metodika RUP – zástupce rigorózního vývoje...................................22

3.2.2 Výběr agilních metodik ......................................................................23

3.3 Základní popis zvolených metodik.................................................................25

3.3.1 Metodika Rational Unified Process ....................................................25

3.3.2 Extrémní programování (XP) .............................................................28

3.3.3 Feature Driven Development (FDD) ..................................................31

3.3.4 Test Driven Development...................................................................33

4. Výběr vhodné metodiky pro projekt...................................................................36

4.1 Charakteristika projektu .................................................................................36

4.1.1 Formulace problému...........................................................................36

4.1.2 Vymezení problému............................................................................37

4.2 Stanovení kritérií pro porovnání.....................................................................38

4.2.1 Kritéria klasifikace metodik ...............................................................38

Page 6: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

6

4.2.2 Popis kritérií pro porovnání metodik..................................................39

4.3 Metodiky podle stanovených kritérií ..............................................................41

4.4 Analýza číselného hodnocení kritérií .............................................................43

4.5 Stanovení vah pro kritéria...............................................................................46

4.6 Výběr vhodné metodiky podle optimalizační metody....................................47

4.6.1 Řešení problému pomocí metody TOPSIS.........................................47

4.7 Návrh vhodné metodiky pro projekt...............................................................48

5. Testovací strategie.................................................................................................49

5.1 Testovací cyklus .............................................................................................49

5.2 Kategorizace testů podle metodiky RUP........................................................53

5.2.1 Klasifikace testů podle viditelnosti kódu............................................53

5.2.2 Klasifikace testů podle dimenze času .................................................54

5.2.3 Klasifikace testů podle dimenze typů testů ........................................55

5.3 Návrh testovací strategie ................................................................................56

6. Závěr ......................................................................................................................60

6.1 Zhodnocení dosažení cílů ...............................................................................60

6.1.1 Vyhodnocení cílů................................................................................60

6.1.2 Vyhodnocení hypotézy práce..............................................................60

6.2 Závěrečné shrnutí práce..................................................................................60

6.2.1 Vyhodnocení porovnání metodik software.........................................60

6.2.2 Vyhodnocení návrhu testovací strategie .............................................62

7. Seznamy a přílohy.................................................................................................63

7.1 Seznam použité literatury ...............................................................................63

7.2 Seznam obrázků..............................................................................................65

7.3 Seznam tabulek...............................................................................................65

7.4 Přílohy ............................................................................................................66

Page 7: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

7

Abstrakt

Srovnávací analýza metodik vývoje software

Tématem této bakalářské práce jsou metodiky vývoje software. Úkolem je stanovit

rizika spojená s návrhem a realizací software, vymezit problémy a jejich příčiny při

vývoji software. Hlavním cílem bakalářské práce je porovnání metodik pro vývoj

software. V rámci této bakalářské práce byla porovnána metodika RUP (Rational

Unified Process), jako zástupce rigorózního vývoje, s metodikami XP, TDD, FDD, jako

zástupci agilního vývoje. Porovnání bylo realizováno pomocí vícekriteriální

optimalizační metody TOPSIS. Vybrané metodiky byly porovnány se zaměřením na

oblast testování. Na základě specifikace požadavků projektu byla zvolena vhodná

metodika pro vývoj software. Pro vhodnou metodiku byla navrhnuta testovací strategie

pro pokrytí systému testy, zahrnující testovací cyklus a klasifikaci testů.

Page 8: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

8

Abstract

The comparative analysis of software development methodologies

This bachelor work deals with different methodologies of software development. It

aspires to define risks connected with design and realization of software and to depict

problems encountered during software development as well as their causes. The main

aim of my bachelor work is to compare different methodologies of software

development. I tried to compare the RUP methodology (Rational Unified Process), as a

representative of rigorous development, with XP, TDD and FDD methodologies, as

representatives of agile development. Comparison was carried out by the multicriterion

optimalization method TOPSIS. Chosen methodologies were compared with focus on

software-testing issues. In accordance with specification of project requirements the

suitable software development methodics was chosen. For this suitable methodology the

test strategy for coverage of system with tests, including the testing cycle and tests

classification, was designed.

Page 9: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

1. ÚVOD

9

1. Úvod

1.1 Cíl práce

Hlavním cílem bakalářské práce je porovnání metodik pro vývoj software se

zaměřením na oblast testování. V rámci této bakalářské práce budu porovnávat

metodiku RUP (Rational Unified Process), jako zástupce rigorózních metodik,

s metodikami XP, TDD, FDD, jako zástupci agilního vývoje. Porovnání bude

realizováno pomocí vícekriteriální optimalizační metody TOPSIS.

Dalším úkolem je stanovit rizika spojená s návrhem a realizací software, vymezit

problémy a jejich příčiny při vývoji software. Na základě specifikace požadavků

projektu zvolím vhodnou metodiku pro vývoj software. Pro vhodnou metodiku navrhnu

testovací strategii pro pokrytí systému testy, zahrnující testovací cyklus a klasifikaci

testů.

1.2 Klíčová slova

• metodiky vývoje software

• agilní a rigorózní metodiky

• Rational Unified Process

• testování software

• testovací strategie

• TOPSIS

1.3 Hypotéza

Hlavním předpokladem této práce je, že na základě porovnání metodik vývoje

software zaměřeného na problematiku testování a na základě jasně definovaných

požadavků na projekt bude pro řízení softwarového projektu zvolena metodika RUP.

Tato metodika patří v současné době k jedné z nejlépe popsaných. Lze tedy očekávat, že

její použití bude mít pozitivní vliv na efektivnější řízení vývojového procesu.

Page 10: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

1. ÚVOD

10

1.4 Metodologie práce

V úvodu práce jsem se soustředil na nejčastější problémy při vývoji software. Moje

zkoumání bylo založeno na studiu odborné literatury. Rovněž jsem postupoval podle

praktických zkušeností z projektu vývoje software, uplatnil jsem tedy metodu

pozorování.

V návaznosti na problémy jsem se zaměřil na jejich řešení pomocí metodik. Na

základě kritérií jsem porovnal nejprve dva směry vývoje software, rigorózní a agilní

metodiky, a poté metodiku RUP a vybrané zástupce agilního vývoje. Výběr metodiky

vývoje software jsem prováděl na základě zadání projektu. Volba požadavků

nevycházela z žádného skutečného projektu. Porovnání metodik bylo prezentováno na

modelové situaci. Pro výběr metodiky jsem použil optimalizační metodu manažerského

rozhodování TOPSIS. Nejprve jsem stanovil kritéria, následně jim přiřadil váhy, pak

jsem provedl výpočet, jehož výsledkem byla jedna optimální metodika. Klíčovou

metodou při porovnávání a výběru metodiky bylo kvalitativní srovnání metodik vývoje

software, při němž jsem použil matematické metody.

Pro vybranou metodiku jsem zpracoval návrh testovací strategie, kde jsem se

zaměřil na testovací cyklus a rozdělení typů testů do kategorií. Při stanovení testovací

strategie jsem využil metodu klasifikační analýzy. Nejprve pro každou fázi testovacího

cyklu jsem definoval činnosti, které se v ní budou vykonávat, a následně každému

aspektu testování jsem přidělil jednotlivé typy testů. Na závěr jsem navrhl testovací

strategii, která obsahovala seznam kroků a pravidel, podle kterých se má řídit úspěšné

testování. V závěru jsem provedl vyhodnocení zjištěných výsledků.

1.5 Zdůvodnění výběru tématu práce

V rámci této bakalářské práce jsem se zaměřil na porovnání metodik vývoje

software. Hlavním záměrem práce je porovnání metodiky RUP (Rational Unified

Process), jako představitele rigorózních metodik, s vybranými zástupci agilního vývoje.

Hlavním důvodem tohoto rozhodnutí byla myšlenka, zda-li metodika RUP představuje

vhodné řešení pro řízení projektu a vývoj software.

Zúčastnil jsem se projektu pro společnost Unicorn, kde jsem působil v roli test

analytika v rámci zajišťování kvality softwarového produktu informačního systému

firmy Unicorn. Rovněž mám zkušenost z projektu v oblasti bankovnictví. Na obou

těchto projektech byla vždy aplikována metodika RUP.

Page 11: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

1. ÚVOD

11

Volbu vhodné metodiky pro vývoj software a řízení projektu považuji za klíčovou.

Proto si myslím, že porovnání metodik vývoje software podle nejrůznějších aspektů a

hledisek představuje první krok pro volbu vhodné metodiky a nejdůležitější krok pro

efektivní průběh celého projektu.

1.6 Představení společnosti UNICORN

„UNICORN je největší česká společnost poskytující komplexní služby v oblasti

informačních systémů a informačních a komunikačních technologií.“ [12]

Společnost Unicorn byla založena v roce 1990 a využívá více než 17 let zkušeností.

Unicorn zajišťuje efektivní řešení a služby zejména v oblastech: projekce, konstrukce,

integrace a provozu informačních systémů, dodávky software, konzultací a školení. Pro

své zákazníky poskytuje společnost Unicorn služby zaměřené na všechna odvětví

průmyslu, pokrývá důležité obchodní a technologické oblasti trhu, zejména pak oblast

bankovnictví, financí, telekomunikací, informačních technologií a energetiky. [12]

Page 12: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

2. RIZIKA SPOJENÁ S NÁVRHEM A REALIZACÍ SOFTWARE

12

2. Rizika spojená s návrhem a realizací software

Základním cílem každé firmy bez ohledu, zda-li působí v oblasti bankovnictví,

pojišťovnictví, telekomunikací, informačních a komunikačních technologií anebo

v dalších segmentech trhu, je uspět v podmínkách tržního hospodářství a otevřené

konkurence. Klíčem k úspěchu je v současné době pružně reagovat na změny trhu,

přizpůsobit nabídku potřebám zákazníka, schopnost inovovat, prohlubovat vzdělání a

neustále se zdokonalovat. Cílem firmy je proniknout na nové trhy a poskytnout svým

zákazníkům konkurenční výhodu a přidanou hodnotu v podobě kvality služeb.

Schopnost obstát v konkurenci, která se může díky dynamickému charakteru trhu a

také vlivem expanze informačních technologií vynořit odkudkoliv, záleží hlavně na

efektivním a strategickém řízení firemních procesů. Vzájemnou součinnost a

propojenost podnikových procesů, ať už se jedná o řízení lidských zdrojů, strategické

rozhodování a plánování, efektivní řízení firemních informací nebo optimalizaci

znalostních toků, výrazně usnadňuje informační systém. Kvalitní softwarový produkt je

dnes nezbytným řešením jak pro velké organizace, tak i pro malé firmy. Vývoj

informačního systému však není jednoduchou záležitostí. Při jeho vývoji dochází

k mnoha problémům. Detailnímu rozboru rizik a problémů spojených s návrhem a

realizací software se bude věnovat celá tato kapitola.

2.1 Problémy při vývoji software

Vývoj software vyžaduje improvizaci, náročné přemýšlení, tvůrčího ducha.

Výsledkem práce softwarového inženýrství jsou nehmotné informace, tedy zcela

odlišný typ „zboží“ než v uvedených oblastech trhu. Tato skutečnost je základem

většiny problémů. Závažné problémy při vývoji software popisuje obrázek (obr.2.1).

[6, s. 9]

Page 13: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

2. RIZIKA SPOJENÁ S NÁVRHEM A REALIZACÍ SOFTWARE

13

Obr.2.1. – Problémy při vývoji software [6, s. 15]

Asi nejčastějším problémem při vývoji software je zpoždění proti stanovenému

plánu. Pokud je pevně stanovený termín dokončení a navíc je vázaný na další událost,

pak každé zpoždění je kritické. Za problém, který se projeví v pozdních fázích vývoje,

je považována nedostatečná výkonnost. Systém špatně funguje pod zátěží, častým

jevem jsou výpadky a zpomalení systému. Zátěž výrazně přesahuje limity, které byly

odhadovány během vývoje. Aplikace má výkonnostní limit, který lze překročit jen

výjimečně. Zjištění nedostatečné výkonnosti během ostrého provozu znamená velký

problém, kterému lze předcházet testováním výkonnosti v rámci celého vývojového

cyklu. [6, s. 15-18]

Za další problém bývá označována vysoká chybovost neboli častý výskyt chyb.

Chyby se vyskytují téměř vždy. V případě zanedbání testování se při každém zásahu do

stávajícího kódu může množství chyb navyšovat. Odladění chyby v hotovém programu

je velmi náročné, eliminace chyb může znamenat zpoždění projektu. Zde platí obecné

pravidlo, že později objevená závažná chyba značně ovlivňuje růst nákladů. V případě,

že je nutné program upravit a k dispozici není dostatečně podrobná dokumentace nebo

kód je uveden bez komentáře, každá změna je nesmírně náročná. Pokud se program

mnohokrát upravuje, rozšiřuje a zdokonaluje, stává se jeho údržba a správa obtížnou.

V tomto případě se jeví jako lepší řešení naplánovat kompletně novou verzi aplikace.

[6, s. 15-18]

Pokud program nesplňuje požadované funkční požadavky, jedná se o další závažný

problém, který úzce souvisí se špatnou nebo nedostatečnou vzájemnou komunikací

Page 14: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

2. RIZIKA SPOJENÁ S NÁVRHEM A REALIZACÍ SOFTWARE

14

mezi zadavatelem a řešitelem nebo v rámci vývojového týmu. Komunikační překážky

mezi programátory a testery bývají také často umocněny i nepřesnostmi v terminologii.

Jestliže se návrh řešení nesetkává s očekáváním koncového uživatele např. z hlediska

složitého uživatelského rozhraní, můžeme tuto skutečnost klasifikovat jako další

nedostatek. Příliš nepřehledné nebo nepochopitelné uživatelské rozhraní znamená další

rizikový faktor. [6, s. 15-18]

Dalšími problémy, které do jisté míry navazují a doplňují již dříve uvedené, jsou

nekoordinovaná součinnost týmu, neslučitelnost jednotlivých programovým modulů a

nejasně definované požadavky mezi zákazníkem a řešitelskou firmou. [6, s. 15-18 ; 9]

2.2 Základní příčiny problémů

Po provedení analýzy neúspěšného projektu se pro daný problém téměř vždy

vyskytne více vzájemně souvisejících příčin, které ho způsobují. „Hranice mezi

úspěchem a neúspěchem softwarového projektu bývá velmi úzká.“ [6, s.18] Většina

z projektů se řadí mezi tyto dva extrémní stavy. Pokud se vyskytnou problémy obvykle

se je podaří překonat za cenu např. zpoždění nebo vynechání plánovaných funkčností

programu. Hlavní příčiny, proč softwarové projekty selhávají ukazuje obrázek (obr.2.2).

[6, s. 18 – 22 ; 9]

Obr.2.2. – Základní příčiny problémů [6, s. 18]

Špatné projektové řízení může vést k nesprávné koordinaci týmu, v případě

návaznosti práce musí jeden člen týmu čekat na výsledek druhého kolegy. Manažer

projektu musí provést objektivnější odhad posloupnosti činností. Tato příčina má

společný jmenovatel a pokrývá všechny zde uvedené příčiny. Za nejrozšířenější příčinu

problémů softwarového vývoje se považuje podcenění náročnosti projektu. Manažer

Page 15: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

2. RIZIKA SPOJENÁ S NÁVRHEM A REALIZACÍ SOFTWARE

15

projektu neodhadne všechny rizika spojená s projektem a zvolí nevhodný způsob řízení

a plánování např. bez ohledu na velikost a rozsah projektu. Jinou významnou příčinou

problémů bývá nedostatečné testování. Programátoři snižují důležitost testů, zákazníci

význam zkušebního provozu. Jestliže se projekt dostane do skluzu, testy se zkracují a

testeři mají časově omezené podmínky pro vyhledávání chyb. [6, s. 18 - 22]

Další významné a časté příčiny problémů softwarových projektů jsou špatně

definované zadání, nedostatečná analýza požadavků, nekontinuální a nekonzistentní

projektový plán. Manažer projektu se nesmí dopustit chyby podcenění projektu a musí

si uvědomit všechna rizika, která mohou nastat. Nesprávné rozložení činností

v jednotlivých fázích projektu může způsobit např. podcenění analýzy a brzké psaní

samotného kódu a programování aplikace. Každý požadovaný aspekt zvyšuje složitost

projektu, prodlužuje dobu vývoje, komplikuje budoucí úpravy a snižuje výkon

v reálném provozu. Mnoho požadavků a náročné zadání vedou k přílišné složitosti

projektu, která je další příčinou problému. Špatná kvalita programového kódu

způsobuje mnoho problémů ve fázi testování, nasazení a údržby. Kód je nepřehledný,

nesrozumitelný, nejasně okomentovaný a příliš chybový. [6, s. 18 - 22]

2.3 Příčiny výskytu chyb

Pokud se v průběhu některé fáze projektu anebo v již dokončené a otestované

aplikaci objeví neobvykle mnoho chyb, nastala situace, kdy je velmi pravděpodobný

neúspěch softwarového projektu. Vysoká chybovost ve většině případů znamená selhání

projektů. Nenalezené chyby mohou způsobit velkou finanční ztrátu. [6, s. 129 - 135]

Mezi nejčastější příčiny, které způsobují velké množství chyb a následné selhání

projektu patří : [6, s. 129 - 135]

• Špatná komunikace

• Dokončení v termínu za každou cenu

• Nové technologie

• Nedostatečná zkušenost, znalosti a kvalifikace

• Nedostatečná (neúplná) definice požadavků

• Složitost projektu

Page 16: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

2. RIZIKA SPOJENÁ S NÁVRHEM A REALIZACÍ SOFTWARE

16

Chce-li řešitelská firma zabránit velkému výskytu chyb a snížit riziko neúspěchu

projektu, musí nutně předejít případným překážkám při komunikaci a vyhnout se

nedorozumění. Jestliže zadavatel projektu zapomene zmínit některé požadavky ve

specifikaci třeba z důvodu, že je považuje ve svém oboru za samozřejmé, jedná se o

jasný příklad špatné komunikace mezi zadavatelem a řešitelem software. Naopak

tvůrce, ať už analytik anebo programátor, může mít tendenci zjednodušovat problémy

klienta a zaměřit se na technické otázky. Existuje-li hrozba nedodržení termínu, nesmí

se stát první obětí testování. Některé nevyřešené funkčnosti systému, které se nestihnou

dokončit, se mohou přesunout do následující verze systému. Při snaze o dodržení

termínu za každou cenu a dokončení software včas se tvůrci mohou dopustit velkého

počtu chyb. Řešením může být posílení týmu nebo zjednodušení požadavků.

[6, s. 129 - 135]

Používání zcela nové technologie může také způsobit mnoho problémů. První verze

nové technologie nemusí být kompatibilní s použitým hardwarem nebo softwarem,

v případě nastání potíží není jednoduché najít zkušeného odborníka, který se v

technologické novince dokonale vyzná. Proto je prozíravější se nevyzkoušené

technologii vyhnout, zejména u velkých projektů. I když je hrozba nefungující

technologie minimální, pokud nastane, jedná se o závažné chyby, závažnější než chyby

nalezené v programu. Podcenění definice požadavků na systém může mít za následek

neustálou změnu požadavků v průběhu nebo dokonce ve finální fázi projektu. Rovněž

zkreslení nebo nepochopení požadavků analytikem může vést k chybám.

[6, s. 129 - 135]

Malá zkušenost, nedostatečná kvalifikace anebo nerovnoměrné rozložení znalostí

jednotlivých členů vývojového týmu může znamenat snížení produktivity a výkonu

práce při řešení úkolů. Za klíčový se považuje výběr jednotlivých členů týmu. Důležité

je stavět týmy vyvážené a nepodceňovat rozdíly znalostí mezi vývojáři. Pro úspěšné

dokončení úkolu musí být v týmu dostatek zkušených a schopných vývojářů. Dobrou

volbou může být i zapojení nováčka, zvláště pokud se jedná o projekt menšího rozsahu.

Častou příčinou selhání projektu je přílišná složitost projektu. Odhad náročnosti

projektu musí být reálný stejně jako odhad času, který je nutný na jeho realizaci.

Součástí projektového plánu musí být i rezervy na nepředvídatelné události. Někdy je

výhodnější zaměřit se na primární aspekty aplikace a doplňky řešit v další verzi

programu. [6, s. 129 - 135]

Page 17: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

2. RIZIKA SPOJENÁ S NÁVRHEM A REALIZACÍ SOFTWARE

17

2.4 Eliminace problémů vývoje software

Cílem vývojového procesu software je snížení výskytu problémů. Problémy, které

jsou spojené s návrhem a realizací software se snaží eliminovat metodiky vývoje

software.

„Metodika je tvořena obecně uznávanými postupy a návody, které popisují činnosti

při návrhu, vývoji, nasazování software, řízení projektu atd. Cílem metodiky je

formalizovat postupy, definovat zodpovědnosti a pravidla komunikace.“ [3, s. 173]

Metodika tedy vymezuje pravidla a kompetence, kdo má provádět jaké činnosti a

jakým způsobem během vývoje. Přispívá k efektivní organizaci práce na projektu.

Definuje postup řešení jeho priority, zabývá se plánováním, dokumentací a všemi

aspekty celého procesu tvorby software. [2, s. 12 – 13 ; 3, s. 173]

V praxi se zcela jistě nenajde softwarový projekt, který by probíhal hladce podle

přesně definované metodiky vývoje. Členové vývojového procesu se nikdy nesetkají

s podrobnou specifikací dokonale vystihující požadavky zákazníka, nebo s dokonale

propracovanou analýzou a návrhem architektury. Proces implementace a testování

nikdy nebude bezproblémový. Použití vhodné metodiky pro vývoj software však

výrazně přispívá k efektivnějšímu průběhu celého vývojového procesu. Proto její výběr

podle požadavků na zadání projektu má klíčový význam pro úspěch celého projektu.

Podrobnému popisu metodik vývoje software a porovnání dvou směrů softwarového

inženýrství je věnována následující kapitola.

Page 18: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

18

3. Porovnání metodik vývoje software

3.1 Agilní a rigorózní metodiky

3.1.1 Charakteristika směrů vývoje software

Softwarové inženýrství přineslo za dobu své existence celou řadu metodik a

životních cyklů. V současné době existují dva hlavní směry v metodickém přístupu

vývoje software, jedná se o rigorózní a agilní metodiky. Rigorózní metodiky podrobně a

přesně popisují jednotlivé procesy vývoje software, definují posloupnost činností,

obsahují objemné dokumentace a jsou založeny na sériovém (vodopádovém) vývoji.

Zpětnou vazbu mezi fázemi se snaží získat prostřednictvím řízení změn. Rigorózní

metodiky umožňují popsat, plánovat a řídit procesy při návrhu a realizaci IS/ICT

(informačních systémů a technologií). Některé rigorózní metodiky jsou realizovány

iterativním způsobem tzn., že při vývoji jsou opakovaně prováděny jednotlivé fáze

anebo inkrementálním způsobem tzn., že systém je vyvíjen v přírůstcích.

V následujícím přehledu jsou uvedeny jen nejznámější zástupce rigorózních metodik.

[2, s. 29 ; 5, s. 53]

1) Vodopádový model životního cyklu

2) Spirálový model životního cyklu

3) Unified Process (= Metodika Unified Software Development Process)

4) Rational Unified Process

5) Enterprise Unified Process

Vývoj software patří mezi dynamicky se měnící odvětví. Změny přicházejí nejen ze

strany konkurence a softwarového trhu, ale také nastávají vlivem rostoucího množství,

kvality a dostupnosti nových vývojových prostředí a nástrojů. Právě již zmíněný

dynamický vývoj vede k přehodnocení popřípadě změnám ve způsobu vedení vývoje

software. Tradiční rigorózní přístup se zaměřuje na důkladnou podrobnou analýzu a

propracovaný návrh. Některé rigorózní metodiky postupně přestávají naplňovat

očekávání a přestávají být použitelné. V současnosti se však začali postupně prosazovat

metodiky zaměřené na co nejrychlejší vývoj software a reakci na měnící se požadavky a

Page 19: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

19

zadání. K tradičnímu vývoji se v posledním desetiletí objevil nový proud vývoje, jehož

principy jsou poměrně odlišné. [5, s. 111 - 118 ; 2, s. 43 - 62]

Agilní metodiky umožňují vytvořit řešení velmi rychle a pružně je přizpůsobovat

měnícím se požadavkům, nesnaží se potlačovat změny, ale naopak jich využívají. Agilní

metodiky jsou v rozporu s osvědčenými klasickými postupy softwarového inženýrství,

vycházejí totiž z přesvědčení, že správná cesta upřednostňuje rychlý vývoj a následné

úpravy změn na základě zpětné vazby od koncového uživatele. Ukazují dosavadním

postupům novou cestu a boří některé představy vývoje software, které byly dosud

považovány za nedotknutelné. Snaží se řešit požadavky na rychlý a flexibilní vývoj

aplikací. [5, s. 111 - 123]

Následující přehled představuje jen nejznámější zástupce agilního vývoje. Výčet

obsahuje konkrétní metodiky, které vycházejí z agilního manifestu. [5, s. 123 ; 2, s. 44]

1) Adaptive Software Development – Adaptivní vývoj software

2) Feature-Driven Development – Vlastnostmi řízený vývoj

3) Lean Development

4) Extreme Programming – Extrémní programování

5) SCRUM Development Process

6) Crystal metodiky

7) Test-Driven Development – Testy řízený vývoj

8) Dynamic System Development Method – DSDM

3.1.2 Tabulka porovnání rigorózních a agilních metodik

Hlavní rozdíly mezi oběma směry vývoje přibližuje tabulka porovnání rigorózních a

agilních metodik (Tab.3.1), která je uspořádána podle vybraných hledisek porovnání.

Page 20: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

20

Rigorózní metodiky Agilní metodiky

1. Proces

vývoje

software

Přesně a podrobně definovaný

proces, lze ho opakovat.

Empirický proces, není možné ho

opakovat, ale vyžaduje adaptaci.

2. Změny a

požadavky

Minimalizace změn (sběr požadavků

předem a plánování předem), změny

jsou součástí řízení změn.

Akceptace změn (přírůstkové

shromažďování požadavků,

plánování pro iteraci) přehodnocení

požadavků, snaha o umožnění změn

(v závislosti na nových znalostech).

3. Zapojení

zákazníka na

řízení projektu

Bez zásahu. Nedůvěra v zákazníka -

Po podpisu smlouvy a vymezení

dokumentu specifikace požadavků

v počáteční fázi, zákazníka zajímá až

konečné řešení.

Participace a spolupráce -

Zákazník se aktivně zapojuje do

celého projektu, může měnit priority

funkcí při každé iteraci.

4. Kvalita Více zaměřeny na kvalitu vlastních

procesů, než na výsledek pro

zákazníka.

Zaměření na priority zákazníka, na

užitnou hodnotu pro zákazníka, tedy

na výslednou kvalitu produktu.

5. Způsob a

rozsah řešení

Podrobný popis procesů a činností,

složité řešení.

Při vývoji obsaženy všechny funkce,

snaha o zabudování budoucích

požadavků.

Eliminace nepotřebných činností,

jednoduché řešení.

Při vývoji zahrnuty jen potřebné

funkce, snaha o minimalizaci, žádné

začlenění budoucích požadavků.

6. Rozložení

teamového

know-how

Každý člen týmu má přiřazeny

činnosti, v rámci role, kterou zastává.

Požadavek na specializaci

zaměstnanců. Převládá písemná

forma komunikace (dokumentace).

Sdílení znalostí v týmu, spolupráce

(kooperace) a aktivní komunikace

v rámci týmu, společné řešení

problémů, řízení a integrace

znalostních toků.

7. Lidský faktor Pohled na lidi jako na sekundární

faktor, procesy doplňovány rozsáhlou

dokumentací. Jedinci jsou

nahraditelní.

Lidé jako primární a klíčový faktor

úspěchu projektu. Využití schopností

a dovedností jedinců (individualit),

důraz na znalosti, kvalifikaci.

8. Způsob

vývoje

Vodopádový životní cyklus, iterativní

s dlouhými iteracemi.

Přírůstkový (inkrementální) vývoj

s velmi krátkými iteracemi.

Tab.3.1. – Porovnání agilních a rigorózních metodik [2, s. 62 - 64 ; 7]

Page 21: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

21

3.1.3 Porovnání a rozdíly směrů vývoje software

Množina požadavků na funkcionalitu je jednoznačně stanovena na začátku vývoje.

Prioritou tradičního přístupu vývoje zůstává tedy naplnění funkčnosti, přičemž potřebné

náklady na projekt stejně jako čas nutný k jeho dokončení se jen odhadují, nikoliv

přesně stanovují. Formulace požadavků na funkcionalitu zůstává fixní, variabilní jsou

zdroje a čas. Metodiky agilního vývoje naopak přesně vymezují konečný termín

dokončení pro realizaci projektu a nejvyšší možné zdroje na začátku projektu.

Předmětem změn se stávají jednotlivé funkčnosti aplikace. Požadavky na funkcionalitu

se přizpůsobují v průběhu vývoje, zatímco čas a zdroje zůstávají neměnné. [5, s. 119]

Agilní metodiky jsou využívány na projektech, kde se zadání často mění nebo není

přesně specifikováno. Právě z důvodu častých změn je nutné průběžné a opakované

ověřování správnosti zdrojového kódu. Automatizované testování by mělo předcházet

implementaci. Silný důraz je kladen na psaní programového kódu, které začíná ihned po

vymezení cílu projektu a tvorbě testů. Agilní přístupy kladou důraz na komunikaci mezi

procesy (např. párové programování), proto jsou chyby a problémy dříve odhaleny.

Nové funkčnosti jsou implementovány poměrně v krátkých dodávkách, proto je

iterativní a inkrementální způsob vývoje spojen s velmi krátkými iteracemi. Zákazník

má možnost monitorovat a „upravovat“ průběžné konfigurace. Obsahují podstatně

menší objem dokumentů, jejich dokumentace není tak rozsáhlá jako u rigorózních

metodik. [5, s. 119 - 120]

3.1.4 Manifest agilního vývoje software

Agilní metodiky prosazují rychlý vývoj a následnou reakci na změny. Trend

směřuje k agilnímu vývoji, protože vznikl jako reakce na nedostatky tradičního

rigorózního přístupu a zdůrazňuje efektivitu vývojového procesu. Manifest agilního

vývoje popisuje následující text. [2, s. 43]

„Odhalili jsme lepší způsob vývoje software, sami jej používáme a chceme pomoci i

ostatním, aby jej používali. Z tohoto pohledu dáváme přednost:

� individualitám a komunikaci před procesy a nástroji,

� provozuschopnému software před obsažnou dokumentací,

� spolupráci se zákazníkem před sjednáváním kontraktu,

� reakci na změnu před plněním plánu.“ [2, s. 43]

Page 22: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

22

Manifest agilního vývoje vyplývá ze dvou základních myšlenek: [5, s. 120]

1) Efektivnější je přijmout změnu než se jí bránit.

2) Nepředvídatelné události určitě nastanou, proto je změna jedinou jistotou.

Manifest deklaruje základní principy agilního vývoje, které jsou shrnuty do

následujících řádek. Vítané jsou velmi krátké iterace a zkrácení cyklu dodávky

fungujícího software. Preferují se jednoduché postupy vývojového procesu. Na začátku

projektu se definují hrubé požadavky pro návrh architektury, přičemž v průběhu

projektu je možná jejich úprava na základě přání zákazníka, nebo-li zákazník je

aktivním členem týmu. [2, s. 43 - 44 ; 5, s. 120 - 123]

Vítané jsou změny, dokonce i pozdních fázích projektu, neboť můžou znamenat

konkurenční výhodu. Zadavatel musí mít z konečného řešení software užitek a přidanou

hodnotu. Změnové požadavky promítnuté ve zdrojovém kódu jsou chápány jako

přirozené a jen zdůrazňují kvalitu návrhu. O úspěchu projektu rozhodují lidé s know-

how a potřebnou motivací. Proto dlouhodobé přetěžování členů týmu vede k poklesu

produktivity práce. Pochopení problému se nejlépe dosáhne pomocí přímé komunikace,

nikoliv studiem dokumentace. [2, s. 43 - 44 ; 5, s. 120 - 123]

3.2 Výběr metodik pro porovnání

3.2.1 Metodika RUP – zástupce rigorózního vývoje

Mezi nejznámější zástupce rigorózních metodik patří vodopádový a spirálový

životní cyklus, metodika UP (Unified Process), RUP (Rational Unified Process), EUP

(Enterprise Unified Process). Metodika RUP vychází z metodiky UP, jedná se vlastně o

její nejrozšířenější a nejúspěšnější variantu. Princip metodik je podobný, rozdíly

spočívají v hloubce propracování a v detailech. Zatímco UP je bezplatně dostupná, RUP

je komerčním produktem firmy Rational. Metodika UP je otevřený standard, který může

použít kdokoliv pro vývoj aplikací. Na rozdíl od metodiky RUP však nepopisuje do

hloubky všechny procesy a aktivity, postrádá smysl pro detailní propracování a nemá

k dispozici doplňkové nástroje. Metodika EUP zase představuje rozšíření metodiky

RUP zejména ve dvou směrech rozšíření na úroveň celé organizace a rozšíření o provoz,

údržbu a odstranění produktu z používání. EUP je víceméně doplnění metodiky RUP.

[1, s. 56 ; 2, s. 39 ; 5, s. 105 - 110]

Page 23: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

23

Spirálový model představuje sekvenci cyklů. Jedná se o přístup řízený riziky, postup

vývoje závisí na opakované a kvalitně provedené analýze rizik a problémů.

Vodopádový model definuje sekvenční pojetí jednotlivých fází, to znamená, že nelze

provádět více fází najednou, po skončení jedné fáze je zahájena následující. Striktní

posloupnost kroků a fází má za následek zpoždění projektu, nedostatečné testování,

které není průběžné a neschopnost přizpůsobit nové požadavky během vývoje.

Vodopádový model však nedostatečně vystihuje požadavky dnešní doby, proto se podle

něj vyvíjí stále méně projektů, a to hlavně z důvodu komplikovanosti, nepružnosti a

neschopnosti reagovat na změny. [5, s. 55 - 77 ; 7, s. 29 - 32]

3.2.2 Výběr agilních metodik

Při výběru agilních metodik pro vzájemné porovnávání s metodikou RUP bude

postupováno podle následujících bodů.

� Metodiky popsané v dostatečné šíři a rozsahu.

� Metodiky dostupné v česky vydané literatuře.

� Metodiky odpovídající požadavkům na specifikaci a zadání projektu.

� Známější a více používanější zástupce agilního vývoje [5, s. 123]

� Metodiky zaměřené na problematiku testování.

Oblast agilních metodik je velmi rozmanitá, konkrétních zástupců existuje velké

množství, proto výčet agilních metodik není zcela jistě úplný. Pro výběr metodik do

porovnání byly zvoleny rozšířenější a používanější metodiky a hlavně metodiky, které

v dostatečné míře popisují problematiku testování software. Většina z agilních metodik

se zaměřuje na jiný problematický aspekt, nedostatek tradičního vývoje, nepopisují

komplexně všechny fáze, metody a posloupnost kroků. Některé agilní metodiky jsou

zaměřeny procesně, projektově, nástrojově, jiné zdůrazňují technické řešení, další se

orientují na lidský faktor. Některé z agilních metodik jsou spíše určeny pro krátkodobý

a rychlý vývoj. Jako další hledisko výběru je považováno, že některé z metodik nebyly

popsány v plné šíři a v dostatečném rozsahu v české literatuře. Proto jsou v práci

uvedeny pouze metodiky dostatečně popsané.

Uvedeným bodům nejvíce odpovídají agilní metodika Extrémní programování,

Feature-Driven Development a Test-Driven Development. Ostatní metodiky nepopisují

Page 24: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

24

proces testování v uspokojivé míře. Zabývají se především jedním aspektem vývoje,

neobsahují dostatečně nadefinované fáze a posloupnost kroků vývoje není rovnoměrná.

Z tohoto důvodu nebyly zařazeny metodiky SCRUM a Lean Development do užšího

porovnání. Metodiky Crystal, DSDM a ADS jsou vhodnější pro rychlý vývoj hlavně pro

internetové aplikace.

Při výběru byly hodnoceny i principy dalších agilních metodik. Jejich krátký popis

byl zařazen do následujících řádků. Z popisu jsou patrné důvody jejich nezařazení do

užšího porovnání. [2, s. 43 - 62]

� Lean Development vychází z výrobních odvětví, má těsné vazby na

podnikovou strategii, definuje pravidla a principy, jejichž dodržování slibuje

efektivnější vývoj software.

� Metodika Scrum je zaměřená na řízení projektu, procesy při vývoji software

považuje za empirické. Produktivitu a pružnost vývoje zvyšuje pomocí přístupu

k organizaci práce v týmu. Monitoruje iterace (sprinty), vývojové epizody,

používá praktiky jako jsou denní porady (Scrum meeting).

� Metodika DSDM zavádí kategorizaci – třídění požadavků na základě priorit a

také pojem timebox, čili fixní časový interval pro realizaci požadavků. Základní

technikou při realizaci je prototypování.

� ADS popisuje mezníky, konkrétní body a meziprodukty, je označována za

proces vzájemného ovlivňování účastníků vývoje, což je hlavní přínos metodiky.

ADS je vhodná pro projekty vyznačující se velkými změnami.

� Metodika Crystal klade důraz především na lidský faktor projektu. Představuje

skupinu metodik se stejnými hodnotami a principy, odlišující se díky použitým

technikám a nástrojům.

Page 25: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

25

3.3 Základní popis zvolených metodik

3.3.1 Metodika Rational Unified Process

„Obr.3.1. – Metodika RUP“ [11]

Nejlepší praktiky vývoje metodiky RUP [11]

Metodika RUP představuje souhrn šesti základních praktik. Jejich použití má za

následek předcházení problémů při vývoji software, zajišťuje efektivnější vývoj, lepší

řízení kvality. Nejlepší praktiky vývoje metodiky RUP jsou: [5, s. 79 – 88 ; 9]

� Iterativní vývoj – Během každé iterace proběhnou v menším nebo větším

zastoupení všechny vývojové disciplíny. Iterace spočívá v rozdělení vývoje na

části, díky tomu je vývoj software efektivnější, snižuje rizikovost projektu,

protože dochází k průběžné detekci rizik.

� Správa a řízení požadavků – požadavky jsou dynamické, mění se v čase.

Nedefinuje-li zákazník na začátku projektu všechny požadavky, mohou nové

požadavky přicházet i v průběhu vývoje projektu.

Page 26: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

26

� Vizuální modelování je vhodné ke komunikaci. Slouží k vizuálnímu zachycení

problému, k zpřehlednění návrhu. Pro znázornění vztahu mezi objekty se často

používá modelovací jazyk UML (Unified Modelling Language).

� Použití komponentové architektury – RUP nabízí šablony, návrhové vzory a

architektonické styly. Znovupoužití hotové komponenty představuje výraznou

úsporu zdrojů. RUP hledá efektivní cestu návrhu a vývoje.

� Průběžné zajišťování a ověřování kvality – Pozdní odhalení chyby může

způsobit výrazné škody, její odstranění může být nákladné. Pokud je problém

odhalen např. v návrhu, na jeho řešení se vynaloží méně úsilí a prostředků než

např. při implementaci. Proto je dobré odhalit problém co nejdříve, je to méně

nákladnější a méně náročnější na čas.

� Řízení změn - RUP je připraven na výskyt změn a na jejich správu a integraci

do vývojového procesu.

Fáze metodiky RUP [2, s. 36 - 38]

RUP je organizován podle časového hlediska do čtyř fází.

� Fáze zahájení (Inception)

� Přípravná fáze (Elaboration)

� Konstruk ční fáze (Construction)

� Fáze předání - transitní (Transition)

Ve fázi zahájení se stanovuje rozsah projektu, probíhá návrh předběžné architektury

vývoje a tvorba postupů, definují se priority. V rámci incepce se zjišťují celkové

náklady a nutné zdroje, definují se potencionální rizika, odhaduje se potřebný čas na

projekt a probíhá příprava prostředí projektu. Po dohodě se zadavatelem probíhá

vymezení, sběr a analýza základních požadavků. [3, s. 88 – 92 ; 11]

V přípravné fázi nebo také ve fázi projektování se definuje ověření návrhu,

předvedení a odsouhlasení architektury. Probíhá návrh stabilního modelu architektury

daného systému, vytváří se jeden nebo více prototypů. Při odsouhlasení se musí

dokázat, že daná architektura je schopná zvládnout požadavky. Během elaborace se

vytváří plán pro následující iteraci a částečná analýza rizik. [3, s. 88 – 92 ; 11]

Konstrukční fáze se zaměřuje hlavně na implementaci. Cílem je dokončení návrhu,

kompletuje se analýza a design. Provádí se vytvoření, otestování a dodání první funkční

verze systému. V rámci realizace probíhá samotný vývoj software, průběžné testování

Page 27: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

27

systému a vyhodnocování kvality. V průběhu konstrukce je evidentní snaha o paralelní

vývoj vybraných Use Case (případů užití). Kontroluje se komplexnost systému a

náklady na splnění požadavků. [3, s. 88 – 92 ; 11]

Tranzitní fáze znamená předání finální verze systému koncovým uživatelům.

Nasazení produktu u zákazníka je spojeno s jeho podporou . Předávání produktu

uživatelům zahrnuje dodání produktu i školení uživatelů, podporu a údržbu až do

okamžiku spokojenosti uživatele. Kompletní systém je dodáván s dokumentací a

manuály. Provádí se beta testování a drobné úpravy v systému, dále instalace,

konfigurace a ladění chyb. [3, s. 88 – 92 ; 11]

Obr.3.2. – Disciplíny metodiky RUP

Disciplíny metodiky RUP [11]

Obsah metodiky RUP je organizován do disciplín (Obr.3.2). Metodika RUP

popisuje disciplínu jako sadu aktivit se společným zájmem.

[2, s. 36 - 38 ; 3, s. 182 - 183]

� Tvorba podnikového modelu - pro znázornění podnikových procesů se

používá jazyk UML (business modelování), zajištění komunikace se

zadavatelem, zjišťujeme jeho požadavky a potřeby.

� Správa požadavků - systematický přístup ke tvorbě požadavků na systém,

definuje se rozsah a objem požadavků.

� Analýza a návrh propojují požadavky na systém s jeho implementací, členění

systému na komponenty.

� Implementace - převedení návrhu modelu do spustitelné podoby, vývoj

systému, vytváření programu.

Page 28: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

28

� Testování - průběžné testování a kontrola v každé fázi, cílem testování je ověřit

funkčnost systému.

� Nasazení - zavedení výsledného produktu u klienta do provozu (instalace,

konfigurace).

� Řízení projektu, řízení změn a konfigurace, správa prostředí

Cílem metodiky RUP je vytvořit software vysoké kvality bez velkých problémů.

RUP definuje kvalitu jako přidanou hodnotu z hlediska zadavatele. Proto má pro

ověřování kvality nadefinovanou dimenzi kvality FURPS. Typy testů FURPS by měly

zajišťovat kvalitu systému a výrazně snížit výskyt defektů (chyb) hlavně z hlediska

funkčnosti, použitelnosti, spolehlivosti, výkonu a podporovatelnosti aplikace. RUP

rovněž definuje klíčové body tzv. mezníky (milníky), které slouží pro zhodnocení stavu

projektu na konci jednotlivé fáze cyklu. [9 ; 5, s. 93 - 94]

3.3.2 Extrémní programování (XP)

Základní charakteristika a popis XP

XP patří mezi nejrozšířenější metodiku agilního vývoje, přestože její historie je

velmi krátká, její vznik se datuje do roku 1999. XP představuje relativně účinný,

flexibilní a předvídatelný postup vývoje software, využívá velmi rozumný přístup a

realistický způsob myšlení, avšak jejich používání dotahuje do extrémů. XP vymezuje

určitou šíři, v jejímž rozmezí se pohybuje zadání. Šíře zadání specifikuje množinu

funkcí, které zadavatel vyžaduje. Jasně definuje, které funkce jsou pro zákazníka

klíčové a které jsou méně důležité. XP vychází primárně z principu jednoduchosti

základní funkčnosti, ostatní změny, budou-li potřeba, řeší někdy v budoucnu. Klíčem k

úspěchu je zabývat se tím, co je důležité nyní, a nikoliv předpokládanou budoucností,

která se pravděpodobně nevyhnutelně změní. [5, s. 125 - 131 ; 13]

Testování je jednou z nejdůležitějších metod pro realizaci zpětné vazby v XP. Až

výsledky testování určí, zda-li všechny funkce a moduly projdou anebo se prokáže

nutnost oprav a modifikací. Testování v XP probíhá na několika úrovních. Programátoři

píší testy pro ověřování aplikační logiky, zákazníci píší testy funkcionality pro

jednotlivé moduly. XP deklaruje, že pravděpodobnost úspěšného dokončení projektu je

závislá na množství napsaných testů, intenzitě pátrání po chybách a na různorodosti

Page 29: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

29

ověřování zpětné vazby. V případě výskytu problému, nalezení kritické chyby XP

zdůrazňuje chybu opravit za každou cenu, i kdyby to znamenalo ztrátu podstatné části

zdrojového kódu nebo přepracování celého dosavadního návrhu a architektury.

[5, s. 125 - 131 ; 13]

Praktiky a pravidla XP

XP dodává nejjednodušší možné verze, které jsou schopné provozu, verze dodává

po velmi krátkých iteracích. Architektura (metafora) může být chápána jako abstrakce,

která umožní uživateli sjednotit sdílený pohled na systém. Systém je neustále

sestavován a integrován, vždy po dokončení nějakého nového úkolu. XP doporučuje

dodržování systémové metafory tzn. konzistentní pojmenovávání tříd a metod.

Pojmenování objektů je důležité pro porozumění celkového návrhu a znovupoužitelnost

kódu. [5, s. 132 - 135]

Pro kontrolu zdrojového kódu je využívána technika párového programování. Kód

je psán dvěma programátory u jednoho počítače. Úprava zdrojového kódu bez změny

jeho funkčnosti se provádí pomocí techniky refaktorování. Refaktorování výrazně

zlepšuje čitelnost kódu, odstraní duplicity, usnadňuje budoucí údržbu a rozšiřování

systému. Průběžné testování zahrnuje hlavně testování modulů (unit testing), dále

testování funkcionality, testování v produkci zákazníkem a v rozsáhlejších projektech i

testování integrace. [5, s. 132 - 135]

Všechny informace jsou uchovány ve formě zdrojového kódu, XP nepodporuje

žádné dokumentace, naopak podporuje standardy pro psaní zdrojového kódu. Kódování

je totiž první činnost v počátečních stádiích vývoje, proto je nutná čitelnost,

strukturovanost a srozumitelnost kódu. Pro XP je charakteristické společné vlastnictví

kódu, kdy každé části rozumí jeden expert. [5, s. 132 - 135]

Životní cyklus projektu vyvíjeného pomocí XP:

XP nedefinuje posloupnost fází projektu, ale zvláštní postup určený k plánování

projektu, k rozhodování o náplni iterací a vývojových fází. XP nedodává žádné

dokumentace, nepopisuje žádné milníky nebo kontrolní body během celého životního

cyklu, protože upřednostňuje přímou komunikaci nad zdrojovým textem.

[5, s. 135 - 145]

Page 30: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

30

Základní činnosti XP:

Obr.3.3. – Základní činnosti XP

Testování probíhá před kódováním, nejprve se programuje test modulu, každý

modul musí projít automatizovanými testy, poté proběhne integrace modulu. Pomocí

automatizovaných testů provádí vývojáři refaktorizaci. Neustálé testování umožňuje

snížit čas dodání aplikace. Psaní zdrojového kódu nastane po napsání testů. Po

implementaci modulu dojde k nasazení. Návrh představuje strukturu, jak uspořádat

logiku v systému. Změna v jedné části systému, nevyžaduje změny v dalších

subsystémech. Komunikace zákazníka jako zadavatele a programátora jako řešitele je

nutnou podmínkou. [5, s. 135 - 145]

Základní činnosti XP: Specifikace činnosti

Plánování šíře zadání, hrubý plán, plán verze

Návrh refactoring, metafora - znovupoužitelnost kódu, princip

jednoduchosti základních funkčností

Kódování

(psaní zdrojového kódu)

párové programování, společné vlastnictví kódu, integrace změn

kódu, tvorba kódu pro unit testy, tvorba zdrojového kódu,

standardy kódu

Testování unit testy, akceptační testy

Tab.3.2. – Základní činnosti XP

Page 31: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

31

XP se rovněž zaměřuje na práci s lidmi. Význam motivace lidí a složení vývojového

týmu je důležitý v případě, že se zjistí nějaký nedostatek nebo chyba a nelze pokračovat

dále, napsaný zdrojový kód se musí vyhodit a vývoj se musí vrátit zpět a začít znovu.

To, že vývoj XP směřuje zpět, je poměrně častým jevem. XP je postavené na myšlence,

že ztráta hotové části kódu není selhání. Pokud současná architektura nevyhovuje, bez

otálení se přepracuje i za cenu zahození zdrojového kódu. [5, s. 135 - 145]

Mezi výhody vývoje pomocí XP patří široká možnost úprav a přímočarý postup

k cíli. Problémy a obtíže jsou při praktické realizaci, hlavně na začátku, kdy si vývojový

tým na metodiku teprve zvyká. [5, s. 135 - 145]

3.3.3 Feature Driven Development (FDD)

Základní charakteristika a popis FDD

Metodika FDD klade silný důraz na disciplínu modelování, která se tak stává

důležitou složkou celého procesu. Jedná se o vývoj řízený užitnými vlastnostmi, tedy

výsledkem funkčnosti, hodnotným pro zákazníka, který lze měřit, popsat a realizovat

v rámci iterace. Během iterace se provádí návrh a realizace jednotlivých užitných

vlastností. FDD nepřeceňuje význam procesů při vývoji, přesto je podporuje, což je u

agilních metodik neobvyklé. [5, s. 177 - 182]

FDD se snaží eliminovat množství nejistoty a zmatku při vývoji, zaměřuje se na

dodávku kvalitní aplikace, soustředí se tedy na maximalizaci výsledného produktu.

Metodika vychází z krátkých iterací. Důležitým znakem FDD je průběžné dodávání

mezivýsledků a nových verzí produktu zákazníkovi. Zákazník se tak pomocí průběžné

kontroly a hodnocení nových funkčních přírůstků může ujistit, že vývoj postupuje

správným směrem. [5, s. 177 - 182]

Vývojové fáze v metodice FDD

Životní cyklus FDD definuje pět klíčových procesů. Návaznost jednotlivých kroků

je následující. [5, s. 182 - 195]

1. vytvoření celkového modelu

2. vytvoření seznamu vlastností

3. plánování

4. návrh

5. implementace

Page 32: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

32

Obr.3.4. – Vývojové fáze v metodice FDD [5, s. 183]

Vývoj podle metodiky FDD začíná vytvořením globálního modelu. Na začátku se

stanoví cíl a zaměření projektu, požadavky na systém a prostředí pro nasazení systému.

Jako první krok při objektově orientovaném vývoji se může využít notace UML. Pro

modelování objektů z reálného světa se používá vysoká míra abstrakce. Na základě fáze

celkového modelu, funkční specifikace nebo případů užití se systém musí úzce vymezit

a definovat základní množinu vlastností. Proto se vytvoří podrobný seznam vlastností,

kde jsou vlastnosti klasifikovány podle preference a rozdělovány do skupin podle

vzájemné souvislosti a logiky. Nikdy nelze vytvořit konečný seznam. [5, s. 182 - 191]

Plán pro další vývoj obsahuje neměnné datum ukončení vývoje, ostatní mezníky

mohou být posouvány např. datum ukončení pro jednotlivé skupiny vlastností. Plán

rovněž stanovuje na základě priorit, v jakém pořadí budou vlastnosti implementovány.

Návrh podle vlastností definuje třídy, které danou vlastnost pokrývají. Výběr jedné nebo

více konkrétních vlastností z dané skupiny probíhá podle důležitosti a vzájemných

závislostí mezi vlastnostmi. Návrh se zaměřuje na tvorbu diagramu posloupnosti a

vyladění objektového modelu pro danou vlastnost. Vypracuje se podrobný plán pro

implementaci vlastností. [5, s. 182 - 191]

Hlavní činnost ve fázi implementace se soustředí na realizaci podle vlastností. Za

implementaci třídy je zodpovědný její vlastník. Vlastník vytváří metody a navrhuje

testovací případy pro třídu. Proces testování, inspekce napsaného kódu a testování

jednotek probíhá v rámci fáze implementace. Po ověření funkčnosti třídy, tzn. po

dokončení všech testů včetně testů modelů tzv. unit testů, následuje umístění třídy do

systému pro správu tříd (repozitoře tříd). Poté je vlastnost integrována do verze

aplikace. Vlastník třídy může být členem více týmů, jejichž složení se průběžně mění.

Page 33: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

33

Předpokládá se existence více týmů vývojářů pracujících paralelně. Otestované,

fungující třídy a metody se implementují pro danou vlastnost. Výsledkem je dokončená

vlastnost. [5, s. 182 - 191]

Ale dokončená vlastnost může způsobit určité změny v celkové architektuře

systému, proto je po implementaci možné provést nutné modifikace v první fázi tvorby

globálního modelu. Průběh fází probíhá postupně od první do páté fáze, přičemž fáze

návrhu a implementace mohou proběhnout několikrát, jsou iterativně opakovány. Poté

se celý cyklus fází opakuje od začátku. [5, s. 182 - 191]

Hlavní aspekty vývoje FDD

Metodika FDD se do určité míry odlišuje od ostatních metodik především tím, že

přichází s několika novými principy a přínosy. FDD umožňuje vývoj podle vlastností.

Mezi hlavní znaky FDD patří rovněž vlastnictví tříd a sestavení týmu podle vlastností.

[5, s. 191 - 195]

3.3.4 Test Driven Development

Základní charakteristika a popis TDD

Při každém procesu vývoje software je fáze testování nezastupitelná, protože

testování je jedna z nejdůležitějších složek v oblasti zajišťování kvality. Existuje ale

jedna metodika, která proces testování povyšuje nad ostatní kroky při vývoji, metodika,

která klade důraz na testování a označila ho za základ celého vývojového procesu. Tuto

myšlenku prosazuje Test-Driven Development. Český ekvivalent pro TDD je

programování řízené testy. [5, s. 197 - 198]

TDD vyžaduje pro každou funkčnost nejprve napsání testu a až poté napsání kódu.

Poté co je testovací kód dokončen, následuje programování samotné funkčnosti.

„Implementujeme přesně takové množství kódu, kolik dokáže projít testem.“ [5, s. 198]

Nikdy méně, ani více. Když je hotový zdrojový kód, který projde testem, nastává fáze

úprav, zefektivnění a zjednodušení zdrojového kódu a kódu testu. Úprava zdrojového

kódu bez změny funkčnosti se nazývá refaktorizace. [5, s. 197 - 198]

První aktivita v rámci TDD je napsání testu. TDD, ale prohlašuje, že je nutné

vytvořit takový test, který selže, jinak nelze implementovat funkci. Implementace je

dokončena až pokud funkce projde tímto testem. TDD napravuje chyby dokud jsou ještě

Page 34: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

34

aktuální, eliminuje je v místě jejich výskytu, nebo-li předchází jejich vzniku.

[5, s. 197 - 198]

TDD není příliš procesně zaměřená. Používání TDD vyžaduje velké nároky na

lidský přístup a znalosti, ať už na vedení projektu anebo na programátory, neboť

vývojáři se musí vypořádat s psaním testů pro kód, který neexistuje. [5, s. 211]

Životní cyklus metodiky TDD

Obr.3.5. – Životní cyklus metodiky TDD

Životní cyklus metodiky TDD se skládá ze tří fází, nejprve probíhá testování, pak

implementace a nakonec návrh. Tento způsob vývoje software zcela vylučuje fázi

hledání chyb, protože chyby jsou odhaleny již při průchodu testovacím scénářem.

Metodika TDD představuje netradiční postup ve vývojovém procesu, kdy testování

předchází implementaci. Dodržování takovéto posloupnosti kroků má za následek

kompletně otestovanou aplikaci podle všech aspektů kvality. [5, s. 210 - 211]

Průběžné ověřování probíhá na úrovni programového kódu, kdy vývojáři zjišťují

jeho kvalitu a spolehlivost. Nicméně kromě jednotkových (unit) testů musí být

provedeny ještě další typy testů, největší důraz TDD klade na testování uživatelského

rozhraní pomocí akceptačních testů a testování integrace. Tyto druhy testu nelze

provádět v plné míře automaticky pomocí testovacích nástrojů, ale musí být prováděny

také manuálně. Pro podporu testování potřebuje metodika TDD použít nějaký podpůrný

nástroj. Velmi užívaným je rodina nástrojů xUnit např. nástroj JUnit. [5, s. 202 - 203]

Page 35: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

3. POROVNÁNÍ METODIK VÝVOJE SOFTWARE

35

TDD se příliš nezabývá formálními záležitostmi jako tvorbou různých specifikací a

dokumentací. Testovací případy v přehledné formě mohou doplňovat technické

dokumentace nebo se stát součástí funkční specifikace, ale v žádném případě

dokumentaci nesmí zastupovat jako kompletní a dostačující řešení. Čím vyšší existuje

riziko selhání projektu, tím intenzivnější a důslednější testování musí být. Pokud systém

dosáhne 100% pokrytí kódu testovacími případy, každá řádka zdrojového kódu projde

testy. [5, s. 202 - 203]

„Lze proto říci, že výsledky metodiky TDD (pokud jde o „otestovanost“ výsledné

aplikace) jsou lepší něž v případě aplikací vyvíjených tradičními metodikami a

testovaných tradičními technikami.“ [5, s. 202]

Page 36: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

36

4. Výběr vhodné metodiky pro projekt

4.1 Charakteristika projektu

4.1.1 Formulace problému

Bankovní instituce požaduje vytvoření programového řešení bankovního produktu.

Jedná se o vytvoření nové verze účetního systému rozšiřující dosavadní systém o nové

funkčnosti. Jeho nejdůležitější inovací v nové verzi bude „účtování on-line“. Základním

cílem je implementace změnových požadavků a nových funkčností do stávající, již

zavedené verze systému. Úkolem je vytvoření funkční aplikace zprostředkující

zpracování účtování jak během účetního dne tak během účetní uzávěrky. Programové

řešení nové verze musí splňovat funkční požadavky:

V rámci zpracování účtování během účetní uzávěrky:

• kapitalizace úroků

• účtování automatických převodů

• rušení a zakládání účtů

• aktualizace databázových tabulek a registrů a zálohování stavu účetního dne

V rámci zpracování účtování během účetního dne:

• obraty platebního styku

• finanční transakce mezi účty vedenými v jiných bankách a v pobočkách

• transakce on-line účtování

• trvalé příkazy

Po vyhotovení programového řešení nové verze bankovního produktu požaduje

zadavatel rovněž zajištění kvality softwarového řešení jeho otestováním. Pro ověření

kvality softwarového produktu jsou nastaveny akceptační kritéria pro počet defektů a

jejich severitu. Testování bude ověřovat funkčnost softwarového produktu podle návrhu

a správnost implementace požadavků. Případné defekty v kvalitě softwaru budou

zdokumentovány.

Page 37: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

37

Podle výsledků výběrového řízení na základě rozhodnutí managementu byla

zakázka přidělena externí softwarové firmě. Softwarová firma bude zajišťovat služby

pro bankovní instituci formou team-leasingového projektu. Management softwarové

firmy je postaven před problém, kdy se musí rozhodnout na základě porovnání pro

vhodnou metodiku vývoje software. K dispozici má čtyři metodiky a šest kritérií, podle

kterých se bude rozhodovat pro jednu z metodik. Pro výběr použije optimalizační

metodu minimalizace vzdálenosti od ideální alternativy, metodu TOPSIS (Technique

for order preference by similarity ideal solution).

4.1.2 Vymezení problému

Bankovní instituce jako zadavatel definovala softwarové firmě jako řešiteli

následující požadavky na vývoj řešení softwarového produktu.

Pro implementaci systému zadavatel preferuje objektově-orientovaný vývoj.

Požadavky na funkcionalitu jsou primární. Jakékoliv změny funkcionality zjištěné

během vývoje je možno zapracovat, některé méně prioritní změnové požadavky se

mohou vyřešit v další verzi. Dodávka do produkce je plánována na přesně stanovený

termín. Zadavatel povoluje možnost posunutí termínu dokončení projektu a jeho

nasazení na produkci, ale jen v případě potíží při implementaci primárních změnových

požadavků. Náklady na projekt jsou vyčleněny ve stanoveném rozmezí, počítá se

s finanční rezervou nepřesahující 10% nákladů na projekt. Velikost projektového týmu

je stanovena, rozšíření nebo doplnění týmu se nepředpokládá, ani pokud nastanou

problémy při vývojovém procesu. Pro případ dalšího rozšíření systému je nutná

přehledná dokumentace. Na další verzi systému může pracovat jiná firma, proto

zadavatel požaduje dokumentaci.

Zadavatel požaduje po řešiteli otestovat výslednou aplikaci. Testování by mělo

zajišťovat kvalitu systému. Kvalitu aplikace zadavatel po řešiteli požaduje

v následujícím rozsahu. Aplikace musí splňovat v první řadě zajištění funkčnosti,

použitelnosti a spolehlivosti, dále stabilitu a výkon. Zároveň aplikace musí mít

jednoduché uživatelské rozhraní na ovládání a grafickou podporu komponent.

V neposlední řadě aplikace musí pokrývat potencionální rozšiřitelnost a flexibilitu

systému, a také kompatibilitu (slučitelnost) verzí. Cílem zadavatele je získat aplikaci,

která bude odpovídat funkčním požadavkům ve specifikaci. Bude dodána ve stanovený

termín a s přesně vymezenými náklady.

Page 38: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

38

4.2 Stanovení kritérií pro porovnání

4.2.1 Kritéria klasifikace metodik

Asi nejzávažnější překážkou při vyhledávání vhodné metodiky pro určitý projekt je

neexistence jednotné klasifikace metodik, která by definovala způsob porovnání a

následného výběru. Tento nedostatek má příčinu v různorodosti jednotlivých projektů.

Projekty se mohou lišit např. velikostí týmu, znalostmi a schopnostmi jedinců v rámci

týmu, postavením na trhu, dále podle využití produktu, nebo doméně projektu, jinými

slovy pro jaký účel je software vyvíjen. Protože každý projekt je jedinečný, vyžaduje

použití různé metodiky. Právě zmíněné odlišnosti, jsou příčinnou pro využití různých

metodik podle požadavků na projekt. [2, s. 19]

Pro porovnání metodik pro vývoj software pomocí optimalizační metodiky TOPSIS

jsou zde využita některá kritéria klasifikace metodik a jejich hodnoty, tak jak je

vymezila Alena Buchalcevová v knize s názvem Metodiky vývoje a údržby

informačních systémů. Z této práce bylo pro třídění metodik využito kritérium „typ

řešení“ [2, s. 28] a „p řístup k řešení“ [2, s. 28] a do jisté míry i kritérium „váha

metodiky“ [2, s. 28], které bylo přetransformováno do podoby míra složitosti. V rámci

této bakalářské práce byla stanovena další kritéria se zaměřením na proces testování.

[2, s. 23 - 24 ; 2, s. 27]

Doména vyvíjeného software vymezuje určitou oblast zaměření, účel nebo předmět

využití software a zároveň představuje určitou skupinu podnikových procesů. Kritérium

doména nebylo zařazeno do porovnání hlavně z důvodu jasného využití software

definovaného ve formulaci problému (viz kapitola 4.1.1) a také z důvodu obecné

použitelnosti metodik pro různé druhy vyvíjeného software. Metodiky zařazené do

konečné fáze porovnání, jsou všeobecně aplikovatelné pro různé typy informačních

systémů, čili jen těžce by se mezi nimi stanovovaly rozdíly a odlišnosti. Doménou

vyvíjeného software může být např. plánování podnikových zdrojů (ERP), manažerské

informační systémy (MIS). [2, s. 24 - 26]

Page 39: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

39

4.2.2 Popis kritérií pro porovnání metodik

Pro každé kritérium je připojen krátký popis, kde je charakterizován jeho význam a

přiblíženy hodnoty kritéria. Seznam kritérií a jejich hodnoty jsou uvedeny v tabulce

(Tab.4.1).

Kritérium číslo 1: Typ řešení

Při vývoji software se nemusí vždy jednat o vývoj nového řešení od začátku,

ale může se provádět např. rozšíření, integrace stávajícího informačního systému

anebo jen inovace funkčnosti zavedeného. [2, s. 24]

Kritérium číslo 2: Přístup k řešení [2, s. 27]

Využívá se hlavně při vývoji nového anebo při rozšíření stávajícího systému.

Jeho význam klade důraz na hlavní fáze vývoje – analýzu, návrh a

implementaci. Přístupy se často kombinují tzn. přístup k řešení je jiný ve fázi

analýzy a jiný ve fázi implementace. Hodnoty kritéria přístup k řešení jsou:

• Objektově-orientovaný – pomocí objektů a tříd, využívá dědičnost,

polymorfismus a zapouzdření

• Strukturovaný – volání funkcí a procedur

• RAD (Rapid application development) – rychlý vývoj aplikací

Kritérium číslo 3: Míra složitosti metodiky

Zahrnuje počet, návaznost, rozsah a hloubku fází vývojového procesu.

Hodnotí míru podrobnosti, definuje propracovanost a obsáhlost, stanovuje počet

kontrolních prvků, jejich propojenost a také velikost týmu. [2, s. 23 - 24]

Kritérium číslo 4: Zaměření testování (typ testů)

Popisuje na jaké typy a fáze testů (viz kapitola 5.2) se metodika zaměřuje.

Jaké typy testů má metodika nadefinované, obsáhlé a které podporuje. Která

metodika je nejlépe popsaná z hlediska testování?

Kritérium číslo 5: Rozsah (a hloubka) testování

Toto kritérium pomáhá nalézt odpověď na otázku, v jaké fázi vývoje se

začíná testovat?

Page 40: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

40

Kritérium číslo 6: Zaměření metodiky na fázi vývoje

Každá metodika se do jisté míry vymezuje oproti ostatním. Přichází

s nějakou novinkou, věnuje pozornost určitému aspektu vývojového cyklu. Toto

kritérium popisuje na jakou fázi popř. fáze klade metodika největší důraz.

Kritérium Vymezení Hodnota / významu kritéria

1. „Typ řešení“ [2, s. 28] a) nové řešení, b) rozšíření stávajícího, c) integrace řešení,

d) inovace [2, s. 28]

2. „Přístup k řešení“ [2, s. 28] a) objektově-orientovaný, b) strukturovaný,

c) RAD – rychlý vývoj aplikací [2, s. 28]

3. Míra složitosti metodiky

(propracovanost, obsáhlost)

a) velmi náročná na složitost b) složitá metodika

b) střední náročnost c) jednoduchá metodika [2, s. 23 - 24]

4. Zaměření testování (typ testů) a) Základní typy testů: white box a black box

b) Fáze testu: unit testy, testy integrace, smoke testy

funkční testování, uživatelsko akceptační testy

c) ostatní typy testů

5. Rozsah (a hloubka) testování a) testování na začátku vývoje (v počáteční fázi) před

implementací

b) průběžné testování v každé fázi po každé iteraci během

celého vývoje

c) testování na konci vývoje před implementací

d) testování na konci vývoje v rámci fáze implementace

6. Zaměření metodiky na fázi

vývoje

a) vyzdvihuje (klade důraz na) jednotlivou fázi : požadavky,

návrh, implementace, testování atd.

b) rovnoměrné rozložení fází

Tab.4.1. – Seznam kritérií a jejich hodnot

Page 41: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

41

4.3 Metodiky podle stanovených kritérií

V následující tabulkové části je zpracován základní popis metodik podle

stanovených kritérií. Pro jednotlivé metodiky byla každému kritériu porovnání

přiřazena hodnota kritéria a číselné ohodnocení kritéria podle formulace zadání a

vymezení projektu. Každá tabulka obsahuje kritérium, jeho hodnotu, která co nejvíce

vystihuje metodiku, a číselné hodnocení jednotlivých kritérií pro uvedené metodiky

vývoje.

Jednotlivé metodiky byly vzájemně porovnány na základě kritérií. Každá metodika

byla číselně ohodnocena podle požadavků na projekt. Jednotlivá kritéria jsou

ohodnocena podle hodnotící stupnice od 1 do 10. Minimální hodnota 1 znamená, že

metodika nevyhovuje požadavkům na projekt. Maximální hodnota 10 znamená, že

metodika nejlépe vyhovuje požadavkům na projekt.

RUP - Rational Unified Process

Kritérium Hodnota kritéria Hodnocení

1. Typ řešení spíše nové řešení (rozšíření

zavedeného)

4

2. Přístup k řešení objektově-orientovaná ve všech fázích 7

3. Míra složitosti metodiky velmi náročná na složitost 8

4. Zaměření testování (typ testů) black box testy, funkční testování,

definuje FURPS

9

5. Rozsah (a hloubka) testování průběžné testování v každé fázi (po

každé iteraci během celého vývoje)

8

6. Zaměření metodiky na fázi

vývoje

rovnoměrné rozložení fází 8

Tab.4.2. – Hodnoty kritérií a jejich hodnocení metodiky RUP

Page 42: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

42

XP – Extrémní programování

Kritérium Hodnota kritéria Hodnocení

1. Typ řešení rozšíření stávajícího, integrace

zavedeného

6

2. Přístup k řešení strukturovaný, RAD 3

3. Míra složitosti metodiky jednoduchá metodika 3

4. Zaměření testování (typ

testů)

White box testování, unit testy, testy

integrace, UAT (viz kapitola 5.2)

6

5. Rozsah (a hloubka) testování testování na konci vývoje před

implementací

6

6. Zaměření metodiky na fázi

vývoje

Kódování (implementace) 6

Tab.4.3. – Hodnoty kritérií a jejich hodnocení metodiky XP

FDD – Feature-Driven Development (vlastnostmi řízený vývoj)

Kritérium Hodnota kritéria Hodnocení

1. Typ řešení nové řešení 4

2. Přístup k řešení objektově-orientovaná ve všech fázích 8

3. Míra složitosti metodiky střední náročnost 6

4. Zaměření testování (typ testů) nedefinováno 3

5. Rozsah (a hloubka) testování testování na konci vývoje v rámci fáze

implementace

4

6. Zaměření metodiky na fázi

vývoje

Požadavky – seznam vlastností 5

Tab.4.4. – Hodnoty kritérií a jejich hodnocení metodiky FDD

Page 43: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

43

TDD – Test-Driven Development (testy řízený vývoj)

Kritérium Hodnota kritéria Hodnocení

1. Typ řešení rozšíření stávajícího, integrace

zavedeného

6

2. Přístup k řešení strukturovaný, RAD 3

3. Míra složitosti metodiky jednoduchá metodika 3

4. Zaměření testování (typ testů) white box testování, unit testy, testy

integrace (viz kapitola 5.2)

7

5. Rozsah (a hloubka) testování na začátku vývoje v počáteční fázi před

implementací

7

6. Zaměření metodiky na fázi

vývoje

testování 9

Tab.4.5. – Hodnoty kritérií a jejich hodnocení metodiky TDD

4.4 Analýza číselného hodnocení kritérií

V následující kapitole byla provedena interpretace tabulkové části. Provedená

analýza vyjadřuje porovnání metodik podle kritérií. Hlavním cílem je vysvětlení a

zdůvodnění číselného vyjádření hodnot kritérií pro každou metodiku podle zadání

projektu.

Kritérium typ řešení

Pro toto kritérium je nejvíce žádoucí metodika rozšiřující stávající systém o nové

funkčnosti popř. o implementaci změnových požadavků již zavedených funkčností.

Toto kritérium podle požadavků na projekt nejlépe splňují metodiky TDD a XP, proto

byly číselně ohodnoceny jako lépe vyhovující pro realizaci projektu. Metodiky RUP a

FDD byly spíše navrhnuty pro vývoj nového řešení informačního systému, nikoliv pro

jeho změny či inovace.

Page 44: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

44

Kritérium p řístup k řešení

V rámci definování požadavků na vývoj řešení softwarového produktu zadavatel

požaduje objektově-orientovaný vývoj. Požadavkům pro toto kritérium nejvíce vyhovují

metodiky RUP a FDD, které využívají právě objektově orientovaný vývoj. Zatímco

metodika RUP využívá objektově orientovaný vývoj ve fázi analýzy a řízení požadavků,

metodika FDD ve fázi tvorby modelu. Pro vizuální modelování objektů z reálného světa

se využívá vysoká míra abstrakce a notace UML.

Metodiky XP a TDD využívají strukturovaný vývoj, který je založený na volání

procedur a funkcí. V rámci tohoto vývoje se uplatňuje technika pro úpravu kódu

založená na odstranění duplicit a zavedení standardů pro čitelnost a strukturovanost

zdrojového kódu. Pro tento vývoj je charakteristická znovupoužitelnost kódu. Metodiky

XP a TDD jsou podle požadavků na projekt nevyhovující.

Kritérium míra složitosti metodiky

Přestože v případě metodiky XP činí ztráta části napsaného zdrojového kódu nebo

přepracování návrhu architektury vývoj výrazně složitý, jedná se stejně jako v případě

TDD o velmi jednoduchou metodiku. TDD není příliš zatížená procesy, ale je

náročnější na znalosti a lidský faktor. Změny v návrhu dokončené vlastnosti, podle

které je řízen vývoj metodiky FDD, má za následek opakování průběhu některých fází

vývoje. Z hlediska návaznosti fází je pak FDD klasifikována jako středně pokročilá.

Z hlediska hloubky a rozsahu je velmi náročná na složitost metodika RUP. Lze ji

označit za nejpropracovanější a nejobsáhlejší z uvedených metodik. Složení a velikost

týmu je totiž definována rolemi. Obsah metodiky RUP je uspořádán do disciplín. Pro

efektivnější vývoj software se využívá šesti základních praktik vývoje. Metodika RUP

je klasifikována jako nejsložitější a označena nejvyšší číselnou hodnotou. Pro zadání

projektu je však žádoucí jednoduchá metodika. Z tohoto důvodu má optimalizační

metoda TOPSIS toto kritérium nastaveno jako minimalizační.

Kritérium zam ěření testování

Základní rozdíl je v přístupu k testování. Zatímco metodika RUP je založena na

black box testování, metodiky TDD a XP provádějí white box testování. V rámci

zajišťování kvality produktu metodiky TDD a XP provádějí testy jednotlivých modulů

(unit testy), akceptační testy uživatelského rozhraní, testy integrity a funkcionality.

Metodika RUP má nadefinovanou bohatou sadu testů FURPS vyjadřující jednotlivé

Page 45: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

45

aspekty kvality: funkcionalitu, použitelnost, spolehlivost, výkon a podporovatelnost.

Pro otestování každého aspektu kvality je k dispozici několik typů testů. Z uvedeného

vyplývá, že metodika RUP je z hlediska rozsahu typů testů nejvhodnější pro otestování

aplikace navrhované pro projekt.

Kritérium rozsah testování

Toto kritérium je zaměřeno na fázi vývoje, přesněji na okamžik, kdy se aplikace

začíná testovat. Metodika RUP definuje průběžné testování nejen v každé fázi vývoje,

ale i během každé iterace. Proces testování je tedy do jisté míry zastoupen v každé

iteraci. Metodika TDD klade velký důraz na testování do takové míry, že ho pokládá za

základ celého vývoje, nicméně se mu nevěnuje po celý jeho průběh, ale pouze na jeho

začátku. Testování v rámci TDD probíhá na začátku vývoje před implementací, nejprve

probíhá napsání testu a až poté napsání kódu.

Metodika XP stanovuje testování na konec vývoje před fázi implementace. Nejdříve

probíhá vytváření testů, následně samotné testování a až poté dochází k psaní

zdrojového kódu. Metodika FDD stanovuje proces testování pouze v rámci fáze

implementace a až na konci celého vývoje. Z tohoto důvodu je pro zadání projektu

v porovnání s ostatními metodikami nejméně vyhovující. Hodnocení kvality

softwarového produktu je primárně založeno na nedokončenosti, protože nelze vždy

otestovat všechny aspekty software. Na testování klade zadavatel projektu velký důraz

hlavně z hlediska funkčnosti produktu, proto je žádoucí, aby testování bylo zastoupené

v každé fázi vývoje. Tento požadavek nejlépe splňuje metodika RUP.

Kritérium zam ěření metodiky na fázi vývoje

Zatímco metodika RUP definuje rovnoměrné rozložení všech fází, ostatní

porovnávané metodiky se vždy více zaměřují na jeden aspekt vývoje a vyzdvihují jednu

fázi vývoje nad ostatní. Metodika FDD se zabývá procesem modelování a zpracování

vlastností, podle kterých je řízen vývoj. Metodika XP staví tvorbu zdrojového kódu nad

ostatní fáze při vývojovém procesu. Metodika TDD vyzdvihuje disciplínu testování nad

ostatní kroky a považuje ji za základ vývoje software. Vzhledem k požadavkům na

zadání tomuto kritériu nejlépe vyhovují metodiky RUP a TDD.

Page 46: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

46

4.5 Stanovení vah pro kritéria

Pro jednotlivá kritéria 1 až 6 jsou stanoveny následující váhy (Tab.4.6). Kritéria

popisující testování byla nastavena na vyšší číselnou hodnotu.

Kritérium 1 2 3 4 5 6

Váha 0,06 0,12 0,10 0,28 0,24 0,20

Tab.4.6. – Stanovení vah pro kritéria

Vyčíslení jednotlivých kritérií pro uvedené metodiky vývoje ukazuje tabulka

(Tab.4.7). Kritérium míra složitosti je vymezeno jako minimalizační z důvodu zadání

projektu.

Kritérium 1 2 3 4 5 6

max max min max max max

RUP 4 7 8 9 8 8

XP 6 3 3 6 6 6

FDD 4 8 6 3 4 5

TDD 6 3 3 7 7 9

Tab.4.7. – Kriteriální matice metody TOPSIS

Na základě číselného ohodnocení jednotlivých kritérií a stanovených vah pro každé

kritérium bude provedena optimalizační metoda TOPSIS. Podle výsledků metody

TOPSIS bude rozhodnuto pro výběr jedné metodiky. Nejvhodnější metodika bude

navržena pro realizaci softwaru.

Page 47: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

47

4.6 Výběr vhodné metodiky podle optimalizační metody

4.6.1 Řešení problému pomocí metody TOPSIS [4, s. 92 - 96]

Všechny výpočty optimalizační metody TOPSIS jsou uvedeny v příloze

(viz kapitola 7.4). Teoretický postup řešení problému pomocí manažerské metody

rozhodování TOPSIS je rozdělen do šesti kroků.

1. krok: Stanovení kriteriální matice Y=(y i j )

Nejprve upravíme kriteriální matici (Tab.7.1) na tvar, kdy všechna kritéria

budou maximalizační. Pro minimalizační kritéria určíme nejhorší maximální

hodnoty. Uděláme rozdíl mezi maximálními (nejhoršími) hodnotami a

hodnotami kriteriální matice. Od maximální hodnoty každého minimalizačního

kritéria odečteme hodnoty kritéria pro danou alternativu.

2. krok: Získaná upravená matice (Tab.7.2)

Všechna kritéria jsou zde již maximalizační. Tabulka (Tab.7.3) ukazuje

rovněž upravenou matici, která slouží jako mezivýpočet pro získání

normalizované kriteriální matice. Obsahuje hodnoty předchozí upravené matice

umocněné na druhou y2 i j , dále jejich sumu (součet) ∑ y2 i j a následně

odmocninu √ ∑ y2 i j .

3. krok: Vytvořená normalizovaná kriteriální matice R (Tab.7.4)

R i j podle vztahu : R i j = y i j / √ ∑ y2 i j

4. krok: Vytvořená vážená kriteriální matice W (Tab.7.5)

Každý sloupec matice R se vynásobí odpovídající vahou ve formě řádkového

vektoru vah. Kriteriální váhy byly stanoveny managementem firmy.

Obr.4.1. – Vážená kriteriální matice

v1 r11 v2 r12 . . .

v1 r21 v2 r22 . . .

W = . .

. .

Page 48: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

4. VÝBĚR VHODNÉ METODIKY PRO PROJEKT

48

Vytvoříme řádkové vektory pro obě alternativy jak bazální D, tak ideální H.

Řádkový vektor H obsahuje maximální hodnoty pro každé kritérium f1 až f6

vážené kriteriální matice W a analogicky vektor D obsahuje minimální hodnoty.

5. krok: Výpočet vzdáleností variant od ideální alternativy (Tab.7.6) a (Tab.7.7)

Provede se výpočet podle vztahu pro všechna i:

d i + = √ ∑ j (w i j - H j)

2 d i - = √ ∑ j (w i j - D j)

2

6. krok: Relativní ukazatel vzdálenosti (Tab.7.8)

Vypočte se relativní ukazatel vzdálenosti alternativ od bazální alternativy

podle vztahu pro všechna i, čili pro všechny alternativy.

c i = d i - / (d i

+ + d i - )

Varianty se uspořádají podle klesajících hodnot c i . Jako nejlepší se vybere

ta alternativa, která se umístila na prvním místě (má největší hodnotu c i ).

4.7 Návrh vhodné metodiky pro projekt

Největší hodnotu relativního ukazatele vzdálenosti (Tab.7.9) má metodika RUP.

Podle výsledků optimalizační metody TOPSIS vyplývá, že nejvhodnější metodikou pro

řízení modelového softwarového projektu je metodika RUP. Výsledek porovnání

metodik pomocí optimalizační metody TOPSIS výrazně závisí na volbě kritérií a

stanovení vah pro jednotlivá kritéria. Porovnání metodik bylo zaměřené na

problematiku testování, z toho důvodu byly přiděleny vyšší hodnoty vahám, které se

nejvíce zabývají testováním.

Page 49: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

49

5. Testovací strategie

Testovaní je nejdůležitější proces zajišťování kvality software. Proto je důležité

tento proces organizovat, plánovat a řídit. Tento úkol se snaží vyřešit testovací strategie.

Strategie testování stanovuje postup, podle kterého bude testovací tým provádět

ověřování a kontrolu funkčnosti software. Popisuje časový plán testů, definuje

sledování výsledků testování z hlediska chybovosti a rovněž vymezuje rizikové oblasti

testování. Na základě výsledků optimalizační metody je testovací strategie určena

metodice RUP.

5.1 Testovací cyklus

Cyklus testování metodiky RUP je založen na iterativním vývoji. V následující

tabulce (Tab.5.1) je stručně popsáno jaké činnosti probíhají a jaké dokumenty jsou

vytvářeny v jednotlivých fázích testovacího cyklu.

Fáze testovacího cyklu

(kompetentní role) Činnosti Dokumenty

Plánování testů

(Test manager)

Definice testovacího rozsahu

Plánování zdrojů a cílů

testování

Identifikace rizik

Rozsah testů (Test scope)

Testovací plán

Testovací požadavky

Návrh testů

(Test architect)

Definice typů testů Strategie testů

Definice prostředí

Vytváření testů

(Test designer & tester )

Příprava manuálních a

automatizovaných testů

Definice testovacích dat

Testovací případy

Testovací scénáře

Vykonávání testů

(Tester)

Test report

Testovací výsledky

Seznamy chyb

Vyhodnocení testů

(Test manager)

Zhodnocení testů Závěrečné shrnutí

Test protokol

Sledování defektů

Defect report

Tab.5.1. – Fáze testovacího cyklu [10]

Page 50: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

50

Z hlediska role mohou disciplínu testování provádět tester, test designer, test

architect, a test manager. Následující obrázek (obr.5.1) ukazuje jaké aktivity má daná

role vykonávat a za jaké dokumenty je jednotlivá role zodpovědná.

Obr.5.1. – Testovací cyklus [10]

Page 51: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

51

Testovací cyklus představuje posloupnost činností, které na sebe navazují a do jisté

míry se vzájemně překrývají a doplňují. Výstupy z jedné fáze představují přímé vstupy

do následující fáze. Posloupnost jednotlivých kroků testování je vysvětlena pomocí

životního cyklu testování. Pro každou fázi životního cyklu je uveden její popis pro

přiblížení činností a postupů, které se v ní odehrávají.

1) Plánování testů

V první fázi testovacího cyklu probíhá definice projektu, vymezuje se testovací

plán, stanovují se testovací požadavky. Výsledkem je pak definování rozsahu testů,

který specifikuje činnosti testování. Testovací plán popisuje proces dosažení cílů,

soustředí se na rozsah a zaměření testů, zahrnuje časový rozvrh jednotlivých aktivit a

termíny dodávek. Testovací požadavky přibližují chování testované aplikace a potřebné

testovací zdroje. Testovací požadavky popisují návrh uživatelského rozhraní, průběh

konfigurace a instalace, specifikují potřebný výkon aplikace, hraniční podmínky, nebo-

li objem testování. [7, s. 211 – 234 ; 10]

2) Návrh testů

Ve fázi návrhu dochází k upřesnění cílů a milníků testování, je nadefinováno

testovací prostředí. Výsledkem návrhu je strategie testů, která upřesňuje sadu

požadavků na chování a přesně stanovuje jaké typy testů budou prováděny. V rámci

strategie testů se rovněž stanovují testovací techniky, nástroje a kritéria pro dokončení

testů. Konečná verze strategie testů musí být následně schválena zákazníkem.

[7, s. 211 – 234 ; 10]

3) Vytváření testů [7, s. 211 – 234 ; 10]

V této etapě testovacího cyklu je proveden detailní popis jednotlivých testovacích

případů a skriptů, je definována struktura testovacích dat. Výsledkem jsou testovací

scénáře, podle kterých probíhá testování. S popisy testovacích scénářů je průběžně

seznamován zákazník. V případě, že testovací plán zahrnuje použití automatizovaných

testů, pak jsou v této fázi připravovány procedury a skripty pro automatizované

provádění testů. Fáze návrh testů a vytváření testů lze pojmenovat jednotně jako

příprava testů.

Page 52: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

52

• Testovací případ (test case) je seznam kroků vycházející z konkrétních

funkčností, které se musí vykonat.

• Testovací data jsou konkrétní data potřebná pro provádění testů. (např.

uživatelské účty, data pro zadávání do systému, připravené xml zprávy atd.)

• Testovací skript (test script) Testovací script se skládá z konkrétních

testovacích případů, testovacích dat a jasně definovaného očekávaného výsledku

testování.

• Testovací scénář (Test suit) je komplexní test napříč systémem. Obsahuje sadu

testovacích skriptů, které jsou definované v přesném pořadí. Testovací scénář

ověřuje průchod systémem.

Obr.5.2. – Testovací scénář

4) Vykonávání testů

Během etapy vykonávání testů jsou prováděny testy podle předem připravených

testovacích scénářů, testy jsou vykonávány průběžně v každé iteraci. Výsledky testů

jsou zaznamenávány ve formě dokumentů - defekt report a záznam o provedení testů.

[7, s. 211 – 234 ; 10]

5) Vyhodnocení testů

Během vyhodnocování testů dochází k analýze výsledků testů a určení, zda byly

splněny testovací požadavky a kritéria definovaná během plánování. Každé vykonání

testů je vyhodnocováno, jsou popsány nalezené defekty ve formě „hlášení problému“.

Na konci testů se provádí závěrečné shrnutí. Závěrečná zpráva o výsledcích testování

obsahuje stručné zhodnocení testů a vyhodnocení výsledků testování. Za vyhodnocení

testů je odpovědný test manager. Výstupem je testovací protokol, který přesně popisuje

průběh testů, seznam otestovaných funkčností, výsledky testů doplňuje o seznam

nalezených chyb. [7, s. 211 – 234 ; 10]

Page 53: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

53

6) Sledování defektů

Na závěr testovacího cyklu probíhá proces sledování defektů, kde se jednotlivé

defekty a uživatelské problémy zaznamenávají a označují za otevřené defekty, což

umožní jejich vyřešení. Pro sledování nalezených defektů jsou vytvořeny procedury a

nástroje, které slouží pro jejich záznam a pro průběžné sledování způsobu a stavu jejich

řešení. Každý záznam defektu je sledován až do jeho rozřešení. [7, s. 211 – 234 ; 10]

5.2 Kategorizace testů podle metodiky RUP

V rámci návrhu testovací strategie je podstatné stanovit, nejen jaké fáze bude proces

testování zahrnovat, ale i jaké typy testů se při ověřování funkčnosti software využijí.

Cílem je otestovat aplikaci takovým způsobem, aby byla co nejvíce pokryta

jednotlivými testy. Jejich zastoupení při testování záleží na druhu testované funkčnosti.

Obecně lze ale říci, že čím větší zastoupení jednotlivých typů testů při ověřování

funkčnosti software, tím lepší výsledky se při testování dosáhnou. Čím více bude

aplikace pokryta testy, tím existuje větší pravděpodobnost, že se při testování odhalí

větší počet chyb. Proto je v práci navrhnuta kategorizace testů, nejprve podle obecně

známých jmenovatelů tzn. podle viditelnosti kódu a dimenze času. U klasifikace podle

dimenze typu testů jsou každému rozměru kvality podle metodiky RUP přiděleny

jednotlivé typy testů. Rozdělení do skupin podle rozměrů kvality, tak jak je definuje

RUP, se může vzájemně překrývat, jinými slovy, některé testy je možné zařadit i do jiné

skupiny. V následující podkapitole je uveden popis jednotlivých testů. [10]

5.2.1 Klasifikace testů podle viditelnosti kódu

Základní rozdělení testů charakterizuje dva přístupy testování. Při black-box testing

(testování černé skříňky) nás zajímá systém jako celek, v závislosti na vstupu řídíme

výstup. Nezajímá nás kód, ani iterace, které se odehrávají uvnitř systému. Při white-box

testing (testování bílé skříňky) nás zajímají iterace a procesy uvnitř systému. Tester má

přístup ke zdrojovému kódu. Někdy se toto rozdělení označuje jako klasifikace podle

viditelnosti kódu. [7, s. 47 - 50]

Page 54: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

54

5.2.2 Klasifikace testů podle dimenze času [9 ; 10]

Během vývoje software je nutné neustále ověřovat, zda nedochází k odchylce od

zadání. Testování je do jisté míry zastoupeno v každé fázi životního cyklu metodiky

RUP. Proces testování při vývoji software je rozdělen mezi vývojový a testovací tým.

Rozdělení testů podle dimenze času na fáze testů, není jen záležitostí metodiky RUP,

ale platí obecně i pro ostatní metodiky. Z časového hlediska lze testy rozdělit do

jednotlivých fází. Jednotlivé testy probíhají v určitém pořadí a navazují na sebe.

• Unit testy (testy nových funkčností) jsou prováděny na straně vývojového týmu.

Po dokončení unity (UC - use casu) se testuje kontrola kódu a požadovaná

funkčnost příslušného UC.

• Integrační testy (Build testy) ověřují, zda-li lze integrovat unity dodané

vývojovým týmem, tj. vytvořit funkční build.

• Smoke testy ověřují stabilitu systému. Slouží pro zajištění proveditelnosti

následného hloubkového systémového testu. Testy jsou aplikovány na nejčastěji

využívaných nebo nejkritičtějších funkčností systému.

• Systémové testy (SIT) zahrnují hloubkový test systému, při kterém se zpravidla

vykonávají téměř všechny typy testů: testy funkcionality a integrace

(komunikace s okolními systémy) nebo kontroly přenášených dat.

• Uživatelské akceptační testy (UAT) jsou zaměřeny na testování standardního

provozu systému. Zaměřují se na ověřování funkčností z pohledu chování

konkrétní role v systému a na otestování podpory procesů a pracovních postupů

rolí. Testy provádí koncoví uživatelé.

Velmi důležitou vlastností systémových testů jsou zpětné regresní testy. Regresní

testy ověřují kromě nově přidaných funkčností také všechny funkčnosti

implementované v předchozích iteracích. Regresní testy tedy ověřují funkčnosti, které

se nezměnily.

Page 55: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

55

5.2.3 Klasifikace testů podle dimenze typů testů [9 ; 10]

Základní dělení typů testů výhradně podle metodiky RUP odpovídá základním

rozměrům kvality FURPS:

• Functionality (Funkcionalita)

• Useability (Použitelnost)

• Reliability (Spolehlivost)

• Performance (Výkon)

• Supportability (Podporovatelnost)

Každý uvedený aspekt kvality podle metodiky RUP lze rozdělit na další podskupiny

testů.

1) Testy funkcionality

• Funkční testy: Testy zaměřené na zajištění funkčních požadavků. Testy

ověřují, zda-li jsou poskytovány funkčnosti uvedené v návrhu systému.

• Security testy: Testy zaměřené na ověřování přístupových práv pro zajištění

dostupnosti dat.

• Volume testy: Testy ověřují schopnost práce databáze s velkým objemem

dat. Testy stability a zachování všech funkčností systému při zvýšeném

provozu databáze.

2) Testy použitelnosti

• Testy uživatelského rozhraní, testy dokumentace, testy on-line nápovědy atd.

3) Testy spolehlivosti

• Integritní testy (testy integrity systému): Testy zaměřené na hodnocení

robustnosti sytému (odolnosti proti selhání) po datové i funkční stránce.

• Strukturní testy: Testy zaměřené na hodnocení správnosti systému

vzhledem k návrhu. Testy jsou často prováděny u webových rozhraní.

• Stresové testování: Jedná se o provozování software při nestandardních

podmínkách například s menším množstvím paměti, s malým diskovým

prostorem nebo s pomalým procesorem. Při tomto druhu testu se omezuje

provoz na úplné minimum. [7; s. 74 - 75]

Page 56: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

56

4) Testy výkonnosti

• Výkonnostní testy: Testy jsou založeny na vyhledávání výkonnostně

slabých míst systému.

• Contention testy: Testy současného přístupu více uživatelů k sdíleným

prostředkům při zachování funkčnosti systému. Kromě současného připojení

více uživatelů se využívá praktika posílání velkého množství požadavků.

• Zátěžové testy: Tyto testy sledují stav, chování a výkon systému pod

vysokou zátěží. Aplikaci dopřejeme maximální podmínky pro provoz tak,

aby software pracoval s největšími datovými soubory a s velkým

počtem periferií (tiskárny a komunikační porty). Zátěžové testování je opak

stresového testování. [7; s. 74 - 75]

5) Testy podporovatelnosti

• Konfigura ční testy: Testy ověřují funkčnost systému na jiných

konfiguracích, než jaké jsou nastavené v testovacím prostředí.

• Instalační testy: Testy ověřují stav instalace na různých konfiguracích

software popř. hardware. Testuje se kompletnost a aktualizace instalace.

Žádné z těchto skupin klasifikace testů neodpovídají statické a dynamické

testy hlavně z důvodu, že se nejedná o typ testu, ale o způsob provedení testu.

5.3 Návrh testovací strategie

Porovnání a výběr metodik vývoje software podle zadání projektu dopadlo úspěšně

pro metodiku RUP. Proto je navrhnutá testovací strategie v souladu s principy metodiky

RUP. Nejedná se o návrh univerzální testovací strategie, kterou může využít jakákoliv

metodika, jedná se o vytvoření strategie testů podle metodiky RUP, nicméně lze říci, že

některé body návrhu jsou použitelné i pro ostatní metodiky (TDD, FDD a XP).

Rozhodující je ověřit funkčnost aplikace podle všech aspektů kvality. Právě otestovat

software podle všech aspektů kvality, neboli pokrytí systému testy, je základním cílem

procesu testování. Veškeré úsilí práce testera směřuje k odhalení chyby ve funkčnosti

aplikace. Návrh testovací strategie je rozdělen do devíti bodů. Pro splnění vymezených

cílů by měli v dostatečné míře proběhnout všechny tyto činnosti.

Page 57: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

57

Testovací strategie metodiky RUP

1. Postup testování podle životního cyklu

Při testování je nutné se řídit podle posloupnosti kroků životního cyklu

testování (obr.5.1) tak, aby výstup jedné fáze životního cyklu znamenal vstup do

následující fáze.

2. Návaznost typů testů podle fáze testů

Posloupnost jednotlivých testů by měla kopírovat strukturu fáze testů (viz

kapitola 5.2.2). V rámci funkčního testování budou probíhat i některé další typy

testů - FURPS, které definuje metodika RUP a které jsou nutné pro otestování

aplikace tak, aby aplikace mohla být použitelná pro svůj účel.

3. Testování zastoupené v každé iteraci

Testování by mělo probíhat v menším nebo větším zastoupení během každé

iterace. Testování by mělo probíhat v několika kolech, a to z důvodu otestování

klíčových funkčností systému, každá iterace bude samostatně vyhodnocena a

reportována. Výsledky testování se musí zaznamenat a zdokumentovat do

testovacího protokolu.

4. Testovací techniky

Použitím testovacích technik lze dosáhnout rychlejšího odhalení chyby.

Využívají se techniky ekvivalenční analýzy, průzkumné testování nebo testování

podle scénářů. Provádění testů by mělo probíhat podle připravených testovacích

případů a scénářů pro každou iteraci.

5. Zpětné regresní testování

Každá úprava zdrojového kódu, každá změna funkčnosti musí být řádně

otestována. Po nasazení nové verze systému se musí provádět regresní testy.

Některé chyby se několikrát opakují, proto se zamýšlené testy mohou provádět

nikoliv jen jednou, ale opakovaně, vícekrát.

Page 58: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

58

6. Kombinace manuálního a automatického testování

Ověřování správnosti funkcí složitého systému je časově náročné a

představuje velmi mnoho práce. Pro zvýšení efektivity práce existuje řešení. Při

testování lze uplatnit automatizované nástroje, které otestují testovací scénáře.

Nicméně spoléhat pouze na automatizaci není dostačující, protože lidská intuice

není lehce nahraditelná. Ideální řešení je kombinace klasického ručního

testování a automatického, přičemž pro automatizaci je nezbytný pečlivý výběr

testovacích případů. I když automatizované testy proběhnou bez nalezené chyby,

to ještě neznamená, že otestovaný software je bezchybný. Nicméně kombinace

manuálního (ručního) testování společně s nástroji pro automatizaci testů snižuje

pravděpodobnost neodhalených chyb v softwaru. [7, s. 185 - 186]

7. Hlášení chyby

Nalezené chyby je nutné popsat a zaznamenat ve formě hlášení o chybě

(defect reportu). U každé chyby je potřeba přesně popsat všechny položky defect

reportu tak, aby se vyloučilo případné nedorozumění s vývojářem. Hlášení

chyby zahrnuje unikátní identifikátor a stav chyby, stručný popis chyby, verze

systému, ve které byla chyba nalezena, kdo ji zaevidoval, komu je přidělena k

opravě, komentáře k chybě a přílohy. Chyba musí být nejprve přesně, jasně a

výstižně popsána, přičemž její popis se musí opírat o fakta a vyhovovat

terminologii prostředí.

8. Stanovení priority a severity chyby

Stanovení priority a severity chyby výrazně napomáhá k efektivitě jejího

řešení, tedy k opravě funkčnosti. Každá chyba musí mít nastavenu závažnost

(severitu). Pro označení závažnosti chyby se používá stupnice A-C, případně

ještě stupeň Z, který značí změnové požadavky. Chyba označená severitou A,

značí největší závažnost, chyba je kritická, zatímco chyba se stupněm severity C

má nejnižší závažnost. Priorita určuje důležitost, které chyby je potřeba opravit

jako první a které je možné odložit. [7; s. 241 - 242]

Page 59: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

5. TESTOVACÍ STRATEGIE

59

9. Oprava chyby podle životního cyklu chyby

Po nalezení chyby se musí provést její oprava. Náprava chyby už není

záležitostí testování, nicméně po nápravě chyby následuje re-test. Chyba se po

svém odhalení může nacházet v několika stavech. Životní cyklus chyby sleduje

stav chyb od jejich nalezení po jejich vyřešení. Životní cyklus chyby tedy

představuje posloupnost několika stavů chyby: nová (new), přijatá (assigned),

opravená (resolved), upevněná (fixed), otestovaná (verified), znovu otevřená

(reopened), uzavřená (closed). [7; s. 242 - 245]

Obr.5.3. – Životní cyklus chyby [10]

Page 60: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

6. ZÁVĚR

60

6. Závěr

6.1 Zhodnocení dosažení cílů

6.1.1 Vyhodnocení cílů

V této bakalářské práci jsem porovnal metodiky pro vývoj software. Na základě

tohoto porovnání zaměřeného na problematiku testování a definice požadavků na

projekt jsem zvolil vhodnou metodiku pro vývoj software. Pro vybranou metodiku jsem

navrhl testovací strategii.

6.1.2 Vyhodnocení hypotézy práce

Jak jsem již v úvodu práce uvedl, základní hypotézou bakalářské práce bylo tvrzení,

že pro řízení softwarového projektu na základě porovnání metodik vývoje software

zaměřeného na problematiku testování a na základě jasně definovaných požadavků na

projekt bude zvolena metodika Rational Unified Process (RUP). V této fázi práce mohu

vyhodnotit tento předpoklad a prohlásit, že tato hypotéza byla potvrzena. Použitím

metodiky RUP lze tedy pro zamýšlený projekt dosáhnout efektivnějšího využití

vývojového procesu, než-li by tomu bylo v případě použití metodiky Extrémního

programování (XP), Test Driven Development (TDD) nebo Feature Driven

Development (FDD).

6.2 Závěrečné shrnutí práce

6.2.1 Vyhodnocení porovnání metodik software

V úvodu práce jsem vyjmenoval základní problémy spojené s návrhem a realizací

software, naznačil jsem jejich pravděpodobné příčiny. Myslím si, že eliminace

uvedených problémů a jejich příčin by měla vést k efektivnějšímu vývoji software. Při

porovnání rigorózních a agilních metodik jsem se snažil zaměřit na hlavní odlišnosti a

rozdíly směrů vývoje. Jako zástupce z řad agilního vývoje jsem do závěrečné fáze

porovnání s metodikou RUP zařadil metodiky TDD, XP a FDD. Důvodem mého

rozhodnutí bylo především jejich zaměření na problematiku testování. Při výběru jsem

Page 61: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

6. ZÁVĚR

61

rovněž zohlednil metodiky, které nejvíce odpovídají zadání projektu, a také dostatečně

popsané metodiky.

Z výsledků optimalizační metody TOPSIS vyplývá, že vhodnou metodikou vývoje

software pro řízení modelového projektu je metodika RUP. V následujících řádcích

uvádím důvody, proč se metodika RUP pravděpodobně stala nejvhodnější variantou a

připojuji zdůvodnění výběru metodiky RUP pro projekt.

Metodika RUP nevyzdvihuje pouze jednu fázi vývoje, ale zaměřuje se na

rovnoměrné rozložení všech fází. Definuje průběžné testování během celého vývoje. V

každé iteraci je disciplína testování do jisté míry zastoupena. To je velkou výhodou

oproti ostatním agilním metodikám, které mají nadefinovaný rozsah testů pouze v určité

části vývoje.

U všech porovnávaných agilních metodik vidím jeden společný jmenovatel.

Největší důraz je vždy kladen pouze na jednu činnost. Přesněji řečeno porovnávané

agilní metodiky nemají jednotlivé činnosti během vývojového cyklu rovnoměrně

zastoupené tak jako metodika RUP, která se jednotlivým aktivitám věnuje stejnoměrně.

Agilní metodiky XP, TDD, FDD se více zaměřují na jeden aspekt vývoje. Právě

zaměření na jeden aspekt procesu vývoje „na úkor dalších“ je asi jedním z největších

nedostatků, na který jsem při porovnávání přišel. Metodika TDD staví proces testování

nad ostatní kroky při vývoji a označila ho za základ celého vývojového procesu.

Extrémní programování se nejvíce věnuje kódování. Metodika FDD klade silný důraz

na disciplínu modelování.

Výhodou metodiky RUP je dokumentace vývojového procesu, což je důležité pro

případné rozšíření systému. Další přednost metodiky RUP oproti ostatním shledávám

hlavně v bohatém rozsahu sady testů. Metodika RUP má definované aspekty kvality

FURPS. Žádná z porovnávaných metodik nemá tak bohatou sadu testů jako právě

metodika RUP.

Na závěr bych chtěl doplnit, že výsledek porovnání metodik byl výrazně ovlivněn

stanovením vah a kritérií porovnání a také zadáním požadavků na projekt.

Nezodpovězenou otázkou tak zůstává, do jaké míry ovlivní formulace požadavků volbu

metodiky pro daný projekt.

Page 62: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

6. ZÁVĚR

62

6.2.2 Vyhodnocení návrhu testovací strategie

Cílem testovací strategie, kterou jsem navrhl, je pokrytí systému testy. Cílem

samotného testování pak musí být vysoká úspěšnost provedených testů, velký počet

nalezených chyb a také minimum neprovedených testů. Za hlavní úkol testovací

strategie považuji definici rozsahu testů, tedy omezení obrovské množiny možných

testů na efektivní množství tak, aby se počet nenalezených chyb snížil na minimum.

Testovací strategie by měla pokrývat optimální množství testů, které přispěje

k efektivitě procesu testování.

Proto jsem do návrhu zahrnul kategorizaci testů. Pokud se v rámci testování využijí

různé druhy testů zvyšuje se pravděpodobnost nalezení většího množství chyb. Cílem

je, aby aplikace dosáhla určitého stupně dokonalosti, nebo-li zajištění kvality.

Do návrhu testovací strategie jsem rovněž zařadil testovací cyklus. Myslím si, že

pro efektivní proces testování je nutné, aby byla při testování dodržena posloupnost

jednotlivých fází. Důležité je, aby každá fáze testovacího cyklu byla do jisté míry

zastoupena. Právě testovací cyklus může být aplikovatelný i pro ostatní agilní

porovnávané metodiky. Do návrhu testovací strategie jsem rovněž zařadil následující

podstatné kroky a pravidla: kombinaci automatického a manuálního testování, zpětné

regresní testování a testování podle scénářů.

V rámci návrhu testovací strategie uvádím následující myšlenky, které jsem zjistil

při zpracování tématu. Za klíčové v procesu testování považuji nalezení velkého počtu

chyb v aplikaci. Zároveň shledávám jako podstatný fakt okamžik nalezení chyby.

Chyby odhalené v pozdních fázích jsou riskantní a ohrožují úspěšnost projektu.

Domnívám se, že žádný program nelze otestovat komplexně. Vždy se najdou

některé oblasti software, které zůstanou neotestovány. Není možné, že výsledný produkt

bude dokonalý, protože nelze otestovat každý aspekt software a nalézt všechny chyby.

Cílem zůstává, aby procentuální úspěšnost pokrytí systému testy byla co největší.

Jsem přesvědčený, že testovací strategie pro metodiku RUP, kterou jsem v této práci

vypracoval, by měla přispět k naplnění cílů celého procesu testování. Při návrhu

testovací strategie jsem se zaměřil především na klíčové otázky problematiky testování,

které jsem získal v rámci dosavadních pracovních zkušeností v oboru.

Page 63: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

7. SEZNAMY A PŘÍLOHY

7. Seznamy a přílohy

7.1 Seznam použité literatury

[1] ARLOW, Jim, NEUSTADT, Ila. UML 2 a unifikovaný proces vývoje aplikací :

Objektově orientovaná analýza a návrh prakticky. Brno : Computer Press, 2007.

568 s. ISBN 978-80-251-1503-9.

[2] BUCHALCEVOVÁ, Alena. Metodiky vývoje a údržby informačních systémů.

Praha : Grada Publishing, 2004. 164 s. ISBN 80-247-1075-7.

[3] BUCHALCEVOVÁ, Alena, STANOVSKÁ, Iva, ŠIMŮNEK, Milan. Základy

softwarového inženýrství : základní témata. 1. vyd. Praha : Oeconomica, 2002. 198

s. ISBN 80-245-0346-8.

[4] FIALA, Petr. Modely a metody rozhodování. 2. přeprac. vyd. Praha : Oeconomica,

2008. 292 s. ISBN 978-80-245-1345-4.

[5] KADLEC, Václav. Agilní programování : Metodiky efektivního vývoje softwaru.

Brno : Computer Press, 2004. 280 s. ISBN 80-251-0342-0.

[6] PALETA, Petr. Co programátory ve škole neučí : aneb Softwarové inženýrství v

reálné praxi. Brno : Computer Press, 2003. 360 s. ISBN 80-251-0073-1.

[7] PATTON, Ron. Testování softwaru. Praha : Computer Press, 2002. 328 s. ISBN 80-

7226-636-5.

[8] BUCHALCEVOVÁ, Alena. Metodiky budování IS/ICT. Praha : Vysoká škola

ekonomická, Katedra informačních technologií. 2004. [dokument ve formátu pdf].

Dostupný z WWW: <http://nb.vse.cz/~buchalc/metodiky.pdf >.

Page 64: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

7. SEZNAMY A PŘÍLOHY

64

[9] Rational Software - IBM Software Group. Essentials of Rational Unified Process.

Materiály školení Test Hatchery. Unicorn Education.

[10] Rational Software. Principles of Software Testing for Testers. 2002. Materiály

školení Test Hatchery. Unicorn Education.

[11] Objektová analýza, návrh a programování. Praha: Vysoká škola ekonomická,

Fakulta informatiky a statistiky. Luboš Pavlíček (správce webu). Poslední

aktualizace 21.6.2005. Dostupný z WWW: <http://objekty.vse.cz>.

[12] Profil společnosti [online]. Praha : Unicorn, c2008 [cit. 2008-08-11]. Dostupný z

WWW: <http://www.unicorn.eu/cz/ospolecnosti/profil.php>.

[13] HOUSER, Pavel. Rychle, levně, kvalitně? [online]. Computerworld, 2002 [cit.

2008-08-11]. Dostupný z WWW: <http://archiv.cw.cz/cwarchiv.nsf/clanky/

0DD84C87BE22BCB6C1256D1E003A3DE7?OpenDocument>.

Související zdroje

MCCARTHY, Jim. Softwarové projekty. Brno : Computer Press, 2000. 206 s.

ISBN 8072261940.

ROSENAU, Milton D. Řízení projektů . Brno : Computer Press , 2007. 344 s.

ISBN 978-80-251-1506-0.

SCHWALBE, Kathy. Řízení projektů v IT : Kompletní průvodce. Brno : Computer

Press, 2007. 720 s. ISBN 978-80-251-1526-8.

THIBODEAU, Patrick. Chyby v softwaru zatím nejsou minulostí. Computerworld

[online]. 11.3.2004. Dostupný z WWW: <http://computerworld.cz/cw.nsf/id/090B

A46ADD0842DAC1256E9400332DEA?OpenDocument&Highlight=0,>.

Page 65: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

7. SEZNAMY A PŘÍLOHY

65

7.2 Seznam obrázků

Obr.2.1. – Problémy při vývoji software ........................................................................13 Obr.2.2. – Základní příčiny problémů.............................................................................14 Obr.3.1. – Metodika RUP ...............................................................................................25 Obr.3.2. – Disciplíny metodiky RUP..............................................................................27 Obr.3.3. – Základní činnosti XP......................................................................................30 Obr.3.4. – Vývojové fáze v metodice FDD ....................................................................32 Obr.3.5. – Životní cyklus metodiky TDD.......................................................................34 Obr.4.1. – Vážená kriteriální matice ...............................................................................47 Obr.5.1. – Testovací cyklus.............................................................................................50 Obr.5.2. – Testovací scénář.............................................................................................52 Obr.5.3. – Životní cyklus chyby......................................................................................59 7.3 Seznam tabulek

Tab.3.1. – Porovnání agilních a rigorózních metodik.....................................................20 Tab.3.2. – Základní činnosti XP......................................................................................30 Tab.4.1. – Seznam kritérií a jejich hodnot ......................................................................40 Tab.4.2. – Hodnoty kritérií a jejich hodnocení metodiky RUP ......................................41 Tab.4.3. – Hodnoty kritérií a jejich hodnocení metodiky XP .........................................42 Tab.4.4. – Hodnoty kritérií a jejich hodnocení metodiky FDD ......................................42 Tab.4.5. – Hodnoty kritérií a jejich hodnocení metodiky TDD......................................43 Tab.4.6. – Stanovení vah pro kritéria..............................................................................46 Tab.4.7. – Kriteriální matice metody TOPSIS................................................................46 Tab.5.1. – Fáze testovacího cyklu...................................................................................49 Tab.7.1. – Kriteriální matice ...........................................................................................66 Tab.7.2. – Upravená matice č.1.......................................................................................66 Tab.7.3. – Upravená matice č.2.......................................................................................66 Tab.7.4. – Normalizovaná matice ...................................................................................66 Tab.7.5. – Vážená matice................................................................................................67 Tab.7.6. – Vzdálenost variant od ideální alternativy Di + ..............................................67 Tab.7.7. – Vzdáleností variant od ideální alternativy Di - ..............................................67 Tab.7.8. – Relativní ukazatel vzdálenosti .......................................................................67 Tab.7.9. – Výsledky optimalizační metody TOPSIS ......................................................67

Page 66: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

7. SEZNAMY A PŘÍLOHY

66

7.4 Přílohy

Metoda TOPSIS - výpočty

Tab.7.1. – Kriteriální matice

1 2 3 4 5 6

max max min max max max

RUP 4 7 8 9 8 8

XP 6 3 3 6 6 6

FDD 4 8 6 3 4 5

TDD 6 3 3 7 7 9

Tab.7.2. – Upravená matice č.1.

1 2 3 4 5 6

max max max max max max

RUP 4 7 0 9 8 8

XP 6 3 5 6 6 6

FDD 4 8 2 3 4 5

TDD 6 3 5 7 7 9

Tab.7.3. – Upravená matice č.2.

1 2 3 4 5 6

max max max max max max

RUP 16 49 0 81 64 64

XP 36 9 25 36 36 36

FDD 16 64 4 9 16 25

TDD 36 9 25 49 49 81

Suma 104 131 54 175 165 206

Odmocnina 10,198039 11,4455231 7,34846923 13,2287566 12,8452326 14,3527001

Tab.7.4. – Normalizovaná matice

1 2 3 4 5 6

max max max max max max

RUP 0,39223227 0,61159284 0 0,68033605 0,62279916 0,55738641

XP 0,58834841 0,26211122 0,68041382 0,45355737 0,46709937 0,41803981

FDD 0,39223227 0,69896325 0,27216553 0,22677868 0,31139958 0,34836651

TDD 0,58834841 0,26211122 0,68041382 0,52915026 0,54494926 0,62705971

Page 67: Srovnávací analýza metodik vývoje software - info.sks.czinfo.sks.cz/www/zavprace/soubory/54300.pdf · Prohlášení Prohlašuji, že jsem bakalá řskou práci na téma „Srovnávací

7. SEZNAMY A PŘÍLOHY

67

Tab.7.5. – Vážená matice

váhy 0,06 0,12 0,1 0,28 0,24 0,2 1 2 3 4 5 6

max max max max max max

RUP 0,02353394 0,07339114 0 0,19049409 0,1494718 0,11147728

XP 0,0353009 0,03145335 0,06804138 0,12699606 0,11210385 0,08360796

FDD 0,02353394 0,08387559 0,02721655 0,06349803 0,0747359 0,0696733

TDD 0,0353009 0,03145335 0,06804138 0,14816207 0,13078782 0,12541194

H 0,035 0,084 0,068 0,19 0,149 0,125

D 0,024 0,031 0 0,063 0,075 0,07

Tab.7.6. – Vzdálenost variant od ideální alternativy Di +

1 2 3 4 5 6

max max max max max max

RUP 0 0 0,005 0 0 0

XP 0 0,003 0 0,004 0,001 0,002

FDD 0 0 0,002 0,016 0,006 0,003

TDD 0 0,003 0 0,002 0 0

Tab.7.7. – Vzdáleností variant od ideální alternativy Di -

1 2 3 4 5 6

max max max max max max

RUP 0 0,002 0 0,016 0,006 0,002

XP 0 0 0,005 0,004 0,001 0

FDD 0 0,003 0,001 0 0 0

TDD 0 0 0,005 0,007 0,003 0,003

Tab.7.8. – Relativní ukazatel vzdálenosti

Suma Di + Di + Suma Di - Di - Ci RUP 0,00507 0,07121931 0,02522 0,15880745 0,69 XP 0,00992 0,09961942 0,01039 0,10193444 0,506 FDD 0,02663 0,16317285 0,00349 0,05906634 0,266 TDD 0,00489 0,06992269 0,01818 0,13485068 0,659 Tab.7.9. – Výsledky optimalizační metody TOPSIS

Metodiky Výsledky Po řadí RUP 0,69 1 XP 0,506 3

FDD 0,266 4 TDD 0,659 2


Recommended