Úvod do softwarového inženýrství IUS 2009/2010 p.1/55

Rozměr: px
Začít zobrazení ze stránky:

Download "Úvod do softwarového inženýrství IUS 2009/2010 p.1/55"

Transkript

1 Úvod do softwarového inženýrství IUS 2009/ přednáška Ing. Radek Kočí, Ph.D. Ing. Bohuslav Křena, Ph.D. Úvod do softwarového inženýrství IUS 2009/2010 p.1/55

2 Dnešní téma Implementace a testování Strategie implementace Techniky testování Strategie testování Agilní metodologie Základní principy Srovnání metodologií Extreme programming (XP) Úvod do softwarového inženýrství IUS 2009/2010 p.2/55

3 Implementace softwaru transformace návrhu jednotlivých modulů (návrhových podsystémů) a jejich vzájemných vazeb do programové realizace kritéria posuzování implementace (procesu tvorby programu) srozumitelnost (programu, výstupu programu) čitelnost udržovatelnost efektivnost aplikace (doba odezvy, požadavky na pamět,... ) přenositelnost efektivnost procesu tvorby programu důležitost jasných cílů (všechna kritéria nelze obvykle splnit) Úvod do softwarového inženýrství IUS 2009/2010 p.3/55

4 Implementace softwaru transformace návrhu jednotlivých modulů (návrhových podsystémů) a jejich vzájemných vazeb do programové realizace kritéria posuzování implementace (procesu tvorby programu) srozumitelnost (programu, výstupu programu) čitelnost udržovatelnost efektivnost aplikace (doba odezvy, požadavky na pamět,... ) přenositelnost efektivnost procesu tvorby programu důležitost jasných cílů (všechna kritéria nelze obvykle splnit) Vzpomínáte si ještě, co je to udržovatelnost a přenositelnost? Úvod do softwarového inženýrství IUS 2009/2010 p.3/55

5 Implementace softwaru transformace návrhu jednotlivých modulů (návrhových podsystémů) a jejich vzájemných vazeb do programové realizace kritéria posuzování implementace (procesu tvorby programu) srozumitelnost (programu, výstupu programu) čitelnost udržovatelnost efektivnost aplikace (doba odezvy, požadavky na pamět,... ) přenositelnost efektivnost procesu tvorby programu důležitost jasných cílů (všechna kritéria nelze obvykle splnit) Udržovatelnost úsilí, které je potřeba vynaložit na další vývoj a údržbu softwaru podle měnících se potřeb zákazníka a také v důsledku měnícího se okolí (např. změna legislativy). Přenositelnost úsilí, které je nutné pro přenos softwaru z jedné platformy na jinou. Úvod do softwarového inženýrství IUS 2009/2010 p.3/55

6 Implementace softwaru Podíl implementace na celkovém objemu prací v životním cyklu softwaru se snižuje: zavedením 4GL jazyků vizuálním programováním (zejména v souvislosti s tvorbou GUI) využíváním integrovaných vývojových prostředí využívání pokročilých prostředků trasování a ladění programů generováním aplikací (např. z Rational Rose) vývojem prostředků spolupráce aplikací (middleware) rozšířením a rozvojem OO/AO/komponentního přístupu znovupoužitelností (využití internetu) Úvod do softwarového inženýrství IUS 2009/2010 p.4/55

7 Generace programovacích jazyků první generace programování přímo v binárním kódu druhá generace asemblery, symbolické vyjádření binárních instrukcí (1 ku 1) třetí generace procedurální jazyky jeden příkaz se transformuje do 5-10 instrukcí v binárním kódu čtvrtá generace (4GL) neprocedurální jazyky (definuje se, co je třeba vykonat, ne jak) jeden příkaz se přeloží do cca instrukcí v binárním kódu často méně efektivní realizace kódu nemožnost ovlivnit zabudovaný způsob realizace jednotlivých akcí uživatelské programování, angl. "End-User Programming" např. Microsoft Excel Úvod do softwarového inženýrství IUS 2009/2010 p.5/55

8 Strategie implementace postup, jakým se realizují jednotlivé softwarové součásti a odevzdávají na testování částečná závislost na architektuře a strategii návrhu potřeba inkrementálního (postupného) vývoje strategie implementace zpravidla podmiňuje strategii testování Implementace zdola-nahoru systém je možné předvádět až po jeho úplném dokončení možnost přímého použití odladěných modulů nižších úrovní chyby v logice se identifikují až v etapě integračního testování testování modulů na nižších úrovních: potřeba speciálních modulů (simulace chování/dat vyšších úrovní) testování modulů jednotlivě je jednodušší než testování logiky celého systému Úvod do softwarového inženýrství IUS 2009/2010 p.6/55

9 Strategie implementace Implementace shora-dolů možnost demonstrace systému poměrně brzy včasná identifikace najzávažnějších chyb logika systému se ověřuje několikrát (testování celého systému) testování systému: potřeba simulačních modulů (simulace práce podsystémů) nedá sa použít, pokud se požaduje implementace některých modulů nejnižší úrovně na začátku (např. výstupní sestavy) testování logiky systému je náročnější než testování modulů jednotlivě Úvod do softwarového inženýrství IUS 2009/2010 p.7/55

10 Strategie implementace Implementace shora-dolů možnost demonstrace systému poměrně brzy včasná identifikace najzávažnějších chyb logika systému se ověřuje několikrát (testování celého systému) testování systému: potřeba simulačních modulů (simulace práce podsystémů) nedá sa použít, pokud se požaduje implementace některých modulů nejnižší úrovně na začátku (např. výstupní sestavy) testování logiky systému je náročnější než testování modulů jednotlivě V praxi se požívá kombinace přístupu zdola-nahoru a shora-dolů. Úvod do softwarového inženýrství IUS 2009/2010 p.7/55

11 Implementace shrnutí Programy se nevytvářejí tak, aby se lehce psaly, ale aby se lehce četly a modifikovaly! Úvod do softwarového inženýrství IUS 2009/2010 p.8/55

12 Validace a verifikace programu Zjišt ujeme, zda software odpovídá specifikaci a splňuje požadavky uživatele. verifikace: Vytváříme výrobek správně? (podle požadavků, specifikace,... ) validace: Vytváříme správný výrobek? (Jsou splněny potřeby uživatele? Odpovídá tomu specifikace?) Sledované vlastnosti: správnost spolehlivost efektivnost bezpečnost... Úvod do softwarového inženýrství IUS 2009/2010 p.9/55

13 Validace a verifikace programu Správnost výrobku nepostačuje! Dokonce správnost někdy není nevyhnutelná! Příklad specifikace procedury SORT: Vstupní podmínka A: array(1..n) of integer Výstupní podmínka B: array(1..n) of integer, přičemž B(1) B(2)... B(N) Implementace: procedure SORT begin for i:= 1 to N do B[i] := 0; end Chyba ve specifikaci:... a prvky pole B jsou permutací prvků pole A. Úvod do softwarového inženýrství IUS 2009/2010 p.10/55

14 Cíle verifikace a validace odhalit chyby během vývoje Test, který neodhalí nesprávné chování systému, je neúspěšný. prokázat požadované vlastnosti Dijkstra: "Testování nemůže prokázat, že v programu nejsou chyby. Může pouze ukázat, že tam chyby jsou!" Murphy: "Když může systém spadnout, tak taky spadne, a to v tom nejnevhodnějším okamžiku." Úvod do softwarového inženýrství IUS 2009/2010 p.11/55

15 Typy ověřování statické nevyžaduje běh programu, lze v libovolné etapě vývoje SW dynamické proces odvození vlastností výrobku na základě výsledků použití (běhu) programu s vybranými vstupy statické ověřování specifikace požadavků návrh programy prototyp dynamické ověřování Úvod do softwarového inženýrství IUS 2009/2010 p.12/55

16 Přístupy statického ověřování Prohlídka dokumentu formální (inspection) neformální (walkthrough) je založena na statické prohlídce vytvořených dokumentů (i zdrojových textů programů) Matematická verifikace formální matematický důkaz ověřovaný dokument musí být formálně reprezentovaný (přesná definice sémantiky) Úvod do softwarového inženýrství IUS 2009/2010 p.13/55

