Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.

Podobné prezentace


Prezentace na téma: "Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc."— Transkript prezentace:

1 Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.

2 Informatika I: přednáška 82 Obsah přednášky  Softwarové inženýrství  Životní cyklus programu  Modely životního cyklu  Testování a ladění

3 Informatika I: přednáška 83 Softwarové inženýrství Softwarové inženýrství (Software Engineering) se zabývá problematikou tvorby programů. Cílem je vývoj technik a prostředků napomáhajících v přiměřené době a s přiměřenými náklady vytvářet jasné, srozumitelné, spolehlivé a efektivní programy. Mezi předměty zájmu softwarového inženýrství patří např.:  programovací jazyky  techniky programování  metody ověřování a dokazování správnosti programů  optimalizace programů  prostředky CASE (Computer Aided Software Engineering)

4 Informatika I: přednáška 84 Životní cyklus programu 1.Fáze požadavků 2.Specifikační fáze 3. Plánovací fáze 4. Fáze návrhu 5.Implementační fáze 6.Integrační fáze 7.Fáze údržby A B A …přibližné relativní náklady v procentech B …přibližné relativní náklady na detekci a odstranění chyby vzniklé ve fázi požadavků (násobky nákladů pro fázi požadavků) Pramen: Schach, S.R. Practical Software Engineering. Irwin 1992.

5 Informatika I: přednáška 85 Fáze požadavků, specifikace a plánování  Fáze požadavků: Vývojáři softwaru pracují s klientem, aby zjistili, jaký software klient potřebuje; požadavky jsou prezentovány formou dokumentu.  Specifikace: Vypracování specifikačního dokumentu, který popisuje, co má produkt dělat (úplně, přesně, bez rozporů a dvojznačností).  Plánování: Vypracování plánu řízení tvorby softwarového produktu obsahujícího co a kdy se má dělat, jak dlouho to bude trvat, jaké budou náklady a jaké budou zapotřebí zdroje. Plán musí být klientem akceptován.

6 Informatika I: přednáška 86 Navrhování, implementace a integrace  Navrhování: Nejprve je vytvořen návrh architektury, který rozděluje produkt do modulů. Pak se provádí detailní návrh, při němž jsou navrhovány jednotlivé moduly. Přitom musí být jasně určeno, jak bude každý modul vykonávat svou funkci a jaké algoritmy a datové struktury bude využívat.  Implementace: Každý modul je kódován v programovacím jazyce dohodnutém v kontraktu.  Integrace: Moduly jsou spojeny do kompletního produktu, který je testován včetně dokumentace. Pak je produkt předán klientovi k otestování.

7 Informatika I: přednáška 87 Údržba, testování a dokumentace  Údržba: Úkolem údržby je jednak odstraňování zbývajících chyb, které se nepodařilo odstranit v předcházejících etapách, jednak zlepšování funkce produktu a jeho přizpůsobování změnám požadavků.  Testování: Testování není separátní fází životního cyklu, ale nedílnou součástí každé fáze. V každé fázi nejprve provádějí testování softwaroví inženýři, zajišťující tuto fázi. Pak je produkt předán nezávislému testovacímu týmu.  Dokumentace: Nezbytnou součástí každé etapy životního cyklu programu je tvorba dokumentace.

8 Informatika I: přednáška 88 Příklady modelů životního cyklu  „Vodopádový“ model (waterfall model): Žádná fáze nezačíná dříve, než jsou výsledky předchozí fáze pozorně zkontrolovány a schváleny (včetně dokumentace).  Model rychlého prototypování (rapid prototyping model) Fáze požadavků je nahrazena fází rychlého prototypování. Po úvodním shromáždění požadavků klienta se pokračuje tvorbou prototypu. Prototyp je rychle vytvářený program, který odráží mnohé z funkcí cílového produktu viditelné pro klienta, ale vynechává skryté aspekty. Klient pak s prototypem experimentuje a na základě toho upřesňuje svoje požadavky.  Spirální model (spiral model) Každá fáze začíná analýzou rizika týkajícího se vývoje produktu a poté se provádějí kroky k odstranění nebo minimalizaci tohoto rizika.

9 Informatika I: přednáška 89 Testování a ladění  Testování: C ílem je zjistit, zda se v programu nebo v jeho části vyskytují chyby (resp. snížit pravděpodobnost jejich výskytu). Testování je jednak statické, jednak dynamické.  Ladění: C ílem je odstranit chyby, jejichž přítomnost se projevila během testování.

