Proces vývoja softvéru: Rozdiel medzi revíziami
 (Vytvorená stránka „{{Draft}} {{CAQ_navigacia}}  ... obsah prvej prednášky...“)  | 
				|||
| (4 medziľahlé úpravy od 2 ďalších používateľov nie sú zobrazené) | |||
| Riadok 2: | Riadok 2: | ||
{{CAQ_navigacia}}  | {{CAQ_navigacia}}  | ||
| − | ...   | + | == Ú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   | ||
| + | |||
| + | [[Súbor:Obr_01.jpg|thumb|center|600px|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   | ||
| + | |||
| + | [[Súbor:Obr_02.jpg|thumb|center|400px|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   | ||
| + | |||
| + | [[Súbor:Obr_03.jpg|thumb|center|600px|Š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===   | ||
| + | |||
| + | [[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:'''   | ||
| + | |||
| + | *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|thumb|center|400px|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'''    | ||
| + | |||
| + | [[Súbor:Obr_06.jpg|thumb|center|600px]]  | ||
| + | |||
| + | Č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   | ||
| + | |||
| + | [[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ý:'''   | ||
| + | |||
| + | *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|thumb|center|400px|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'''  | ||
| + | <div style="border:1px solid black">  | ||
| + | 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,  | ||
| + | </div>  | ||
| + | |||
| + | ==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==  | ||
| + | |||
| + | [[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
 
