Kontakt: Marián Slašťan, slastan @ dcs.fmph.uniba.sk [email protected] Literat úra:

28
• Kontakt: – Marián Slašťan, [email protected] [email protected] • Literatúra: – Ian Sommerville: Software Engineering, 6th Edition, Pearson Education, 2001 www.uniba.sk/www/sw-eng (len slajdy!) – (ostatná literatúra k príslušným prednáškam) • Cieľ prednášky

description

Kontakt: Marián Slašťan, slastan @ dcs.fmph.uniba.sk [email protected] Literat úra: Ian Sommerville: Software Engineering, 6th Edition, Pearson Education, 2001 www.uniba.sk/www/sw-eng (len slajdy!) ( ostatná literatúra k príslušným prednáškam) Cieľ prednášky. Softv ér. - PowerPoint PPT Presentation

Transcript of Kontakt: Marián Slašťan, slastan @ dcs.fmph.uniba.sk [email protected] Literat úra:

• Kontakt:– Marián Slašťan, [email protected][email protected]

• Literatúra:– Ian Sommerville: Software Engineering,

6th Edition, Pearson Education, 2001– www.uniba.sk/www/sw-eng (len slajdy!)– (ostatná literatúra k príslušným prednáškam)

• Cieľ prednášky

Softvér• Spoločnosť závisí od schopnosti efektívne vyvíjať a

prevádzkovať SW (priemysel, štátna správa, školstvo zdravotníctvo, ...)

• Druhy SW produktov:– podpora činnosti organizácie (Business SW)– systémový softvér– SW bežiaci v reálnom čase (1 ms – 1 min.)– SW ako súčasť iných produktov– SW pre vedecké a inžinierske účely– SW pre osobné počítače– SW v oblasti umelej inteligencie– ...

• Generické SW produkty– požiadavky formuluje marketingové oddelenie

a sú voľnejšie

• Produkty vytvárané na objednávku– požiadavky formuluje zákazník a sú

striktnejšie (zmluva)

Produktivita pri vývoji SW

• 1968 – softvérová kríza (konferencia NATO)

• Máme poznatky, ale ...– nie sú dostatočné– prax často nerešpektuje základné zásady

• Cca. ½ projektov prekračuje plánovaný rozpočet

• produkt dodaný podľa špecifikácie a používaný.............................................

• produkt nedodaný................................

• produkt dodaný, ale nepoužívaný........

• používaný až po prepracovaní.............

• dodaný a používaný po úpravách........

5%

15%

10%

15%

55%

Hlavné problémy

• prekračovanie rozpočtu a termínu

• nesplnenie používateľských požiadaviek

• neuspokojivá kvalita produktu

Kvalita

• správnosť• robustnosť• flexibilnosť• znovupoužiteľnosť• kompatibilnosť

• efektívnosť• portabilnosť• verifikovateľnosť• jednoduchosť používania• ...

• Interné faktory kvality:– modulárnosť– zrozumiteľnosť kódu– ...

(Nie všetky naraz!)

No Silver Bullet

• ťažko očakávať „čarovný prútik“ ...

• ... ale je možné pozorovať trvalý nárast produktivity (cca 6% ročne)

• Softvérové inžinierstvo sa zaoberá teóriou, metódami a nástrojmi potrebnými pre vývoj softvéru.

Proces vývoja softvéru

= množina aktivít, ktorej výsledkom je softvérový produkt.

.

Riadenie projektu

Zabez-pečo-vanie kvality

špecifikácia, analýza, návrh, implementácia,

testovanie, integrácia

Správa konfi-

gurácií, riadenie zmien

Role v procese vývoja SW

• zadávateľ (zákazník/klient)

• riešiteľ (developer)

• používateľ

• prevádzkovateľ

• ...

Činnosti v procese vývoja SW

• Špecifikácia požiadaviek– cieľ: vytvorenie uceleného popisu požiadaviek na

produkt (z pohľadu zadávateľa) – obsahuje: popis funkcií produktu a prípadne aj popis

štruktúry objektov, resp. relevantných procesov v organizácii zadávateľa

– problémy:• zadávateľ si nevie predstaviť, ako bude výsledný systém

vyzerať• zadávateľ nevie, čo potrebuje

– popis musí byť jednoznačný, úplný a vnútorne konzistentný

– prostriedky: (štruktúrovaný) prirodzený jazyk, prípadne diagramy

• Jednoznačné ?• „3.4.A. Z terminálu sa načíta identifikátor súčiastky nasledovaný

identifikátorom kontajnera. Ak tento obsahuje písmená AQ, treba cenu prenesenia danej súčiastky do daného kontajnera násobiť koeficientom 1,5.“

• Konzistentné ?• „A2. Ak tlak v pracovnej nádobe presiahne 10 atmosfér, je potrebné

okamžite uzavrieť ventil M17.“• „F5a. Ak tlak v pracovnej nádobe presiahne 10 atmosfér, je

potrebné upovedomiť operátora. Ak operátor nezareaguje do 30 sekúnd, treba uzavrieť ventil M17.“

• Výsledkom je záväzná špecifikácia požiadaviek, podpísaná zadávateľom aj riešiteľom.

Analýza a návrh

= vytvorenie popisu riešenia• vytvorenie architektúry (výber z možných

alternatív)– rozdelenie na moduly (vrstvový model,

centralizované/decentralizované dáta, ...)– spôsob riadenia (call-return, event-based, ...)– rozdelenie na počítače (fyzická architektúra)– ...

