Přehled a porovnání nástrojů na podporu agilního vývoje softwaru

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

Download "Přehled a porovnání nástrojů na podporu agilního vývoje softwaru"

Transkript

1 Bankovní institut vysoká škola Praha Katedra informatiky a kvantitativních metod Přehled a porovnání nástrojů na podporu agilního vývoje softwaru Bakalářská práce Autor: Lukáš Vojtek, DiS. Informační technologie, SIS Vedoucí práce: doc. Ing. Alena Buchalcevová, Ph.D. Praha Duben 2015

2 Prohlášení: Prohlašuji, ţe jsem bakalářskou práci zpracoval samostatně a v seznamu uvedl veškerou pouţitou literaturu. Svým podpisem stvrzuji, ţe odevzdaná elektronická podoba práce je identická s její tištěnou verzí, a jsem seznámen se skutečností, ţe se práce bude archivovat v knihovně BIVŠ a dále bude zpřístupněna třetím osobám prostřednictvím interní databáze elektronických vysokoškolských prací. V Písku, dne Lukáš Vojtek, DiS.

3 Poděkování Děkuji paní doc. Ing. Alena Buchalcevová, Ph.D., vedoucí mé práce, za její cenné rady, vstřícnost a obrovskou trpělivost, kterou se mnou měla při psaní mé bakalářské práce. Také bych chtěl poděkovat své rodině za podporu.

4 Anotace Tato bakalářská práce se zaměřuje na seznámení s metodikami a nástroji na podporu agilního vývoje softwaru, vysvětlení základních pojmů, jejich výhod, nevýhod a historie vývoje. Cílem je charakterizovat aktuálně dostupné softwarové nástroje pro podporu agilního vývoje softwaru dle zvolených metodik, definovat kritéria pro jejich porovnání a porovnat je. Klíčová slova: Agilní vývoj, Software, Metodiky, Scrum, Kanban, Urban Turtle, TeamPulse, Agilo for Trac Annotation This bachelor thesis focuses on introducing with the methodologies and tools to support agile software development, explanations of basic concepts, their advantages, disadvantages and history of development. The aim is to characterize the currently available software tools to support Agile software development according to the specific methodologies, define the criteria for comparison and compare them. Key words: Agile development, Software, Methodologies, Scrum, Kanban, Urban Turtle, TeamPulse, Agilo for Trac

5 Obsah Úvod Strategie vývoje software Tradiční vývoje software Historie Modely ţivotního cyklu Model programuj a opravuj Vodopádový model Spirálový model Strukturovaný přístup Yourdonova moserní strukturovaná analýza (YMSA) Structured systems analysis and design metod (SSADM) Objektový přístup Rational Unified Process Agilní metodiky Popis agilních metodik Rozdíl mezi agilní metodikou a technikou Manifest agilního vývoje softwaru Příklady agilních metodik Extrémní programování (Extréme Programming, XP) Crystal Metodiky Dynamic Systems Develpment Method Vývoj řízení vlastnostmi softwaru (FDD, Feature-Driven Development) Adaptivní vývoj softwaru (ASD, Adaptive Software Development) Lean Development Agilní modelování Test Driven Development (TDD) The Agile Unified Process (AUP)...31

6 Open Unified Process (OpenUP) Microsoft Solutions Framework (MSF) SCRUM Development Process Kanban Porovnání agilních a rigorózních metodik Nástroje na podporu agilního vývoje softwaru Urban Turtle Popis společnosti TeamPulse Popis společnosti Popis nástroje Agilo for Trac Popis společnosti Popis nástroje Definice kritérií a porovnání nástrojů Maximální moţný počet uţivatelů Distribuce softwaru Cena...50 Závěr...53 Seznam pouţité literatury:...55 Seznam obrázků...57

7 Úvod Potřeba vývoje software je stejně stará, jako první počítače. Tato disciplína se musela vypořádat za svou existenci s celou řadou problémů a prodělala i mnoho změn. Od, ve své době, revolučního vývoje pomocí vodopádového modelu se přes spirálový model dostala aţ k současným sofistikovaným přístupům k vývoji software. Tato bakalářská práce se zabývá v dnešním světě stále více diskutovanými agilními metodami vývoje softwaru, které slibují rychlejší a levnější dodávky software. Popisuje strategii vývoje software, zobrazuje vývoj metodik od tvrdých, někdy také zvaných rigorózních aţ po agilní (pruţné) metodiky. Jsou zde popsány principy agilních metodik vycházející z manifestu o agilním programování. Nechybí ani porovnání rigorózních a agilních metodik. Součástí práce je i přestavení tří mnou vybraných nástrojů, které podporují agilní programování a kombinují v sobě metodiky Scrum a Kanban. Definice kritérií pro jejich porovnání a jejich vzájemné porovnání na základě těchto kritérií. V závěru nechybí shrnutí poznatků a doporučení nástrojů pro různě veliké týmy..

8 1. Strategie vývoje software Obecně můţe říct, ţe strategií vývoje softwaru můţe být pouze volba metodiky představující soubor metod a postupů, které jsou pouţívané k plánování a kontrole vývoje projektu. Existuje široké spektrum takových metodik, které vznikly během uplynulých let, kaţdá se svými klady a zápory. Za některé z příčin vzniku rozsáhlého mnoţství metodik můţe stát rozličnost firemní kultury v dané organizaci nebo technologie vyţadující různé metody a techniky. Jedna zvolená metodika tedy není vţdy vhodná k vývoji všech typů softwaru a nasazení do všech typů podnikových organizací. Pro podnikové organizace potom velké moţností metodik mohou představovat značné potíţe při jejím výběru. Tato obtíţná situace je zapříčiněna především tím, ţe metodiky nejsou jednotným způsobem popsány a rovněţ nejsou dobře kategorizovány. Kritéria, která by mohla vést k usnadnění výběru určité metodiky, jsou podle [1] následující: Kritérium Zaměření metodiky: - Globální metodiky zaměřené na vývoj, provoz i řízení IS v rámci celého podniku - Projektové metodiky pro vývoj IS v určité oblasti Kritérium Rozsah metodiky: - Metodiky pokrývající celý ţivotní cyklus vývoje - Dílčí metodiky zabývající se jen částí ţivotního cyklu vývoje (např.: pouze návrh spolu s implementací) Kritérium Váha metodiky: - Těţké metodiky mají přesně definované procesy, činnosti a artefakty - Lehké metodiky místo podrobných procesů definují spíše principy a praktiky Kritérium Typ řešení: - Vývoj nového řešení - Rozšíření stávajícího řešení - Integrování řešení - Implementování typového řešení 8

9 Kritérium Domény, představuje určitou oblast, pro kterou je software vyvíjen, oblastí může být např.: - Řízení vstahů se zákazníkem Customer Relationship Management - Elektronické vzdělávání e-learning - Obecný software Kritérium Přístup k řešení, se doporučuje aplikovat pouze u projektových metodik, kde se jedná o nový vývoj. Hodnoty kritéria jsou: - Strukturovaný vývoj - Objektově orientovaný vývoj - Komponentový vývoj Zejména na základě kritéria Váha metodiky lze metodiky rozdělit do dvou hlavních proudů. Na proudy rigorózní někdy taky označované jako těţké metodiky a agilní, téţ označované jako lehké metodiky. Rigorózní metodiky kladou svůj důraz především na plánování, řízení a měření definovaných procesů při vývoji softwaru. Naproti tomu agilní metodiky kladou důraz na projekty, kde je zapotřebí řešení vyvinout velmi rychle a méně se jiţ zabývají samotným postupem jak k tomuto cíli dospět. Hlavní idea je tedy v tom, co nejrychleji začít s vývojem a následně upravovat změny na základě zpětné reakce uţivatele. Pro tyto dvě skupiny metodik je dále charakteristický i její rozličný pohled na zdroje, jak je názorně vidět na obr. 1. Obr. 1 Tradiční a Agilní vývoj softwaru [2] 9

10 Rigorózní metodiky vnímají poţadavky na systém, které byly stanoveny jiţ na počátku samotného vývoje za fixní, a tedy její naplnění povaţují za hlavní cíl. Na základě těchto neměnných poţadavků se stanovují proměnné zdroje a čas. Naopak při agilním vývoji se funkcionalita daného systému můţe měnit v závislosti na zdrojích a času, které jsou omezené. 2. Tradiční vývoje software Za účelem porozumění důvodů, které stály za vznikem agilních metodik a také proto, aby bylo s čím porovnávat agilní metody, budou v této kapitole představeny někteří zástupci klasického přístupu vývoje a zejména popsán historický proces vývoje. 2.1 Historie Šedesátá léta 19. století představovala pro softwarové inţenýrství značnou krizi. Pokračování vývoje za pouţití tehdejších metodik a nástrojů bylo prakticky nemoţné. Procedurální programovací jazyky a model zaloţený na programuj a opravuj (code-fix) jiţ přestávaly stačit. Další kroky vývoje se jevily jako nemoţné nebo příliš nákladné. Značnými investory v té době byly převáţně státní instituce a armády jednotlivých států, které určovaly, jakým směrem se má uchylovat vývoj efektivnějších metod. Proto se na konferenci NATO v roce 1969 začal definovat nový koncept softwarového inţenýrství, který by měl odráţet nedostatky tehdejších přístupů řízení vývoje softwaru. Novum v začátcích 70. let představoval pak pro softwarové inţenýrství vznik nových technik jako je např. specifikace, návrh, testování, modely ţivotního cyklu (např. vodopádový model). Zpočátku nevyhnutelný a urychlený vývoj, koncem 80. let se potýká s dalšími revolučními poţadavky spjatými s novými výzvami a moţnostmi, které přináší hardware budoucí generace. Model ţivotního cyklu známý jako vodopád stále více ztrácí svůj krok s těmito poţadavky a tím dosahuje ke svým mezním hodnotám. Objektově orientovaný přístup k programování, grafické prostředí a nová generace zkušenějších vývojářů dávají novou naději a adekvátní reakci na stále nové poţadavky ze strany samotných uţivatelů. Na obzoru jsou tak 10

