Proces vývoja softvéru
Obsah
- 1 1. Úvod
 - 2 2. Čo je CAQ?
 - 3 3. Prehľad CAX nástrojov
 - 4 4. Softvérové inžinierstvo alebo ako sa rodí softvér
 - 5 5. Ako sa rodí softvér
 - 6 5.1 Model Programuj a oprav
 - 7 5.2 Kaskádový model
 - 8 5.3 Kaskádový model
 - 9 5.4 V-model
 - 10 5.5 Špirálový model
 - 11 5.6 koľko to stojí a kedy to bude
 - 12 6 Špecifikácia požiadaviek
 - 13 6.1 Chceme mať softvér
 - 14 6.2 A ako na to?
 - 15 6.3 Máme na to?
 - 16 6.4 Chceme to takto!
 - 17 6.5 A bude to takto!
 - 18 7 Máme softvér!
 - 19 7.1 Čo ďalej?
 - 20 7.2 Budeme ho distribuovať?
 - 21 8 Slobodný softvér je lepší!
 - 22 9 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
 
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
- Ú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,
 
 
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 Xxxx 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
 
