Manažment softvérového produktu

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Imbox draft.png
Toto je projekt, na ktorom sa ešte stále pracuje!!

Aj keď sú v tomto dokumente použiteľné informácie, ešte nie je dokončený. Svoje návrhy môžete vyjadriť v diskusii o tejto stránke.

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

Work Breakdown Structure

Štruktúra diagramu WBS môže obsahovať produkty, údaje a služby

Diagram WBS.jpg

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

Diagram PBS.jpg

Č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

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