17 Přístupy dynamického ověřování (testování) cíl: vybrat takové testovací vstupy, pro které je pravděpodobnost příslušnosti do množiny I ch vysoká Úvod do softwarového inženýrství IUS 2009/2010 p.14/55

18 Množina testovacích vstupů velikost množiny testovacích vstupů musí být přijatelná testovací vstup se vybírá na základě testovacího kritéria testovací kritérium určuje podmínky, které musí splňovat množina testovacích vstupů, např. pokrytí všech příkazů v programu Program Specifikace Aplikování kritéria Množiny testovacích vstupů Kritérium Úvod do softwarového inženýrství IUS 2009/2010 p.15/55

19 Vlastnosti testovacího kritéria spolehlivost: kritérium K je spolehlivé, když všechny množiny testovacích vstupů splňující kritérium K odhalí ty samé chyby nezáleží na tom, která množina testovacích vstupů se vybere, vždy odhalíme ty samé chyby platnost: kritérium K je platné, když pro každou chybu v programu existuje množina testovacích vstupů, která splňuje kritérium K a která odhalí chybu Když je testovací kritérium spolehlivé a platné a množina testovacích vstupů, která splňuje kritérium, neodhalí žádné chyby, tak program neobsahuje chyby. Úvod do softwarového inženýrství IUS 2009/2010 p.16/55

20 Vlastnosti testovacího kritéria spolehlivost: kritérium K je spolehlivé, když všechny množiny testovacích vstupů splňující kritérium K odhalí ty samé chyby nezáleží na tom, která množina testovacích vstupů se vybere, vždy odhalíme ty samé chyby platnost: kritérium K je platné, když pro každou chybu v programu existuje množina testovacích vstupů, která splňuje kritérium K a která odhalí chybu Když je testovací kritérium spolehlivé a platné a množina testovacích vstupů, která splňuje kritérium, neodhalí žádné chyby, tak program neobsahuje chyby. ALE Bylo dokázané, že neexistuje algoritmus, který určí platné kritérium pro libovolný program. Úvod do softwarového inženýrství IUS 2009/2010 p.16/55

21 Proces testování Testovací vstupy Testovací údaje Výsledky Navrhni testovací vstupy Připrav testovací vstupy Proved program Porovnej výsledky Zpráva Úvod do softwarového inženýrství IUS 2009/2010 p.17/55

22 Techniky testování náhodné testování množina testovacích vstupů se vybere náhodně funkcionální testování na základě specifikace programu (vstupy, výstupy) metoda černé skříňky black box, data driven, functional, input/output driven, closed box strukturální testování na základě vnitřní struktury programu metoda bílé skříňky white box, glass box, logic driven, path oriented, open box testování rozhraní na základě znalostí rozhraní mezi moduly a specifikace programu Úvod do softwarového inženýrství IUS 2009/2010 p.18/55

23 Funkcionální testování zjištění zda vstupně-výstupní chování vyhovuje specifikaci např. matematická funkce se specifikuje vstupy a výstupy testovací vstupy se odvozují přímo ze specifikace neuvažuje se vnitřní struktura, logika modulu velká množina testovacích vstupů (problém) úplné funkcionální testování je v praxi nemožné Příklad: ABS(x) vstup (x) výstup Úvod do softwarového inženýrství IUS 2009/2010 p.19/55

24 Třídy ekvivalence vstupů/výstupů každý možný vstup/výstup patří do jedné z tříd ekvivalence, pro které je chování systému identické (vstup-výstup) žádný vstup/výstup nepatří do více tříd ekvivalence pokud se při daném vstupu/výstupu zjistí chyba, tak stejnou chybu je možné odhalit použitím jiného vstupu/výstupu z dané třídy ekvivalence Úvod do softwarového inženýrství IUS 2009/2010 p.20/55

25 Třídy ekvivalence vstupů/výstupů Granularita třídy ekvivalence rozsah hodnota podmnožina Výběr testovacích údajů z třídy ekvivalence průměr, medián třídy ekvivalence hranice třídy ekvivalence (příp. s okolními hodnotami) náhodně (doplnění množiny testovacích vstupů) Příklad: ABS(x) třídy ekvivalence vybrané vstupy/výstupy (x:int) (, 0) ( 32767,32767), ( 16384,16384), ( 1,1),... 0 (0, 0) (0, ) (32768,32768), (16384,16384), (1, 1),... Úvod do softwarového inženýrství IUS 2009/2010 p.21/55

26 Strukturální testování vychází se z vnitřní struktury programu testuje se implementace programu snaha o pokrytí různých struktur programu řízení údaje (data) kritéria: založená na tocích řízení (pokrytí cest, pokrytí rozhodovacích bloků nebo podmínek a pokrytí příkazů) založená na tocích dat mutační testování do programu se úmyslně zavedou chyby kontrolujeme, zda navržené testy tyto chyby odhalí (kvalita testu) Příklad: if x > 0 then y := x else y := -x; Úvod do softwarového inženýrství IUS 2009/2010 p.22/55

27 Strategie testování Testování zdola-nahoru (bottom-up testing) testují se komponenty na nižší úrovni, poté se integrují do komponenty vyšší úrovně a znovu testují vhodné, pokud většina modulů stejné úrovně je připravena Testování shora-dolů (top-down testing) testují se integrované moduly nejvyšší úrovně, poté se testují submoduly problém s připraveností všech modulů (simulace modulů na nižších úrovních) Sendvičové testování (sandwich testing) kombinace strategií bottom-up a top-down testování moduly se rozdělí do dvou skupin logické: řízení a rozhodování, top-down funkční : vykonávání požadovaných funkcí, bottom-up Úvod do softwarového inženýrství IUS 2009/2010 p.23/55

28 Strategie testování Jednofázové testování (big-bang testing) moduly se otestují samostatně a poté se naráz integrují náročná identifikace místa chyby při integraci náročné rozlišení chyb v rozhraní modulů od ostatních chyb Testování porovnáváním (comparison testing, back-to-back testing) více verzí systému na testování prototyp technika programování N-verzí vývoj vysoce spolehlivých systémů vývoj více verzí produktu pro různé platformy stejné výsledky značí, že verze pravděpodobně pracují správně problémy: stejné chyby ve verzích nevyhovující specifikace Úvod do softwarového inženýrství IUS 2009/2010 p.24/55

29 Akceptační testování Testuje se na reálných datech. Testuje se u uživatele. Uživatel určí, zda produkt splňuje zadání. Další změny po akceptaci systému již představují údržbu systému. Vztahuje se na zakázkový software. Úvod do softwarového inženýrství IUS 2009/2010 p.25/55

30 Alfa a Beta testování... pro generické softwarové výrobky, kde není možné provést akceptační testy u každého zákazníka (operační systémy, kompilátory,... ) Alfa testování tam, kde se vyvíjí software testuje uživatel, vývojáři sledují a evidují chyby známé prostředí Beta testování testují uživatelé u sebe neznámé prostředí výsledkem je zpráva uživatele modifikace softwaru předání softwaru k používání Úvod do softwarového inženýrství IUS 2009/2010 p.26/55

31 Téma: Agilní metodologie Úvod do softwarového inženýrství IUS 2009/2010 p.27/55

32 Metodologie disciplinovaný proces nad vývojem softwaru s cílem zajistit tento vývoj více predikovatelný a efektivnější častá kritika "byrokratizace" metodologií příliš mnoho aktivit, které metodologie předepisuje, způsobuje snížení efektivity celého procesu vývoje nová skupina metodologií lightweight methodologies, dnes agile methodologies (agilní metodologie) Úvod do softwarového inženýrství IUS 2009/2010 p.28/55

33 Agilní metodologie snaha o kompromis mezi chaotickým přístupem bez procesů a přístupem s mnoha procesy rozumná velikost souboru procesů k zajištění přiměřeného zisku menší objem dokumentace v každém kroku klíčová část dokumentace je zdrojový kód! základní charakteristiky: adaptivní vs. prediktivní metody (přístupy) people-oriented vs. process-oriented metody (přístupy) Úvod do softwarového inženýrství IUS 2009/2010 p.29/55