11 nové nástroje a koncepty, které byly převáţně inspirovány programovacím jazykem Small Talk [3]. Zastaralý přístup vývoje softwaru se tak stává nepouţitelným a je zapotřebí ho nahradit efektivnějším. Nutno také poznamenat, ţe státní instituce jiţ nepředstavují hlavního uţivatele a tím se otevírají nové moţnosti k experimentování s novými přístupy. Proto se v 90. letech začínají prosazovat metodiky zaloţené na objektově orientovaném paradigmatu. Posledními změnami na tomto poli zaznamenáváme vznik nových iterativních resp. agilních metodik a také prolínání tradičních a agilních přístupů. Pro další pozorování pak bude zajímavé sledovat vývoj tímto směrem, zdali přinese vznik nové revoluční metodiky nebo zdali se dočkáme potvrzení, ţe současně pouţívané agilní metodiky jsou dostatečně správnou náhradou za tradiční přístupy vývoje. 2.2 Modely životního cyklu Model ţivotního cyklu softwaru představuje rámec realizace procesů ţivotního cyklu v časové posloupnosti [1]. Tedy pomocí modelu je definována následnost jednotlivých etap vývoje bez stanovení metody, pomocí které se boudou etapy realizovat. V této kapitole budou charakterizovány nejznámější modely ţivotního cyklu Model programuj a opravuj V historických dobách byla většina softwarových projektů vyvíjena stylem programuj a opravuj. Pro projekty takto vyvíjené nejsou sestavovány ţádné plány. Návrh systému je zaloţen na základě krátkodobého rozhodnutí. Tento způsob vývoje je v podstatě vhodný v případě, ţe se jedná o software malého rozsahu. V případě robustnějšího softwaru se nelze spolehnout na tento způsob vývoje, jelikoţ postupnou implementací stále nových funkcionalit se přímo úměrně zvyšuje i počet chyb (bug), které jsou pak těţko odstranitelné. Typickou indikací takového softwaru je dlouhá testovací fáze, která pro daný projekt můţe představovat překročení stanoveného termínu dodání. Model programuj a opravuj je tedy jednoduchý způsob vývoje, jeţ je zaloţen na opakujících se činnostech programování, testování a opravě chyb. V první etapě jsou specifikovány 11

12 poţadavky, následně se přistupuje k opakujícímu se cyklu kódování a opravování. Zde zkušenější vývojáři mají větší šanci na úspěch, jelikoţ produkují méně chyb. Čas od času vývojář demonstruje daný software klientovi, a tím dostává zpětnou reakci. Daný cyklus končí, pokud je počet nalezených chyb na přijatelné úrovni, anebo je dosaţen termín ukončení. Poslední etapou je uvedení softwarové aplikace do provozu[1] Vodopádový model Vodopádový model představuje velmi vysokou úroveň abstrakce vývojového procesu,kde jsou jednoznačně definovány posloupnosti vývojových fázi. Jednotlivé po sobě jdoucí fáze připomínají vodopád. Odtud tedy jméno vodopádový model. Ačkoli tento model má mnoho nedostatků, slouţil jako hlavní podklad pro vznik efektivnějších modelů ţivotního cyklu. Ve vodopádovém modelu projekt prochází uspořádanými vývojovými fázemi začínající fází specifikace poţadavků a končící fází zavedení a údrţba. V rámci kaţdé fáze jsou definovány kriteriální body a meziprodukt, který musí být dosaţen při ukončení kaţdé fáze. Vodopádový model je totiţ zaloţen na dokumentech (document driven), coţ znamená, ţe dokumenty tvoří hlavní produkty, které se přenáší mezi jednotlivými fázemi. Následující fáze pak můţe začít aţ po splnění všech stanovených kriterií, v případě nedostatků se lze vrátit jen do předchozí fáze. Obr. 2 Vodopádový model [4] 12

13 Vodopádový model dosahuje dobrých výsledků v případě, ţe jsou dopředu pevně stanoveny všechny poţadavky na softwarový produkt a tím jsou případné chyby detekovány v raném stadiu projektu. Na druhou stranu, pro tento model nastávají problémy v případě, kdy je nutné během vývoje provádět změny. Výstupy jednotlivých fází totiţ pro klienta nejsou hmatatelné ve formě softwaru aţ do chvíle předposlední fáze ţivotního cyklu. Případné změny mohou být tedy vzneseny ze strany klienta aţ ke konci cyklu Spirálový model Spirálový model byl definován Barry Bohem (v článku A Spiral Model of Software Development) v roce Tento model ţivotního cyklu klade především velký důraz na analýzu rizik. Model rozděluje projekt do jednotlivých kroků (zavedení iterativního vývoje). V kaţdé iteraci se provádějí následující fáze: stanovení cílů, analýza patřičných rizik, návrh řešení, vývoj, testování a plánování. Zde na rozdíl od vodopádového modelu jsou výstupy po dokončení kaţdé iterace předávány ve formě prototypu, kterým si zákazník můţe snáze ověřit, ţe se vývoj ubírá správným směrem. Další výhodou modelu je sníţení nákladů na vývoj softwaru tím, ţe jsou v čas odhalovány chyby. Jelikoţ náklad na odstranění patřičných chyb jsou přímo úměrné době vývoje softwaru. Obr. 3 Spirálový model [5] 13

14 Podle spirálového modelu se proces vývoje softwaru odehrává ve čtyřech iteracích, jak je vidět na obr. 3, kde předmětem jednotlivých iterací jsou [1]: 1. iterace: identifikace globálních rizik spojených s daným projektem a definovaní návrhu řešení pro eliminaci těchto rizik 2. iterace: předmětem této iterace je specifikace poţadavků 3. iterace: v této iteraci se provádí detailní návrh řešení 4. iterace: poslední iterace se pak zabývá implementaci a testováním 2.3 Strukturovaný přístup Hlavním cílem těchto metodik je zvýšit kvalitu softwaru. Za tímto účelem rozdělují projekt na menší, dobře definované aktivity a rovněţ určují posloupnost a vztahy mezi nimi. Takové rozdělní pak umoţňuje lepší odhad času a kontrolu samotného výsledku. Strukturované metodiky přitom podporují pouze dílčí část ţivotního cyklu a to zejména analýzu a návrh. Významní zástupci těchto metodik budou níţe uvedeny pro lepší přiblíţení Yourdonova moserní strukturovaná analýza (YMSA) Metodika YMSA je jedna z nejpouţívanějších strukturovaných metodik, kterou uvedl Edward Yourdon v roce Tato metodika se soustředí na nalezení esenciálního modelu systému, který vyjadřuje podstatu systému, nezávisí na technických a implementačních omezeních a je dlouhodobě stabilní. Esenciální model se skládá z modelu okolí a modelu chování systému. Základním pouţívaným modelovacím nástrojem pro popis obou částí je diagram datových toků (DFD data flow diagram). Postup při analýze systému touto metodou se skládá z následujících kroků:[6] 1. Vytvoření modelu okolí systému; 2. Vytvoření prvotního modelu chování systému; 3. Dokončení esenciálního modelu; 4. Vytvoření implementačního modelu. 14

15 2.3.2 Structured systems analysis and design metod (SSADM) Jedná se o striktnější metodiku oproti YMSA, které byla v roce 1981 zpočátku vybrána jako standardní metodika pro vládní projekty, posléze pak i pro další oblasti. Důraz metodiky je kladen převáţně na detailní a strukturovaný přístup v kaţdé etapě. K tomu metodika poskytuje propracované postupy, které pouţívají řadu nástrojů a pohledů. Základní pouţívané modely jsou logické datové struktury, diagramy datových toků a ţivotní cykly entit. Celkově je tato metodika rozdělena do šesti etap, z nichţ první tři spadají do analýzy a zbylé tři do návrhu systému.[6] 1. Analýza stávajícího systému; 2. Specifikace poţadavků; 3. Výběr technických moţností; 4. Návrh logických dat; 5. Návrh logických procesů; 6. Fyzický návrh. 2.4 Objektový přístup Metodiky zaloţené na objektovém přístupu na rozdíl od strukturovaných metodik, nahlíţejí na data a funkce jako na neoddělitelnou součást objektu. A tím se snaţí prostřednictvím předepsaných modelů důvěryhodněji zachytit modelovanou realitu. Mezi základní modely objektových metodik zejména patří: statické modely (např. model tříd) a dynamické modely (např. diagram aktivit). Níţe si uvedeme jednoho z předních zástupců objektově orientovaných metodik Rational Unified Process Rational Unified Process (RUP) představuje proces, který zajišťuje disciplinovaný přístup k vývoji softwaru za pomocí řad standardizovaných nástrojů, šablon, artefaktů a včasných dodávek prototypů. Od ostatních výše zmíněných přístupů se převáţně liší tím, ţe se jedná o rozsáhlou a detailněji propracovanou metodiku resp. procesní rámec (process framework). 15

16 Metodika RUP je vhodná primárně na velké projekty, nicméně je moţné jí upravovat i pro jednodušší projekty. Moţnost upravovat a přizpůsobovat metodiku zapříčinilo vznik metodiky Agile Unified Process (AUP), která v sobě obnáší agilnější praktiky. Metodika RUP popisuje proces vývoje softwaru ve dvou úrovních, jak je vidět na obr. 4. Časová úroveň znázorňuje cykly, fáze, iterace a milníky vývojového procesu. Druhá úroveň pak popisuje jaké činnosti (disciplíny) a v jaké míře, jsou vykonávány v průběhu vývoje. Obr. 4 RUP: Dvě dimenze vývoje softwaru [2] Vývoj podle RUP probíhá v iterativních cyklech, kde kaţdá iterace má podobu menšího vodopádu tj. obsahuje všechny fáze tohoto modelu (analýza - testování). Na počátku projektu je nejvíce času věnováno specifikaci poţadavků a modelování obchodních procesů. Pozdější iterace vývoje se zaměřují na implementaci a testování. Výsledkem kaţdého cyklu je nová verze produktu. Kaţdý takový cyklus je sloţen ze čtyř fází: - Zahájení (Inception) definice poţadavků a cíle projektu - Rozpracování (Elaboration) definice systémové architektury - Konstrukce (Construction) návrh a realizování systému - Předání (Transition) nasazení systému do provozu 16

