Zhrnutie na Princípy informatiky a automatického riadenia
Princípy Informatiky a Automatického Riadenia: Rozbor pre Študentov
Úvod
Softvérové inžinierstvo sa zaoberá systematickým, disciplinovaným a merateľným prístupom k vývoju, prevádzke a údržbe softvérových systémov. Cieľom tohto materiálu je poskytnúť prehľad hlavných modelov vývoja softvéru, fáz vývojového procesu, typov testovania a vybraných UML diagramov (Use Case, Activity) vhodných pre štúdium bez povinnej prezenčnej účasti.
Definícia: Softvérové inžinierstvo je oblasť, ktorá aplikuje inžinierske postupy na návrh, vývoj, testovanie a údržbu softvérových produktov.
1. Proces vývoja softvéru a fázy životného cyklu
Vývoj softvéru sa typicky rozčleňuje do fáz. Poradie a opakovanie týchto fáz závisí od zvoleného modelu:
- Zber požiadaviek (analýza)
- Návrh systému
- Implementácia (kódovanie)
- Testovanie
- Nasadenie (instalácia)
- Prevádzka a údržba
Definícia: Údržba softvéru zahŕňa opravy chýb, vylepšenia funkcionality a adaptáciu na nové prostredie počas životnosti produktu.
Praktický príklad
Firma dodá projekt informačného systému: najprv sa špecifikujú požiadavky, potom návrh a implementácia modulov, následne testy, nasadenie u zákazníka a dlhodobá údržba (opravy a aktualizácie).
2. Prehľad modelov vývoja softvéru
Nižšie sú zhrnuté hlavné modely, ich princípy, výhody a nevýhody.
| Model | Popis | Výhody | Nevýhody |
|---|---|---|---|
| Vodopádový (Kaskádny) | Sekvenčný priechod fázami, do ďalšej fázy sa vstupuje až po ukončení predošlej | Jednoduchosť, jasné etapy, vhodné pre malé projekty so stabilnými požiadavkami | Slabá odozva na zmeny, testovanie až po implementácii, v praxi málo používaný |
| Inkrementálny | Všetky požiadavky sa definujú, systém sa dodáva v častiach/prírastkoch | Rýchlejšie dodanie funkčných častí, lepšie riadenie vydaní | Potreba dobrého plánovania a integrácie |
| Evolučný | Počiatočné požiadavky nie sú úplné, iteratívny návrh/implementácia/testovanie | Flexibilita pri nejasných požiadavkách, vhodný keď zákazník spresňuje očakávania | Môže viesť k nekonečným iteráciám bez pevného plánu |
| Špirálový (B. Boehm) | Iteratívny model s dôrazom na analýzu rizík pri každej iterácii | Dôraz na riziká, vhodný pre veľké alebo rizikové projekty | Náročnejší na manažment a odhad rizík |
| Prototyping | Vytváranie prototypov pre čiastkové oblasti, často ako doplnok k inému modelu | Umožňuje ukázať funkcionalitu a získať rýchlu spätnú väzbu | Prototypy môžu byť mylne považované za hotové riešenia |
| Concurrent Engineering | Paralelné vykonávanie fáz (návrh, testovanie, atď.) | Skracuje čas vývoja, rýchlejšie odhalenie problémov | Vyššia potreba koordinácie tímu |
| Reverse Engineering | Analýza existujúceho systému za účelom porozumenia alebo znovuvytvorenia | Umožňuje obnovu dokumentácie a migráciu | Môže byť časovo náročné a legálne citlivé |
3. Detailnejší popis vybraných modelov
Vodopádový model
- Postup je striktne sekvenčný.
- Požaduje dôkladnú počiatočnú analýzu.
- Testovanie nasleduje až po implementácii.
Praktické použitie: učebné príklady, veľmi stabilné projekty s malými rizikami.
Inkrementálny model
- Najprv definujeme všetky požiadavky.
- Systém sa vytvára a odovzdáva po častiach (prírastkoch).
Výhoda: možné rýchle uvedenie časti funkcionality do prevádzky.
Evolučný model
- Požiadavky sa dopĺňajú počas projektu.
- Návrh, implementácia a testovanie prebiehajú súbežne.
Použitie: keď zákazník nevie presne špecifikovať očakávania ("I cannot tell you what I want, but I will know it when I see it").
Špirálový model
- Iteratívne cykly, v každom cykle sa vykoná analýza rizík.
- Nové časti sa pripájajú k overenému jadru systému.
Výhoda: lepšia kontrola nad rizikami pri veľkých projektoch.
Prototyping
- Vytváranie prototypov pre konkrétne časti systému.
- Užitočné pri nejasných požiadavkách na užívateľské rozhranie alebo funkčnosť.
Concurrent Engineering
- Fáz
Už máš účet? Prihlásiť sa
Softvérové inžinierstvo - prehľad
Klíčová slova: Programovanie - objektovo orientované, Programovanie - základné konštrukcie, Programovanie - databázové skriptovanie, Databázy, Softvérové inžinierstvo, Programovanie - webové skriptovanie, Webové technológie, Bezpečnosť, Riadiace systémy – základy a architektúry, Riadiace systémy – snímače, prevodníky a akčné členy, PLC
Klíčové pojmy: Softvérové fázy: analýza, návrh, implementácia, testovanie, nasadenie, údržba, Vodopádový model je sekvenčný a nevhodný pri častých zmenách požiadaviek, Inkrementálny model dodáva systém po prírastkoch, Evolučný model iteruje s postupným upresňovaním požiadaviek, Špirálový model kladie dôraz na analýzu rizík v každej iterácii, Prototyping rýchlo získava spätnú väzbu vytvorením funkčných prototypov, Concurrent Engineering paralelizuje fázy na skrátenie času vývoja, Testovanie môže tvoriť $20\%$ až $35\%$ času projektu a až $25\%$ rozpočtu, Black box testovanie overuje vstupy a výstupy bez znalosti kódu, White box testovanie využíva znalosť kódu na testovanie interných ciest, Use Case diagram identifikuje aktérov, prípady použitia a hranice systému, Activity diagram modeluje workflow, vetvenie a paralelné aktivity