34 Základní srovnání metod Adaptivní vs. prediktivní prediktivní metody plánují velké části softwarových procesů velmi detailně pro dlouhý časový úsek adaptivní metody (agilní metodologie) reagují na změny, procesy se v čase vyvíjejí People-oriented vs. process-oriented process-oriented metody definují pevnou posloupnost kroků procesy by měly fungovat za všech okolností (změna týmu,... ) people-oriented metody (agilní metodologie) žádný proces nikdy nevytváří dovednosti (znalosti) vývojového týmu úlohou procesu je podpora práce vývojového týmu Úvod do softwarového inženýrství IUS 2009/2010 p.30/55

35 Predikovatelnost procesu vývoje existují projekty, kde máme na začátku poměrně jasnou představu projekty vyžadující mnoho procedur, času, velké týmy a stabilní požadavky projekty NASA,... dobrá predikovatelnost procesu vývoje existují projekty, kde máme na začátku poměrně jasnou představu ale s časem se mění okolní podmínky a tedy i požadavky business projekty,... horší predikovatelnost procesu vývoje existují projekty, kde máme na začátku poměrně mlhavou představu business projekty,... špatná predikovatelnost procesu vývoje Úvod do softwarového inženýrství IUS 2009/2010 p.31/55

36 Predikovatelnost procesu vývoje Problém většiny projektů je, že se požadavky neustále mění. Je tedy predikovatelnost nemožná? Úvod do softwarového inženýrství IUS 2009/2010 p.32/55

37 Predikovatelnost procesu vývoje Přístupy k řešení requirements engineering před tvorbou softwaru získat plně srozumitelný obraz požadavků schválený (podepsaný) zákazníkem definování procedur limitujících změny požadavků po schválení klade vysoké nároky na proces specifikace požadavků a preciznost jejich vyjádření fixní požadavky jejich vytvoření stojí příliš mnoho energie a času adaptivní metody... Úvod do softwarového inženýrství IUS 2009/2010 p.32/55

38 Řízení adaptivních procesů Iterativní vývoj inkrementální spirálový... Každá iterace zahrnuje analýzu požadavků návrh (úpravy návrhu) implementaci testování analýzu rizik Otázka délky iterace týdny měsíce... Úvod do softwarového inženýrství IUS 2009/2010 p.33/55

39 Řízení adaptivních procesů Plánování procesů v první iteraci se vždy provádí plánování procesů, a to na základě zkušeností či dostupných metodik tento plán se během iterací vyvíjí (zpřesňuje) podle reálného stavu Úvod do softwarového inženýrství IUS 2009/2010 p.34/55

40 Process-oriented methods striktně definované procesy lidé jsou zdroje, které jsou dostupné v několika rolích analytik manažer programátor tester... podstatná je role, nikoliv individualita lidí není důležité jaké analytiky máte, ale kolik jich máte člověk je jednoduše nahraditelná komponenta vývojového procesu za standardní prostředek komunikace se považuje dokumentace Úvod do softwarového inženýrství IUS 2009/2010 p.35/55

41 Process-oriented methods striktně definované procesy lidé jsou zdroje, které jsou dostupné v několika rolích analytik manažer programátor tester... podstatná je role, nikoliv individualita lidí není důležité jaké analytiky máte, ale kolik jich máte člověk je jednoduše nahraditelná komponenta vývojového procesu za standardní prostředek komunikace se považuje dokumentace Teze: člověk vykonávající práci není ten, kdo může nejlépe určit, jak tuto práci nejlépe udělat Úvod do softwarového inženýrství IUS 2009/2010 p.35/55

42 People-oriented methods Design and programming are human activities; forget that and all is lost. Bjarne Stroustrup, 1991 lidé mají problémy fungovat konzistentně v průběhu času pokud člověk dostane každý den stejný úkol, vytvoří podobné výsledky, ale nikdy ne stejné schopnost pracovního nasazení/soustředění se mění den ze dne, z místa na místo (někteří pracují lépe v noci) lidé jsou komunikující bytosti fyzická blízkost gestikulace, hlasový projev, intonace otázky a odpovědi v reálném čase Úvod do softwarového inženýrství IUS 2009/2010 p.36/55

43 People-oriented methods Design and programming are human activities; forget that and all is lost. Bjarne Stroustrup, 1991 lidé mají problémy fungovat konzistentně v průběhu času pokud člověk dostane každý den stejný úkol, vytvoří podobné výsledky, ale nikdy ne stejné schopnost pracovního nasazení/soustředění se mění den ze dne, z místa na místo (někteří pracují lépe v noci) lidé jsou komunikující bytosti fyzická blízkost gestikulace, hlasový projev, intonace otázky a odpovědi v reálném čase Teze: člověk je kompetentní profesionál schopný rozhodovat všechny technické otázky své práce. Úvod do softwarového inženýrství IUS 2009/2010 p.36/55

44 Efektivnost komunikace efektivnost komunikace whiteboard telefon mail dokument forma komunikace Úvod do softwarového inženýrství IUS 2009/2010 p.37/55

45 Agilní metodologie Základní teze Jediná cesta, jak prověřit správnost navrženého systému, je co nejrychleji jej vyvinout, předložit zákazníkovi a na základě zpětné vazby upravovat. Člen týmu je schopen rozhodovat technické otázky své práce. Rozumná velikost souboru procesů. Klasické pravidlo Implementujeme pro dnešek, navrhujeme pro zítřek. Úvod do softwarového inženýrství IUS 2009/2010 p.38/55

46 Agilní metodologie Základní teze Jediná cesta, jak prověřit správnost navrženého systému, je co nejrychleji jej vyvinout, předložit zákazníkovi a na základě zpětné vazby upravovat. Člen týmu je schopen rozhodovat technické otázky své práce. Rozumná velikost souboru procesů. Klasické pravidlo Implementujeme pro dnešek, navrhujeme pro zítřek. Upravené pravidlo Implementujeme pro dnešek, navrhujeme pro úspěšnou implementaci. Úvod do softwarového inženýrství IUS 2009/2010 p.38/55

47 Agilní metodologie Agilní metodologie Extreme programming (XP) Crystal Scrum Feature Driven Development Dynamic System Development Method (DSDM)... Úvod do softwarového inženýrství IUS 2009/2010 p.39/55

48 Extrémní programování (XP) Kořeny XP Kent Beck: Extreme Programming Explained: Embrace Change Kent Beck, Ward Cunningham 80. léta Smalltalk 90. léta získávání zkušeností v různých projektech, rozšiřování idejí agilního přístupu Úvod do softwarového inženýrství IUS 2009/2010 p.40/55

49 Charakteristické prvky XP Komunikace programátoři, zákazníci a manažeři musí spolu komunikovat XP využívá takové techniky, které komunikaci vyžadují (testování, párové programování, odhady úkolů) člen týmu, který udržuje komunikační toky, pomáhá programátorům s technickými dovednostmi, komunikuje s manažery na vyšších úrovních Úvod do softwarového inženýrství IUS 2009/2010 p.41/55

50 Charakteristické prvky XP Komunikace programátoři, zákazníci a manažeři musí spolu komunikovat XP využívá takové techniky, které komunikaci vyžadují (testování, párové programování, odhady úkolů) člen týmu, který udržuje komunikační toky, pomáhá programátorům s technickými dovednostmi, komunikuje s manažery na vyšších úrovních Zpětná vazba "Zeptej se systému", "Už máš napsaný test?" snaha mít co nejdříve nejdůležitější části systému, nejlépe přímo v provozu zpětná vazba by měla být rychlá přehnaný optimismus se léčí zpětnou vazbou člen týmu, který sleduje metriky, srovnává je s očekávaným stavem (nutnost malé režie) Úvod do softwarového inženýrství IUS 2009/2010 p.41/55

51 Charakteristické prvky XP Jednoduchost "Co je nejjednodušší věc, která by ještě fungovala?" je dobré udržovat si přehled o tom, co bude nicméně je nutné soustředit se na to, co je potřeba právě ted jednoduché věci je třeba vytvářet jednoduše úspora času na opravdu složité věci v případě potřeby není problém jednoduché věci rozšířit Úvod do softwarového inženýrství IUS 2009/2010 p.42/55

