Proces vývoja softvéru: Rozdiel medzi revíziami
| (2 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 13: | 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 41: | Riadok 25: | ||
*Údržba    | *Údržba    | ||
| − | ==  | + | ==Ako sa rodí softvér==  | 
| − | ==  | + | ===Model Programuj a oprav===  | 
*Naturalistický model    | *Naturalistický model    | ||
| Riadok 50: | Riadok 34: | ||
[[Súbor:Obr_01.jpg|thumb|center|600px|Model programuj a oprav]]  | [[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 59: | Riadok 43: | ||
*Preskúšanie (kontrola kvality)    | *Preskúšanie (kontrola kvality)    | ||
| − | ==  | + | === Kaskádový model===  | 
'''Klady:'''    | '''Klady:'''    | ||
| Riadok 72: | 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 114: | Riadok 98: | ||
*Nasadenie SW    | *Nasadenie SW    | ||
| − | ==  | + | === Špirálový model===  | 
Závit špirály    | Závit špirály    | ||
| Riadok 132: | Riadok 116: | ||
6.revízia    | 6.revízia    | ||
| − | ==  | + | === 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]]  | ||
| − | ==  | + | == Špecifikácia požiadaviek==    | 
| − | ==  | + | === Chceme mať softvér===  | 
'''Požiadavky:'''    | '''Požiadavky:'''    | ||
| Riadok 183: | 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 194: | Riadok 178: | ||
[[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]]  | ||
| − | ==  | + | ===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 196: | ||
[[Súbor:Obr_08.jpg|thumb|center|400px|Analýza požidaviek]]  | [[Súbor:Obr_08.jpg|thumb|center|400px|Analýza požidaviek]]  | ||
| − | ==  | + | ===Chceme to takto!===  | 
*Definícia požiadaviek    | *Definícia požiadaviek    | ||
| Riadok 224: | 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 256: | Riadok 240: | ||
</div>  | </div>  | ||
| − | ==  | + | ==Máme softvér!==  | 
| − | ==  | + | === Čo ďalej?===    | 
*Ako SW licencovať?    | *Ako SW licencovať?    | ||
| Riadok 265: | Riadok 249: | ||
**Slobodné    | **Slobodné    | ||
| − | ==  | + | === Budeme ho distribuovať?===    | 
*Licencie typu closed source / proprietárne licencie    | *Licencie typu closed source / proprietárne licencie    | ||
| Riadok 286: | Riadok 270: | ||
*WTFPL – (Do What The Xxxx You Want To Public License)    | *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 296: | 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]]  | [[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 08: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
 
