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

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Riadok 2: Riadok 2:
 
{{CAQ_navigacia}}
 
{{CAQ_navigacia}}
  
== 1. Úvod ==
+
== Úvod ==
 
   
 
   
 
'''Ukončenie: klasifikovaný zápočet'''  
 
'''Ukončenie: klasifikovaný zápočet'''  
Riadok 14: Riadok 14:
  
  
== 2. Čo je CAQ?==  
+
== Čo je CAQ?==  
  
 
Neviem pretože:  
 
Neviem pretože:  
Riadok 21: Riadok 21:
 
*Nevie to ani Google   
 
*Nevie to ani Google   
  
==3. Prehľad CAX nástrojov==
+
==Prehľad CAX nástrojov==
  
 
*CAE - Computer-aided engineering  
 
*CAE - Computer-aided engineering  
Riadok 29: Riadok 29:
 
*CAP - computer-aided planning   
 
*CAP - computer-aided planning   
  
==4. Softvérové inžinierstvo alebo ako sa rodí softvér==
+
==Softvérové inžinierstvo alebo ako sa rodí softvér==
  
 
'''Životný cyklus softvéru:'''  
 
'''Životný cyklus softvéru:'''  
Riadok 41: Riadok 41:
 
*Ú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  
Riadok 50: Riadok 50:
 
[[Súbor:Obr_01.jpg|thumb|center|600px|Model programuj a oprav]]
 
[[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 59: Riadok 59:
 
*Preskúšanie (kontrola kvality)  
 
*Preskúšanie (kontrola kvality)  
  
==5.3 Kaskádový model==
+
=== Kaskádový model===
  
 
'''Klady:'''  
 
'''Klady:'''  
Riadok 72: Riadok 72:
 
*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 114: Riadok 114:
 
*Nasadenie SW  
 
*Nasadenie SW  
  
==5.5 Špirálový model==
+
=== Špirálový model===
  
 
Závit špirály  
 
Závit špirály  
Riadok 132: Riadok 132:
 
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|thumb|center|600px|Prístupy pri vývoji softvéru]]
 
[[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 183: Riadok 183:
 
**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 194: Riadok 194:
 
[[Súbor:Obr_07.jpg|thumb|center|600px|Proces analýzy a špecifikácie požiadaviek]]
 
[[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 212: Riadok 212:
 
[[Súbor:Obr_08.jpg|thumb|center|400px|Analýza požidaviek]]
 
[[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 224: Riadok 224:
 
**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 256: Riadok 256:
 
</div>
 
</div>
  
==7 Máme softvér!==
+
==Máme softvér!==
  
==7.1 Čo ďalej?==  
+
=== Čo ďalej?===  
  
 
*Ako SW licencovať?  
 
*Ako SW licencovať?  
Riadok 265: Riadok 265:
 
**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 286: Riadok 286:
 
*WTFPL – (Do What The Xxxx 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 296: Riadok 296:
 
*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|thumb|center|400px|Open source a kiwiki]]

Verzia zo dňa a času 00:18, 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


Č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

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

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