52 Charakteristické prvky XP Jednoduchost "Co je nejjednodušší věc, která by ještě fungovala?" je dobré udržovat si přehled o tom, co bude nicméně je nutné soustředit se na to, co je potřeba právě ted jednoduché věci je třeba vytvářet jednoduše úspora času na opravdu složité věci v případě potřeby není problém jednoduché věci rozšířit Odvaha nebát se provést zásadní změny (např. i za cenu dočasného snížení úspěšnosti testů a tedy zvýšeného úsilí) nebát se zahodit naprogramovaný kód nebát se zkusit neznámé (když nevíš, že to nejde, může se to podařit) Úvod do softwarového inženýrství IUS 2009/2010 p.42/55

53 Základní techniky XP Přírůstkové (malé) změny návrh a implementace se mění v čase jen pozvolna uvolňování malých verzí systému (nejpodstatnější požadavky, postupně vylepšované a doplňované) Úvod do softwarového inženýrství IUS 2009/2010 p.43/55

54 Základní techniky XP Přírůstkové (malé) změny návrh a implementace se mění v čase jen pozvolna uvolňování malých verzí systému (nejpodstatnější požadavky, postupně vylepšované a doplňované) Testování "Co nelze otestovat, to neexistuje." ke každé funkci píšeme testy (mnohdy testujeme dříve, než programujeme) zautomatizovaný systém testů integrace a integrační testování Úvod do softwarového inženýrství IUS 2009/2010 p.43/55

55 Základní techniky XP Párové programování jednu věc programují vždy 2 programátoři (ale pouze 1 skutečně píše) ten, kdo píše, se soustřed uje na nejlepší způsob implementace problému druhý se soustřed uje na problém z globálnějšího pohledu bude to fungovat, jaké další testy, možnost zjednodušení,... páry jsou dynamické Úvod do softwarového inženýrství IUS 2009/2010 p.44/55

56 Základní techniky XP Párové programování jednu věc programují vždy 2 programátoři (ale pouze 1 skutečně píše) ten, kdo píše, se soustřed uje na nejlepší způsob implementace problému druhý se soustřed uje na problém z globálnějšího pohledu bude to fungovat, jaké další testy, možnost zjednodušení,... páry jsou dynamické Refaktorizace úprava stávajícího programu zjednodušení, zefektivnění návrhu odstranění (úprava) nepotřebných částí změna architektury (pravidlo přírůstkové změny) při refaktorizaci se nemění funkcionalita! Úvod do softwarového inženýrství IUS 2009/2010 p.44/55

57 Základní techniky XP Metriky důležitá součást určení kvality softwarových procesů např. poměr plánovaného času a skutečného času přiměřený počet metrik (3 4) pokud přestane metrika plnit svůj účel nahradit jinou např. metrika testů funkcionality se blíží 100% nahradit jinou s menší úspěšností existují pravidla udávající kdy a jak často by se měly jednotlivé techniky používat Úvod do softwarového inženýrství IUS 2009/2010 p.45/55

58 Proces vývoje v XP Iterace 1 4 týdny nezbytným výsledkem je sada testů funkcionality v první iteraci základy architektury výsledkem je základní funkční systém v dalších iteracích rozšiřování základní verze hledání odchylek od plánu (čas, testování,... ) v případě odchylek změna plánu nebo změna procesu Úvod do softwarového inženýrství IUS 2009/2010 p.46/55

59 Proces vývoje v XP Správný návrh se vyznačuje všechny testy fungují, neobsahuje duplicitní logiku, má co nejmenší počet tříd a metod, programátor zná všechny záměry návrhu. Motivace vývojářů lidé lépe pracují, pokud je práce baví jídlo, hračky, vybavení pracoviště,... Úvod do softwarového inženýrství IUS 2009/2010 p.47/55

60 Je RUP agilní metodou? Úvod do softwarového inženýrství IUS 2009/2010 p.48/55

61 Je RUP agilní metodou? Základní charakteristika základní vyjadřovací prostředek je UML pracuje v iteracích definuje obsah každé iterace definuje pracovní rámec (framework) Použití RUP klasický heavyweight proces agilní proces Úvod do softwarového inženýrství IUS 2009/2010 p.48/55

62 Je RUP agilní metodou? Craig Larman "light RUP" měsíční iterace první 3 dny iterace využití UML pro přiblížení návrhu pro danou iteraci dx proces minimální RUP proces považuje UML za jeden z možných pomocných prostředků Úvod do softwarového inženýrství IUS 2009/2010 p.49/55

63 Principy agilních metodologií shrnutí Iterativní a inkrementální vývoj krátké iterace nové funkce (funkcionalita) se dodávají často zákazník má pocit, že se něco děje, má možnost rychle modifikovat funkcionalitu / požadavky Princip jednoduchosti "Implementujeme pro dnešek, navrhujeme pro zítřek." {problém predikovatelnosti} zvyšování funkcionality (nákladů) na základě spekulace "Do systému vložíme to, co potřebujeme, když to potřebujeme." Osobní komunikace v týmu zásadní problém každé skupiny je komunikace komunikace jako jedna z forem vývoje softwaru používají se takové techniky, které komunikaci vyžadují párové programování, refaktorizace, časté schůzky se zákazníkem,... Úvod do softwarového inženýrství IUS 2009/2010 p.50/55

64 Principy agilních metodologií shrnutí Zákazník je členem vývojového týmu zákazník komunikuje s vývojovým týmem zákazník se spolupodílí na návrhu systému, na testech,... Průběžné automatizované testování časté změny systému vyžadují časté ověřování správnosti testy by měly být automatizované testy by měly být napsány před implementací Dokumentace význam formálních dokumentů je snižován základní dokumentace je zdrojový kód (klade se na něj největší důraz) uživatelský manuál (ne příliš rozsáhlý) Úvod do softwarového inženýrství IUS 2009/2010 p.51/55

65 Prediktivní či agilní metodologii? Kdy použít agilní metodologii? neurčité nebo měnící se požadavky odpovědní a dobře motivovaní vývojáři zákazník, který je ochoten zapojit se do vývoje Kdy použít prediktivní metodologii? velký vývojový tým (více jak 100 lidí) pevný rozsah projektu Výběr metodologie ovšem závisí na mnoha dalších aspektech... Úvod do softwarového inženýrství IUS 2009/2010 p.52/55

66 Poznatky z praxe Přístupy lidí vývoj podle předpisů můžeme říci, že neúspěch není naše chyba lidé preferují konzervativní přístup a neúspěch než riskovat úspěch s odlišnou metodou každá nová technika návrhu vypadá příliš složitě na použití návrhové týmy ignorují nástroje a techniky, které nemají rádi lidé pracují (učí se) dobře podle příkladů Metodologie většina metodologií může být vytvořena (použita) tak, aby pracovala v nějakém projektu libovolná metodologie může vést nějaký projekt k neúspěchu úspěšné týmy používají inkrementální vývoj "heavy" procesy bývají úspěšné "light" procesy jsou častěji úspěšné, úspěch je připisován právě "lightness" použité metodologie Úvod do softwarového inženýrství IUS 2009/2010 p.53/55

67 SW inženýr a metodologie Co musí umět dobrý SW inženýr? vybrat vhodnou metodologii nebo na základě metodologií vytvořit scénář vývoje softwaru tak, aby projekt úspěšně dosáhl stanoveného cíle, stanovit cíle splnitelné v daném prostředí cena termín dokončení funkčnost kvalita a to s ohledem na vývojový tým, který má k dispozici. Úvod do softwarového inženýrství IUS 2009/2010 p.54/55

68 Další reference Václav Kadlec. Agilní programování: Metodiky efektivního vývoje softwaru. Craig Larman. Agile and iterative development: a manager s guide. Scott W. Ambler. Agile database techniques: effective strategies for the agile software developer. Mike Cohn. Agile estimating and planning. Kent Beck. Extreme Programming Explained: Embrace Change. Alistair Cockburn. Agile Software Development: The Cooperative Game. Alistair Cockburn. Crystal Clear: A Human-Powered Methodology for Small Teams. Ken Schwaber, Mike Beedle. Agile Software Development with SCRUM. Úvod do softwarového inženýrství IUS 2009/2010 p.55/55

ÚVOD DO SOFTWAROVÉHO INŽENÝRSTVÍ

