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
 
 