10 Informatika I: přednáška 810 Chyby softwaru  Členění podle doby výskytu  chyby ve specifikaci a návrhu  chyby projevující se během kompilace  chyby projevující se za běhu programu  Členění podle druhu chyby  formální chyby (většinou se projeví při překladu)  logické chyby (projeví se až za běhu programu; tyto chyby způsobují, že program neřeší správně danou úlohu)  numerické chyby (projeví se až za běhu programu; jedná se o chyby způsobující nedostatečnou přesnost výsledků výpočtu)

11 Informatika I: přednáška 811 Statické testování Statické testování slouží k ověření správnosti požadavků, návrhu a kódu před zahájením kontrolních výpočtů. Metody statického testování:  pozorné čtení zdrojového textu  automatizovaná analýza zdrojového textu (např. během kompilace)  formální dokazování správnosti programu

12 Informatika I: přednáška 812 Dynamické testování Dynamické testování spočívá v provádění kontrolních výpočtů s testovacími příklady. Metody dynamického testování:  testování černé skříňky (funkční testování) –vychází ze specifikace požadavků na program nebo jeho část; volíme data typická, hraniční, výjimečná, chybná,...  testování skleněné skříňky (strukturní testování) –volíme takový soubor testovacích příkladů, aby pokryl všechny řídicí cesty resp. všechny příkazy v testované části programu.

13 Informatika I: přednáška 813 Výpočet největšího společného dělitele dvou celých čísel Vstupní podmínka: x, y  Z (Z označuje množinu celých čísel) Výstupní podmínky: nsd(x, y) = nsd(|x|, |y|) nsd(x, y) = nsd(y, x) nsd(x, y) = xpro x  y = 0 nsd(x, y) = nsd(y, mod(x, y)) pro x  y > 0

14 Informatika I: přednáška 814 Podmínky pro data k funkčnímu testování x = y = 0 |x| = |y| > 0 |x| > y = 0 |y| > x = 0 |x| > |y| > 0  nsd = 1 |y| > |x| > 0  nsd = 1 |x| > |y| > 0  nsd = |y| |y| > |x| > 0  nsd = |x| |x| > |y| > 0  1 < nsd < |y| |y| > |x| > 0  1 < nsd < |x|

15 Informatika I: přednáška 815 Funkce pro výpočet nejv. spol. dělitele 1 function NSD(X,Y:integer):integer; 2 var K,L,M,N:integer; 3 begin 4 M:=abs(X); N:=abs(Y); 5 if M < N then 6 begin 7 K:=M; M:=N; N:=K; 8 end 9 while N > 0 do 10 begin 11 L:=M mod N; 12 M:=N; 13 N:=L; 14 end; 15 NSD:=M; 16 end; Řádky jsou očíslovány pro konstrukci grafu řídicí struktury.

16 Informatika I: přednáška 816 Graf řídicí struktury Z K M < N M  N N > 0 N = 0

17 Informatika I: přednáška 817 Cesty řídicím grafem a jejich podmínky Z  5  9  K Z  5  9  (9)*  K Z  5  7  9  K Z  5  7  9  (9)*  K Pozn.: Hvězdička a závorky označují případné opakování. |x|  y = 0 |x|  |y| > 0 |y| > x = 0 |y| > |x| > 0

18 Informatika I: přednáška 818 Proces ladění (debugging) 1. Shromáždění informací 2.Izolace chyby 3.Potvrzení příčiny chyby 4.Odstranění chyby 5.Dokumentace 6.Nové testování po každé opravě Systémy pro podporu ladění umožňují např.  krokování výpočtu  výpis zvolených proměnných  změny zvolených proměnných

19 Informatika I: přednáška 819 Testování a ladění programu členěného do modulů a podprogramů Program se ladí po částech (činnost spolupracujících částí se simuluje), které se postupně spojují ve větší celky. Základní přístupy:  postup shora dolů (top down): začíná se od nejvyšší úrovně programu, přičemž činnost volaných modulů a podprogramů se simuluje  postup zdola nahoru (bottom up): začíná se od podprogramů a modulů, pro něž se vytváří testovací prostředí  smíšený (sandwich): kombinuje se postup shora dolů a zdola nahoru


Stáhnout ppt "Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc."

Podobné prezentace


Reklamy Google