ÚVOD DO SOFTWAROVÉHO INŽENÝRSTVÍ ÚVOD DO SOFTWAROVÉHO INŽENÝRSTVÍ Předmětem softwarového inženýrství jsou metodiky pro řízení vývoje softwaru. Proč potřebujeme tyto metodiky? Čím je vývoje softwaru specifický oproti jiným odvětvím? SOFTWAROVÉ

Více

Testování software. Jaroslav Žáček

Testování software. Jaroslav Žáček Testování software Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Testování Obsáhlá disciplína, existuje spoustu pohledů Problém při nastavení míry kvality Kvalita: Schopnost objektu být

Více

Návrh softwarových systémů - úvod, motivace

Návrh softwarových systémů - úvod, motivace Návrh softwarových systémů - úvod, motivace Jiří Šebek, Martin Tomášek Návrh softwarových systémů (B6B36NSS) Obsah Motivace Integrace s ostatními obory SI Kdo / co ovlivňuje cílový SW Modely, metodiky

Více

Návrh softwarových systém. Návrh softwarových systémů

Návrh softwarových systém. Návrh softwarových systémů Návrh softwarových systém ů - úvod, motivace Jiří Šebek Návrh softwarových systémů (B6B36NSS) Obsah Motivace Integrace s ostatními obory SI Modely, metodiky SI Verzování SW 2 Úvod Motivace SI Velké projekty

Více

Zajištění kvality programového vybavení - testování

Zajištění kvality programového vybavení - testování Zajištění kvality programového vybavení - testování Základy testování Proč se to dělá? Kvalita software 100% testování není možné Různé pohledy: Vývojářské testování (testy komponent, integrační, systémové

Více

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko Strategie testování, validace a verifikace. Testování v průběhu životního cyklu SW díla. Testování jednotek, integrační testování, validační testování, systémové testování, ladění. Principy testování,

Více

Vývoj řízený testy Test Driven Development

Vývoj řízený testy Test Driven Development Vývoj řízený testy Test Driven Development Richard Salač, Ondřej Lanč Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze 23. - 30. 10. 2012 Obsah 1 Testování 2 Klasický přístup

Více

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

1 Úvod 1.1 Vlastnosti programového vybavení (SW) 1 Úvod 1.1 Vlastnosti programového vybavení (SW) - dávkové zpracování - omezená distribuce - zakázkový SW - distribuované systémy - vestavěná inteligence - laciný HW - vliv zákazníka 1950 1960 1970 1980

Více

Řízení reálných projektů, agilní metodiky

Řízení reálných projektů, agilní metodiky Agent Technology Group Katedra kybernetiky Fakulta elektrotechnická - České vysoké učení technické Praha, 2009 Osnova Lze vyvíjet software bez metodiky? - bohužel ano menší komerční firmy (zejména vývoj

Více

CASE. Jaroslav Žáček

CASE. Jaroslav Žáček CASE Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Co znamená CASE? Definice dle SEI A CASE tool is a computer-based product aimed at supporting one or more software engineering activities

Více

Metodika analýzy. Příloha č. 1

Metodika analýzy. Příloha č. 1 Metodika analýzy Příloha č. 1 Příloha č. 1 1 Účel dokumentu Dokument popisuje závaznou metodiku systémové analýzy, je upraven na míru pro prostředí Podniku. Dokument je provázán s Podnikovou analýzou,

Více

Vývoj informačních systémů. Jak vyvíjet v týmu

Vývoj informačních systémů. Jak vyvíjet v týmu Vývoj informačních systémů Jak vyvíjet v týmu Co je potřeba a co je podstatné? Lidé a jejich spolupráce Plány, pravidla, procesy, řízení Dokumentace Techniky a technologie Dlouhý čas Cílem je produkt (software)

Více

CASE nástroje. Jaroslav Žáček

CASE nástroje. Jaroslav Žáček CASE nástroje Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Co znamená CASE? A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within

Více

Agile Software Development

Agile Software Development Agile Software Development Agile Software Development Jiri Fabian www.jirifabian.net O čem to bude O metodologiích RUP Agile XP Scrum Co je softwarový vývoj Umění? Manufaktura? Modelování? Co je softwarový

Více

10 Metody a metodologie strukturované analýzy

10 Metody a metodologie strukturované analýzy 10 Metody a metodologie strukturované analýzy 10.1 Strukturovaná analýza DeMarco (1978) Nástroje: DFD, datový slovník, strukturovaná angličtina, rozhodovací tabulky a stromy Postup: 1. Analýza stávajícího

Více

12 Zajištění kvality programového vybavení

12 Zajištění kvality programového vybavení 12 Zajištění kvality programového vybavení Obecně dva druhy kvality u technických produktů: a) Kvalita návrhu - vlastnosti komponent, specifikované návrháři. U SW se týká analýzy a specifikace požadavků

Více

Životní cyklus produktu (IS / IT služby) Životní cyklus projektu Životní cyklus řízení projektu. Vývoje produktu Implementace produktu

Životní cyklus produktu (IS / IT služby) Životní cyklus projektu Životní cyklus řízení projektu. Vývoje produktu Implementace produktu Životní cykly Životní cyklus produktu (IS / IT služby) Životní cyklus projektu Životní cyklus řízení projektu Vývoje produktu Implementace produktu 1. Identifikace problému potřeba nového systému/služby

Více

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda Proces vývoje HRIS Vema Vlastnosti HRIS (Human Resources Information System) HRIS Vema Proces vývoje HRIS Vema Vema, a. s. Přední

Více

Ročníkový projekt. Jaroslav Žáček jaroslav.zacek@osu.cz

Ročníkový projekt. Jaroslav Žáček jaroslav.zacek@osu.cz Ročníkový projekt Jaroslav Žáček jaroslav.zacek@osu.cz Cíle předmětů Vytvoření fungující aplikace, která splňuje definované požadavky Vyzkoušet si celý životní cyklus projektu - specifikace zadání, formování

Více

Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W Osnova přednášky Co to je softwarové inženýrství Softwarový proces Metodika a metoda Evoluce softwarových

Více

12 Zajištění kvality programového vybavení

12 Zajištění kvality programového vybavení 12 Zajištění kvality programového vybavení Obecně dva druhy kvality u technických produktů: a) Kvalita návrhu - vlastnosti komponent, specifikované návrháři. U SW se týká analýzy a specifikace požadavků

Více

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

X36SIN: Softwarové inženýrství. Životní cyklus a plánování X36SIN: Softwarové inženýrství Životní cyklus a plánování 1 Kontext Minule jsme si řekli, co to je deklarace záměru, odborný článek, katalog požadavků, seznam aktérů a seznam událostí. Seznam aktérů a

Více

Kvalita SW produktů. Jiří Sochor, Jaroslav Ráček 1

Kvalita SW produktů. Jiří Sochor, Jaroslav Ráček 1 Kvalita SW produktů Jiří Sochor, Jaroslav Ráček 1 Klasický pohled na kvalitu SW Každý program dělá něco správně; nemusí však dělat to, co chceme, aby dělal. Kvalita: Dodržení explicitně stanovených funkčních

Více

SOFTWAROVÉ INŽENÝRSTVÍ Řízení IT projektů

SOFTWAROVÉ INŽENÝRSTVÍ Řízení IT projektů SOFTWAROVÉ INŽENÝRSTVÍ Řízení IT projektů Ing. Ondřej Macek 2013/14 ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Historie 2 Jak vypadal vývoj SW? - Bylo třeba specifikovat zadání, to se naprogramovalo a pak se

Více

TREND 07-201 POPIS ODPOVĚDNOSTI PRACOVNÍKA MANAŽER VÝVOJE

TREND 07-201 POPIS ODPOVĚDNOSTI PRACOVNÍKA MANAŽER VÝVOJE Tel. +420 543426329 TREND 07-201 POPIS ODPOVĚDNOSTI PRACOVNÍKA MANAŽER VÝVOJE Autor: Vít Chvál Verze dokumentu: 1.0 Datum poslední změny: 18.2.2013 Obsah: 1 Pracovník 3 2 Pracovní činnosti (Náplň práce)

Více

Zuzana Šochová 30.10.2008. MFF Modelování a realizace softwarových projektů