17 Metodika pro snadnější porozumění vyvíjeného softwaru pouţívá vizuální model, který je zaloţen na modelovací syntaxi Unified Modeling Language (UML). Mezi výhody této metodiky můţeme zařadit, kromě jiţ zmíněného iterativního přístupu, také moţnost přizpůsobení metodiky na projekty různého rozsahu. Představitel metodiky aktivně pracuje na jejím zlepšení, tím se dostává nejnovějších softwarově inţenýrských postupů a podpory standardů (např. podpora nejnovější specifikace UML). Slabou stránkou metodiky je její komerčnost v případě, ţe se nespokojíme se zobecněnou verzí Unified Process (UP). Obsáhlost metodiky můţe být další nevýhodou zejména u velikostně menších projektů. Menší vývojové týmy mohou totiţ na osvojení metodiky strávit příliš dlouhou dobu [7]. 17

18 3. Agilní Metodiky V této kapitole se dostáváme k širšímu záběru na agilní metodiky, zejména zde bude vysvětleno, co vlastně agilní vývoj představuje a hlavní zásady a principy, které byly definovány v rámci Manifestu agilního vývoje. Dále se zmíním o dalších rozdílech mezi rigorózními a agilními metodikami a nakonec uvedu stručný přehled některých agilních metodik. 3.1 Popis agilních metodik Anglicky se agilní metodiky označují jako agile methodologies". Toto spojení lze přeloţit jako čilé", hbité" nebo ţivé" metodiky. Dříve se uţíval pojem lightweight methodologies", který měl zdůraznit lehkost" metodik (z pohledu produkované dokumentace), tento pojem má však více různých významů, a tak se od jeho pouţívání postupně upustilo. Samotné překlady uvedené v předchozím odstavci výstiţně popisují cíle agilních metodik, vývoj software má být hbitý" (software je dodán v co nejkratším čase), lehký" (vývoj se omezuje jen na potřebné činnosti a tvorbu nutných dokumentů) a ţivý" (software musí být úspěšně dodán, tedy celý projekt má přeţít). Softwarové projekty vyvíjené tradičním způsobem častěji selhávají neţ projekty vyvíjené agilním vývojem. Jednou z příčin můţe být, ţe většina tradičních metodik se spoléhá na schopnost klienta definovat své poţadavky uceleně a přesně jiţ při první schůzce, a dále pak víra v to, ţe si klient v průběhu realizace vše nerozmyslí. Vývojové týmy se pak setkávají s potíţemi např. při vodopádovém ţivotním cyklu a to ve fázi předvedení, kde povaţují daný projekt za hotový. Jenţe bývají často nemile překvapováni, kdyţ po předvedení daného výsledku projektu uslyší ze strany objednavatele větu takto jsem si to rozhodně nepředstavoval a tím se rázem v podstatě celý projekt vrací na začátek. Jenţe s jednou významnou změnou - tým jiţ vyčerpal určitou finanční částku z rozpočtu. Dále si jistě vedení takového projektu bude pokládat otázky typu bude nás klient i nadále vnímat za profesionály? nebo nezruší klient s námi smluvní vztah a neodejde jinam?. Principy, které se osvědčily v raném vývoji softwarového inţenýrství, jiţ tedy bezpochyby nemůţeme 18

19 pokládat zcela za správné. Hlavně se jiţ nemůţeme spoléhat na předpoklad přesného definování poţadavků na software ze strany klienta v iniciální fází daného projektu resp. pří analýze systému. Tento předpoklad jistě mohl být povaţován za správný v dobách, kdy byl software vyvíjen pro konkrétního uţivatele a platformu. V současné dynamické ekonomice, která si stále ţádá novější technologie vyvolané poţadavkem trhu, se i poţadavky na vyvíjený software stále mění. A tedy ke splnění těchto poţadavků je nutné přizpůsobit i způsob vedení softwarových projektů. Zejména v době Internetu, kde se stále rozšiřují webové aplikace vyuţívané čím dál tím větším počtem uţivatelů, je rychlost vývoje tím nejdůleţitějším kritériem. V takovém případě jistě nemůţeme vyvíjet webovou aplikaci přehnaně dlouhou dobu za účelem splnění všech předpisů, které si ţádá daná rigorózní metodika [7]. Důvodem je existence hrozby spočívající v konkurenci, která mezitím uvede několik stejných sluţeb a pak budeme čelit značenému problému jak získat klienty jiţ vyuţívající těchto sluţeb na svou stranu. Agilní metodiky jsou proto jistě tou správnou volbou, kde je zapotřebí nejen webové aplikace, nýbrţ i širší spektrum softwaru zrealizovat velmi rychle a přitom se flexibilněji přizpůsobovat měnícím se poţadavkům ze strany klienta v průběhu realizace. Na druhou stranu pak u projektů s jasnou architekturou a plánem nebo s nevhodným týmem, by moţná nebylo zcela nutné a v některých případech i nevhodné pouţít ucelenou agilní metodiku, ale v rámci dané rigorózní metodiky začlenit spíše některou agilní techniku. Přínosem agilních metodik dále spatřujeme i efektivnější způsob motivace týmu. Pomocí iterativního vývoje, kde se dostává častějších viditelných výsledků, jsou členové týmu pozitivněji naladěni tzv. ţijí pro danou věc. Mezi zásadní principy agilních metodiky, které směřuji ke zplnění výše uvedených kritérií, resp. k onomu přizpůsobení způsobu vývoje softwaru, zejména podle [7] patří: - Interaktivní a inkrementální vývoj s krátkými iteracemi: Daný projekt je rozdělen do několika inkrementů (částí), které jsou nezávisle na sobě vyvíjeny. Vývoj v rámci kaţdé části probíhá iterativně (provádějí se jednotlivé fáze vývoje opakovaně), kde plán je sestaven tak, aby se nové funkce dodávaly častěji. Tím je klient průběţně seznamován s aktuálním stavem realizovaného projektu, a je tedy téměř vyloučeno, ţe by na konci realizace dostal něco zcela jiného, neţ očekával. 19

20 - Komunikace mezi zákazníkem a vývojovým týmem: Integrace nepřetrţité komunikace (např. časté schůzky) jako nedílná součást procesu vývoje, kde členem vývojového týmu je i samotný zákazník, který definuje poţadavky, dále se spolupodílí na návrhu a spolurozhoduje o testech. - Průběžné automatizované testování: Vzhledem k častějším změnám v rámci realizace aplikace a zachování její kvality, je nutné průběţně ověřovat správnost této aplikace. Takovéto ověřování by mělo spočívat v automatizovaných testech, které jsou napsané jiţ před implementací testované část. Výhody agilních metodik: - Iterativní a inkrementální vývoj. - Ranné dodání první funkční verze. - Zdůraznění významu komunikace. - Regresní testování. - Flexibilní reakce na změny. - Optimalizace metodik. Nevýhody agilních metodik: - Nezaručené rozsahy verzí. - Smlouvy nelze formalizovat. - Omezují dokumentace. - Testování provádí přímo autor. - Vyţadují nadprůměrné schopnosti. - Nelze vyuţít na částečný úvazek. 20

21 3.2 Rozdíl mezi agilní metodikou a technikou V této kapitole budou uvedeny zásadní rozdíly mezi stále se zaměňujícími termíny a to agilní metodikou a agilní technikou. V prvním případě jde o způsob rozvrţení práce za účelem efektivnější organizace, jak bylo výše uvedeno. Naproti tomu agilní technika je od agilní metodiky oddělitelná, spočívá v konkrétním postupu, jak dospět k poţadovanému výsledku např. stanovuje způsob pouţití nástrojů [8]. Software lze vyvíjet celou řadou způsobů. Ať uţ se jedná o vodopádový model (klasický přístup, od analýzy přes návrh a betaverze k finálnímu produktu) nebo o agilní metodiku, je nutné, aby manaţer, tým analytiků, vývojářů a testerů koordinoval, bral v potaz zájem klienta a zároveň kladl důraz na kvalitu a produktivitu samotných pracovníků. Protoţe jsou světy agilních a neagilních týmů poměrně oddělené a zároveň velmi komplexní, zaměříme se na jednu z oblastí. Tedy na agilní metodiky, jejich vliv na produktivitu a také na to, jak agilní metodiky v týmu podporovat.přestoţe se termíny agilní metodika a agilní technika často zaměňují, nebo dokonce povaţují za totéţ, ve skutečnosti se jedná o rozdílné (jakkoliv propojené) oblasti s naprosto rozdílnými významy. Agilní metodika je způsob rozvrţení a ověřování práce. Cílem Agilní metodiky bývá lepší organizace práce. Odlišné Agilní metodiky vedou k odlišným produktům, protoţe povaţují jiné aspekty produktu za klíčové. Liší se i přístup ke změně zadání. Moţnost změny zadání je ale určující podmínkou. Agilní metodika umoţňuje jak vytváření, tak reagování na změny v projektu a tím přinášet uţitek v neustále se měnícím obchodním prostředí. Agilní technika je naproti tomu konkrétní postup, který se většinou týká samotných vývojářů. Cílem těchto technik bývá zvýšení produktivity práce, odstranění chyb, kvalitnější software nebo přesnější dodrţení specifikace. Agilní techniky jsou od metodik oddělitelné. Cílem Agilní techniky bývá kvalitnější produkt. Rozdíly mezi agilní metodikou a technikou: - Agilní metodika se zaměřuje na organizaci práce bez ohledu na to, zda se ve firmě vyvíjí software, nebo se jedná o jinou oblast, kde lze agilní řízení uplatnit. 21

