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:

  1. Zber požiadaviek (analýza)
  2. Návrh systému
  3. Implementácia (kódovanie)
  4. Testovanie
  5. Nasadenie (instalácia)
  6. 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.

ModelPopisVýhodyNevýhody
Vodopádový (Kaskádny)Sekvenčný priechod fázami, do ďalšej fázy sa vstupuje až po ukončení predošlejJednoduchosť, jasné etapy, vhodné pre malé projekty so stabilnými požiadavkamiSlabá odozva na zmeny, testovanie až po implementácii, v praxi málo používaný
InkrementálnyVšetky požiadavky sa definujú, systém sa dodáva v častiach/prírastkochRý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/testovanieFlexibilita pri nejasných požiadavkách, vhodný keď zákazník spresňuje očakávaniaMôž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áciiDôraz na riziká, vhodný pre veľké alebo rizikové projektyNáročnejší na manažment a odhad rizík
PrototypingVytváranie prototypov pre čiastkové oblasti, často ako doplnok k inému modeluUmožňuje ukázať funkcionalitu a získať rýchlu spätnú väzbuPrototypy môžu byť mylne považované za hotové riešenia
Concurrent EngineeringParalelné vykonávanie fáz (návrh, testovanie, atď.)Skracuje čas vývoja, rýchlejšie odhalenie problémovVyššia potreba koordinácie tímu
Reverse EngineeringAnalýza existujúceho systému za účelom porozumenia alebo znovuvytvoreniaUmožňuje obnovu dokumentácie a migráciuMôže byť časovo náročné a legálne citlivé
💡 Vedeli ste?Did you know that Barry Boehm formalizoval špirálový model v roku 1986 s dôrazom na opakovanú analýzu rizík pri každej iterácii?

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
Zaregistruj sa pre celé zhrnutie
KartičkyTest znalostíZhrnutiePodcastMyšlienková mapa
Začni zadarmo

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

## Ú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: 1. Zber požiadaviek (analýza) 2. Návrh systému 3. Implementácia (kódovanie) 4. Testovanie 5. Nasadenie (instalácia) 6. 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é | Did you know that Barry Boehm formalizoval špirálový model v roku 1986 s dôrazom na opakovanú analýzu rizík pri každej iterácii? ## 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