Proces vývoja softvéru: Rozdiel medzi revíziami
(Vytvorená stránka „{{Draft}} {{CAQ_navigacia}} ... obsah prvej prednášky...“) |
|||
Riadok 2: | Riadok 2: | ||
{{CAQ_navigacia}} | {{CAQ_navigacia}} | ||
− | ... | + | ==CAQ - Ing. Juraj Ďuďák, PhD.== |
+ | |||
+ | #Úvod | ||
+ | #Čo je CAQ | ||
+ | #Prehľad CAX nástrojov | ||
+ | #Softvérové inžinierstvo alebo ako sa rodí softvér | ||
+ | #Ako sa rodí softvér: | ||
+ | ##Model Programuj a oprav | ||
+ | ##Kaskádový model | ||
+ | ##V-model | ||
+ | ##Špirálový model | ||
+ | ##Koľko to stojí a kedy to bude | ||
+ | #Špecifikácia požiadaviek: | ||
+ | ##Chceme mať softvér? | ||
+ | ##A ako na to? | ||
+ | ##Máme na to? | ||
+ | ##Chceme to takto! | ||
+ | ##A bude to takto! | ||
+ | #IEEE 830-1998 | ||
+ | #Máme softvér! | ||
+ | ##Čo ďalej? | ||
+ | ##Budeme ho distribuovať? | ||
+ | #Slobodný softvér je lepší! | ||
+ | #Open source v praxi | ||
+ | |||
+ | == 1. Ú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 | ||
+ | |||
+ | |||
+ | == 2. Č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 | ||
+ | |||
+ | ==3. 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 | ||
+ | |||
+ | ==4. 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 | ||
+ | |||
+ | ==5. Ako sa rodí softvér== | ||
+ | |||
+ | ==5.1 Model Programuj a oprav== | ||
+ | |||
+ | *Naturalistický model | ||
+ | *Vhodný len pre veľmi malé projekty | ||
+ | |||
+ | [[Súbor:Obr_01.jpg]] | ||
+ | |||
+ | ==5.2 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) | ||
+ | |||
+ | ==5.3 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 | ||
+ | |||
+ | ==5.4 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]] | ||
+ | |||
+ | '''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 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | CAQ - Juraj Ďuďák | ||
+ | |||
+ | ==5.5 Špirálový model== | ||
+ | |||
+ | Závit špirály | ||
+ | |||
+ | *1 cyklus vývoja | ||
+ | |||
+ | [[Súbor:Obr_03.jpg]] | ||
+ | |||
+ | |||
+ | '''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 | ||
+ | |||
+ | ==5.6 koľko to stojí a kedy to bude== | ||
+ | |||
+ | [[Súbor:Obr_04.jpg]] | ||
+ | |||
+ | ==6 Špecifikácia požiadaviek== | ||
+ | |||
+ | ==6.1 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]] | ||
+ | |||
+ | |||
+ | '''Úč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]] | ||
+ | |||
+ | Č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) | ||
+ | |||
+ | ==6.2 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]] | ||
+ | |||
+ | ==6.3 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]] | ||
+ | |||
+ | ==6.4 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. | ||
+ | |||
+ | ==6.5 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.1 Cieľ | ||
+ | 1.2 Účel systému | ||
+ | 1.3 Definície, skratky a akronymy | ||
+ | 1.4 Referencie | ||
+ | 1.5 Prehľad dokumentu | ||
+ | 2 Všeobecný popis | ||
+ | 2.1 Kontext produktu | ||
+ | 2.2 Funkcie produktu | ||
+ | 2.3 Profil užívateľov | ||
+ | 2.4 Obmedzenia | ||
+ | 2.5 Predpoklady a závislosti | ||
+ | 3 Š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,... | ||
+ | 4 Doplňujúce informácie | ||
+ | Prílohy, Register, | ||
+ | |||
+ | ==7 Máme softvér!== | ||
+ | |||
+ | ==7.1 Čo ďalej?== | ||
+ | |||
+ | *Ako SW licencovať? | ||
+ | *Licencie: | ||
+ | **Proprietárne | ||
+ | **Slobodné | ||
+ | |||
+ | ==7.2 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 Fuck You Want To Public License) | ||
+ | |||
+ | ==8 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 | ||
+ | |||
+ | ==9 Open source v praxi | ||
+ | |||
+ | [[Súbor:Obr_09.jpg]] |
Verzia zo dňa a času 21:32, 15. február 2011
Obsah
- 1 CAQ - Ing. Juraj Ďuďák, PhD.
- 2 1. Úvod
- 3 2. Čo je CAQ?
- 4 3. Prehľad CAX nástrojov
- 5 4. Softvérové inžinierstvo alebo ako sa rodí softvér
- 6 5. Ako sa rodí softvér
- 7 5.1 Model Programuj a oprav
- 8 5.2 Kaskádový model
- 9 5.3 Kaskádový model
- 10 5.4 V-model
- 11 5.5 Špirálový model
- 12 5.6 koľko to stojí a kedy to bude
- 13 6 Špecifikácia požiadaviek
- 14 6.1 Chceme mať softvér
- 15 6.2 A ako na to?
- 16 6.3 Máme na to?
- 17 6.4 Chceme to takto!
- 18 6.5 A bude to takto!
- 19 7 Máme softvér!
- 20 7.1 Čo ďalej?
- 21 7.2 Budeme ho distribuovať?
- 22 8 Slobodný softvér je lepší!
CAQ - Ing. Juraj Ďuďák, PhD.
- Úvod
- Čo je CAQ
- Prehľad CAX nástrojov
- Softvérové inžinierstvo alebo ako sa rodí softvér
- Ako sa rodí softvér:
- Model Programuj a oprav
- Kaskádový model
- V-model
- Špirálový model
- Koľko to stojí a kedy to bude
- Špecifikácia požiadaviek:
- Chceme mať softvér?
- A ako na to?
- Máme na to?
- Chceme to takto!
- A bude to takto!
- IEEE 830-1998
- Máme softvér!
- Čo ďalej?
- Budeme ho distribuovať?
- Slobodný softvér je lepší!
- Open source v praxi
1. Ú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
2. Č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
3. 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
4. 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
5. Ako sa rodí softvér
5.1 Model Programuj a oprav
- Naturalistický model
- Vhodný len pre veľmi malé projekty
5.2 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)
5.3 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
5.4 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
CAQ - Juraj Ďuďák
5.5 Š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
5.6 koľko to stojí a kedy to bude
6 Špecifikácia požiadaviek
6.1 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)
6.2 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
6.3 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
6.4 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.
6.5 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.1 Cieľ 1.2 Účel systému 1.3 Definície, skratky a akronymy 1.4 Referencie 1.5 Prehľad dokumentu 2 Všeobecný popis 2.1 Kontext produktu 2.2 Funkcie produktu 2.3 Profil užívateľov 2.4 Obmedzenia 2.5 Predpoklady a závislosti 3 Š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,... 4 Doplňujúce informácie Prílohy, Register,
7 Máme softvér!
7.1 Čo ďalej?
- Ako SW licencovať?
- Licencie:
- Proprietárne
- Slobodné
7.2 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 Fuck You Want To Public License)
8 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
==9 Open source v praxi