22 - V agilní metodice je kladen důraz na moţnost změny, agilní technika nic takového nevyţaduje. - Agilní me metodika se netýká pouze vývojářů, ale i managementu. - Agilní technika je konkrétní činnost (především vývojáře, můţe se týkat ale i klienta). Agilní metodiky i agilní techniky historicky vycházejí z Agile Manifesto. Tento manifest vznikl na bázi dlouholetých zkušeností špičkových vývojářů, analytiků zdola nahoru. Tedy managementu navzdory. Přesto se postupy z něj vycházející osvědčily, protoţe řeší následující problémy: - Ubude práce manaţera a tým přitom zlepší svou výkonnost. Jeden manaţer je schopen řídit více zaměstnanců, větší projekt nebo se více zaměřit na kvalitu. Ať uţ je to povahou sebe řízení, tím, ţe se nepíší zbytečné dokumenty nebo tím, ţe manaţer má stejně v průběhu iterace omezené pravomoci. - Je předem známo kolik práce je tým schopen udělat (v časovém rozsahu jedné iterace). To proto, ţe z minulosti je známo, jaká je rychlost v jednotlivých iteracích. Protoţe se zároveň dělají časové odhady na co nejkratší úkoly, je moţné řídit rychlost týmu. - Změny zadání za běhu (coţ je např. pro klasický vodopádový model naprosto neřešitelný problém) - Zrychlení doručování produktu od vývojáře k zákazníkovi (protoţe klientovi produkt doručujete po kaţdém běhu, zákazník se navíc často účastní běhu firmy) - Garance kvality (pomocí automatizovaných testů) - Odstranění bariér mezi produktem a vývojáři - Omezení rigidních procesů ve prospěch komunikace (Agilní metodiky proti dobře nastaveným procesům nejdou, pouze omezují ty procesy, které brání efektivitě, komunikaci a agilnímu přístupu k práci)[22] 3.3 Manifest agilního vývoje softwaru Uplynulo jiţ 14 let od únoru roku 2001, kdy byl sepsán Manifest agilního vývoje softwaru, kde skupinka sedmnácti významných odborníků, představitelů tehdejších light-weight metodik, z oblastí softwarového inţenýrství na popud neodpovídajících, pomalých a 22

23 byrokratických tradičních metodik společně definuje na základě svých dlouholetých zkušeností dvanáct základních hodnot agilního vývoje softwaru. A tím přináší do světa softwarového inţenýrství jednotný přístup, jak zefektivnit vývoj softwaru. Současně byla zaloţena Aliance pro agilní vývoj, jejíţ prvotní členové byli aktéři manifestu. Mezi nejznámější aktéry manifestu patří Mike Beedle, Alistair Cockburn, Kent Beck, Ward Cunningham, Ken Schwaber, Martin Fower a Jeff Sutherlan. Mezi hlavními pilíři, na kterých je Manifest postaven patří: - Přijmout a umoţnit změnu je mnohem efektivnější, neţ se pokoušet jí zabráni. - Je třeba být adekvátně připraven reagovat na nepředvídatelné události, protoţe ty jsou bezpochyby spjaty téměř s kaţdým projektem. Aktéři na základě výše uvedených pilířích dávají zejména přednost: - Individualitám a interakci před procesy a nástroji. - Fungujícímu software před obsáhlou dokumentací. - Spolupráci se zákazníkem před sjednáváním smluv. - Reakci na změnu před plněním plánu. Níţe bude stručně uvedeno dvanáct principů agilního vývoje, tak jak byly v rámci manifestu sepsány podle [7]. 1. Nejvyšší prioritou je uspokojovat zákazníky včasnou a kontinuální dodávkou softwaru, který jim přináší hodnotu. Zákazník bude mít největší uţitnou hodnotu ze softwaru, nikoliv z UML diagramů nebo ER-modelů. 2. Změny poţadavků dokonce i v pozdních fázích projektu jsou vítané, neboť změna můţe být pro zákazníka konkurenční výhodou. Agilní metodiky očekávají příchod změn a nedělají nic, co není momentálně potřebné, protoţe je pravděpodobné, ţe se to v budoucnu změní. 23

24 3. Časté dodávky softwaru (od dvou týdnů do dvou měsíců). Iterativní vývoj je podporován i většinou tradičních přístupů, agilní metodiky však zdůrazňují velmi krátké iterace a zkrácení cyklu dodávky. 4. Zákazníci a vývojáři spolupracují denně na projektu. Agilní přístupy vycházejí z toho, ţe nelze na začátku projektu podepsat specifikaci poţadavků a nadále ji v celém průběhu vývoje povaţovat za neměnnou. Místo toho se zpočátku definují pouze hrubé poţadavky umoţňující základní návrh architektury, nicméně se očekává, ţe i ty se mohou v čase měnit. Aby na základě vágně definovaných poţadavků bylo moţné provést návrh a implementaci, je nutný bezprostřední kontakt se zákazníkem. 5. Motivovaní jedinci, kteří mají dobré podmínky a podporu vedení, jsou klíčovým faktorem úspěchu projektu. O úspěchu projektu vţdy rozhodnou lidé, pro něţ je často nejcennější důvěra v jejich schopnosti. Také rozhodování musí provádět kompetentní a pozitivně motivovaní jedinci. 6. Vzájemná konverzace je nejvýkonnější a nejefektivnější metodou přenosu informací v rámci vývojového týmu. Agilní přístupy tvrdí, ţe smyslem dokumentace (v obecném významu) je porozumění problému; tohoto porozumění se však nejefektivněji dosáhne pouţíváním přímé komunikace, nikoliv psaním a čtením rozsáhlých zpráv. 7. Fungující software je primární mírou pokroku a úspěchu. Naplnění specifikace neznamená ještě úspěch projektu; můţe nastat např. neočekávaný problém při integraci. 8. Agilní metodiky předpokládají udrţitelný vývoj. Přesčasy, práce v noci, přetěţování pracovníků můţe krátkodobě vyřešit zpoţdění projektu, ale dlouhodobě je zdrojem nízké produktivity práce. Kent Beck, autor Extrémního programování, uvádí, ţe nutnost práce přesčasové je téměř vţdy signálem závaţných problémů v projektu. 9. Stálá pozornost perfektnímu návrhu a technickému řešení. Agilní přístupy zdůrazňují kvalitu návrhu, přičemţ ale změnu v návrhu neinterpretují jako důkaz jeho nízké kvality. Vzhledem k tomu, ţe základním jevem agilního programování jsou změny přicházející i v době, kdy kód je jiţ napsán, je nutnost měnit návrh a jeho změny následně promítat i do zdrojového kódu zcela přirozená. Návrh není samostatnou etapou dokončenou před 24

25 zahájením implementace; je to souvislá, kaţdodenní činnost zasahující do všech fází projektu. Základním omylem je však představa, ţe návrh je vynechán nebo zanedbán. Není tomu tak: o důleţitosti návrhu nikdo nepochybuje, návrh je naopak zařazen do kaţdodenní náplně práce programátorů. 10. Zásadní je jednoduchost neboli umění minimalizovat mnoţství neudělané práce. V agilních procesech je kladen důraz na jednoduché postupy, protoţe se snáze mění. Je snazší přidat něco k jednoduchému procesu, neţ něco komplikovaného z procesu odebrat. Do řešení by se mělo zahrnout jen to, co prokazatelně potřebuje kaţdý, nikoliv to, co moţná bude někdo potřebovat. Extrémní programování si například klade otázku Jaká je minimální konfigurace, která ještě můţe fungovat? 11. Důvěra a komunikace vedou ke kreativitě. Kreativita lidí přináší skvělé návrhy, musíme ji však podpořit důvěrou, častou komunikací a rozumnou zátěţí. 12. Jak pracovat efektivněji? Tým se musí v pravidelných intervalech zabývat touto otázkou. Agilní metodiky nejsou předem dané, ale vyvíjejí se, přizpůsobují a reflektují sebe sama. 3.4 Příklady agilních metodik Na základě Manifestu agilního programování resp. jeho základních principů vzniklo nemalé mnoţství metodik a stále se zvyšuje počet těchto metodik. Pro lepší přehlednost existujících agilních metodik v této kapitole, uvedu zejména podle [7] seznam těch nejvýznamnějších. Protoţe mi rozsah diplomové práce nedovoluje se značně rozepisovat o těchto metodikách, bude tedy u kaţdé popisující metodiky uveden i odkaz na zdroje poskytující hlubší informace Extrémní programování (Extréme Programming, XP) Extrémní programování (XP) je jednou z nejznámějších agilních metodik. Pojmy XP a agilní metodiky jsou dokonce někdy nesprávně povaţovány za ekvivalentní. Tato podkapitola 25

26 podrobněji popisuje tuto metodiku na základě informací získaných z knihy Extrémní programování [9], jejímţ autorem je Kent Beck. Extrémní programování vznikalo během devadesátých let minulého století na základě praktických zkušeností jeho autorů, kterými jsou Kent Beck a Ward Cunningham. Je postavené na známých a běţných postupech, ale dotahuje tyto postupy do extrémů. Kdyţ se vyplácí revize, tak se reviduje neustále. Pokud je nutné testovat, tak se testuje několikrát denně. XP pomocí svých principů a postupů dovádí do extrému všechny části vývoje software jako jsou revize kódu, testování aplikace, návrh architektury, integrace systému a iterační vývoj. Stejně tak se XP snaţí bojovat proti rizikům jako zpoţdění harmonogramu, zrušení celého projektu, krachující systém, zvětšující se míra poruchovosti, nepochopení zadání, průběţné změny zadání, přemíra funkcí a fluktuace pracovníků. Základem celého vývoje software je pro XP psaní zdrojového kódu a testování. Prostřednictvím zdrojového kódu komunikují členové týmu. Výsledky spouštěných testů vypovídají o stavu projektu. XP vychází z představy, jak by vývoj vypadal, kdyby na něj bylo dost času. Vývojáři by psali dobře strukturovaný a řádně otestovaný kód. Psaní zdrojového kódu a testovaní se v metodice XP prolíná. Programátoři během dne střídavě píší jednotlivé testy a implementace, nejdříve test jedné funkčnosti, následně její implementaci. Kdyţ test projde, přechází se na další funkčnost. Tento způsob vývoje řízeného testy je moţné pouţít jako samostatnou metodiku Test Driven Development (TDD), Kent Beck ji popisuje v knize Programování řízené testy [10]. Další důleţitou činností v XP je poslouchání. Kent Beck tvrdí, ţe nejlepším způsobem komunikace je rozhovor, a proto je XP navrţeno tak, aby maximálně podporovalo a vynucovalo vzájemnou komunikaci jak mezi jednotlivými programátory, tak mezi programátory a zákazníkem. Poslední podstatnou činností pro XP je navrhování. Navrhování provádějí všichni programátoři kaţdý den. XP klade důraz na zdrojový kód, a tak programátory nenutí ke kreslení diagramů, pokud to sami nechtějí. Návrh systému začíná psaním testů, kdy si musí programátoři dobře rozmyslet rozhraní vyvíjené aplikace, neboť právě toto rozhraní testují. Dalším postupem, kdy se programátoři plně věnují navrhování je refaktorizace, tedy změna zdrojového kódu při zachování funkčnosti. Při své práci se snaţí programátoři navrhnout a 26

