Agilní metodiky vývoje software
|
|
- Květoslava Dvořáková
- před 10 lety
- Počet zobrazení:
Transkript
1 MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY * ^ 1 S m p %,<S ÁS MN Agilní metodiky vývoje software DIPLOMOVÁ PRACE Bc. Tomáš Haj din Brno, květen 2005
2 Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. V Brně dne Poděkování Rád bych zde poděkoval Ing. Václavu Kadlecovi za uvedení do problematiky agilního programování, Mgr. Barboře Zimmerove za její cenné rady a zkušenosti při realizaci této práce a svým rodičům za podporu během celého mého studia. i
3 Shrnutí Agilní metodiky vývoje software jsou v poslední době rychle se rozvíjejícím odvětvím softwarového inženýrství, kterému mnozí odborníci předpovídají slibnou budoucnost. Agilní pojetí vývoje se snaží o rychlé dodání kvalitního produktu, ale ponechává velký prostor pro flexibilitu a přizpůsobivost vývojového procesu. Práce uvádí do problematiky agilního vývoje software a blíže se zaměřuje na metodiky FDD, SCRUM a TDD. Pro tyto metodiky je uveden hlubší popis, případové studie a jejich srovnání. Klíčová slova agilní metodiky, FDD, SCRUM, TDD, vývoj software Abstract Agile software development methodologies are recently the fast evolving part of software engineering which is prognosticated a hopeful future by lots of experts. Agile development approach aims to rapid delivery of a high-quality product but leaves room for flexibility and adaptability of a development process. This thesis introduces agile software development and focuses in FDD, SCRUM and TDD. For these methods is more detailed desciption, case studies and comparison included. Keywords agile methods, FDD, SCRUM, TDD, software development n
4 Obsah 1 Úvod Struktura písemné práce 2 2 Tradiční metodiky Vodopádový model Spirálový model Rational Unified Process 7 3 Agilní metodiky Co jsou to agilní metodiky Manifest agilního programování Stručný přehled nejběžnějších agilních metodik Feature-Driven Development Charakteristika Základní pojmy Role Procesy Praktiky Závěr SCRUM Development Process Charakteristika Základní pojmy Role Procesy Praktiky XP@Scrum Závěr Test-Driven Development Charakteristika Procesy Praktiky Závěr 40 m
5 4 Případové studie Ilustrační projekt Řešení projektu dle zvolených metodik Řešení podle FDD Řešení podle SCRUM Řešení podle TDD Srovnání jednotlivých řešení 57 5 Závěr 59 Literatura 61 A Prvotní specifikace 63 A.l Systém správy externích lidských zdrojů (SEZ) 63 B Změny ve specifikaci systému 68 B.l Dodatek k prvotní specifikaci 68 B.2 ERD diagram 71 B.3 Use-case diagram 71 IV
6 Seznam obrázků 2.1 Schéma životního cyklu typu Vodopád Schéma životního cyklu typu Spirála Rozdíl tradičního a agilního pojetí vývoje software Spektrum plánovacích metod Posloupnost vývojových fází v metodice FDD Dynamické týmy v metodice FDD Rozložení času do vývojových fází metodiky FDD Ukázka Product Backlogu Ukázka Sprint Backlogu Schéma metodiky SCRUM Proces metodiky SCRUM Průběh jednoho sprintu metodiky SCRUM Schéma vývoje podle metodiky TDD Časový průběh vývoje podle metodiky TDD Rozdělení rolí v týmu Diagram tříd Sekvenční diagram Pokrytí fází projektu jednotlivými metodikami 58 B.l ERD diagram 71 B.2 Use-case diagram 72 v
7 Kapitola 1 Úvod Oblast vývoje software a obecně celé softwarové inženýrství jde stále kupředu mílovými kroky. Už od doby, kdy spatřily světlo světa první počítače, bylo nutné vyvíjet software, který by z jednoúčelového stroje udělal univerzálního pomocníka. Software je to, co dnes dělá počítač počítačem. Přitom právě kvalita software je mnohdy tím, co určuje výslednou cenu celého počítačového systému. Aby byl software kvalitní, je nutné použít kvalitní vývojový proces. V důsledku toho je kvalitě vývoje software věnována patřičná pozornost a jsou do ní investovány nemalé prostředky. V posledních pár letech si řada odborníků v této oblasti přestala jen stěžovat na nevýhody stávajících metod vývoje software, ale začala podnikat kroky ke zlepšení, zrychlení a zkvalitnění vývojového procesu. Zpočátku to bylo převážně na úrovni firem, ve kterých daní lidé pracovali. Postupem času, když se jejich nové metody osvědčily v praxi, byly představeny veřejnosti. Postupně se začaly objevovat další a další přístupy a metodologie, které ač pocházely od různých tvůrců, měly překvapivě hodně společného. Využití inkrementálního přístupu, rychlý vývoj v různě dlouhých cyklech, časté dodávky betaverzí, těsný kontakt s klienty a uživateli, důležitost zpětné vazby, snaha omezit byrokracii v procesu vývoje a zvýšení efektivity a výsledné produktivity. To všechno jsou principy, které se s různě velkou intenzitou objevují snad ve všech těchto nových přístupech. Přístupech, které byly nazvány nejprve lehké (lightweight), později pak agilní (agile). Cílem této práce je prostudovat principy a funkce těchto metodik, pochopit jejich účel a strategii a podat ucelený pohled na jejich použitelnost. Vzhledem k tomu, že agilních metodik je mnoho a rozsah práce mi nedovoluje věnovat se podrobně každé z nich, vybral jsem tři zástupce, které popíšu detailněji, ostatní pouze stručně představím. Danými zástupci budou Feature-Driven Development, SCRUM Development Process a Test-Driven Development. Aby ovšem práce nebyla jen čistě teoretická, nadefinuji ilustrační projekt vývoje software, na kterém ukážu, jak tyto tři metodiky k vývoji přistoupí. Na závěr se pokusím o jejich srovnání. 1
8 1.1 Struktura písemné práce Práce je rozdělena do pěti kapitol. V první kapitole je rozebráno oficiální zadání a stanoveny cíle práce. Druhá kapitola se věnuje stručnému popisu tradičních metodik. Principy agilního vývoje a popisy jednotlivých metodik jsou náplní třetí kapitoly. Jsou zde také podrobně rozpracovány tři vybraní zástupci agilních metodik. Čtvrtá kapitola obsahuje případové studie, kde je nejprve zadefinován ilustrační projekt, na kterém je následně předveden postup řešení třemi metodikami teoreticky popsanými v předcházející kapitole. Na závěr kapitoly je uvedeno srovnání jednotlivých přístupů. Pátá kapitola je pak věnována závěru, zhodnocení perspektiv agilního přístupu k vývoji software a možnostem dalšího výzkumu v této oblasti. K práci jsou připojeny dvě přílohy. Příloha A obsahuje dokument prvotní specifikace a příloha B pak jeho následnou úpravu. Oba dokumenty jsou součástí definice ilustračního projektu. 2
9 Kapitola 2 Tradiční metodiky Pro lepší pochopení důvodů, které vedly ke vzniku agilních metodik, si nejprve představme tradiční metodiky životního cyklu software. Poskytne nám to lepší vhled do problematiky a pochopení důležitých historických souvislostí. Problémem tradičních metodik začala být jejich přílišná složitost a malá flexibilita, takže nestačily reflektovat požadavky nově přicházejících projektů. Tradiční metodiky přestaly být vhodné pro malé projekty a malé týmy kvůli přílišné byrokratické zátěži". Příliš často vyžadovaly striktní dokumentaci a nejrůznější revize, inspekce a schvalování. Ani postupné vylepšování těchto metodik nebylo schopno vyřešit zmíněné problémy. Bylo tedy nutné udělat v koncepci vývoje software radikální změnu. Tou změnou bylo právě agilní pojetí vývoje software, kterému se budu věnovat v kapitole 3. Z tradičních metodik jsem pro ukázku vybral tři zástupce, kteří znamenali milníky v historii softwarového inženýrství. Nyní tedy krátce představím vodopádový model, spirálový model a Rational Unified Process. 2.1 Vodopádový model Vodopádový model je všeobecně považován za první ucelenou metodiku vývoje software. Jeho charakteristickým znakem jsou sekvenčně seřazené fáze bez iterací. Mezi jednotlivými fázemi je schvalovací proces, přes který musí všechny dokumenty projít, aby vývoj mohl pokročit do další fáze. Základní fáze vodopádového modelu jsou následující: 1. Definice problému, poznání zákazníka a cílové oblasti 2. Analýza a specifikace požadavků 3. Návrh 3
10 4. Implementace 5. Testování a integrace 6. Provoz a údržba Schéma posloupnosti jednotlivých fází je znázorněno na obrázku 2.1. Různých variant vodopádového modeluje nespočet, tato pochází z [18]. Definice =t\ problérni Specifikace požadavků ^ ^ Návrh ti Implementace ^3 b "estovani a integrace h Provoz a údržba Obrázek 2.1: Schéma životního cyklu typu Vodopád Mluvil jsem sice o tom, že vodopádový model je striktně sekvenční, ale z obrázku je patrné, že šipky nevedou jen jedním směrem. V modelu se můžeme pohybovat vždy o jednu fázi dopředu nebo zpět. Když například ve fázi implementace zjistíme, že jsme udělali chybu v návrhu, můžeme se vrátit o jednu fázi zpět, opravit návrh a vrátit se opět do fáze implementace. Při přechodu od návrhu k implementaci (byť je to už podruhé) je důležité, aby všechny dokumenty prošly schválením. Teprve ve fázi údržby se může vývoj vrátit do kterékoliv z předchozích fází a umožnit tak provedení jakýchkoliv úprav. To je ale z dnešního pohledu nevhodné, protože z praxe víme, že změny v požadavcích nastávají zpravidla dříve než ve fázi údržby, navíc někdy není seznam požadavků dostupný v kompletní formě ani v době, kdy probíhá fáze jejich specifikace. Při vývoji podle tohoto modelu je komunikace se zákazníkem potřeba jen v úvodu projektu při specifikaci požadavků, a pak až v závěru při předání a ve fázi údržby. To je také jeden z rysů, od kterého se dnes snažíme upustit a zavést komunikaci se zákazníkem jako jednu ze stěžejních činností během celého vývojového procesu. Kromě toho, že vodopádový model byl prvním modelem, který jednoznačně definoval posloupnost vývojových fází, je jeho nespornou výhodou jednoduchost. Model 4
11 je jednoduchý jak na pochopení a práci podle něj, tak také na řízení. Každá fáze je zakončena zpracováním předem daných dokumentů, přechody mezi fázemi zajišťuje schvalovací řízení. Lze tak dobře kontrolovat, v jakém stádiu se projekt právě nachází a jaká část specifikace požadavků je již splněna. Seznam nevýhod je daleko větší. Je to dáno především stářím modelu a změnou postoje společnosti k vývoji software. Stejně jako byla jednoduchost vodopádového modelu výhodou, je zároveň i nevýhodou. Pro malé projekty je výhodné, že je model jednoduchý, ale pro větší už je to překážka, která brání pokrýt veškeré aspekty rozsáhlých projektů. Vývoj podle vodopádu není vůbec flexibilní, veškerý vývoj probíhá podle striktně naplánované posloupnosti fází. Pokud v průběhu implementace zjistíme nový požadavek, musíme znovu projít fázemi specifikace požadavků, analýzy a návrhu, včetně schválení všech dokumentů. To vývoj velice zdržuje v případě, kdy se dodatečné požadavky objevují postupně až v pozdních fázích projektu. Neposlední nevýhodou je to, že zákazník po celou dobu vývoje neví, co vlastně vývojový tým dělá, v jaké fázi je vývoj a kdy bude projekt dokončen. S oblibou je pro tento způsob dodání požíván pojem velký třesk". Přitom případů, kdy je zákazník po dodání v dohodnutém termínu zcela spokojen s výsledkem je velice málo. Smutné, leč pravdivé. Nejhorší je situace, kdy analytik při sbírání podkladů k vytvoření specifikace špatně pochopí zákazníkova slova a ten pak po několika měsících vývoje a nemalém množství vložených finančních prostředků zjistí, že nedostal to, co původně očekával. Ve své době byl vodopádový model revoluční a vznikla podle něj spousta softwarových produktů. Dnes se ale spíše používá jako referenční model pro srovnávání s ostatními modely, nebo jako příklad toho, jak se při vývoji postupovat nemá. Pro současné projekty je lepší použít některou z metodik, která reflektuje soudobé trendy ve vývoji software. Další informace o vodopádovém modelu lze nalézt v [16] a [26]. 2.2 Spirálový model Vodopádový model popsaný v předchozí kapitole brzy po svém vzniku přestal být vyhovující. Proto se softwaroví inženýři snažili vymyslet nový přístup, který by odstranil nedostatky vodopádu. Stalo se tak v roce 1985, kdy Barry Boehm přišel na svět se svým spirálovým modelem. Jak v případě spirály, tak i v případě vodopádu mluvím stále o modelu, protože to nejsou metodiky vývoje software, ale modely životního cyklu softwarového produktu. Rozdíl je ten, že model životního cyklu popisuje fáze, kterými softwarový produkt prochází, kdežto metodika určuje, co se v které fázi má přesně dělat, jaké postupy se mají použít a k jakému výsledku se má nakonec dojít. Spirálový model vychází z modelu vodopádového, ale přináší dvě zcela nové a zásadní vlastnosti - iterativní přístup a podrobnou analýzu rizik. Proto se také 5
12 někdy říká, že patří do skupiny přístupů řízených riziky (risk-driven approach). Iterativní přístup byl důsledkem toho, že u spousty projektů se nepodařilo stanovit přesnou a úplnou specifikaci požadavků, což činilo vodopádový model takřka nepoužitelným. Ukázalo se, že bude mnohem lepší stanovit na počátku jen rámec architektury a funkčnosti celého systému a ten postupně rozpracovávat do detailů. Cyklické opakování jednotlivých kroků vývoje, tzv. iterace, znamenalo ve své době přelom v chápání životního cyklu. Kromě iterativního postupu je v této souvislosti druhým důležitým pojmem analýza rizik. Ta je prováděna v každém cyklu a určuje další směr vývoje projektu. Riziko je tedy klíčovým pojmem, pod kterým se rozumí jakákoliv událost nebo situace, která může ohrozit projekt. Při analýze je nutno každému riziku přiřadit jeho nebezpečnost a pravděpodobnost výskytu. Častá a podrobná analýza rizik má za úkol dostatečně dopředu odhalit nevhodná řešení nebo skryté problémy, které by mohly ohrozit průběh projektu. Schéma spirálového životního cyklu je zakresleno na obrázku 2.2 pocházejícího z [12]. Alternativy Omezení, tvorba prototypů RQi VRQi Pi ARQ Plánováni i-tá verze specifikace požadavků verifikace ř-té verze požadavků í-ta verze prototypu výchozí analýza požadavků standardní vývojový 1 cyklus (vodopád) / podrobný / návrh až předáni / ' zpřesňovaní specifikace požadavků předvedeni a vyhodnocování '"..prototypů Obrázek 2.2: Schéma životního cyklu typu Spirála Hlavní výhodou spirálového modelu je podle autora nezávislost na konkrétní metodice, která se při samotném vývoji použije. Dalšími dobrými vlastnostmi je komplexnost, díky které se tento model hodí i pro větší projekty. Model díky neu- 6
13 stálé analýze rizik výrazně snižuje možnost nevhodného řešení. Pokud by se chtěl vývoj ubírat špatným směrem, chyba se odhalí daleko dříve než tomu bylo u jeho předchůdce. Jak jsem uvedl, model je komplexní, což nahrává větším projektům, ale u menších je to právě naopak. Po malé projekty se nehodí, protože je pro ně zbytečně příliš komplikovaný. Nevýhodou, kterou model zdědil od vodopádového modelu je to, že výsledný produkt je předán až po dokončení posledního cyklu. V každém cyklu je sice vytvořen prototyp, ale ten se může obecně týkat různě malých částí systému a nemusí být použitelný v ostrém provozu. Je zde tedy zavedena jakási zpětná vazba, ale problém velkého třesku" to neřeší. Nakonec musím zmínit i to, že model zcela spoléhá na metodiku, která se při vývoji použije a nijak podrobně nezpracovává jednotlivé činnosti, které by se měly v průběhu vývoje provádět. V softwarovém inženýrství je spirála důležitým milníkem a v minulosti byla použita k řadě projektů. V současné době se už ale používá stále méně. Jednak proto, že jsou na světě daleko propracovanější metodiky, ale také proto, že pro současné typy aplikací je spirálový model těžkopádný a nepružný. Pro další studium doporučují zdroje [16], [27], [28] nebo [6]. 2.3 Rational Unified Process Rational Unified Process (dále jen RUP), jenž je komerčním produktem firmy Rational (která byla později koupena firmou IBM), je rozsáhlá a detailně propracovaná metodika vývoje software. Celá metodika je objektově orientovaná a patří do skupiny přístupů řízených případy užití (use-case-driven approach). Vývoj podle RUP probíhá v iterativních cyklech. První cyklus se nazývá úvodní vývojový cyklus a jeho výsledkem je funkční softwarový produkt implementující nejpodstatnější část funkcionality. Zde ovšem vývoj nekončí, ale pokračuje v různém množství rozvíjejících cyklů. Jejich přesný počet závisí na rozsahu projektu. Každý cyklus se skládá ze 4 fází (v závorce je uvedeno typické rozdělení doby pro jednotlivé fáze úvodního vývojového cyklu): 1. Zahájení (10%) 2. Projektování (30%) 3. Realizace (50%) 4. Předání (10%) RUP je dodávána ve formě internetových stránek, které slouží jako online instruktor, který vývojáře vede celým průběhem vývojového procesu, poskytuje instrukce, 7
14 rady, metodické pokyny a příklady ke konkrétní fázi vývoje. RUP je těsně provázán s jazykem UML. Všechny dokumenty, modely a případy užití jsou modelovány právě v UML. Největší výhodou RUP je jeho robustnost, obecnost a přizpůsobivost pro celou řadu nejrůznějších projektů. Jedna z úvodních fází při použití RUP je modifikace samotné metodiky na míru konkrétnímu projektu, který začínáme realizovat. Není problém upravit metodiku ani pro malý tým a jednodušší projekt. Součástí metodiky jsou nejrůznější průvodci, šablony a podpůrné nástroje. Díky své rozsáhlosti je RUP přece jen určen spíše větším týmům pro realizaci velkých projektů. Zvládnutí metodiky vyžaduje hlavně v úvodních fázích poměrně hluboké studium a dobře trénovaný vývojový tým. Sama firma Rational na rozvoji metodiky stále pracuje, stejně tak je dostupná řada dokumentů podpůrných nástrojů třetích stran, které se zabývají RUP. Další podrobnosti k tomutu tématu jsou k nalezení v [13] nebo [29]. 8
15 Kapitola 3 Agilní metodiky Nyní se dostávám k jedné z nejdůležitějších kapitol této práce. Nejprve vysvetlím, co vlastně agilní programování je, zmíním se o Manifestu agilního programování, uvedu stručný přehled nejznámějších agilních metodik a nakonec vybrané tři z těchto metodik popíšu detailněji. 3.1 Co jsou to agilní metodiky O tom, že technologický vývoj jde stále rychleji kupředu, není třeba pochybovat. O vývoji software to ovšem platí dvojnásob. Díky nepřetržitému zdokonalování technologií, vybavení a nástrojů, ale také díky rozšiřování dostupnosti IT snad ve všech oborech, jsou informační technologie stále více využívány, mnohdy se dokonce staly klíčovými pro dané odvětví. Firmy začaly IT technologie (zvláště pak ty webové) zahrnovat do svých obchodních plánů a strategií, počítají s Internetem jako se základním médiem nejen pro prezentaci a reklamu, ale i pro komunikaci a administrativu svých obchodních procesů. A poněvadž žádný podnik není stejný, každý má svá specifika, potřeby a možnosti, přichází na řadu vývoj software jakožto součást marketingové strategie firmy. Softwarový trh se od dob svého vzniku podstatně změnil. Například vývoj webových aplikací se natolik zjednodušil, že napsat internetovou prezentaci zvládne průměrně inteligentní středoškolsky vzdělaný člověk. S touto sílící konkurencí se postupně místo kvality klade větší důraz na vysokou rychlost a nízkou cenu vývoje. Představme si firmu, která chce svým zákazníkům nabídnout obchodování po Internetu a zaplatí si proto vývoj elektronického obchodu. Bohužel tuto firmu často nezajímá detailně rozpracovaná analýza, neprůstřelný návrh a obsáhlá dokumentace, jediné co sleduje jsou její obchodní cíle, tedy zvýšení prodeje svých produktů díky rozšíření skupiny potencionálních zákazníků. K tomu potřebuje především fungující aplikaci, která jí přinese zisk. A navíc tuto aplikaci potřebuje 9
16 rychle, než se objeví konkurence s podobným produktem a stáhne si k sobě velkou část budoucích zákazníků. Právě kvůli výše uvedeným požadavků se po roce 2000 začaly dostávat na světlo metodiky, které umožnily vyvíjet software rychle a přitom byly schopny reagovat na průběžnou změnu zadání. Začalo se jim říkat agilní. Název vzešel z anglického agile, což znamená hbitý, čilý, bystrý nebo svižný. Jak se tedy liší ono agilní pojetí vývoje software od toho klasického? Velice pěkně to vysvětluje obrázek 3.1, který je publikován v [7]. funkcionalita čas zdroje fixní proměnné čas zdroje funkcionalita tradiční přístup agilní přístup Obrázek 3.1: Rozdíl tradičního a agilního pojetí vývoje software Zde jasně vidíme, v čem jsou oba přístupy odlišné. Klasické metodiky počítají s funkcionalitou jako s fixní veličinou, to znamená, že na počátku vývoje se stanoví pevná specifikace požadavků, která se musí dodržet. Naopak čas a zdroje jsou proměnné, a mění se podle toho, jak vývoj postupuje kupředu. Proto se u projektů vyvíjených podle tradičních metodik nezřídka setkáváme s překročením termínu dodání a zvýšenými náklady oproti původnímu plánu. U agilního přístupu je tomu právě naopak. Jako fixní jsou při startu projektu stanoveny zdroje, tzn. finance, lidské zdroje, vývojová prostředí a jiné, a funkcionalita je proměnná. V konečném důsledku to znamená, že zákazník může dostat produkt, který zatím implementuje jen část funkcionality, ovšem díky agilnímu pojetí vývoje se snadno upravuje a vylepšuje i za provozu. Většinou je pro zákazníka výhodnější, když dostane nedokonalou aplikaci v termínu a za dané peníze, než kdyby musel zaplatit další pokračování vývoje a ještě několik týdnů počkat na dokončení aplikace. Přitom ona nedokonalost spočívá v tom, že nejsou implementovány některé funkce, kterým byla stanovena nejnižší priorita. Tyto priority zákazník přiřazoval společně s vývojovým týmem, takže je to pro něj většinou akceptovatelné. V této době totiž stále ještě nemá žádný produkt, na který by mohl navázat své obchodní aktivity, naopak je to pro něj zatím stále jen investice, která se nemusí vyplatit. A takovou situaci jistě žádný klient rád nemá. Z těchto poznatků vychází jedna z nejdůležitějších pouček týkajících se agilního 10
17 programování. Ta říká, že jedinou cestou, jak prověřit správnost navrženého systému, je co nejrychleji jej vyvinout, předložit zákazníkovi a podle zpětné vazby upravit. Agilní programování sleduje následující principy, které jsou společné pro všechny metodiky: Iterativní a inkrementální vývoj s krátkými iteracemi Vývoj probíhá v krátkých fázích, takže celková funkcionalita je dodávána po částech. Zákazník tak má možnost průběžně sledovat vývoj, může se k němu vyjádřit a oponovat změny. Na konci má jistotu, že nedostane něco, co neočekával. Komunikace mezi zákazníkem a vývojovým týmem V ideálním případě je zákazník přímo součástí vývojového týmu, má možnost okamžitě vidět průběžné výsledky a reagovat na ně. Účastní se sestavování návrhu, spolurozhoduje o testech a poskytuje zpětnou vazbu pro vývojáře. Průběžné automatizované testování Díky krátkým iteracím se aplikace mění velice rychle, proto je nutné pro zajištění co nejvyšší kvality ověřovat její funkčnost průběžně. Testy by měly být automatizované, předem sestavené a měly by být napsány ještě před samotnou implementací testované části. Při každé změně musí být aplikována kompletní sada testů, aby nebyla porušena integrace jednotlivých částí. Tyto principy vycházejí z Manifestu agilního programování, kterému se budu věnovat v následující kapitole. Barry Boehm, autor spirálového modelu životního cyklu, publikoval v [5] spektrum plánovacích metod, znázorněné na obrázku 3.2. ckeři XP adaptivní SW vývoj modely řízené riziky modely řízené plánem neprůstřelný kontrakt agilní metodiky ' j CM M software CM M Obrázek 3.2: Spektrum plánovacích metod Je vidět, že agilní metodiky leží v tomto spektru vlevo od středu, to znamená, že jsou více adaptabilní, flexibilní, řízené změnami a ne předem daným plánem., 11
18 Boehm dále při své analýze agilních metodik zkoumal jejich postavení vedle vývoje na bázi open-source a metodikami řízenými plánem (plan-driven methods). Výsledky srovnání v jednotlivých oblastech ukazuje tabulka 3.1. oblast Agilní metodiky Open-source software Vývojáři Agilní, zkušení, Geograficky oddělené, spolupracující a zkušené, spolupracující, soustředění agilní týmy na jednom místě Zákazníci Nadšení, zkušení, Nadšení, schopní, soustředění, spolupracující, spolupracující reprezentativní a zmocnění a zmocnění Požadavky Architektura Převážně neurčité, rychle se měnící Navržená pro aktuální požadavky Převážně neurčité, rychle se měnící, vlastněné společně, průběžně se vyvíjející, nikdy úplné Otevřená a navržená pro aktuální požadavky poža Navržená pro současné i předpokládané davky Refaktorizace Levná Levná Drahá Velikost Menší týmy Větší rozptýlené a produkty týmy a menší Větší týmy a produkty produkty Primární cíl Rychlý výsledek Řešení problému Vysoká spolehlivost Tabulka 3.1: Srovnání agilních a plánem řízených metodik Metodiky řízené plánem Orientovaní na plán, potřebné schopnosti, přístup k externím znalostem Přístup ke schopným, spolupracujícím, reprezentativním a zmocněným zákazníkům Známé brzy, většinou dlouhodobě stálé Hlavním aspektem agilních metodik jsou jednoduchost a rychlost. Při vývoji se tým orientuje jen a pouze na funkcionalitu potřebnou v tomto okamžiku. Rychle ji vyvine, předá zákazníkovi, sesbírá zpětnou vazbu od uživatelů a podle toho aplikaci upraví. Kdy je tedy daná vývojová metodika označována za agilní? Když je vývoj software inkrementální (dodáván rychle, po malých částech), kooperativní (vývojáři a zákazník aktivně spolupracují, dbá se na komunikaci), přímý (metodika jako taková je snadno pochopitelná a modifikovatelná, dobře dokumentovaná) a adaptivní (schopná pokrýt změny v průběhu vývoje). 3.2 Manifest agilního programování I když většina technik byla svými autory používána už dříve, vznik agilního přístupu k vývoji software se datuje k únoru Tehdy se sešlo v americkém státě Utah sedmnáct odborníků z oblasti vývoje software a softwarového inženýrství. Za všechny můžu jmenovat ty nejznámější: Kent Beck, Mike Beedle, Alistair Cockburn, Ward Cunningham, Martin Fowler, Jim Highsmith, Ken Schwaber, Jeff Sutherland. Když po společné diskuzi zjistili, že se jejich snahy oprostit vývojový 12
19 proces od všech zbytečností, až nečekaně prolínají, sestavili Manifest agilního programování (Manifesto for Agile Software Development), pod který se všichni hned podepsali. Současně byla založena Aliance pro agilní vývoj (Agile Alliance), jíž se tito aktéři stali členy. Manifest staví na dvou základních principech: Umožnit změnu je mnohem efektivnější, než se jí snažit zabránit. Je třeba být připraven reagovat na nepředvídatelné události, protože ty nepochybně nastanou. Autoři na základě těchto tezí dávají přednost: individualitám a interakci před fungujícímu software před spolupráci se zákazníkem před reakci na změnu před procesy a nástroji obsáhlou dokumentací sjednáváním smluv plněním plánu A k těmto bodům dodávají, že sice je určitá hodnota i v položkách na pravé straně, ale oni více hodnotí položky vlevo. Prakticky žádná agilní metodika není striktně daná kuchařka zaručených a ověřených postupů. Vždy je nechán prostor pro přizpůsobení metodiky konkrétnímu projektu. Jinak by daná metodika ani nemohla být považována za agilní, protože slovo agilní" má velice blízko k flexibilní", tedy přizpůsobivý. To je přesná aplikace jednoho z doporučení agilního vývoje. Raději než abychom se snažili vytvořit všeobjemnou univerzální metodiku, která bude vyhovovat každému projektu, zákazníkovi i vývojáři, vytvořme metodiku jednoduchou, lehkou a flexibilní, kterou pak budeme moci přizpůsobit danému konkrétnímu problému. To nás opět vede k jednomu ze základních tvrzení agilního programování, které říká programujme jen to, co je v této chvíli nezbytně nutné, nic navíc; do řešení by se mělo zahrnout jen to, co prokazatelně potřebuje každý, nikoliv to, co možná bude potřebovat někdo". 3.3 Stručný přehled nejběžnějších agilních metodik Počet metodik, které vycházejí z manifestu nebo se jím nechávají alespoň silně inspirovat, je čím dál vyšší. Stále vznikají nové metody a postupy, často jsou to úpravy některých dlouho používaných metodik, které si autor tak dlouho upravoval pro své potřeby, až z toho vynikla de facto metodika nová. Nyní uvedu stručný přehled těch nejznámějších zástupců agilních metodik společně s jejich autory a krátkým popisem. Protože podrobný popis všech metodik není 13
20 cílem této práce, u každé z nich uvedu po stručné charakteristice odkazy na zdroje dalších informací. Některé metodiky budu uvádět jejich originálním anglickým názvem, protože mnohdy ani české pojmenování nemají. 1. Extrémní programování (Extreme Programming, XP): Kent Beck, Ward Cunningham, Ron Jeffries Nejznámější zástupce agilních metodik. Mnoho lidí se mylně domnívá, že agilní metodika = extrémní programování. XP je sice nejrozšířenější a považováno za jakéhosi zástupce, ale pořád je to jen jedna z mnoha agilních metodik. Hodí se pro menší projekty a malé týmy, vyvíjející software podle zadání, které je nejasné nebo se rychle mění. Vychází s přesvědčení, že jediným exaktním, jednoznačným, změřitelným, ověřitelným a nezpochybnitelným zdrojem informací je zdrojový kód. Používá běžné principy a postupy, které dotahuje do extrémů. Například: jestliže se osvědčují revize kódu, budeme tedy neustále revidovat (myšlenka párového programování), pokud se vyplácí testování, budeme nepřetržitě testovat jak my, tak i zákazník (testování jednotek, funkcionality, akceptační testy), osvědčuje-li se návrh, stane se součástí naší každodenní činnosti (refaktorizace), atd. Beck, Kent: Extrémní programování, Grada, Praha 2002 Beck, Kent: Extréme Programming Explained, Addison-Wesley Vývoj řízený vlastnostmi (Feature-Driven Development, FDD): Jeff de Luca, Peter Coad Zaměřuje se na vývoj po malých kouscích - vlastnostech, rysech, což jsou elementární funkcionality přinášející nějakou hodnotu uživateli. Vývoj probíhá v pěti fázích, první tři jsou sekvenční, poslední dvě pak iterativní. Iterace trvají zpravidla 2 týdny. Začíná se vytvořením modelu, ten se převede do seznamu vlastností, které se postupně implementují. Velice dobře se měří pokrok ve vývoji projektu, FDD umožňuje detailně plánovat a kontrolovat vývojový proces. Hlavní výhodou je zaměření na dodávání fungujících přírůstků každé dva týdny. Palmer, Stehen R., Felsing, John M.: A Practical Guide to Feature- Driven Development, Prentice Hall SCRUM Development Process: Ken Schwaber, Mike Beedle Principem je opět iterativní vývoj definující 3-8 fází, tzv. sprintů, každý z nich trvá přibližně měsíc. Metodika nedefinuje žádné konkrétní procesy, 14
Ú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É
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
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ý
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
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,
01. Životní cyklus programového díla, analýza, návrh, implementace, provoz a metodiky vývoje SW. (A7B36SIN)
Zpracoval: houzvjir@fel.cvut.cz 01. Životní cyklus programového díla, analýza, návrh, implementace, provoz a metodiky vývoje SW. (A7B36SIN) Obsah Životní cyklus programového díla... 2 Analýza... 4 Postup
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)
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)
METODIKA FEATURE-DRIVEN DEVELOPMENT NEOPOUŠTÍ MODELOVÁNÍ A PROCESY, A PŘESTO PŘINÁŠÍ VÝHODY AGILNÍHO VÝVOJE ing. Alena Buchalcevová, Ph.
METODIKA FEATURE-DRIVEN DEVELOPMENT NEOPOUŠTÍ MODELOVÁNÍ A PROCESY, A PŘESTO PŘINÁŠÍ VÝHODY AGILNÍHO VÝVOJE ing. Alena Buchalcevová, Ph.D Katedra informačních technologií VŠE Praha nám. W.Churchilla 4,
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č
Ž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
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ě
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
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
ČÍM MOHOU PŘISPĚT NEJZÁMĚJŠÍ AGILNÍ METODIKY KE ZLEPŠENÍ VÝVOJOVÉHO PROCESU?
ČÍM MOHOU PŘISPĚT NEJZÁMĚJŠÍ AGILNÍ METODIKY KE ZLEPŠENÍ VÝVOJOVÉHO PROCESU? HOW WELL-KNOWN AGILE METHODOLOGIES CAN CONTRIBUTE TO A SOFTWARE DEVELOPMENT PROCESS? Robert Pergl, Zdeněk Struska Abstrakt:
Objektová tvorba SW, Analýza požadavků 2006 UOMO 53
Objektová tvorba SW, Analýza požadavků 2006 UOMO 53 Osnova Základní principy tvorby SW Fáze tvorby SW v předmětu UOMO Analýza požadavků Modelování typových úloh 2006 UOMO 54 Tvorba SW Dříve umění vyvolených
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
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ý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í
Ří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ý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ý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)
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
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í
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
Agilní metodiky a techniky. analýza a vývoj IS
Agilní metodiky a techniky analýza a vývoj IS Využití UML UML jako náčrt systému UML jako plán vývoje UML jako programovací jazyk Příklad: Analýza - chyby v zákoně viz http://blog.geospy.org/tagged/anal%c3%bdza
Manažerská informatika - projektové řízení
VŠE, fakulta Podnikohospodářská Manažerská informatika - projektové řízení Projekt implementace informačního systému Jiří Mikloš 2009 Obsah Obsah Obsah... 2 Úvod... 3 Zadání... 4 Projektový postup... 5
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
POŘÍZENÍ A IMPLEMENTACE INFORMAČNÍCH SYSTÉMŮ
POŘÍZENÍ A IMPLEMENTACE INFORMAČNÍCH SYSTÉMŮ ŽIVOTNÍ CYKLUS IS Stejně jako stroje a technologické linky, které jsou pořízeny, provozovány a následně, po opotřebování vyřazeny, má i informační systém svůj
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
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
Jednotný NIS Prezentace k zahájení projektu pro Radu kraje Vysočina. Projektový manažer - Ing. Ivan Sokolov, Ph.D.
Prezentace k zahájení projektu pro Radu kraje Vysočina Projektový manažer - Ing. Ivan Sokolov, Ph.D. Obsah Úvod Cíle projektu Rozsah projektu Projektové řízení základní východiska Základní organizační
Fakulta elektrotechnická
České vysoké učení technické vpraze Fakulta elektrotechnická BAKALÁŘSKÁ PRÁCE Agilní metodiky programování DAQařídicích aplikací Praha, 2011 Autor: Adam Hamr Prohlášení Prohlašuji, že jsem předloženou
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
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
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
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
Úvodní přednáška. Význam a historie PIS
Úvodní přednáška Význam a historie PIS Systémy na podporu rozhodování Manažerský informační systém Manažerské rozhodování Srovnávání, vyhodnocování, kontrola INFORMACE ROZHODOVÁNÍ organizace Rozhodovacích
Co je to SCRUM! FRAMEWORK vs METODIKA. Ken Schwaber a Jeff Sutherland ho mají za framework Kde hledat detaily?
Úvod do SCRUM!! Co je to SCRUM! FRAMEWORK vs METODIKA Ken Schwaber a Jeff Sutherland ho mají za framework Kde hledat detaily? agilemanifesto.org www.mountaingoatsoftware.com/scrum Z čeho to je...! Vychází
UML - opakování 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
UML - opakování 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 Co je to UML Evoluce UML Diagram komponent Diagram odbavení Diagram tříd Aktivity diagram Stavový diagram Sekvenční diagram Diagram
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
Hodnotocentrické metodiky
2 Hodnotocentrické metodiky Vyšší management Projektový manažer Jedna metodika těžko bude tou jedinou správnou,... pro každý projekt a realizační tým existuje jiný správný způsob práce. 1 Alistair Cockburn
Semestrální práce z předmětu 4IT421 Téma: CMMI-DEV v.1.3 PA Project Monitoring and Control
VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE náměstí W. Churchilla 4, 130 67 Praha3 Semestrální práce z předmětu 4IT421 Téma: CMMI-DEV v.1.3 PA Project Monitoring and Control Jméno a příjmení: Michal Hendrich Školní
Tieto Future Office. Přehled. Země: Česká republika. Odvětví: Samospráva
Tieto Future Office Přehled Země: Česká republika Odvětví: Samospráva Profil zákazníka: Magistrát města Plzeň je orgánem města Plzně, který plní jeho úkoly v oblasti územní samosprávy i státní správy na
Předmluva 11. Poděkování 11 O autorech 12 Úvodem 12 Komu je tato kniha určena 13 Jak byste měli tuto knihu číst 13 Web 14
Obsah Předmluva 11 Poděkování 11 O autorech 12 Úvodem 12 Komu je tato kniha určena 13 Jak byste měli tuto knihu číst 13 Web 14 KAPITOLA 1 Úvod do architektury softwaru 15 Použití procesu 16 Stručný popis
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
Národní šetření výsledků žáků v počátečním vzdělávání
Projekt NIQES Národní šetření žáků v počátečním vzdělávání Národní šetření výsledků žáků v počátečním vzdělávání Druhá celoplošná generální zkouška Název souboru: CP2-Procesy_přípravy_a_realizace_V3.doc
Přehled použitých výrazů a zkratek
Orgány vývoje klinických standardů a proces plánování Příloha 4b Závěrečné zprávy projektu č. NS 10650-3/2009 podpořeného Interní grantovou agenturou MZ ČR, Výzkum metod standardizace zdravotní péče zaměřený
POČÍTAČE A PROGRAMOVÁNÍ
POČÍTAČE A PROGRAMOVÁNÍ Moderní metody vývoje softwaru, Demontrační příklad piškvorky Miroslav Vavroušek PPI 09 V1.0 Opakovaní z minulé přednášky Vícerozměrná statická a dynamická pole Pole polí Datový
ČSOB: Upgrade systému Microsoft Dynamics CRM
Případová studie ČSOB: Upgrade systému Microsoft Dynamics CRM Jak jsme společnosti ČSOB zefektivnili práci s firemními klienty ČSOB: Upgrade systému Microsoft Dynamics CRM Celý projekt začal v srpnu, přičemž
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,
7.6 Další diagramy UML
7.6 Další diagramy UML 7.6.1 Moduly (balíčky - package) a kolaborace (collaboration) Jak rozložit rozsáhlý systém na menší? - seskupování tříd (prvků modelu) do jednotek vyšší úrovně (package v UML). UI
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
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
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
1 Popis předmětu plnění projektu implementace MIS
1 Popis předmětu plnění projektu implementace MIS Vytvořit Manažerský rozpočet Tzn. vytvoření metodiky pro zajištění Manažerského účetnictví, přičemž metodikou se rozumí soubor postupů a pravidel popisujících
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é
Využití SysML pro tvorbu modelů v systémovém inženýrství
Využití SysML pro tvorbu modelů v systémovém inženýrství Antonín Srna, Ústav informatiky, Provozně ekonomická fakulta, Mendelova univerzita v Brně, xsrna2@mendelu.cz Abstrakt Článek se zaobírá univerzálním
6 Objektově-orientovaný vývoj programového vybavení
6 Objektově-orientovaný vývoj programového vybavení 6.1 Co značí objektově-orientovaný - organizace SW jako kolekce diskrétních objektů, které zahrnují jak data tak chování objekt: OMG: Objekt je věc (thing).
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
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
BI-TIS Případová studie
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti BI-TIS Případová Cvičení č. 2 Ing. Pavel Náplava naplava@fel.cvut.cz Katedra softwarového inženýrství, ČVUT FIT, 18102 Centrum znalostního
Projektová dokumentace pro tvorbu internetových aplikací
Projektová dokumentace pro tvorbu internetových aplikací Tomáš Kuthan PhDr. Milan Novák, Ph.D. Školní rok: 2008-09 Abstrakt Bakalářská práce stanovuje vzor pro vytváření projektové dokumentace internetových
GIS Libereckého kraje
Funkční rámec Zpracoval: Odbor informatiky květen 2004 Obsah 1. ÚVOD...3 1.1. Vztah GIS a IS... 3 2. ANALÝZA SOUČASNÉHO STAVU...3 2.1. Technické zázemí... 3 2.2. Personální zázemí... 3 2.3. Datová základna...
Návrh IS - UML. Jaroslav Žáček
Návrh IS - UML Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ UML UML není metodikou ani programovacím jazykem, je to pouze vizuální modelovací nastroj pro objektově orientované systémy.
Jak správně psát scénáře k případům užití?
Jak správně psát scénáře k případům užití? Autor RNDr. Ilja Kraval 2007 http://www.objects.cz K napsání tohoto článku mne inspiroval tento mail: Dobrý den pane Kravale, chci Vás poprosit o radu, která
Zkouška ITIL Foundation
Zkouška ITIL Foundation Sample Paper A, version 5.1 Výběr z více možností Pokyny 1. Měli byste se pokusit odpovědět na všech 40 otázek. 2. Všechny svoje odpovědi vyznačte na samostatný formulář, který
7.6 Další diagramy UML
7.6 Další diagramy UML 7.6.1 Moduly (balíčky - package) a kolaborace (collaboration) Jak rozložit rozsáhlý systém na menší? - seskupování tříd (prvků modelu) do jednotek vyšší úrovně (package v UML). UI
Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a přiřazení datových modelů
Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a datových modelů Obsah Seznam tabulek... 1 Seznam obrázků... 1 1 Úvod... 2 2 Metody sémantické harmonizace... 2 3 Dvojjazyčné katalogy objektů
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
Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy
Úloha 1 Zkratka ERP jako celopodniková transakční aplikace znamená: a. Enterprise Route Planning b. Enterprise Resource Planning c. Enterprise Re-implementation Planning d. Enterprise Resource Processing
Příloha č. 2. Charta projektu plné znění (pro MŠMT/ČŠI a příspěvkové organizace zřízené MŠMT)
Příloha č. 2. Charta projektu plné znění (pro MŠMT/ČŠI a příspěvkové organizace zřízené MŠMT) Charta projektu má za cíl poskytnout úplné a pevné informační základy pro schválení projektu. Následně je Charta
Architektura počítačů
Architektura počítačů Studijní materiál pro předmět Architektury počítačů Ing. Petr Olivka katedra informatiky FEI VŠB-TU Ostrava email: petr.olivka@vsb.cz Ostrava, 2010 1 1 Architektura počítačů Pojem
Statutární město Brno, městská část Brno-střed INFORMAČNÍ KONCEPCE
Statutární město Brno, městská část Brno-střed INFORMAČNÍ KONCEPCE Pokyn tajemníka č.: 12 Bc. Petr Štika, MBA, LL.M., v.r. Vydání č.: 1 tajemník ÚMČ Brno-střed Účinnost: 16.07.2018 Vydal/schválil: Bc.
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 22. Otázka : Úvodní fáze rozpracování softwarového projektu. Postupy při specifikaci byznys modelů. Specifikace požadavků a jejich rozpracování pomocí
8 Přehled OO metodik (metod, metodologií)
8 Přehled OO metodik (metod, metodologií) 8.1 OO metodiky konce 80. a začátku 90.let - všechny populární OO metodiky předpokládají, že: a) zadavatel má jasný názor na svoje požadavky, b) zadavatel a vývojáři
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ů
8 Přehled OO metodik (metod, metodologií)
8 Přehled OO metodik (metod, metodologií) 8.1 OO metodiky konce 80. a začátku 90.let - všechny populární OO metodiky předpokládají, že: a) zadavatel jasný názor na svoje požadavky, b) zadavatel a vývojáři
Systémy pro podporu rozhodování. Hlubší pohled 2
Systémy pro podporu rozhodování Hlubší pohled 2 1 Připomenutí obsahu minulé přednášky Motivační příklad Konfigurace DSS Co to je DSS? definice Charakterizace a možnosti DSS Komponenty DSS Subsystém datového
Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování
Project management Project management Příprava projektu Zahájení High level plánování Vykonávání Detailní plánování Vykonávání Řízení a monitorování Uzavření a zhodnocení (iterace, projektu) Projekt Projekt
Úvod do problematiky vývoje Vývoj informačních systémů
Úvod do problematiky vývoje informačních systémů Vývoj informačních systémů Management Klasický management - slouží k udržování a rozvíjení zavedených systémů, které jsou prostředkem pro nepřetržitou,
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
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
Přípravné činnosti projektu. Mgr. Lenka Svrčinová Ing. Jan Ministr, Ph.D.
Přípravné činnosti projektu Mgr. Lenka Svrčinová Ing. Jan Ministr, Ph.D. Obsah prezentace Seznámení s problematikou Procesy a roviny před implementací projektu Obchodní rovina Implementační rovina Řešení
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á
Results of innovation of the course Application software
Zkušenosti z inovace předmětu Aplikační programové vybavení Results of innovation of the course Application software Miroslav Cepl *, Ondřej Popelka Abstrakt Článek popisuje postup a průběžný výsledek
METODIKY VÝVOJE SOFTWARE STUDIJNÍ OPORA PRO KOMBINOVANÉ
METODIKY VÝVOJE SOFTWARE STUDIJNÍ OPORA PRO KOMBINOVANÉ STUDIUM METODIKY VÝVOJE SOFTWARE Mgr. Jiří MARTINŮ doc. Ing. Petr ČERMÁK, Ph.D. Moravská vysoká škola Olomouc, o.p.s., 2018 Moravská vysoká škola
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
SPECIFIKA CERTIFIKACE PODLE ČSN EN ISO 9001:2001 V ORGANIZACÍCH, KTERÉ SE ZABÝVAJÍ VÝVOJEM SOFTWARE
SPECIFIKA CERTIFIKACE PODLE ČSN EN ISO 9001:2001 V ORGANIZACÍCH, KTERÉ SE ZABÝVAJÍ VÝVOJEM SOFTWARE Václav Šebesta Ústav informatiky Akademie věd ČR, e-mail: vasek@cs.cas.cz Abstrakt Jestliže ještě před
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
Metodika využití národního rámce kvality při inspekční činnosti ve školách a školských zařízeních
Metodika využití národního rámce kvality při inspekční činnosti Praha, červen 2015 Obsah 1 Úvod... 3 2 Role národního rámce kvality při inspekční činnosti... 3 3 Cíle metodiky využití národního rámce kvality
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í
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
Návrh IS - UML. Jaroslav Žáček
Návrh IS - UML Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Trochu historie neuškodí Do roku 1994 chaos ve světě objektově orientovaných metod (několik jazyků pro vizuální modelování,
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 :
Informační systémy ve strojírenství
3 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení Informační systémy ve strojírenství Radim Farana 1 Obsah Životní cyklus vývoje SW. Informační
Informační systémy. Jaroslav Žáček jaroslav.zacek@osu.cz
Informační systémy Jaroslav Žáček jaroslav.zacek@osu.cz Úvod - co možná umíte z předmětu SWENG Rozdělení IT Architektura IS Klíčový prvek řízení IS z něj vycházejí detailní analytické i plánovací charakteristiky
InternetovéTechnologie
8 InternetovéTechnologie webdesign, mobile first Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky Webové stránky a aplikace - Webové stránky - množina vzájemně propojených stránek, které obsahují informace
EXTRAKT z mezinárodní normy
EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě ICS: 03.220.01; 35.240.60 Komunikační infrastruktura pro pozemní ISO 24101-2 mobilní
19.11.2013. Projektový management. Projektový management. Další charakteristiky projektu. Projekt
Projektový management Lekce: 8 Projektový management Doc. Ing. Alois Kutscherauer, CSc. Projektový management je typ managementu uplatňovaného k zabezpečení realizace jedinečných, neopakovatelných, časově