Zuzana Šochová 30.10.2008. MFF Modelování a realizace softwarových projektů Zuzana Šochová 30.10.2008 1 Metody řízení projektů Týmová spolupráce Agilní metody Scrum proces Backlog úloh a odhady Jak plánovat Tým a zákazník 2 Executive support User involvement Experienced project

Více

Obsah. Úvod 9 Poděkování 10 Co je obsahem této knihy 10 Pro koho je tato kniha určena 11 Zpětná vazba od čtenářů 11 Errata 11

Obsah. Úvod 9 Poděkování 10 Co je obsahem této knihy 10 Pro koho je tato kniha určena 11 Zpětná vazba od čtenářů 11 Errata 11 Úvod 9 Poděkování 10 Co je obsahem této knihy 10 Pro koho je tato kniha určena 11 Zpětná vazba od čtenářů 11 Errata 11 KAPITOLA 1 Co je třeba znát aneb důležité pojmy 13 Krátce o požadavcích 13 Stakeholdeři

Více

Úvod do softwarového inženýrství IUS 2009/2010 p.1/40

Úvod do softwarového inženýrství IUS 2009/2010 p.1/40 Úvod do softwarového inženýrství IUS 2009/2010 2. přednáška Ing. Radek Kočí, Ph.D. Ing. Bohuslav Křena, Ph.D. Úvod do softwarového inženýrství IUS 2009/2010 p.1/40 Dekompozice složitých problémů rozdělení

Více

Vývoj informačních systémů. Přehled témat a úkolů

Vývoj informačních systémů. Přehled témat a úkolů Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Znalosti Schopnosti Cvičení

Více

2 Životní cyklus programového díla

2 Životní cyklus programového díla 2 Životní cyklus programového díla Typické etapy: 1. Specifikace požadavků - specifikace problému - analýza požadavků 2. Vývoj programu - návrh - kódování (programování) 3. Verifikace a validace 4. Provoz

Více

Agilní metodiky vývoje softwaru

Agilní metodiky vývoje softwaru vývoje softwaru : důraz na průběžnou komunikaci mezi vývojovým týmem a zákazníkem důraz na tvorbu kvalitního kódu a funkcí, které mají přímou obchodní hodnotu pro zákazníka týmovou spolupráci a samoorganizaci

Více

Vývoj informačních systémů. Přehled témat a úkolů

Vývoj informačních systémů. Přehled témat a úkolů Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Teorie Praxe Cvičení Diskuze

Více

Analytická specifikace a její zpracování

Analytická specifikace a její zpracování Analytická specifikace a její zpracování Analýza Měla by odpovědět na otázku CO? Musí definovat konceptuální model řešeného problému datový model entity, vztahy, omezení funkční model služby pro záznam,

Více

Základy analýzy. autor. Jan Novotný http://blog.novoj.net/ 15. února 2007

Základy analýzy. autor. Jan Novotný http://blog.novoj.net/ 15. února 2007 Základy analýzy autor Jan Novotný http://blog.novoj.net/ 15. února 2007 V prezentaci jsou použity diagramy z: Wikipedia, Sparx UML Tutorial, Argo UML Metodiky vývoje Různé metodiky vývoje vazba na fáze

Více

Testování Java EE aplikací Petr Adámek

Testování Java EE aplikací Petr Adámek Testování Java EE aplikací Petr Adámek Testování aplikací Testování aplikací Ověřuje soulad implementace se specifikací a s očekáváním zákazníka. Je důležitou součástí procesu řízení kvality vývoje software

Více

Softwarový proces. Bohumír Zoubek, Tomáš Krátký

Softwarový proces. Bohumír Zoubek, Tomáš Krátký Softwarový proces Bohumír Zoubek, Tomáš Krátký 1 Úvod Základní pojmy Softwarový proces / Model životního cyklu vývoje software (SDLC, Software Development Lifecycle) Množina aktivit nutných k tomu, aby

Více

Testování softwaru. 10. dubna Bořek Zelinka

Testování softwaru. 10. dubna Bořek Zelinka Testování softwaru 10. dubna 2013 Bořek Zelinka Agenda Definice testování Testování v rámci vývoje softwaru Základní rozdělení testů Představení testovacích technik Testovací strategie Copyright Unicorn

Více

Program a životní cyklus programu

Program a životní cyklus programu Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy

Více

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,

Více

Metodiky pro efektivní vývoj software (agilní programování)

Metodiky pro efektivní vývoj software (agilní programování) Metodiky pro efektivní vývoj software (agilní programování) Netradiční metody programování Cílem těchto metodik je vyvinout kvalitní a dobře fungující software rychle a levně. Umožňují flexibilní reakci

Více

14 Úvod do plánování projektu Řízení projektu

14 Úvod do plánování projektu Řízení projektu 14 Úvod do plánování projektu Řízení projektu Plánování projektu Vývoj - rozbor zadání odhad pracnosti, doby řešení, nákladů,... analýza rizik strategie řešení organizace týmu PLÁN PROJEKTU 14.1 Softwarové

Více

PROBLÉMY A SPECIFIKA VÝVOJE SOFTWARE

PROBLÉMY A SPECIFIKA VÝVOJE SOFTWARE PROBLÉMY A SPECIFIKA VÝVOJE SOFTWARE Vývoj prvních programů byl prováděn nadšenci, programy byly šité na míru. Žádná metodika vývoje SW v té době neexistuje. Vývoj SW byl vnímán jako výzkum. Cíl, co bude

Více

4IT445 - AGILNÍ VÝVOJ WEBOVÝCH APLIKACÍ AGILNÍ METODIKY VÝVOJE SW ING. JAN ČERNÝ

4IT445 - AGILNÍ VÝVOJ WEBOVÝCH APLIKACÍ AGILNÍ METODIKY VÝVOJE SW ING. JAN ČERNÝ 4IT445 - AGILNÍ VÝVOJ WEBOVÝCH APLIKACÍ AGILNÍ METODIKY VÝVOJE SW ING. JAN ČERNÝ 1 METODIKY K ČEMU JSOU DOBRÉ? BUĎ NEMÁTE ŽÁDNOU NEBO STRIKTNÍ / RIGORÓZNÍ POSTUPY NĚCO MEZI TÍM: AGILNÍ PŘÍSTUP K ČEMU

Více

14 Úvod do plánování projektu Řízení projektu

14 Úvod do plánování projektu Řízení projektu 14 Úvod do plánování projektu Řízení projektu Plánování projektu Vývoj - rozbor zadání odhad pracnosti, doby řešení, nákladů,... analýza rizik strategie řešení organizace týmu PLÁN PROJEKTU 14.1 Softwarové

Více

XINF1. Jaroslav Žáček jaroslav.zacek@osu.cz

XINF1. Jaroslav Žáček jaroslav.zacek@osu.cz XINF1 Jaroslav Žáček jaroslav.zacek@osu.cz Tutoriály 24.10. - 3h 6.11. - 2,2h 27.11. - 1,5h Tutoriály budeme věnovat nejen teorii, ale také cvičení a workshopům. Přečtěte si skripta dříve, než týden před

Více

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství Přemysl Brada Cíle předmětu Organizační informace Opakování Cíl předmětu Praktické zkušenosti sw proces a iterativní vývoj jaksi mimochodem

Více

Návrh softwarových systémů - architektura softwarových systémů

Návrh softwarových systémů - architektura softwarových systémů Návrh softwarových systémů - architektura softwarových systémů Martin Tomášek, Jiří Šebek Návrh softwarových systémů (B6B36NSS) Převzato z přednášky X36AAS M. Molhanec Co je to architektura Využívá se

Více

Ročníkový projekt. Jaroslav Žáček

Ročníkový projekt. Jaroslav Žáček Ročníkový projekt Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/infs1/ Cíle předmětů Vytvoření fungující aplikace, která splňuje definované požadavky Vyzkoušet si celý životní cyklus projektu

Více

Softwarové inženýrství 01. doc. Ing. František Huňka, CSc.

Softwarové inženýrství 01. doc. Ing. František Huňka, CSc. Softwarové inženýrství 01 doc. Ing. František Huňka, CSc. Obsah kurzu Softwarové inženýrství obecně vodopádová model spirálový model RUP agilní metodiky vývoj řízený vlastnostmi (Feature Development Design)