27 udrţet vyvíjený systém v nejjednodušší moţné podobě, která můţe ještě fungovat a přitom přináší zákazníkovi očekávaný uţitek. Pro řízení vývojového procesu uvaţuje XP čtyři řídící proměnné, jsou to náklady, čas, kvalita a šíře zadání. Zákazníci nebo manaţeři zadávají hodnoty tří libovolně zvolených proměnných, vývojový tým pak určí odpovídající hodnotu zbývající proměnné. Tento přístup vychází z jednoduchých úvah. Například kdyţ má málo lidí v krátkém čase udělat moc práce, jsou ve stresu a výsledky jejich snaţení nedosahují odpovídající kvality. Ve většině případů stres a nereálné poţadavky způsobí zpoţdění projektu a s tím i zvýšené náklady. Právě z těchto důvodů XP říká, ţe týmu nelze nadiktovat hodnoty všech řídících proměnných, ale musí mu být dáno právo určit odpovídající hodnotu zbývající proměnné. Pokud nejsou manaţeři s odpovědí spokojeni, mohou si vybrat jiné tři proměnné, ale nikdy nesmí určovat hodnoty všech čtyř proměnných. Za nejvhodnější volnou proměnou pak XP povaţuje právě šíři zadání Crystal Metodiky Crystal není jméno jedné metodiky, ale slouţí k označení celé rodiny" metodik, které vymyslel Alistair Cockburn. Jednotlivé metodiky jsou pojmenované podle barev a navzájem se odlišují svou vhodností pro různě velké týmy a různě sloţité projekty. Čím tmavší barva je, tím je metodika robustnější a vhodnější pro rozsáhlejší, případně kritičtější projekty. Jednotlivé barvy jsou čirá, ţlutá, oranţová, červená, hnědá, modrá a fialová. Tyto metodiky nejsou přesné kuchařky", ale obsahují řadu rad, jak je přizpůsobit vlastním potřebám. Vhodná metodika pro projekt se volí na základě hodnot z tří následujících vlastností projektu. První vlastností je velikost vývojového týmu, tedy kolik lidí se účastní vývoje. Druhou vlastností je kritičnost projektu, která ohodnocuje dopad selhání systému a můţe nabývat čtyř hodnot: - Ztráta komfortu (C) je nejmenší dopad, kdy lze systém i nadále pouţívat, ale uţivatele to stojí zvýšené úsilí. - Malá ztráta peněz (D) má větší dopad, v tomto případě firma kvůli selhání ztratí nějaké finance. 27

28 - Velká peněz (E) je podobný dopad, jako předchozí, tentokrát ovšem firma ztrácí nezanedbatelnou část svých financí. - Ztráta lidských ţivotů (L) je nejhorším moţným dopadem. Poslední vlastností, podle které se řídí výběr správné metodiky, je priorita projektu. Tato vlastnost vyzdvihuje tu stránku projektu, která má pro nás největší význam. Můţeme se rozhodnout, zda budeme průběh projektu optimalizovat pro maximální produktivitu vývoje nebo dáme přednost například důkladnému měření postupujícího projektu. Volbu vhodné metodiky ilustruje obrázek 5 převzatý z práce Agile software development methods [11]. Čtverečkované jsou na obrázku označeny oblasti, které jsou nedosaţitelné nebo pro které neexistuje příslušná Crystal metodika. Obr. 5 Volba odpovídající Crystal metodiky [11] Robustnější metodiky jsou postupně navrhovány a ověřovány v praxi. Tato práce se zaměřuje na základní metodiku s čirou barvou (Crystal Clear), která spadá do kategorie D6, tedy je určená pro tým čítající od dvou do osmi lidí, kdy při selhání firma ztrácí malou část financí. Má volba byla ovlivněna ostatními metodikami, neboť jsem chtěl srovnávat metodiky určené pro přibliţně stejně velké týmy. 28

29 3.4.3 Dynamic Systems Develpment Method Dynamic Systems Development Method (DSDM) je vytvářena konsorciem DSDM od roku 1984, první verze metodiky byla uvolněna aţ v roce Dlouho dobu lze vysvětlit faktem, ţe konsorcium si dalo za cíl vytvořit podpůrné prostředí pro rychlý vývoj software. Vedle doporučených postupů tak metodika obsahuje rovněţ framework, nad kterým jsou aplikace vyvíjeny. Dále metodiku doplňují vývojové nástroje a šablony vytvářených dokumentů. Od prvního uvolnění konsorcium usilovně metodiku rozšiřuje a vylepšuje.metodika DSDM je nejvíce rozšířená ve Velké Británii, je však pouţívána i v jiných státech Evropy a Severní Ameriky. DSDM vychází z myšlenky, která je společná většině agilních metodik, pevně definovat potřebný čas a náklady na vývoj software, přičemţ rozsah vyvinutého systému je pak závislou proměnnou. Zdárné dokončení projektu zajišťuje pouţití dvou praktik časový blok a MoSCoW. U Dynamic Systems Development Metod se v závislosti na velikosti projektu účastní vývoje jeden nebo více týmů. Mezi velkým a malým projektem se z pohledu řízení téměř nerozlišuje, protoţe se vychází z předpokladu, ţe velký projekt lze rozdělit na menší nesouvisející části, které mohou řešit jednotlivé týmy nezávisle na sobě. Tým je sloţen ze dvou aţ šesti lidí. Minimum je dáno poţadavkem, ţe v kaţdém týmu musí být alespoň uţivatel a vývojář. Maximum šesti lidí je výsledkem dlouhodobých zkušeností z pouţívání metodiky DSDM Vývoj řízení vlastnostmi softwaru (FDD, Feature-Driven Development) FDD je formálnější metodika, zaloţená na iterativním vývoji, který je řízen vlastnostmi daného projektu. Vlastnostmi softwaru jsou elementární funkcionality přinášející přidanou hodnotu uţivateli. Dále metodika zavádí do oblasti agilního vývoje objektové modelování, kde se popisují objekty a vztahy mezi nimi pomocí UML diagramů. Vývoj je rozdělen do 5 fází, kde první tři (vytvoření celkového modelu, vytvoření seznamu vlastností a plánování podle vlastnosti) jsou sekvenční, poslední dvě (návrh podle vlastností a implementace podle vlastností) pak iterativní. Iniciální fází je tedy vytvoření globálního modelu, který se následně 29

30 převede do seznamu vlastností, ty se pak postupně implementují. Na základě krátkých iterací, obvykle 2 týdny, kde jsou klientovi průběţně prezentovány mezivýsledky, lze detailně plánovat a kontrolovat vývojový proces a tím se ujistit, ţe vše se ubírá správným směrem. [12] Adaptivní vývoj softwaru (ASD, Adaptive Software Development) Tato metodika se od ostatních liší ve filozofickém přístupu, který je zaloţen na teorii, podle které při vývoji nesmíme mít odpor vůči změnám nýbrţ se na takovéto změny patřičným způsobem adaptovat. Charakteristické pro ASD jsou iterativní fáze spekulace, spolupráce a učení. Metodika nepředepisuje konkrétní postupy, ale nechává na vývojovém týmu, jak bude postupovat v dané situaci na základě předešlých zkušeností.[13] Lean Development Autoři této metodiky byli značně inspirováni osvědčenými praktikami tzv. Lean Manufacturing, který vznikl při rozmachu japonského automobilového průmyslu. Autoři pak definují vlastní pravidla určená pro efektivnější vývoj softwaru, kde hlavním cílem je vývoj za třetinu obvyklého času, vystačit si s třetinou obvyklého rozpočtu a četnost chyb sníţit na třetinu obvyklého mnoţství. Mezi tato pravidla patří: odstranění všeho zbytečného, minimalizace zásob, maximalizování toku informací, vývoj taţený poptávkou, rozhodovací pravomoc přenést na pracovníky, poţadavky zákazníků uspokojovat jak nyní tak i do budoucna, zavedení zpětné vazby, odstranění lokální optimalizace, partnerství s dodavateli a vybudování kultury pro neustále zlepšování.[14] Agilní modelování Jedná se spíš o přístup k vývoji, neţli o metodiku jako takovou. Základní myšlenkou agilního modelování je zachytit pomocí modelů pouze nezbytně nutné poţadavky na systém a nezatěţovat se zbytečnostmi. Důleţitým faktorem je také to, ţe se modelování systému 30

31 účastní přímo uţivatel, tím se vývojovému týmu dostává zpětné rekce rychleji. Principy této metodiky převáţně vycházejí z metodiky Extrémního programování. Značnou nevýhodou tohoto přístup můţe být nemoţnost pouţití jejích praktik ve větších týmech.[15] Test Driven Development (TDD) V tomto případě se také nejedná zcela o metodiku. Základní myšlenkou tohoto přístupu je věnovat velké úsilí testovacímu procesu. Jde o to, nadefinovat co nejkvalitnější testy, které by měli odhalovat nedostatky vyvíjené aplikace. Zákazník tedy dostává kvalitní produkt, který není třeba dále testovat. Pravdou je, ţe i jiné metodiky se věnují testování, v tomto případě jde o přístup k vývoji, který testování nepovaţuje pouze za součást svého procesního vývoje, nýbrţ za hlavní proces. Tato myšlenka se pak odráţí i na samotné programování, kde je prvně zapotřebí vytvořit testovací jednotku pro danou funkcionalitu a teprve potom se přechází na implementaci.[16] The Agile Unified Process (AUP) Hlavní odlišnosti metodiky AUP od formálnějšího RUP spočívá zejména v tom, ţe správa poţadavků, analýza a návrh systému jsou sloučeny do jedné etapy tvorba modelu. Tady činnost zabývající se vytvářením modelů zcela nevymizela, pouze se zachycují nezbytně nutné prvky. Pro tuto metodiku jsou dále charakteristické její agilní techniky, zaloţené na TDD, agilním modelování, řízení agilních změn a databázovém refaktoringu. AUP představuje jakýsi kompromis mezi jinými agilními metodikami a metodikou RUP. Například agilní metodika XP nám přesně nestanovuje, jak vytvářet artefakty, které jsou důleţité pro managament našeho projektu. Z druhé strany pak RUP nabízí velké mnoţství artefaktů, které mohou být pro vývojáře zbytečné [17] Open Unified Process (OpenUP) Mezi nově vzniklé metodiky řadíme OpenUP, která je zaloţena na iterativním a inkrementálním přístupu, který je aplikován uvnitř strukturovaného ţivotního cyklu [17]. Zásadním principem této metodiky, je definování následujících vrstev: Project Lifecycle (ţivotní cyklus projektu), kde je primárním úkolem vytvoření projektového plánu. V této 31

