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

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
 
(3 medziľahlé úpravy od rovnakého používateľa nie sú zobrazené.)
Riadok 2: Riadok 2:
 
{{CAQ_navigacia}}
 
{{CAQ_navigacia}}
  
==CAQ - Ing. Juraj Ďuďák, PhD.==
+
== Úvod ==
 
 
#Ú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'''  
 
'''Ukončenie: klasifikovaný zápočet'''  
Riadok 38: Riadok 13:
 
*Expertné systémy  
 
*Expertné systémy  
  
 
+
==Softvérové inžinierstvo alebo ako sa rodí softvér==
== 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:'''  
 
'''Životný cyklus softvéru:'''  
Riadok 66: Riadok 25:
 
*Údržba  
 
*Údržba  
  
==5. Ako sa rodí softvér==
+
==Ako sa rodí softvér==
  
==5.1 Model Programuj a oprav==
+
===Model Programuj a oprav===
  
 
*Naturalistický model  
 
*Naturalistický model  
 
*Vhodný len pre veľmi malé projekty  
 
*Vhodný len pre veľmi malé projekty  
  
[[Súbor:Obr_01.jpg]]
+
[[Súbor:Obr_01.jpg|thumb|center|600px|Model programuj a oprav]]
  
==5.2 Kaskádový model==
+
=== Kaskádový model===
  
 
'''Sekvenčná postupnosť fáz'''  
 
'''Sekvenčná postupnosť fáz'''  
Riadok 84: Riadok 43:
 
*Preskúšanie (kontrola kvality)  
 
*Preskúšanie (kontrola kvality)  
  
==5.3 Kaskádový model==
+
=== Kaskádový model===
  
 
'''Klady:'''  
 
'''Klady:'''  
Riadok 97: Riadok 56:
 
*Testovanie je až na konci životného cyklu  
 
*Testovanie je až na konci životného cyklu  
  
==5.4 V-model==  
+
=== V-model===  
  
 
*Model procesov životného cyklu softvéru  
 
*Model procesov životného cyklu softvéru  
Riadok 103: Riadok 62:
 
*Funkčné požiadavky na nástroje  
 
*Funkčné požiadavky na nástroje  
  
[[Súbor:Obr_02.jpg]]
+
[[Súbor:Obr_02.jpg|thumb|center|400px|V-Model]]
  
 
'''Analýza a špecifikácia požiadaviek'''  
 
'''Analýza a špecifikácia požiadaviek'''  
Riadok 139: Riadok 98:
 
*Nasadenie SW  
 
*Nasadenie SW  
  
 
+
=== Špirálový model===
 
 
 
 
CAQ - Juraj Ďuďák
 
 
 
==5.5 Špirálový model==
 
  
 
Závit špirály  
 
Závit špirály  
Riadok 150: Riadok 104:
 
*1 cyklus vývoja  
 
*1 cyklus vývoja  
  
[[Súbor:Obr_03.jpg]]
+
[[Súbor:Obr_03.jpg|thumb|center|600px|Špirálový model vývoja softvéru]]
  
  
Riadok 162: Riadok 116:
 
6.revízia  
 
6.revízia  
  
==5.6 koľko to stojí a kedy to bude==  
+
=== Koľko to stojí a kedy to bude===  
  
[[Súbor:Obr_04.jpg]]
+
[[Súbor:Obr_04.jpg|thumb|center|600px|Prístupy pri vývoji softvéru]]
  
==6 Špecifikácia požiadaviek==  
+
== Špecifikácia požiadaviek==  
  
==6.1 Chceme mať softvér==
+
=== Chceme mať softvér===
  
 
'''Požiadavky:'''  
 
'''Požiadavky:'''  
Riadok 174: Riadok 128:
 
*Vlastnosti softvéru, ktoré požaduje používateľ alebo zákazník za účelom dosiahnutia určitého cieľa   
 
*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]]
+
[[Súbor:Obr_05.jpg|thumb|center|400px|Príčiny vzniku chýb pri vývoji softvéru]]
  
  
Riadok 195: Riadok 149:
 
'''Najviac informácií sa analytik dozvie z rozhovoru'''   
 
'''Najviac informácií sa analytik dozvie z rozhovoru'''   
  
[[Súbor:Obr_06.jpg]]
+
[[Súbor:Obr_06.jpg|thumb|center|600px]]
  
 
Čo je dôležité:   
 
Čo je dôležité:   
Riadok 213: Riadok 167:
 
**Externé požiadavky (legislatívne, etické požiadavky)   
 
**Externé požiadavky (legislatívne, etické požiadavky)   
  
==6.2 A ako na to?==  
+
===A ako na to?===  
  
 
'''Proces analýzy a špecifikácie požiadaviek:'''  
 
'''Proces analýzy a špecifikácie požiadaviek:'''  
Riadok 222: Riadok 176:
 
*Špecifikácia požiadaviek  
 
*Špecifikácia požiadaviek  
  
[[Súbor:Obr_07.jpg]]
+
[[Súbor:Obr_07.jpg|thumb|center|600px|Proces analýzy a špecifikácie požiadaviek]]
  
==6.3 Máme na to?==
+
===Máme na to?===
  
 
'''Štúdia realizovateľnosti je odhad, či je softvér realizovateľný:'''  
 
'''Štúdia realizovateľnosti je odhad, či je softvér realizovateľný:'''  
Riadok 240: Riadok 194:
 
'''Analýza požiadaviek'''  
 
'''Analýza požiadaviek'''  
  
[[Súbor:Obr_08.jpg]]
+
[[Súbor:Obr_08.jpg|thumb|center|400px|Analýza požidaviek]]
  
==6.4 Chceme to takto!==
+
===Chceme to takto!===
  
 
*Definícia požiadaviek  
 
*Definícia požiadaviek  
Riadok 254: Riadok 208:
 
**Aké sú interakcie s inými systémami.  
 
**Aké sú interakcie s inými systémami.  
  
==6.5 A bude to takto!==
+
=== A bude to takto!===
  
 
*'''Špecifikácia požiadaviek'''  
 
*'''Špecifikácia požiadaviek'''  
Riadok 266: Riadok 220:
  
 
'''IEEE 830-1998'''
 
'''IEEE 830-1998'''
 
+
<div style="border:1px solid black">
 
Obsah
 
Obsah
1 Úvod
+
# Úvod
1.1 Cieľ
+
## Cieľ
1.2 Účel systému
+
## Účel systému
1.3 Definície, skratky a akronymy
+
## Definície, skratky a akronymy
1.4 Referencie
+
## Referencie
1.5 Prehľad dokumentu
+
## Prehľad dokumentu
2 Všeobecný popis
+
# Všeobecný popis
2.1 Kontext produktu
+
## Kontext produktu
2.2 Funkcie produktu
+
## Funkcie produktu
2.3 Profil užívateľov
+
## Profil užívateľov
2.4 Obmedzenia
+
## Obmedzenia
2.5 Predpoklady a závislosti
+
## Predpoklady a závislosti
3 Špecifikácia požiadaviek
+
# Š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,...
+
## 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
+
# Doplňujúce informácie
Prílohy, Register,
+
##Prílohy, Register,
 +
</div>
  
==7 Máme softvér!==
+
==Máme softvér!==
  
==7.1 Čo ďalej?==  
+
=== Čo ďalej?===  
  
 
*Ako SW licencovať?  
 
*Ako SW licencovať?  
Riadok 294: Riadok 249:
 
**Slobodné  
 
**Slobodné  
  
==7.2 Budeme ho distribuovať?==  
+
=== Budeme ho distribuovať?===  
  
 
*Licencie typu closed source / proprietárne licencie  
 
*Licencie typu closed source / proprietárne licencie  
Riadok 313: Riadok 268:
 
*Common Development and Distribution License  
 
*Common Development and Distribution License  
 
*Creative Commons  
 
*Creative Commons  
*WTFPL – (Do What The Fuck You Want To Public License)  
+
*WTFPL – (Do What The Xxxx You Want To Public License)  
  
==8 Slobodný softvér je lepší!==
+
==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.
 
Slobodný softvér dáva užívateľom slobodu spúšťať, kopírovať, distribuovať, študovať, meniť a zlepšovať ho.
Riadok 325: Riadok 280:
 
*sloboda 3 - Sloboda vylepšovať program a zverejňovať zlepšenie, aby z nich mohla mať prospech celá komunita   
 
*sloboda 3 - Sloboda vylepšovať program a zverejňovať zlepšenie, aby z nich mohla mať prospech celá komunita   
  
==9 Open source v praxi  
+
==Open source v praxi==
 +
 
 +
[[Súbor:Obr_09.jpg|thumb|center|400px|Open source a kiwiki]]
  
[[Súbor:Obr_09.jpg]]
+
==Zdroje a odkazy==
 +
# Jedlička M.: Softvérové inžinierstvo, skriptá, EPI s.r.o., 2006

Aktuálna revízia z 09:29, 16. 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.

Ú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

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

Ako sa rodí softvér

Model Programuj a oprav

  • Naturalistický model
  • Vhodný len pre veľmi malé projekty
Model programuj a oprav

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)

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

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
V-Model

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

Špirálový model

Závit špirály

  • 1 cyklus vývoja
Špirálový model vývoja softvéru


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

Koľko to stojí a kedy to bude

Prístupy pri vývoji softvéru

Špecifikácia požiadaviek

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
Príčiny vzniku chýb pri vývoji softvéru


Úč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)

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
Proces analýzy a špecifikácie požiadaviek

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

Analýza požidaviek

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.

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. Cieľ
    2. Účel systému
    3. Definície, skratky a akronymy
    4. Referencie
    5. Prehľad dokumentu
  2. Všeobecný popis
    1. Kontext produktu
    2. Funkcie produktu
    3. Profil užívateľov
    4. Obmedzenia
    5. Predpoklady a závislosti
  3. Špecifikácia požiadaviek
    1. 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
    1. Prílohy, Register,

Máme softvér!

Čo ďalej?

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

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 Xxxx You Want To Public License)

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

Open source v praxi

Open source a kiwiki

Zdroje a odkazy

  1. Jedlička M.: Softvérové inžinierstvo, skriptá, EPI s.r.o., 2006