• detailný návrh (popis algoritmov, dát, detailov UI)

• Treba zaznamenať rozhodnutia! (kvôli zmene, kvôli údržbe)

Implementácia a testovanie modulov

• naprogramovanie jednotlivých modulov

• vytvorenie dokumentácie (programátorskej, používateľskej)

• testovanie modulov– neformálne (programátorom)– formálne (s vopred určenými vstupmi)– revízia kódu

Integrácia a testovanie systému

• spájanie modulov a testovanie produktu ako celku

• spôsob spájania má vplyv na výsledný produkt• testovanie:

– počas integrácie (integračné testovanie)– testovanie celého produktu (funkčné, nie-funkčné

vlastnosti), kompletnosť dokumentácie a zdrojových kódov

– akceptačné testovanie (u zadávateľa)

Prevádzka a údržba

• Údržba je integrálna súčasť vývoja – predstavuje ½ až 2/3 nákladov

• Treba na ňu myslieť od začiatku – pri návrhu, pri písaní kódu, pri dokumentácii

Riadenie projektu

• Odhadovanie

• Plánovanie (čas, peniaze, ľudia, technika)

• Organizácia práce

• Sledovanie realizácie plánu a prijímanie potrebných opatrení

• Práca s ľuďmi

Zabezpečovanie kvality

• zabezpečovanie „kvality procesu“– príprava štandardných pracovných procedúr– kontrola ich uplatňovania– meranie efektívnosti procesu

• posudzovanie kvality medziproduktov

• (process improvement)

Správa konfigurácií a riadenie zmien

• Zabránenie nekontrolovaným zmenám vo vytváraných dokumentoch a programoch

• Všetky dokumenty sú v „skrini“, ku ktorej je regulovaný prístup

• Zmeny v už vytvorených dokumentoch podliehajú zvláštnemu schváleniu

Modely procesu vývoja SW

• kvôli manažovateľnosti treba dať procesu vývoja istú štruktúru

• existujú schématické štruktúry: modely procesu vývoja SW

• neexistuje „dobrý“ a „zlý“ model

Atribúty procesu vývoja SW

• Proces vývoja (a čiastočne aj jeho model) má nasledujúce atribúty:– pochopiteľnosť– viditeľnosť– možnosť podpory– rýchlosť

• Nie je možné všetky optimalizovať naraz (napr. rýchlosť vs. viditeľnosť)

Vodopádový model procesu vývoja SW

Špecifikácia požiadaviek

Analýza a návrh

systému

Implementácia a testovanie

modulov

Integrácia a testovanie

systému

Prevádzka a údržba

• Sekvenčne usporiadané etapy zodpovedajúce jednotlivým aktivitám– pred začatím etapy musí byť predchádzajúca etapa

ukončená (vrátane dokumentácie)– napriek tejto snahe je návrat často nevyhnutný

• Historicky prvý explicitný model procesu (1970), vychádza z procesu v ostatných disciplínach

• Existuje mnoho variantov

Prednosti a nedostatky

• Prednosti:– disciplína– dokumentácia– viditeľnosť– požiadavky sú známe

vopred

• Nedostatky:– riziko nepochopenia

požiadaviek vývojármi– problémy pri zmene

požiadaviek– „všetko alebo nič“

Inkrementálny model procesu vývoja SW

• vývoj prebieha po jednotlivých inkrementoch• inkrement je časť celkovej funkčnosti produktu

(nejde nutne o skupinu modulov)• príklad: predaj kníh cez internet

– práca s katalógom kníh (zobrazenie, vyhľadávanie, ...)

– registrácia používateľov– objednávanie kníh– ...

• príklad: operačný systém– scheduler– file system– ...

Špecifikácia požiadaviek pre celý systém

Návrh architektúry systému

Špecifikácia požiadaviek

pre inkrement 1

Analýza a návrh inkrementu 1

Implementácia inkrementu 1

Testovanie inkrementu 1

Integrácia inkrementu 1

Prevádzka inkrementu 1

Špecifikácia požiadaviek

pre inkrement 2

Analýza a návrh inkrementu 2

Implementácia inkrementu 2

Testovanie inkrementu 2

Integrácia inkrementu 2

Prevádzka inkrementov 1, 2

Špecifikácia požiadaviek

pre inkrement 3

Analýza a návrh inkrementu 3

Implementácia inkrementu 3

Testovanie inkrementu 3

Integrácia inkrementu 3

Prevádzka inkrementov 1,2,3

Vlastnosti inkrementálneho modelu

• Prednosti:– prevádzkyschopný

medziprodukt je k dispozícii rýchlo

– skúsenosti s prevádzkou pomáhajú pri špecifikácii požiadaviek

– lepšia návratnosť investícií– ľahšie zapracovanie zmien– možnosť nasadzovať po

častiach– keď sa vývoj neukončí, je k

dispozícií aspoň čiastočný výsledok

• Nedostatky:– náročnejší na vývoj aj

riadenie– nutná je otvorená

architektúra (nevýhoda?)

Sylaby

• Implementácia

• Návrh - OO paradigma, UML, architektúra

• Špecifikácia požiadaviek - Use Cases

• Verifikácia a validácia

• Riadenie projektu