Proces vývoja softvéru: Rozdiel medzi revíziami
Riadok 2: | Riadok 2: | ||
{{CAQ_navigacia}} | {{CAQ_navigacia}} | ||
− | == | + | == Úvod == |
'''Ukončenie: klasifikovaný zápočet''' | '''Ukončenie: klasifikovaný zápočet''' | ||
Riadok 14: | Riadok 14: | ||
− | == | + | == Čo je CAQ?== |
Neviem pretože: | Neviem pretože: | ||
Riadok 21: | Riadok 21: | ||
*Nevie to ani Google | *Nevie to ani Google | ||
− | == | + | ==Prehľad CAX nástrojov== |
*CAE - Computer-aided engineering | *CAE - Computer-aided engineering | ||
Riadok 29: | Riadok 29: | ||
*CAP - computer-aided planning | *CAP - computer-aided planning | ||
− | == | + | ==Softvérové inžinierstvo alebo ako sa rodí softvér== |
'''Životný cyklus softvéru:''' | '''Životný cyklus softvéru:''' | ||
Riadok 41: | Riadok 41: | ||
*Údržba | *Údržba | ||
− | == | + | ==Ako sa rodí softvér== |
− | == | + | ===Model Programuj a oprav=== |
*Naturalistický model | *Naturalistický model | ||
Riadok 50: | Riadok 50: | ||
[[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 59: | ||
*Preskúšanie (kontrola kvality) | *Preskúšanie (kontrola kvality) | ||
− | == | + | === Kaskádový model=== |
'''Klady:''' | '''Klady:''' | ||
Riadok 72: | Riadok 72: | ||
*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 114: | ||
*Nasadenie SW | *Nasadenie SW | ||
− | == | + | === Špirálový model=== |
Závit špirály | Závit špirály | ||
Riadok 132: | Riadok 132: | ||
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 183: | ||
**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 194: | ||
[[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 212: | ||
[[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 224: | ||
**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 256: | ||
</div> | </div> | ||
− | == | + | ==Máme softvér!== |
− | == | + | === Čo ďalej?=== |
*Ako SW licencovať? | *Ako SW licencovať? | ||
Riadok 265: | Riadok 265: | ||
**Slobodné | **Slobodné | ||
− | == | + | === Budeme ho distribuovať?=== |
*Licencie typu closed source / proprietárne licencie | *Licencie typu closed source / proprietárne licencie | ||
Riadok 286: | Riadok 286: | ||
*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 296: | ||
*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]] |
Verzia zo dňa a času 00:18, 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
Č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
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
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