32 vrstvě je kladen důraz na komunikaci především se zákazníkem, obvyklá délka trvání jednoho cyklu je několik měsíců; Iteration Lifecycle (ţivotní cyklus jedné iterace), cílem kaţdé iterace je dostavení funkční demo verze, která je pro klienta uţitnou hodnotou. Na rozdíl od předchozí vrstvy, zde je kladen důraz na komunikaci v rámci vývojového týmu, trvání jedné iterace je několik týdnu; Micro-Increment (mikroinkrement) je poslední vrstvou představující nejmenší jednotku práce (pouze několik hodin), kde členové týmu plní své přiřazené úkoly Microsoft Solutions Framework (MSF) Jedná se o framework pro vývoj softwaru, kde od verze MSF 4.0 jsou k dispozici dvě metodiky MSF for CMMI Process Improvement a MSF for Agile Software Development [1]. U OpenUP metodiky, jak i samotný název napovídá, jsou obsaţeny praktiky agilního přístupu (iterativní a adaptační procesy). MSF je zaloţen na dvou modelech: - Týmový model: Určuje jakým způsobem organizovat vývojový tým a jejich činnost tak, abychom úspěšně realizovali projekt. Především se klade důraz na to, aby v rámci týmu jedna osoba nezastávala více rolí. - Procesní model: V tomto modelu se opakují krátké vývojové cykly, kde výsledkem jednoho cyklu je vţdy vytvoření nové verze aplikace. Tento procesní model je rozdělen do 5 fází a to Envisionig (vytvoření vize), Planning (plánování), Developing (vývoj), Stabilizing (stabilizace) a Deploying (nasazení) SCRUM Development Process Autory metodiky Scrum jsou Ken Schwaber, Jeff Sutherland a Mike Beedle. Přístup Scrum je zaloţen na přesvědčení, ţe vývoj software není definovaný proces, jak rigorózní metodiky předpokládají, ale empirický proces, a proto vyţaduje úplně odlišný styl řízení. Název Scrum byl vybrán podle skrumáţe (mlýna) v rugby proto, aby zdůraznil, ţe metodika Scrum je podobně jako hra rugby adaptivní, rychlá a samoorganizující. Metodika Scrum je zaměřena především na řízení projektu. Vývoj software probíhá v rámci 30 denních iterací nazývaných Sprint, na jejichţ konci je dodána vybraná mnoţina uţitných vlastností. Klíčovou praktikou metodiky Scrum je ouţívání kaţdodenních 15 minutových porad (Scrum Meetings), které slouţí pro koordinaci integraci prací. Scrum definuje 4 fáze ţivotního cyklu: 32

33 - Iterativní vývoj: Vývoj metodikou Scrum probíhá v krátkých iteracích, které nazýváme sprinty. Kaţdý sprint trvá cca 14 dnů, na jeho začátku je stanovení cílů, na konci pak vývojový tým předvede klientovi funkční aplikaci. Následuje vyhodnocení úspěšnosti a stanovení cílů pro další sprint. Výhodou je, ţe po kaţdém sprintu lze změnit plány nebo přizpůsobit cíle tak, aby lépe odpovídaly aktuální realitě. Výsledkem sprintu je funkční aplikace, takţe po kaţdém sprintu lze vývoj ukončit. - Kontakt s vývojem: Zákazník má ve Scrumu těsný kontakt s vývojovým týmem. Na konci kaţdého sprintu mu vývojový tým prezentuje aktuální stav aplikace, zejména nově vytvořené funkce. V tomto okamţiku má moţnost do vývoje jakkoli zasáhnout. Tento přístup je mnohem pruţnější neţ tradiční vodopádový model, kde po úvodní analýze běţel vývoj často i několik let, aniţ by do něj zákazník mohl nějak podstatně zasahovat. - Krátkodobé plány: Ţádný plán nepřeţije první kontakt s realitou, ale samotný proces plánování je ezbytný. Scrum počítá se změnou. Vývojový tým i zákazník se během vývoje učí stále nové věci, jejich pohled na problematiku se neustále mění a vyvíjí. Proto ve Scrumu dáváme přednost krátkodobému plánování, ktré nám umoţňuje zůstat v kontaktu s realitou. - Zpětná vazba: Během vývoje ve Scrumu neustále testujeme. Vytváříme automatizované testy, provádíme testy pouţitelnosti, provádíme testovací scénáře. Zákazník navíc často vidí aplikaci a můţe zasahovat do jejího vývoje. To nám umoţňuje dodávat kvalitní řešení problémů, které jsou jen nejasně specifikované, nepřesně ohraničené a celkově velmi sloţité. První a poslední fáze obsahuje definované procesy, u kterých jsou určeny vstupy, výstupy a procesy transformace vstupů na výstupy. Tyto procesy vyjadřují explicitní znalost a jejich provádění je lineární. Fáze vývoje (Sprint) je naproti tomu empirický proces, jehoţ činnosti nelze zpravidla identifikovat a řídit. Tato fáze vystupuje jako černá skříňka, která vyţaduje vnější řízení. Pravidla pro 30 denní Sprint jsou jednoduchá. Kaţdý člen týmu má přidělen úkol, pracuje na splnění cíle Sprintu a účastní se denních porad (Scrum meetings). Tyto porady mají informační charakter a jsou velmi efektivně řízeny. Umoţňují monitorovat stav projektu, zaměřit se na to, co je třeba udělat pro úspěch projektu a jak řešit problémy. Denní porady se konají ve stejný čas na stejném místě a trvají maximálně 30 minut (optimálně 15 minut). Porady řídí Scrum Master, účastní se jich všichni členové týmu a navštěvují je také 33

34 manaţeři. Denní porady umoţňují týmu sdílet znalosti. Na poradách musí kaţdý účastník zodpovědět tři otázky: - Jaké poloţky se zvládly dokončit od minulé porady? - Jaké nové úkoly se mají řešit? - Jaké jsou omezení a překáţky pro řešení úkolů? Metodika Scrum se řadí do projektových metodik a zaměřená je především na řízení projektu. Chápe procesy při vývoji software jako empirické procesy, které není moţné předvídat, ale je nutné je monitorovat. K tomu poskytuje praktiky jako denní porady, monitorování Sprintu (30 denní iterace) pomocí Backlog graph a další. Metodika Scrum explicitně sniţuje chaos při vývoji tím, ţe stabilizuje úkoly pro 30 denní Sprint. Metodika Scrum je popsána jako jazyk vzorů (Pattern Language).[1] Kanban Kanban znamená v japonštině karta, štítek nebo lístek. Základní myšlenka systému Kanban je zaloţena na aplikaci zásad organizace činností amerických supermarketů ve výrobě, kde si zákazník vezme z regálu poţadované zboţí, u pokladny jsou ze zboţí sejmuty dopravní karty a poloţeny do skříňky (pošta kanban). Dopravní karty jsou poslány do skladu, poté co je ze skladu odebrané zboţí potřebné na naplnění regálů jsou dopravní karty vyměněny za karty výrobní, které se nacházely na zboţí. Výrobní karty jsou shromaţďovány ve schránce (jiná pošta kanban), zboţí je nyní dovezeno do supermarketu a s dopravními kartami postaveno do regálů. Výrobní karty jsou dodány zpět do továrny, kde se nyní vyrobí přesné mnoţství stanovené pomocí výrobních karet. Po ukončení výroby jsou na nově vyrobeném zboţí umístěny výrobní karty. Zboţí je dáno do skaldu a cyklus se uzavře. Snahou tohoto systému řízení je co nejdokonalejší přizpůsobení se (harmonizace) průběhu výroby materiálovým tokem. Hlavním cílem systému Kanban je na kaţdém stupni výroby podporovat výrobu na objednávku, která umoţňuje bez větších investic redukovat zásoby a zlepšuje přesnost plnění termínů. Aby to bylo moţné dosáhnout, musí se uţ při návrhu výrobní dispozice vyváţit výrobní kapacity (tvorba rodin příbuzných výrobků, zajištění pravidelného odběru a tím i výroby, pouţití principů skupinové technologie apod.) S vyvaţováním výroby se musí začínat ve finální montáţi. 34

35 Kanban znamená také vrácení funkce řízení zpět do dílny, kde lze přímo na místě přizpůsobit přísun materiálů a zpracování výrobních úkolů okamţitým poţadavkům. Obejde se tak bez těţkopádného centrálního plánování a řízení, vyrábí a dopravuje se jen to, co je poţadováno. Zákazníkem je kaţdý následující proces (NOAC - Next Operation As Customer). V systému Kanban je celé řízení výroby podřízené finální montáţi, která přímo reaguje na poţadavky zákazníků. Systém Kanban je nejvhodnější implementovat pro opakovanou výrobu stejných součástek s velkou mírou v odbytu. Pokud není splněn tento předpoklad, je třeba systém Kanban vybavit speciálním plánovacím systémem (určení kapacity regulačních okruhů a jejich toleranční rozsahy apod.). Předpoklady zavedení metodiky Kanban: - Vyškolený a motivovaný personál. - Vysoký stupeň opakování výroby, bez velkých výkyvů v poptávce. - Vzájemně harmonizované kapacity. - Rychlé postupy přetypování zařízení. - Připravenost personálu v případě zvýšené poptávky dělat přesčasy. - Rychlé odstranění poruch by měli zvládnout dobře vyškolení operátoři zařízení. - Výkonná kontrola kvality přímo na pracovišti. - Připravenost managementu na všech úrovních delegovat pravomoci. - Správně navrţený layout dílny s tendencí k linkovému uspořádání (plynulé toky). Základní pravidla pro fungování Kanban metodiky: 1. Personál následujícího procesu je povinen odebrat dílce z předcházejícího procesu, tak jak to předepisuje příslušná Kanban karta (mnoţství, typ...). 2. Výrobní personál můţe vyrábět jen to, co mu povoluje výrobní Kanban karta. 3. Pokud na pracovišti nejsou k dispozici ţádné Kanban karty, nesmí být realizována ţádná činnost (doprava, výroba). 4. Kanban karty jsou vţdy přepravovány společné s paletami a dílci (kromě jejich návratu). 5. Výrobní personál odpovídá za to, ţe jen výrobky se stoprocentní kvalitou budou vloţeny do palet pro následující proces. Pokud se vyskytne chyba, následuje stop celého procesu a odstranění chyby tak, aby se nemohla opakovat. 35