Více

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette

PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá

Více

ZEMĚMĚŘICKÝ ÚŘAD. Výzkum a vývoj programového aparátu pro generalizaci státního mapového díla. Ing. Přemysl JINDRÁK

ZEMĚMĚŘICKÝ ÚŘAD. Výzkum a vývoj programového aparátu pro generalizaci státního mapového díla. Ing. Přemysl JINDRÁK ZEMĚMĚŘICKÝ ÚŘAD Výzkum a vývoj programového aparátu pro generalizaci státního mapového díla Představení projektu Technologická Agentura ČR Praha, 31. 7. 2018 Ing. Přemysl JINDRÁK Základní vymezení Projekt

Více

SOFTWAROVÉ INŽENÝRSTVÍ 1

SOFTWAROVÉ INŽENÝRSTVÍ 1 Metodický list č. 1 Název tématického celku: Úvod do softwarového inženýrství Základním cílem tohoto tematického celku je vysvětlení smyslu discipliny nazývané softwarové inženýrství. Tematický celek zahrnuje

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

Specializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů.

Specializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů. Návrhář software Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů. Odborný směr: Informační technologie Odborný podsměr: nezařazeno do odborného podsměru

Více

Analýza a Návrh. Analýza

Analýza a Návrh. Analýza Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,

Více

01 Teoretické disciplíny systémové vědy

01 Teoretické disciplíny systémové vědy 01 Teoretické disciplíny systémové vědy (systémový přístup, obecná teorie systému, systémová statika a dynamika, úlohy na statických a dynamických systémech, kybernetika) Systémová věda je vědní disciplínou

Více

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

Jak testovat software v praxi. aneb šetříme svůj vlastní čas Jak testovat software v praxi aneb šetříme svůj vlastní čas Proč testy nepíšeme Nemáme na to čas Platí v cca 5% případů Nový projekt Prototyp je třeba mít během pár dní Počítá se s tím, že další verze

Více

Citace článku. Alena Buchalcevová, Jan Kučera. Katedra informačních technologií VŠE Praha nám. W.Churchilla 4, Praha 3

Citace článku. Alena Buchalcevová, Jan Kučera. Katedra informačních technologií VŠE Praha nám. W.Churchilla 4, Praha 3 Citace článku BUCHALCEVOVÁ, Alena, KUČERA, Jan. Hodnocení metodik vývoje informačních systémů z pohledu testování. Systémová integrace, 2008, roč. 15, č. 2, s. 42 54. ISSN 1210-9479 Hodnocení metodik vývoje

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

5 Požadavky a jejich specifikace

5 Požadavky a jejich specifikace 5 Požadavky a jejich specifikace 5.1 Inženýrství (requirements engineering) - proces stanovení služeb, které by měl vyvíjený systém poskytovat a omezení, za nichž musí pracovat - CO má systém dělat, ne

Více

Význam měřm. Mgr. Anna Borovcová doc. Ing. Alena Buchalcevová, Ph.D. VŠE Praha

Význam měřm. Mgr. Anna Borovcová doc. Ing. Alena Buchalcevová, Ph.D. VŠE Praha Význam měřm ěření v testování softwaru Mgr. Anna Borovcová doc. Ing. Alena Buchalcevová, Ph.D VŠE Praha Motivace The Standish Group reporty za roky 1994 2009 1994 1996 1998 2000 2002 2004 2006 2009 Úspěšných

Více

Jakou metodiku použít pro

Jakou metodiku použít pro Jakou metodiku použít pro konkrétní projekt? Hodnocení a výběr vhodné metodiky pro budování IS Alena Buchalcevová Katedra informačních č technologií, VŠE Praha Agenda metodika jako nástroj zvýšení úspěšnosti

Více

Vedení projektů, Odhadování, historie

Vedení projektů, Odhadování, historie Vedení projektů, Odhadování, historie Agenda Docházka Pár slov o došlých specifikacích Vedení projektů Pár slov SW projektu na MFF Odhadování Historie projektů Dotazy Project management Co je to projekt?

Více

Agilní přístupy k vývoji SW. Jaroslav Žáček

Agilní přístupy k vývoji SW. Jaroslav Žáček Agilní přístupy k vývoji SW Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ http://www.agilemanifesto.org/ Principy 1/4 Naší nejvyšší prioritou je vyhovět zákazníkovi včasným a průběžným

Více

Seminární práce Vývoj informačního systému. Manažerská informatika 2 Ing. Miroslav Lorenc

Seminární práce Vývoj informačního systému. Manažerská informatika 2 Ing. Miroslav Lorenc Seminární práce Vývoj informačního systému Manažerská informatika 2 Ing. Miroslav Lorenc Vypracoval: Jan Vít (xvitj17) LS 2007/2008 1. ÚVOD...3 1.1. POPIS PROJEKTU...3 2. OBSAH PROJEKTU...3 2.1. SEZNAM

Více

Design systému. Komponentová versus procesní architektura

Design systému. Komponentová versus procesní architektura Design systému Komponentová versus procesní architektura Architektura : třídy statické aspekty propojení logický pohled struktura popisu systému Architektura procesů: objekty dynamické aspekty koordinace

Více

Přehled rolí v jednotlivých metodikách

Přehled rolí v jednotlivých metodikách 4IT421 Zlepšování procesů budování informačních systémů Přehled rolí v jednotlivých metodikách RUP pro velké projekty, RUP pro malé projekty, OpenUP, MMSP, Scrum, XP Bc. Kamila Langrová (xlank10) ZS 2013/2014

Více

Novinky v UML 2.5 a agilní modelování

Novinky v UML 2.5 a agilní modelování Novinky v UML 2.5 a agilní modelování Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro AIS 15. října 2015 Marek Rychlý Novinky v UML

Více

1.1 Zátěžové testování

1.1 Zátěžové testování 1.1 Zátěžové testování Předpokladem pro toto stádium testování je ukončení funkčních testů a zamražení systému pro zátěžové testování. Toto stádium testování má podpořit systémové testování a poukázat

Více

Vnitřní kontrolní systém a jeho audit

Vnitřní kontrolní systém a jeho audit Vnitřní kontrolní systém a jeho audit 7. SETKÁNÍ AUDITORŮ PRŮMYSLU 11. 5. 2012 Vlastimil Červený, CIA, CISA Agenda Požadavky na VŘKS dle metodik a standardů Definice VŘKS dle rámce COSO Role interního

Více

Projekt Velryba Ozdravné pobyty pro děti. Semestrální projekt

Projekt Velryba Ozdravné pobyty pro děti. Semestrální projekt Předmět AD7B36SI2 Informační systém ozdravných pobytů ČVUT FEL, obor STM Softwarové inženýrství 5. semestr, zima 2011/2012 Zpracovala: Radoslava Jandová Username: jandora1 e-mail: jandora1@fel.cvut.cz

Více

Software - - - - generické produkty - smluvní, zakázkové produkty - - udržovatelnost spolehlivost efektivita použitelnost - - - - specifikace

Software - - - - generické produkty - smluvní, zakázkové produkty - - udržovatelnost spolehlivost efektivita použitelnost - - - - specifikace 1. Software - software o souhrn počítačových programů, procedur, pravidel a průvodní dokumentace a dat, který náleží k provozu počítačového systému o vyvíjen a řešen inženýrskými pracemi o fyzicky se neopotřebuje

Více

Zátěžové testy aplikací

Zátěžové testy aplikací Zátěžové testy aplikací Obsah Zátěžové testy v životním cyklu vývoje software Kdy a proč provádět zátěžové testy Projekt zátěžového testu Fáze zátěžového testu Software pro zátěžové testy Zátěžové testy

Více

PowerOPTI Řízení účinnosti tepelného cyklu

PowerOPTI Řízení účinnosti tepelného cyklu PowerOPTI Řízení účinnosti tepelného cyklu VIZE Zvýšit konkurenceschopnost provozovatelů elektráren a tepláren. Základní funkce: Spolehlivé hodnocení a řízení účinnosti tepelného cyklu, včasná diagnostika

Více

5 Požadavky a jejich specifikace

