Proces vývoja softvéru: Rozdiel medzi revíziami
(3 medziľahlé úpravy od rovnakého používateľa nie sú zobrazené.) | |||
Riadok 2: | Riadok 2: | ||
{{CAQ_navigacia}} | {{CAQ_navigacia}} | ||
− | == | + | == Ú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== | |
− | == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'''Životný cyklus softvéru:''' | '''Životný cyklus softvéru:''' | ||
Riadok 66: | Riadok 25: | ||
*Údržba | *Údržba | ||
− | == | + | ==Ako sa rodí softvér== |
− | == | + | ===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]] |
− | == | + | === 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) | ||
− | == | + | === 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 | ||
− | == | + | === 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=== | |
− | |||
− | |||
− | |||
− | |||
− | == | ||
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 | ||
− | == | + | === 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]] |
− | == | + | == Špecifikácia požiadaviek== |
− | == | + | === 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) | ||
− | == | + | ===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]] |
− | == | + | ===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]] |
− | == | + | ===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. | ||
− | == | + | === 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 | ||
− | + | # Úvod | |
− | + | ## Cieľ | |
− | + | ## Účel systému | |
− | + | ## Definície, skratky a akronymy | |
− | + | ## Referencie | |
− | + | ## Prehľad dokumentu | |
− | + | # Všeobecný popis | |
− | + | ## Kontext produktu | |
− | + | ## Funkcie produktu | |
− | + | ## Profil užívateľov | |
− | + | ## Obmedzenia | |
− | + | ## Predpoklady a závislosti | |
− | + | # Š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,... |
− | + | # Doplňujúce informácie | |
− | Prílohy, Register, | + | ##Prílohy, Register, |
+ | </div> | ||
− | == | + | ==Máme softvér!== |
− | == | + | === Čo ďalej?=== |
*Ako SW licencovať? | *Ako SW licencovať? | ||
Riadok 294: | Riadok 249: | ||
**Slobodné | **Slobodné | ||
− | == | + | === 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 | + | *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. | 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 | ||
− | == | + | ==Open source v praxi== |
+ | |||
+ | [[Súbor:Obr_09.jpg|thumb|center|400px|Open source a kiwiki]] | ||
− | + | ==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
Obsah
Ú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
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
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
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
Š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
Úč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
Č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
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
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
- Úvod
- Cieľ
- Účel systému
- Definície, skratky a akronymy
- Referencie
- Prehľad dokumentu
- Všeobecný popis
- Kontext produktu
- Funkcie produktu
- Profil užívateľov
- Obmedzenia
- Predpoklady a závislosti
- Š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,...
- Doplňujúce informácie
- 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
- Bezplatná licencia, closed source
- 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
Zdroje a odkazy
- Jedlička M.: Softvérové inžinierstvo, skriptá, EPI s.r.o., 2006