36 6. Inicializační počet Kanban karet musí být postupně redukován, provázanost procesů se musí zvyšovat, sníţení zásob odkrývá problémy a umoţňuje tak jejich eliminaci. Tento princip umoţňuje s pomocí počtu přítomných karet Kanban v systému kontrolovat a řídit rozpracovanost výroby a tedy i výšku zásob v rozpracování výrobě a velikost průběţné doby. V systému Kanban je po odebrání kompletní výrobní dávky odeslána z odběrového místa dodavateli (předřazené pracoviště) karta Kanban, která má funkci objednávky na dodávku nové výrobní dávky nebo materiálu či polotovarů. Kanban karty slouţí zároveň pro signalizaci stavu zásob a rozpracovanosti výroby. Nejdůležitější prvky této metodiky jsou: - Vytvoření svázaných samo-řídících regulačních okruhů mezi výrobními a spotřebními oblastmi. - Implementace tahového principu pro následující spotřební stupeň. - Pruţné nasazování personálu a provozních prostředků. - Přenos krátkodobého řízení na výrobní pracovníky pomocí speciálního nosiče informací karty Kanban. 4. Porovnání agilních a rigorózních metodik V současné době představují agilní a rigorózní metodiky dva hlavní směry v oblasti softwarového inţenýrství. Tyto dva směry vycházejí z odlišného pohledu na samotný vývoj softwaru a tím je kaţdý z nich vhodný pouze pro určitý typ projektů. Hlavní rozdíly mezi těmito přístupy vývoje byly uvedeny v předchozích kapitolách, zde si dále uvedeme další srovnání podle vybraných hledisek pomocí tabulky (Tab. 1). 36

37 Tab. 1 Porovnání rigorózních a agilních metodik [18] 37

38 Z výše uvedených informací o agilních metodikách lze usoudit, ţe pro pouţití některého ze zástupců těchto metodik je zapotřebí, aby naše prostředí, do kterého chceme danou metodiku zavést, splňovalo určité předpoklady. Zejména se jedná, jak jiţ bylo i v předešlých kapitolách zmíněno, o začlenění koncového uţivatele dané aplikace do řešitelského týmu, čímţ je tedy kladen důraz na vzájemnou komunikaci ne jenom v rámci týmu ale i se samotným zákazníkem. Pro vyuţití výhod osobní komunikace je pak i samotná velikost řešitelského týmu pokládána za velmi důleţitý faktor, kde se doporučuje nejvýše deset vývojářů. Z doporučení na velikost týmu nám pak vyplívá, ţe je nevhodné pouţívat agilní metodiky pro rozsáhlejší projekty, které si ţádají objemné vývojové týmy. Jiným významným poţadavkem je i odborná kvalifikovanost vývojářů, kde kromě jejich odborných znalostí je kladen důraz především na jejich zkušenosti z praxe (tactic knowledge)[1]. Mezi další předpoklady výčtově uveďme [19], [1]: - dokumentace a softwarové modely při vývoji nehrají hlavní roli; - poţadavky na software a prostředí, ve kterém je vyvíjen se v průběhu mění; - přizpůsobení se dynamickému vývojovému procesu vede k vysoce kvalitnímu produktu; - viditelnost do projektu nastává především při ukončení daného přírůstku; - náklady na změnu se dramaticky nezvyšuji v závislosti na překročení termínu. Pokud by námi vyvíjený projekt nesplňoval výše uvedené předpoklady, jsme pak nuceni pouţít těţší metodiku, tedy některou z rigorózních metodik nebo jinou alternativu spočívající v kombinaci těchto rozličných přístupů vývoje. Tedy pokud chceme pouţít agilní metodiku i pro tyto projekty je moţné ji obohatit o některé praktiky ze zástupců rigorózních metodik. Na druhou stranu, pokud jsou předpoklady pro nasazení agilní metodiky splněny, je moţné pouţít i některou odlehčenou verzi rigorózní metodiky, příkladem můţe být metodika AUP [18]. 38

39 5. Nástroje na podporu agilního vývoje softwaru Jiţ ze samotného manifestu o agilním vývoji vyplývá, ţe bychom se měli soustředit na samotný vývoj a komunikaci a nezdrţovat se definováním procesů a pouţíváním bytelných nástrojů. To by moţná fungovalo u týmu 4 lidí při Extrémním programování. Pokud ale je v týmu více lidí a jsem například manaţer, který řídí více týmů, mohu se začít ztrácet v Excelovských souborech a ocenil bych integrované prostředí přístupné odkudkoliv. Analytická společnost Forrester v roce 2004 ohlásila, ţe proces agilního vývoje přímo nezdůrazňuje potřebu nástrojů, ale přesto jsou nástroje rozhodující pro úspěch agilních projektů. Mezi nejdůleţitější nástroje staví ty pro řízení projektu, jednotkové testování, nástroje pro release a build management.[20] Zřejmě nejpouţívanější metodikou mezi agilními týmy je SCRUM. Tato metodika rozděluje vývoj do jednotlivých sprintů. V rámci kaţdého sprintu jsou nadefinované určité cíle a úkoly. Ke kaţdému úkolu je přiřazen řešitel a odhaduje se potřebná délka na splnění úkolu. Celý průběh metodiky umoţňují později představené nástroje řídit. Na pravidelných Scrum meetings není problém pruţně měnit zdroje přiřazené na projektu nebo přidávat jiné úkoly. Tyto činnosti by se bez potřebných nástrojů museli sloţitě vypisovat například do Excelu a pak data sdílet. Dnešní nástroje samozřejmě podporují nejrůznější agilní metodiky vývoje, Scrum jsem uvedl jen pro představu, jaká funkcionalita je třeba. Argumentem na tomto místě můţe být, ţe takové nástroje zde jiţ přeci dávno jsou a to například MS Project. Rozdíl je ale v tom, ţe takovýto druh softwaru je určen jen pro projektové manaţery, k plánování a odhadování času. Není ale dostatečně flexibilní a nepodporuje specifické potřeby agilních metodik. Silnou stránkou nástrojů pro podporu agilních metodik je komplexnost a integrace veškerého potřebného softwaru pro vývoj do jednoho prostředí. Jako manaţer mohu z druhého konce světa vyuţívat SaaS produktu a mít přesnou představu, co se na projektu děje. Nejlepší nástroje obsahují programové řízení, projektové řízení, řízení zdrojů, poţadavků, testů a defektů. Velice rozsáhlé bývají moţnosti integrace se softwary třetích stran. Buď pro případ, ţe nástroj vyuţívá například freeware pro řízení testů, nebo pro sdílení dat s komerčními nástroji, často vyuţívanými ve firmách. 39

40 Pro označení verzí produktů je vyuţito pojmů enterprise a community (komunitní). Enterprise znamená plnou verzi vyvíjeného software, to nejlepší, co můţete od firmy získat. Community verze, někdy označována jako Team, značí většinou produkt stejného typu, ale s určitými omezeními. Tato omezení se vztahují nejčastěji na počet uţivatelů, projektových týmů a mívají menší funkcionalitu. Omezení vyplývají z toho, ţe community verze bývají pouze omezenou verzí enterprise produktů a jsou distribuovány zdarma. Pozor na srovnávání community verze s trial verzí, která znamená plnou verzi produktu, ale časově omezenou. V následujících podkapitolách budou popsané jednotlivé nástroje podporující metodiku SCRUM i Kanban. 5.1 Urban Turtle 4 Obr. 6 Ukázka prostředí Urban Turtle [23] 40

Ú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

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

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

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

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

Agilní metodiky a techniky. analýza a vývoj IS

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

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

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

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

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

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řehled a porovnání nástrojů na podporu agilního vývoje softwaru

Přehled a porovnání nástrojů na podporu agilního vývoje softwaru Bankovní institut vysoká škola Praha Katedra informatiky a kvantitativních metod Přehled a porovnání nástrojů na podporu agilního vývoje softwaru Bakalářská práce Autor: Lukáš Vojtek, DiS. Informační technologie,

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

Management projektů. Programová podpora auditu sytému managementu kvality HOT 4IT. Plán projektu

Management projektů. Programová podpora auditu sytému managementu kvality HOT 4IT. Plán projektu Management projektů Programová podpora auditu sytému managementu kvality HOT 4IT Plán projektu Historie Verze Datum Status Kdo Poznámka 0.1 8. 4. 2010 Špaček Petr Vytvoření 0.2 11. 4. 2010 Špaček Petr

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

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

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

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

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

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í

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

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

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

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

Návrh IS - UML. Jaroslav Žáček

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.

Více

Návrh IS - UML. Jaroslav Žáček

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

Více

AGILNÍ METODIKY, JAK DÁL?

AGILNÍ METODIKY, JAK DÁL? AGILNÍ METODIKY, JAK DÁL? Alena Buchalcevová Katedra informačních technologií VŠE Praha, buchalc@vse.cz ABSTRAKT: Agilní metodiky mají za sebou již sedm let své existence, vyzrávají a začínají být skutečně

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

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

Univerzita Pardubice. Fakulta ekonomicko-správní

Univerzita Pardubice. Fakulta ekonomicko-správní Univerzita Pardubice Fakulta ekonomicko-správní Vyuţití agilních metod, SCRUM, v projektovém řízení Bc. Květoslava Bartůňková Diplomová práce 2011 PROHLÁŠENÍ AUTORA Prohlašuji: Tuto práci jsem vypracovala

Více

Modelování procesů s využitím MS Visio.

Modelování procesů s využitím MS Visio. Modelování procesů s využitím MS Visio jan.matula@autocont.cz Co je to modelování procesů? Kreslení unifikovaných či standardizovaných symbolů, tvarů a grafů, které graficky znázorňují hlavní, řídící nebo

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

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

