Proces vývoja softvéru: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
(Vytvorená stránka „{{Draft}} {{CAQ_navigacia}} ... obsah prvej prednášky...“)
 
Riadok 2: Riadok 2:
 
{{CAQ_navigacia}}
 
{{CAQ_navigacia}}
  
... obsah prvej prednášky...
+
==CAQ - Ing. Juraj Ďuďák, PhD.==
 +
 
 +
#Úvod
 +
#Čo je CAQ
 +
#Prehľad CAX nástrojov
 +
#Softvérové inžinierstvo alebo ako sa rodí softvér
 +
#Ako sa rodí softvér:
 +
##Model Programuj a oprav
 +
##Kaskádový model
 +
##V-model
 +
##Špirálový model
 +
##Koľko to stojí a kedy to bude
 +
#Špecifikácia požiadaviek:
 +
##Chceme mať softvér?
 +
##A ako na to?
 +
##Máme na to?
 +
##Chceme to takto!
 +
##A bude to takto!
 +
#IEEE 830-1998
 +
#Máme softvér!
 +
##Čo ďalej?
 +
##Budeme ho distribuovať?
 +
#Slobodný softvér je lepší!
 +
#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
 +
 
 +
[[Súbor: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
 +
 
 +
[[Súbor: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
 +
 
 +
[[Súbor: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==
 +
 
 +
[[Súbor: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 
 +
 
 +
[[Súbor: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''' 
 +
 
 +
[[Súbor: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
 +
 
 +
[[Súbor: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'''
 +
 
 +
[[Súbor: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
 +
 
 +
[[Súbor:Obr_09.jpg]]

Verzia zo dňa a času 21:32, 15. február 2011

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