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