Proces vývoja softvéru

Z Kiwiki
Verzia z 21:32, 15. február 2011, ktorú vytvoril Vladimir (diskusia | príspevky)
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.

CAQ - Ing. Juraj Ďuďák, PhD.

  1. Úvod
  2. Čo je CAQ
  3. Prehľad CAX nástrojov
  4. Softvérové inžinierstvo alebo ako sa rodí softvér
  5. Ako sa rodí softvér:
    1. Model Programuj a oprav
    2. Kaskádový model
    3. V-model
    4. Špirálový model
    5. Koľko to stojí a kedy to bude
  6. Špecifikácia požiadaviek:
    1. Chceme mať softvér?
    2. A ako na to?
    3. Máme na to?
    4. Chceme to takto!
    5. A bude to takto!
  7. IEEE 830-1998
  8. Máme softvér!
    1. Čo ďalej?
    2. Budeme ho distribuovať?
  9. Slobodný softvér je lepší!
  10. Open source v praxi

1. Úvod

Ukončenie: klasifikovaný zápočet

Obsah predmetu

  • Základy softvérového inžinierstva
  • Manažérske informačné systémy
  • Nástroje použiteľné v CAQ
  • Expertné systémy


2. Čo je CAQ?

Neviem pretože:

  • Kvalita musí byť podporovaná ľuďmi
  • Rozhodovanie manažéra môže uľahčiť informačný systém (nie počítač)
  • Nevie to ani Google

3. Prehľad CAX nástrojov

  • CAE - Computer-aided engineering
  • CAD - computer-aided design
  • CAA - computer-aided analysis
  • CAM - computer-aided manufacturing
  • CAP - computer-aided planning

4. Softvérové inžinierstvo alebo ako sa rodí softvér

Životný cyklus softvéru:

  • Postupnosť fáz, ktorým softvér počas procesu vývoja prechádza.

Základné fázy vývoja:

  • Plánovanie
  • Analýza
  • Návrh
  • Implementácia
  • Testovanie
  • Údržba

5. Ako sa rodí softvér

5.1 Model Programuj a oprav

  • Naturalistický model
  • Vhodný len pre veľmi malé projekty

Obr 01.jpg

5.2 Kaskádový model

Sekvenčná postupnosť fáz

Každá fáza má fázové kroky:

  • Plánovanie fázy (zjemnenie rámcového plánu)
  • Realizácia (vývoj čiastkového produktu)
  • Preskúšanie (kontrola kvality)

5.3 Kaskádový model

Klady:

  • Jednoduchosť a systematickosť pri postupe vývojom
  • Ideálne riadenie, pretože každá fáza je diskrétna
  • Každá fáza vyžaduje kompletnú dokumentáciu

Zápory:

  • Malá flexibilita vo vývoji produktu
  • Testovanie je až na konci životného cyklu

5.4 V-model

  • Model procesov životného cyklu softvéru
  • Metódy, ktoré sa majú pri vývoji použiť
  • Funkčné požiadavky na nástroje

Obr 02.jpg

Analýza a špecifikácia požiadaviek

  • Definícia a špecifikácia požiadaviek
  • Štúdia realizovateľnosti
  • Neuvažuje sa nad spôsobom vykonanie požiadaviek

Architektonický návrh

  • Celková koncepcia architektúry SW
  • Definícia funkcionality softvéru
  • Plán nasadenia SW

Podrobný návrh

  • Návrh komponentov systému
  • Špecifikácia ošetrenia chybových stavov

Implementácia

  • Kódovanie komponentov
  • Dokumentácie komponentov
  • Testovanie komponentov

Integrácia a testovanie

  • Integrovanie komponentov do modulov
  • Testovanie modulov a celého systému

Akceptačné testovanie a inštalácia

  • Testovanie SQ používateľom
  • Školenie používateľov
  • Nasadenie SW



CAQ - Juraj Ďuďák

5.5 Špirálový model

Závit špirály

  • 1 cyklus vývoja

Obr 03.jpg


Každá iterácia

1.Určenie cieľov, alternatív 2.Rozpoznanie a riešenie rizík 3.Vyhodnotenie alternatív 4.Vývoj a testovanie aktuálnej úrovne 5.Plánovanie ďalšej fázy 6.revízia

5.6 koľko to stojí a kedy to bude

Obr 04.jpg

6 Špecifikácia požiadaviek

6.1 Chceme mať softvér

Požiadavky:

  • Vlastnosti softvéru, ktoré požaduje používateľ alebo zákazník za účelom dosiahnutia určitého cieľa

Obr 05.jpg


Účastníci procesu:

  • Používateľ (zákazník)
  • Analytik

Skúsenosť z praxe: Zákazník nikdy nevie čo chce!!!

