Manažment softvérového produktu
Obsah
- 1 Manažment softvérového produktu
- 2 Inicializácia projektu
- 3 Plánovanie projektu
- 3.1 Obsah plánu
- 3.2 Organizácia projektu
- 3.3 Work Breakdown Structure
- 3.4 Product Breakdown Structure
- 3.5 Časové plánovanie projektu
- 3.6 Koncepcie odhadovania trvania aktivít
- 3.7 Plánovanie zdrojov
- 3.8 Rozdelenie podľa dĺžky plánovania
- 3.9 Riadenie projektu
- 3.10 Vykonávanie projektu
- 3.11 Ukončenie projektu
- 4 Zabezpečenie kvality softvéru
Manažment softvérového produktu
V procese vývoja SW je SW chápaný ako SW projekt. Jeho cieľom je vyvinúť výsledný produkt.
Obmedzenia projektu:
- Kvalita
- Čas
- Zdroje
Na riadenie (manažovanie projektu) je potrebné
- Jasne stanoviť termíny zažatia a ukončenia
- Definovať ciele a obmedzenia
- Stanoviť zodpovednosti, rozpočet a časový plán
V rámci projektu môžeme identifikovať aktivity:
- Inicializácia
- Plánovanie
- Riadenie
- Vykonávanie
- Ukončenie
Inicializácia projektu
Spúšťač: požiadavka trhu alebo zákazníka
Trvanie: niekoľko dní až mesiacov (závisí od veľkosti projektu)
Hlavný cieľ:: zhromaždenie a triedenie informácií potrebných na nasledujúcu fázu (plánovanie)
Hlavný výstup: iniciačný dokument projektu
- Dôvody prečo sa projekt bude realizovať
- Aké sú ciele projektu
- Aké budú jeho prínosy
- Aké sú možné riziká
- Odhad nákladov a časového plánu
- Stanovenie organizačnej štruktúry a zodpovednosti
- Štandardy riadenia kvality
Plánovanie projektu
Hlavný cieľ: tvorba plánu projektu
Obsah plánu
- Plány činností
- Fázy a úlohy projektu a ich nadväznosť. Určuje sa zodpovednosť za vykonanie, kontrolu a nápravu týchto fáz
- Časový plán
- Termíny, časová postupnosť fáz, kontrolné body
- Plán zdrojov
- Požiadavky na zdroje (financie, čas)
- Plán rizík
- Riziká, ktoré môžu nastať a spôsoby ako im predchádzať
- Plán kvality
- Kvalitatívne požiadavky, nástroje ako ich dosiahnuť
Organizácia projektu
- Rozdelenie projektu na menšie časti, ktoré sa dajú ľahšie naplánovať a riadiť.
- Organizácia projektu
- Orientovaný na aktivity (Work Breakdown Structure – WBS)
- Používa sa, ak je výstupom služba
- Orientovaný na produkty (Product Breakdown Structure – PBS)
- Používa sa, ak je výstupom produkt
- Orientovaný na aktivity (Work Breakdown Structure – WBS)
Work Breakdown Structure
Štruktúra diagramu WBS môže obsahovať produkty, údaje a služby
1 Banquet(Banket)
1.1 Planning&Supervision (Plánovanie a riadenie)
1.1.1 Planning (Plánovanie)
1.1.2 Budget (Rozpočet)
1.1.3 Coordination (Koordinácia)
1.2 Dinner (Večera)
1.2.1 Menu (Menu)
1.2.2 Cooking (Varenie)
1.2.3 Serving (Podávanie)
1.3 Room&Equipment (Miestnosť a vybavenie)
1.3.1 Site/Room (Miesto/Miestnosť)
1.3.2 Tables (Stoly)
1.3.3 Decorations (Dekorácie)
1.4 ...
Product Breakdown Structure
PBS je nástroj používaný na čo najdetailnejšie plánovanie a stanovanie požiadaviek na projekt
PBS of a computer
- Main unit
- Housing
- Motherboard
- CPU
- RAM chips
- ...
- FDD
- HDD
- Video card
- Sound card
- Network card
- LPT port card
- Monitor
- CRT
- Housing
- Electronic components
- Mouse
- Body
- Marble
- Cable
- Keyboard
Časové plánovanie projektu
- Odhad trvania aktivít
- Identifikácia precedenčných vzťahov medzi aktivitami
- Identifikácia obmedzení spôsobených dostupnosťou zdrojov, rozpočtu a termínov
- Termínové plánovanie
- Optimalizácia projektu
- Nástroje: míľniky projektu, Gantove diagramy
- Aktivity pri vypracovávaní časového plánu
- Identifikovanie aktivít
- Odhad pracnosti alebo dĺžky trvania
- Určenie závislostí medzi aktivitami
- Prideľovanie zdrojov
- Techniky časového plánovania:
- CPM – Critical Path Method: metóda kritickej cesty
- PERT – Project Evaluation and Review Technique: štatistická metóda
Koncepcie odhadovania trvania aktivít
- Zhora nadol
- Odhadne sa celková dĺžka trvania projektu
- Zdola nahor
- Odhadne sa dĺžka trvania každej úlohy
Plánovanie zdrojov
- Nástroj plánovania zdrojov: rozpočet
- Rozpočet obsahuje: výdavky, zisky
Rozdelenie podľa dĺžky plánovania
- Dlhodobý rozpočet (strategický)
- Doba trvania: od mesiacov po niekoľko rokov. Je obnovovaný 1×ročne.
- Strednodobý rozpočet (taktický)
- Doba trvania: od 12 do 24 mesiacov. Je obnovovaný kvartálne.
Riadenie projektu
- Cieľ riadenia: prijímanie takých krokov, ktoré budú predchádzať rizikám projektu.
- Pri riadení je dôležitý zber relevantných informácií o
- Plnení termínov
- Vykonávaných prácach
- Medziproduktoch
- Čerpaní zdrojov
- Krátkodobý rozpočet (operačný)
- Doba trvania: max. 1 rok.
- Meranie výkonov – nástroj pre riadenie projektu.
- Metrika – nástroj merania výkonov. Metriky poznáme
- Priame meranie hodnoty sledovaného atribútu (počet riadkov kódu)
- Nepriame – odvodenie hodnoty atribútu na základe iných hodnôt (napr. funkcionalita)
- Iné rozdelenie metrík
- Objemové metriky – priamo merateľné
- Funkčné metriky – nepriame, napr. metóda funkčných bodov
- Metriky pre zdroje – priame aj nepriame, napríklad produktivita tímu, kapacita pamäte, ...
Vykonávanie projektu
- Časovo najdlhšie obdobie trvania projektu
- Zodpovední pracovníci riadia vykonávanie aktivít:
- Prideľovanie úloh
- Stanovanie priorít
- Definovanie právomocí
- Sledovanie prác a postupu projektu
- Rozhodovanie o prideľovaní zdrojov, ...
Ukončenie projektu
- Posledná fáza projektu
- Zhodnotenie projektu
- Zhodnotenie splnenia cieľov
- Prínosy pre organizáciu
- Ukončia sa zmluvy so subdodávateľmi
- Zhodnotenie projektu
Zabezpečenie kvality softvéru
- Software Quality Assurance (SQA)
- Súbor aktivít, ktorých cieľom je tvorba kvalitného SW produktu alebo SW služby
- Kvalita:
- Celkový súhrn znakov entity, ktoré ovplyvňujú schopnosť uspokojovať stanovené a predpokladané potreby [ISO 8402]
- Je schopnosť množiny vlastných charakteristík produktu, systému alebo procesu spĺňať požiadavky zákazníkov a ďalších zainteresovaných strán [ISO 9001]
- Postuláty o kvalite
- Kvalita nie je absolútna
- Kvalita je viacrozmerná
- Kvalita je vecou obmedzení
- Kvalita je o akceptovateľných kompromisoch
- Kritériá kvality nie sú nezávislé
- Koncepcie prístupu ku kvalite softvéru
- Statická kvalita SW produktu
- Dynamická kvalita SW procesov
Statická kvalita softvéru
Norma: ISO/IEC 9126-1:1991
Norma definuje model kvality softvéru:
- Funkčnosť (functionality)
- Bezporuchovosť (reliability)
- Použiteľnosť (usability)
- Účinnosť (effeciency)
- Udržiavateľnosť (mainability)
- Prenositeľnosť (portability)
1. Funkčnosť – schopnosť plniť určité ciele
- Vhodnosť
- Vhodnosť funkcií pre dané úlohy
- Presnosť
- Stupeň priblíženia sa výsledkov k požiadavkám
- Spolupráca
- Schopnosť spolupracovať s inými systémami
- Zabezpečenie
- Schopnosť zabraňovať nežiaducemu využitiu
- Zhoda
- Stupeň rešpektovania noriem a predpisov
2. Bezporuchovosť – schopnosť udržať si úroveň výkonu
- Zrelosť
- Stabilizovaná pravdepodobnosť vzniku porúch
- Chybová odolnosť
- Schopnosť udržať úroveň výkonu aj pri výskyte chýb
- Obnoviteľnosť
- Schopnosť obnoviť údaje a funkcie v minimálnom čase
3. Použiteľnosť – vyjadrenie úsilia, ktoré potrebuje užívateľ na používanie produktu
- Zrozumiteľnosť
- Jasnosť, prehľadnosť, názornosť
- Zvládnuteľnosť
- Náročnosť na osvojenie používateľom
- Prevádzková spôsobilosť
- Časová, odborná a manipulačná náročnosť
4. Účinnosť – Vzťah medzi úrovňou výkonu a použitými zdrojmi
- Využitie v čase
- Doba odozvy
- Využitie zdrojov
- Množstvo a čas použitia zdrojov
5. Udržiavateľnosť – vyjadrenie úsilia, ktoré je potrebné pre vykonanie modifikácií
- Analyzovateľnosť
- Schopnosť diagnostikovať a lokalizovať poruchy
- Zmeniteľnosť
- Možnosť vykonávať modifikácie
- Stabilita
- Nízka úroveň vedľajších efektov po modifikácii
- Testovateľnosť
- Možnosť kontroly správnosti funkcií
6. Prenositeľnosť – Schopnosť programu byť prenesený z jedného prostredia do iného
- Adaptibilita
- Schopnosť rozvinutia svojich funkcií v inom prostredí
- Inštalovateľnosť
- Náročnosť na čas a prostriedky pri inštalácii
- Prispôsobivosť
- Súlad s normami a konvenciami vzhľadom na prenositeľnosť
- Nahraditeľnosť
- Schopnosť nahradiť iné programové vybavenie
Dynamická kvalita softvéru
- Hlavná myšlienka: kvalitný produkt je výsledkom kvalitného procesu, ktorým tento produkt vzniká
- Aby bol proces kvalitný, treba ho riadiť.
- Základná jednotka riadenia procesov:
- Hodnotenie procesov (process assessment)
- Charakteristiky štandardného procesu:
- Explicitne zadefinovaný
- Jednoducho kontrolovateľný a modifikovateľný
- Efektívny
- Mal by pozitívne vplývať na kvalitu výstupov
Norma ISO 9000-3:1997
- Príručka pre aplikovanie ISO 9001 pri vývoji, dodávke, inštalácii a dodávke počítačového softvéru.
- Z obsahu:
- (4.1) Zodpovednosť manažmentu
- (4.2) Systémy kvality
- (4.3) Riadenie kontraktu
- (4.4) Riadenie fázy návrhu
- (4.5) Riadenie dokumentov a dát
- (4.6) Nadobúdanie
- (4.7) Riadenie produktu dodaného zákazníkom)
- (4.8) Označovanie produktov
- (4.9) Riadenie procesov
- (4.10) Kontrola a testovanie
- (4.11) Kontrola prostriedkov kontroly, merania a testovania
- (4.12) Stav kontroly a testovania
- (4.13) Riadenie nezhodného produktu
- (4.14) Opravné a preventívne opatrenia
- (4.15) Manipulácia, skladovanie, balenie, ochrana a dodávka
- (4.16) Riadenie záznamov kvality
- (4.17) Interné audity kvality
- (4.18) Školenie
- (4.19) Servis
- (4.20) Štatistické metódy
Verifikácia a validácia softvéru
- Cieľ verifikácie a validácie:
- Odhaľovanie chýb v softvéri
- Softvérová chyba:
- SW nerobí to, čo by mal robiť
- SW robí to, čo by podľa špecifikácie robiť nemal
- SW robí niečo, čo nie je uvedené v špecifikácii
- SW nerobí to, čo nie je uvedené v špecifikácii ale malo to tam byť uvedené
- SW nie je „user-friendly“
- Verifikácia:
- Proces, ktorého cieľom je potvrdiť, že SW vyhovuje špecifikácii
- Validácia:
- Proces, ktorého cieľom je potvrdiť, že SW vyhovuje požiadavkám používateľa
Verifikácia - testovanie softvéru
Axiómy testovania SW:
1. Žiadny program nie je možné otestovať kompletne
- Počet možných vstupov SW je príliš veľký
- Počet možných výstupov SW je príliš veľký
- Počet možných ciest, ktoré vedú naprieč SW je príliš veľký
- Špecifikácia SW je príliš subjektívna
2. Testovanie SW je postavené na riziku
- Nie je možné otestovať všetky prípady, preto je potrebné nájsť optimálnu hladinu testovania
3. Testovanie nemôže nikdy preukázať, že chyby neexistujú
4. Čím viac chýb sa nájde, tým viac ich v SW je
- Tester dlho nenájde žiadnu chybu, ak však nájde jednu, potom nachádza ďalšie
5. Paradox pesticídov
- Čím viac sa testuje daný SW určitým spôsobom, tým viac sa stáva voči rovnakému testovaniu imúnny
- Obranou je meniť testovacie postupy
6. Nie všetky nájdené chyby sa opravia
- Nie je dostatok času
- V skutočnosti to nie je chyba
- Oprava je príliš riskantná
- Oprava nestojí za to
7. Je ťažké povedať, kedy je chyba chybou
- Keď chybu nespozoruje programátor, tester ani užívateľ, je to chyba?
8. Špecifikácia SW produktu nie je nikdy konečná
Typy testovania
- Čierna skrinka
- Tester pozná len funkciu SW, nepozná je ho vnútornú štruktúru
- Biela skrinka
- Tester má prístup k zdrojovým kódom SW
Druhy testovania
- Testovanie funkcií a modulov
- Vykonávané prevažne vývojármi priamo po fáze implementácie
- Integračné testovanie
- Vlastné testovanie viacerých modulov súčasne
- Nezávislé testovania
- Vykonávané nezávislými externými skupinami
- Inštalačné testovania
- Pri prvej inštalácii na OS
- Alfa a beta testovanie
- Testovanie v reálnom prostredí bez reálnych dát (alfa) alebo s reálnymi dátami (beta)
- Preberacie testovanie
- Posledné testovanie projektu. Po ňom nasleduje prebratie produktu