MANAGEMENT KYBERNETICKÉ BEZPEČNOSTI

MANAGEMENT KYBERNETICKÉ BEZPEČNOSTI MANAGEMENT KYBERNETICKÉ BEZPEČNOSTI TÉMA Č. 1 VÝVOJ A POJETÍ INFORMAČNÍHO MANAGEMENTU pplk. Ing. Petr HRŮZA, Ph.D. Univerzita obrany, Fakulta ekonomiky a managementu Katedra vojenského managementu a taktiky

Více

Operační plány jako součást Krizového plánu Moravskoslezského kraje Anotace Legislativa 2. Místo operačních plánů ve struktuře krizového plánu

Operační plány jako součást Krizového plánu Moravskoslezského kraje Anotace Legislativa 2. Místo operačních plánů ve struktuře krizového plánu Kratochvílová D., Hendrych T., Krömer A., Operační plány jako součást Krizového plánu Moravskoslezského kraje 112, Odborný časopis požární ochrany, integrovaného záchranného systému a ochrany obyvatelstva,

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování. 3 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Business modelling, základní nástroje a metody business modelování.

Více

Teorie systémů TES 10. Měkké systémy metodiky

Teorie systémů TES 10. Měkké systémy metodiky Evropský sociální fond. Praha & EU: Investujeme do vaší budoucnosti. Teorie systémů TES 10. Měkké systémy metodiky ZS 2011/2012 prof. Ing. Petr Moos, CSc. Ústav informatiky a telekomunikací Fakulta dopravní

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

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

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

ČÍ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? ČÍ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:

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

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

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

Manažerská informatika - projektové řízení

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

Více

Objektová tvorba SW, Analýza požadavků 2006 UOMO 53

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

Více

POČÍTAČE A PROGRAMOVÁNÍ

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ý

Více

Agilní metodiky vývoje software

Agilní metodiky vývoje software MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY ^TIS m p Agilní metodiky vývoje software DIPLOMOVÁ PRÁCE Bc. Tomáš Kotrla Brno, Podzim 2005 Prohlášení Prohlašuji, že tato diplomová práce je mým původním

Více

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

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

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

Agilní metodiky vývoje software

Agilní metodiky vývoje software MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY #ris m p Agilní metodiky vývoje software DIPLOMOVÁ PRÁCE Bc. Tomáš Kotrla Brno, Podzim 2005 Prohlášení Prohlašuji, že tato diplomová práce je mým původním

Více

Informační systémy. Jaroslav Žáček jaroslav.zacek@osu.cz

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

Více

Informační systémy. Jaroslav Žáček

Informační systémy. Jaroslav Žáček Informační systémy Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/infs1/ Úvod - co možná umíte z předmětu SWENG / SWING SWOT analýza Rozdělení IT Architektura IS Klíčový prvek řízení IS

Více

ANALÝZA A PROJEKTOVÁNÍ SYSTÉMŮ Řízení projektů zavádění IS

ANALÝZA A PROJEKTOVÁNÍ SYSTÉMŮ Řízení projektů zavádění IS ANALÝZA A PROJEKTOVÁNÍ SYSTÉMŮ Řízení projektů zavádění IS Roman Danel VŠB TU Ostrava HGF Institut ekonomiky a systémů řízení Literatura Staníček, Z, - Hajkr, J.: Řízení projektů zavádění IS do organizací.

Více

}w!"#$%&'()+,-./012345<ya

}w!#$%&'()+,-./012345<ya }w!"#$%&'()+,-./012345

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

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

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

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

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

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz RUP - Disciplíny Jaroslav Žáček jaroslav.zacek@osu.cz Disciplíny Množství disciplíny v dané iteraci Disciplíny podle RUP Šest základních: Business modeling - pro pochopení problémové domény Requirements

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

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

Přehled základních právních forem podnikání podává tato grafika: Právní formy podnikání. k.s. s.r.o. a.s.

Přehled základních právních forem podnikání podává tato grafika: Právní formy podnikání. k.s. s.r.o. a.s. PRÁVNÍ FORMY PODNIKÁNÍ Právní formy podnikání - přehled Podrobné cíle učení: Umět vysvětlit, proč existují různé právní formy podnikání. Podnikání se vţdy uskutečňuje v určité právní formě. Chce-li někdo

Více

InternetovéTechnologie

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

Více

Úvod do problematiky vývoje Vývoj informačních systémů

Ú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,

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

Principy UML. Clear View Training 2005 v2.2 1

Principy UML. Clear View Training 2005 v2.2 1 Principy UML Clear View Training 2005 v2.2 1 1.2 Co je touml? Unified Modelling Language (UML) je univerzálníjazyk pro vizuální modelování systémů Podporuje všechny životní cykly Mohou jej implementovat

Více

Globální strategie, IT strategie, podnikové procesy. Jaroslav Žáček

Globální strategie, IT strategie, podnikové procesy. Jaroslav Žáček Globální strategie, IT strategie, podnikové procesy Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Globální podniková strategie Co budeme dělat? Jak to budeme dělat? Jak využijeme IT systémy?

Více

Modelování procesů (2) 23.3.2009 Procesní řízení 1

Modelování procesů (2) 23.3.2009 Procesní řízení 1 Modelování procesů (2) 23.3.2009 Procesní řízení 1 Seznam notací Síťové diagramy Notace WfMC Notace Workflow Together Editor Aktivity diagram (UML) FirsStep Designer Procesní mapa Select Prespective (procesní

Více

Informační systémy ve strojírenství

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í

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

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

Stav používání agilních metodik v ČR

Stav používání agilních metodik v ČR Alena Buchalcevová Katedra informačních technologií Vysoká škola ekonomická v Praze buchalc@vse.cz Abstrakt: Tradiční rigorózní metodiky vývoje softwaru přestávají v prostředí neustálých změn vyhovovat

Více

Vývoj informačních systémů. Obecně o IS

Vývoj informačních systémů. Obecně o IS Vývoj informačních systémů Obecně o IS Informační systém Informační systém je propojení informačních technologií a lidských aktivit směřující k zajištění podpory procesů v organizaci. V širším slova smyslu

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

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

Více

Agilní metodiky Agilní Jan Smolík

Agilní metodiky Agilní Jan Smolík Agilní metodiky Jan Smolík Kritéria pro členění metodik Zaměření metodiky Rozsah metodiky Váha metodiky Typ řešení Doména Zaměření metodiky Globální metodiky (Enterprise Methodologies) Zaměřené na komplexní

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

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan Principy OOP při tvorbě aplikací v JEE Michal Čejchan Témata přednášky Principy OOP - připomenutí Úvod - co nás vede k používání OOP Reálný svět - jak (ne)používáme OOP Nedostatky na úrovni programovacích

Více

Softwarová podpora v procesním řízení

Softwarová podpora v procesním řízení Softwarová podpora v procesním řízení Zkušenosti z praxe využití software ATTIS Ostrava, 7. října 2010 www.attis.cz ATTN Consulting s.r.o. 1 Obsah Koncepce řízení výkonnosti Koncepce řízení výkonnosti

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

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

01. Životní cyklus programového díla, analýza, návrh, implementace, provoz a metodiky vývoje SW. (A7B36SIN)

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

Více

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz UML a jeho použití v procesu vývoje Jaroslav Žáček jaroslav.zacek@osu.cz Různé pohledy na modelování Různé pohledy na modelování Unified Modeling Language UML není metodikou ani programovacím jazykem,

Více

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

Více

Hodnotocentrické metodiky

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

Více

Semestrální práce z předmětu 4IT421 Téma: CMMI-DEV v.1.3 PA Project Monitoring and Control

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í

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

ČSOB: Upgrade systému Microsoft Dynamics CRM

Č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ž

Více

3. Očekávání a efektivnost aplikací

3. Očekávání a efektivnost aplikací VYUŽÍVANÍ INFORMAČNÍCH SYSTÉMŮ V ŘÍZENÍ FIREM Ota Formánek 1 1. Úvod Informační systémy (IS) jsou v současnosti naprosto nezbytné pro úspěšné řízení firem. Informačním ním systémem rozumíme ucelené softwarové

Více

IBM Analytics Professional Services

IBM Analytics Professional Services Popis služby IBM Analytics Professional Services Tento Popis služby stanovuje podmínky služby Cloud Service, kterou IBM poskytuje Zákazníkovi. Zákazník znamená smluvní stranu a její oprávněné uživatele

Více

komplexní podpora zvyšování výkonnosti strana 1 Využití Referenčního modelu integrovaného systému řízení veřejnoprávní korporace Město Hořovice

komplexní podpora zvyšování výkonnosti strana 1 Využití Referenčního modelu integrovaného systému řízení veřejnoprávní korporace Město Hořovice strana 1 Využití Referenčního modelu integrovaného systému řízení veřejnoprávní korporace Město Hořovice 19.3.2018 Zpracoval: Roman Fišer, strana 2 1. ÚVOD... 3 2. POPIS REFERENČNÍHO MODELU INTEGROVANÉHO

Více

Úvod do softwarového inženýrství a týmového vývoje

Úvod do softwarového inženýrství a týmového vývoje Úvod do softwarového inženýrství a týmového vývoje Ing. Jiří Mlejnek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jiří Mlejnek, 2011 jiri.mlejnek@fit.cvut.cz

Více

WORKFLOW. Procesní přístup. Základ perspektivního úspěšného podnikového řízení. Funkčnířízení založené na dělbě práce

WORKFLOW. Procesní přístup. Základ perspektivního úspěšného podnikového řízení. Funkčnířízení založené na dělbě práce WORKFLOW Procesní přístup Základ perspektivního úspěšného podnikového řízení Funkčnířízení založené na dělbě práce Procesní řízení princip integrace činností do ucelených procesů 1 Funkční řízení Dělba

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

Management rizika Bc. Ing. Karina Mužáková, Ph.D. BIVŠ,

Management rizika Bc. Ing. Karina Mužáková, Ph.D. BIVŠ, Management rizika Bc. Ing. Karina Mužáková, Ph.D. BIVŠ, 2015 1 5/ Řízení rizika na úrovni projektu, podniku a v rámci corporate governance. BIVŠ, 2015 2 Definice projektu říká, že se jedná o činnost, která

Více

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í? 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á

Více