Metódy procesu

  • Rozhovor so zákazníkom
  • Dotazníky
  • Monitorovanie pracovných postupov zákazníka
  • Priama účasť na prácach zákazníka
  • Analýza existujúceho softvéru
  • Štúdium dokumentov a štandardov

Najviac informácií sa analytik dozvie z rozhovoru

Obr 06.jpg

Čo je dôležité:

  • Analytik musí mať pripravený scenár rozhovoru
  • Vytvoriť záznam (správu) z rozhovoru

Typy požiadaviek:

  • Funkčné
    • Určujú chovanie, funkcie softvéru
  • Nefunkčné
  • Špecifikujú vlastnosti a obmedzujúce podmienky daného softvéru
    • Požiadavky na prevádzku systému (počet používateľov, ...)
    • Požiadavky na softvér (efektívnosť, bezpečnosť, hardvérové prostredie, OS, iný spolupracujúci SW)
    • Externé požiadavky (legislatívne, etické požiadavky)

6.2 A ako na to?

Proces analýzy a špecifikácie požiadaviek:

  • Štúdia realizovateľnosti
  • Analýza požiadaviek
  • Definícia požiadaviek
  • Špecifikácia požiadaviek

Obr 07.jpg

6.3 Máme na to?

Štúdia realizovateľnosti je odhad, či je softvér realizovateľný:

  • v danom čase
  • So stanovenými zdrojmi

Hlavné body v štúdie realizovateľnosti:

  • Ako prispeje SW k obchodným cieľom organizácie ?
  • Je možné integrovať SQ k existujúcim riešeniam ?
  • Je potrebný nový HW, poprípade nový SW ?
  • Dá sa realizovať s danými zdrojmi a v danom čase?

Analýza požiadaviek

Obr 08.jpg

6.4 Chceme to takto!

  • Definícia požiadaviek
  • Úlohou je neformálne stanoviť všetky požiadavky na služby a vlastnosti SW:
    • Na čo bude SW slúžiť
    • Aké informácie sa budú uchovávať
    • Kto ho bude používať
    • Aké funkcie, operácie bude zabezpečovať
    • Aké sú vstupy a výstupy
    • Aké sú interakcie s inými systémami.

6.5 A bude to takto!

  • Špecifikácia požiadaviek
    • IEEE 830-1998 Recommended Practice for Software Requirements Specifications
  • Hlavný výstup: dokument špecifikácie požiadaviek.
  • Možnosti tvorby tohto dokumentu
    • Prirodzený jazyk
    • Formuláre
    • Prípady použitia
    • Pseudokódy, scenáre, ...

IEEE 830-1998

Obsah 1 Úvod 1.1 Cieľ 1.2 Účel systému 1.3 Definície, skratky a akronymy 1.4 Referencie 1.5 Prehľad dokumentu 2 Všeobecný popis 2.1 Kontext produktu 2.2 Funkcie produktu 2.3 Profil užívateľov 2.4 Obmedzenia 2.5 Predpoklady a závislosti 3 Špecifikácia požiadaviek Externé prostredie, funkcie (vstupy, výstupy, účel, reakciu pri chybách),nefunkčné požiadavky, požiadavky na databázové údaje, obmedzenia návrhu, požiadavky na zhodu so štandardami, kvalitatívne požiadavky,... 4 Doplňujúce informácie Prílohy, Register,

7 Máme softvér!

7.1 Čo ďalej?

  • Ako SW licencovať?
  • Licencie:
    • Proprietárne
    • Slobodné

7.2 Budeme ho distribuovať?

  • Licencie typu closed source / proprietárne licencie
    • Licencie tohto typu dávajú používateľovi najmenšiu slobodu
  • Typy proprietarnych licencií:
    • Bezplatná licencia, closed source
      • Free Solaris Binary License
    • Platená licencia, pozerateľný zdrojový kód
      • "Shared Source" Microsoft-u
    • Platená licencia, closed source
      • EULA Microsoft Windows-u
  • Licencie typu open source
  • GNU/GPL
  • BSD
  • Mozilla Public License
  • Common Development and Distribution License
  • Creative Commons
  • WTFPL – (Do What The Fuck You Want To Public License)

8 Slobodný softvér je lepší!

Slobodný softvér dáva užívateľom slobodu spúšťať, kopírovať, distribuovať, študovať, meniť a zlepšovať ho.

Úrovne slobody:

  • sloboda 0 - Sloboda spustiť program za akýmkoľvek účelom
  • sloboda 1 - Sloboda študovať, ako program pracuje a prispôsobiť ho svojim potrebám
  • sloboda 2 - Sloboda redistribuovať kópie, aby ste pomohli vášmu kolegovi
  • sloboda 3 - Sloboda vylepšovať program a zverejňovať zlepšenie, aby z nich mohla mať prospech celá komunita

==9 Open source v praxi

Obr 09.jpg