5 Požadavky a jejich specifikace 5 Požadavky a jejich specifikace 5.1 Inženýrství (requirements engineering) - proces stanovení služeb, které by měl vyvíjený systém poskytovat a omezení, za nichž musí pracovat - CO má systém dělat, ne

Více

Úvod. Programovací paradigmata

Úvod. Programovací paradigmata .. Úvod. Programovací paradigmata Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Cíl: programování efektivně a bezpečně Programovací techniky

Více

Agile. nejžádanější způsob vývoje software. Tomáš Tureček. Business consultant, Lean&Agile coach Tieto tomas.t.turecek@tieto.com

Agile. nejžádanější způsob vývoje software. Tomáš Tureček. Business consultant, Lean&Agile coach Tieto tomas.t.turecek@tieto.com 2010 Tieto Corporation Agile nejžádanější způsob vývoje software Tomáš Tureček Business consultant, Lean&Agile coach Tieto tomas.t.turecek@tieto.com 2012 Tieto Corporation Tieto Aktivity ve více než 20

Více

RUP - Motivace, principy. Jaroslav Žáček

RUP - Motivace, principy. Jaroslav Žáček RUP - Motivace, principy Jaroslav Žáček jaroslav.zacek@osu.cz Tradiční vs. iterativní přístupy Vodopádové principy Zaměřen na procesy, předpokládá jejich opakovatelnost. Pevné, podrobné plány definovány

Více

RUP - MOTIVACE, PRINCIPY JAROSLAV ŽÁČEK

RUP - MOTIVACE, PRINCIPY JAROSLAV ŽÁČEK RUP - MOTIVACE, PRINCIPY JAROSLAV ŽÁČEK JAROSLAV.ZACEK@OSU.CZ TRADIČNÍ VS. ITERATIVNÍ PŘÍSTUPY Vodopádové principy Iterativní (agilní principy) Zaměřen na procesy, předpokládá jejich opakovatelnost. Zaměřen

Více

Diagram nebo text? Miroslav Benešovský, BenSoft s.r.o

Diagram nebo text? Miroslav Benešovský, BenSoft s.r.o Diagram nebo text? Miroslav Benešovský, Diagram nebo text? Jaká je role analytika při vývoji SW? Most mezi zákazníkem a vývojáři Jaké má analytik prostředky? Diagramy, vizuální modelování Jaká je zkušenost

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 21. Otázka : Softwarový process. Jeho definice, modely a vyspělostní úrovně. Standardizovaný přístup pomocí RUP (Rational Unified Process). Obsah :

Více

End-to-end testování. 26. dubna Bořek Zelinka

End-to-end testování. 26. dubna Bořek Zelinka End-to-end testování 26. dubna 2013 Bořek Zelinka Bořek Zelinka Unicorn Systems, Test architekt Unicorn, 2004 Testování Quality Assurance ČVUT, Fakulta stavební, 2004 2 Agenda Princip end-to-end testů

Více

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme Smysl metodiky IS/IT Koncentrovaná zkušenost Checklist na nic nezapomeneme Přínosy metodik Větší produktivita a kooperace týmů Komunikační standard Specializace projektových týmů Nezávislost na konkrétních

Více

PŘÍLOHA C Požadavky na Dokumentaci

PŘÍLOHA C Požadavky na Dokumentaci PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé

Více

Agenda. Docházka Odhadování Neohlášený test Vedení projektů Historie projektů

Agenda. Docházka Odhadování Neohlášený test Vedení projektů Historie projektů Odhadování pracnosti a PM Agenda Docházka Odhadování Neohlášený test Vedení projektů Historie projektů PM, odhadování, historie Odhadování Snaha určit rozsah. Důležité pro stanovení ceny a termínu Do nabídek.

Více

Nebojte se přiznat, že potřebujete SQA

Nebojte se přiznat, že potřebujete SQA Nebojte se přiznat, že potřebujete SQA Internet a technologie 16 Václav Klimeš vaclav.klimes@nic.cz 1. 6. 2016 Osnova Kvalita Koncept kvality Co je a není SQA (Software Quality Assurance) Proč se zajímat

Více

1. VYMEZENÍ ODBORNÉ STÁŽE

1. VYMEZENÍ ODBORNÉ STÁŽE 1. VYMEZENÍ ODBORNÉ STÁŽE Šablona stáže představuje základní rámec odborné stáže pro typovou pozici a obsahuje požadavky na obsah a průběh stáže, na stážistu i na poskytovatele stáže. Bílá pole označují

Více

1. VYMEZENÍ ODBORNÉ STÁŽE

1. VYMEZENÍ ODBORNÉ STÁŽE 1. VYMEZENÍ ODBORNÉ STÁŽE Šablona stáže představuje základní rámec odborné stáže pro typovou pozici a obsahuje požadavky na obsah a průběh stáže, na stážistu i na poskytovatele stáže. Bílá pole označují

Více

AGILNÍ METODIKY VÝVOJE SOFTWARE

AGILNÍ METODIKY VÝVOJE SOFTWARE AGILNÍ METODIKY VÝVOJE SOFTWARE Postupy předchozích metodik, založené na důsledné analýze a propracovaném návrhu jsou obecně nejlepší. Ale Děláte web půl roku? Konkurence mezitím spustila dva Zdánlivě

Více

Řízení SW projektů. Lekce 3. Projektové procesy a znalostní oblasti. přednáška pro studenty FJFI ČVUT. zimní semestr 2012

Řízení SW projektů. Lekce 3. Projektové procesy a znalostní oblasti. přednáška pro studenty FJFI ČVUT. zimní semestr 2012 Řízení SW projektů Lekce 3 Projektové procesy a znalostní oblasti přednáška pro studenty FJFI ČVUT zimní semestr 2012 Ing. Pavel Rozsypal IBM Česká republika Global Business Services Lekce 3 - Projektové

Více

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování

2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování 1. Teoretické základy modelování na počítačích 1.1 Lambda-kalkul 1.1.1 Formální zápis, beta-redukce, alfa-konverze 1.1.2 Lambda-výraz jako data 1.1.3 Příklad alfa-konverze 1.1.4 Eta-redukce 1.2 Základy

Více

2. Začlenění HCI do životního cyklu software

2. Začlenění HCI do životního cyklu software Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI

Více

Vývoj IS. Vladimíra Zádová, KIN, EF TUL- ISN3

Vývoj IS. Vladimíra Zádová, KIN, EF TUL- ISN3 Vývoj IS Metodika Metoda Nástroje Technika Životní cyklus Etapy Přístupy k vývoji Základní alternativy vývoje a provozu Integrace Doporučený souhrn etap, přístupů, zásad, postupů, pravidel, metod, technik,

Více

A7B36SI2 Tematický okruh SI11 Revidoval: Martin Kvetko

A7B36SI2 Tematický okruh SI11 Revidoval: Martin Kvetko Obsah Kvalita SW, jak zajistit kvalitu SW a jak ji ověřit Zabezpečení kvality, techniky řízení kvality SW. Potřeba kultivovat kvalitu, Cena za jakost Procesy pro řízení kvality, harmonogram řízení kvality

Více

ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování

ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování 4.8.16. Úvod do programování Vyučovací předmět Úvod do programování je na naší škole nabízen v rámci volitelných předmětů v sextě, septimě nebo v oktávě jako jednoletý dvouhodinový kurz. V případě hlubšího

Více

Obsah. Zpracoval:

Obsah. Zpracoval: Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč

Více

Matematika v programovacích

Matematika v programovacích Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?

Více

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 11 METODY VERIFIKACE SYSTÉMŮ NA ČIPU Hana Kubátov vá doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta 1 informačních

Více

VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE

VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE Přednáška na semináři CAHP v Praze 4.9.2013 Prof. Ing. Petr Noskievič, CSc. Ing. Miroslav Mahdal, Ph.D. Katedra automatizační

Více

Normy kvality softwaru a jejich podpora v metodikách budování informačních systémů

Normy kvality softwaru a jejich podpora v metodikách budování informačních systémů Normy kvality softwaru a jejich podpora v metodikách budování informačních systémů Alena Buchalcevová Vysoká škola ekonomická v Praze, Fakulta informatiky a statistiky, katedra informačních technologií

Více