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

Slides:



Advertisements
Podobné prezentace
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Advertisements

Projektové řízení Modul č.1.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
Přednáška č. 5 Proces návrhu databáze
Algoritmizace a programování Podprogramy v Delphi - 10
Bezpečnost strojních zařízení Bezpečnost částí ovládacích systémů Část 1: Všeobecné zásady pro konstrukci ČSN EN ISO
Přínosy metodik  Větší produktivita a kooperace týmů  Komunikační standard  Specializace projektových týmů  Nezávislost na konkrétních řešitelích 
METODOLOGIE PROJEKTOVÁNÍ
Metody zpracování vybraných témat (projektů)
FORMALIZACE PROJEKTU DO SÍŤOVÉHO GRAFU
Algoritmizace a programování
ÚČEL AUTOMATIZACE (c) Tralvex Yeap. All Rights Reserved.
Algoritmizace a programování Podmíněné a cyklické příkazy- 08
7. zasedání pracovní skupiny interních auditorů kraje Vysočina
Proces řízení projektu
Informatika I 3. přednáška
Procedury a funkce Základní charakteristika a použití v programu.
X13PMT 2. seminář Ing. Martin Molhanec, CSc. Garant předmětu ČVUT – FEL, K13113.
3. Životní cyklus a procesy projektu
Informatika I 2. přednáška
Metoda FMEA týmová analýza možností vzniku vad u posuzovaného návrhu spojenou s ohodnocením rizik výsledkem aplikace je návrh a realizace opatření vedoucích.
Tradiční metodiky vývoje softwaru
13AMP 9. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled ADA ADA Java Java.
Základy objektově orientovaného programování Jiří Strach.
PLÁNOVÁNÍ Vrcholným úkolem podnikového řízení je určování konkrétních podnikových cílů, jejichž prostřednictvím má být dosažen konečný cíl, dlouhodobá.
Plán testů Tým FelPay. Testování a kvalita obecně Přispívá ke správné funkci systému Přispívá ke správné funkci systému Snižuje finanční a časové ztráty.
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
Modelování a simulace MAS_02
4. Lekce Dílčí procesy funkčního testování
Algoritmizace a programování Třídící algoritmy - 12
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
Informatika I 7. přednáška RNDr. Jiří Dvořák, CSc.
Informatika I 8. přednáška RNDr. Jiří Dvořák, CSc.
Od zadání úlohy k programu Výpočetní systémy I 8. přednáška.
Dokumentace informačního systému
Přednáška č. 1 Proces návrhu databáze
Databázové modelování
Základní rozdělení činností v podnikové informatice
Schéma procesu vstupy Průběh procesu výstupy činnost ZDROJE.
Proces řízení kvality projektu Jaromír Štůsek
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Programování POCSI. Programovani/POCSI2 Základní pojmy Akce - děj nad objekty, mající začátek a konec, a mající přesně definovaný účinek. Příkaz - popis.
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
1 Řízení implementace IS a SS* Šablony. 2 Vzorové postupy.
14. června 2004Michal Ševčenko Architektura softwarového systému DYNAST Michal Ševčenko VIC ČVUT.
Softwarové inženýrství semestrální projekt
2. Životní cyklus a procesy projektu
Projektová výuka na školách HEURÉKA CZ, spol. s r.o vzdělávací společnost pro podporu a rozvoj efektivity a adaptability lidských zdrojů a mezilidských.
Detekce a odstraňování chyb Vývoj informačních systémů.
Informatika (1) Počítač - základní pojmy HW a SW4 OS MS-DOS, Windows 95, 982 Org. souborů na disku, operační paměť2 Aplikace Malování, Word8 Základy programování.
Úvod do programování Vyučující: Mgr. Vítězslav Jersák
Metodika řízení projektů
Algoritmizace a programování Algoritmy 1 - Úvod. Základní pojmy Počítačový program Počítačový program zápis zdrojového kódu, kterému rozumí počítač zápis.
Tým 32, varianta b/4/I.  Jakub Kadlubiec  Roman Pijáček  Petr Pliska  Jan Štourač  Václav Tunka (vedoucí)
ANALÝZA IS. Životní cyklus IS Specifikace problému, požadavků (studijní fáze) Analýza Návrh Implementace (realizace) Zavedení (instalace) a testování.
Životní cyklus projektu a fáze projektu Martin Cupal Podnikatelský záměr a projektový management.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
Návrh uživatelského rozhraní. Volba akcí uživatele – Systém menu Formát ukládání a modifikace dat – Vstupní formuláře Způsob formulování dotazů – SQL,
SOFTWAROVÁ PODPORA PRO VYTVÁŘENÍ FUZZY MODELŮ Knihovna fuzzy procedur Ing. Petr Želasko, VŠB-TU Ostrava.
Programovací jazyk C# 4. část - cykly.
PROJEKT: Hodnocení průmyslových rizik
Tradiční metodiky vývoje softwaru
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Tradiční metody vývoje softwaru
METODOLOGIE PROJEKTOVÁNÍ
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Transkript prezentace:

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

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í

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)

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.

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.

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í.

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.

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.

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í.

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)

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

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.

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

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|

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.

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

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

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

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