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



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

XINF1. Jaroslav Žáček

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

Životní cyklus vývoje SW. Jaroslav Žáček

Project management. Příprava projektu Zahájení High level plánování. Vykonávání Detailní plánování Vykonávání Řízení a monitorování

6INF2. RNDr. Jaroslav Žáček, Ph.D.

Analýza a Návrh. Analýza

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

8 Přehled OO metodik (metod, metodologií)

8 Přehled OO metodik (metod, metodologií)

RUP - Motivace, principy. Jaroslav Žáček

RUP - MOTIVACE, PRINCIPY JAROSLAV ŽÁČEK

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

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

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

Testování software. Jaroslav Žáček

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

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

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

Vývoj řízený testy Test Driven Development

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

Agile Software Development

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

Riziky řízený vývoj software

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

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

Semestrální práce ke kurzu 4IT421 Zlepšování procesů budování IS

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

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

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

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

Implementace informačního systému pro knihovnu Jiřího Mahena v Brně

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

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

CASE nástroje. Jaroslav Žáček

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

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

CASE. Jaroslav Žáček

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

ROČNÍKOVÝ PROJEKT 1 URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH

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

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

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

Základy analýzy. autor. Jan Novotný února 2007

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: AVTK. Úvod. strana 1

2 Životní cyklus programového díla

Agilní metodiky vývoje softwaru

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

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

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

Nástroje pro průběžnou integraci a testování

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

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

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

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

Obsah. Zpracoval:

Metodiky pro automatické testování webové aplikace. Ondřej Melkes, Martin Komenda

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

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

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

Unifikovaný proces vývoje

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

Agilní metodiky a vývojové procesy

Hodnocení metodik vývoje informačních systémů z pohledu testování

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

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

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

Y13ANW ÚVOD DO WEBOVÝCH METODIK. Ing. Martin Molhanec, CSc.

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

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

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

Projekt Partner ČSOB Leasing. 02/12/2013 Jaromír Mayer Domain Process Manager Head of Department

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

Co se chcete dozvědět?

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Microsoft.NET. AppTima Feedback Solution - komplexní systém pro zjišťování a vyhodnocování spokojenosti zákazníků

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

Telelogic Focal Point využití pro řízení a optimalizaci projektového portfolia Verze 1.0

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

Aktuá lní př ehodnocení MSF foř CMMI dle METES

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

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

Jak efektivně testovat IB. Otakar Ertl

Podpora životního cyklu vývoje sliby a realita. Michael Juřek mjurek@microsoft.com Software Architect Microsoft s.r.o.

3 Inženýrství systémů založených na počítačích (Computer-based System Engineering)

Co je to SCRUM! FRAMEWORK vs METODIKA. Ken Schwaber a Jeff Sutherland ho mají za framework Kde hledat detaily?

Procesní dokumentace Process Management. Pavel Čejka

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

Kvalita procesu vývoje (SW) Jaroslav Žáček

3 Inženýrství systémů založených na počítačích (Computer-based System Engineering)

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.

RDF DSPS ROZVOJ PORTÁLU

POČÍTAČE A PROGRAMOVÁNÍ

Spolupráce metodik ITIL a RUP. Jan Jelínek

Jak testovat software v praxi

EXTRAKT z mezinárodní normy

AGILNÍ METODIKY VÝVOJE SOFTWARE

2013 IBM Corporation

Transkript:

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í týmu, konfigurace prostředí, vytvoření prototypu architektury, kódování, integrace a beta release Studenti si rozdělí jednotlivé týmové role, důraz je ovšem kladem na cross-functional týmy (každý v týmu je zastupitelný) Vývoj se bude řídit agilními metodikami - iterativněinkrementálním vývojem, využívat se bude procesní framework OpenUP Pomoc při návrhu architektury Java - Žáček.NET - Vajgl

ROPR1 V ROPR1 realizace fáze Inception a Elaboration podle OpenUP Kritické je pochopení iterativního vývoje. Nezbytný předpoklad pro splnění je paralelní absolvování teorie - INFS1. Kritická je kooperace všech členů týmu. Příprava prostředí (IDE, repository) a nastavení nutných podpůrných procesů (testovací proces, modelovací nástroje)

Výstupy fáze Inception Definice a sestavení týmu - poslat na mail Definice rysů aplikace a identifikace klíčových požadavků Identifikováni aktoři, nastíněné Use Case Prostředí a nástroje jsou vybrány, nakonfigurovány a připraveny k použití

Výstupy fáze Inception Dokumenty Vize projektu Risk list Projektový plán Návrh architektury Detailní iterační plán pro 1. iteraci Jednoduchý prototyp - Hello world (pokud neznáte danou technologii)

Vize

Vize - příklad

Vize - příklad

Risk list

Risk list - příklad

Projektový plán

Projektový plán - příklad

Architektura

Architektura - příklad

Architektura - jiný příklad

Prostředí IDE CVS/SVN/Mercurial Týmová Wiki xunit

PROSTŘEDÍ - PŘÍKLAD Repository - SourceForge, Bitbucket, vlastní dle používaného protokolu IDE - Eclipse/NetBeans a Visual Studio + napojení na repository Testy řízený vývoj - nejprve test, pak kód Automatický proces sestavení a spouštění testů - využití Ant/Maven a xunit

Iterační plán Plán iterace E1 Začátek iterace (plánovací meeting dané iterace): 15.11.2012 Konec iterace (demo, assessment): 30.11.2012 Cíle iterace: Implementace UC1 [BF]. Odstranění rizika R1 a R2. Evaluační kritéria: 60 % kódu pokryto unit testy. 100 % unit testů prošlo. 70 % implementovaných funkčních testů prošlo. Sníženo riziko R1. Bylo předvedeno demo zákazníkovi. Zákazník demo akceptoval.

Iterační plán - příklad

Iterační plán - příklad

Výstupy fáze Elaboration Ustálený vývojový proces a prostředí (funguje Repository, umíte ovládat IDE, funguje Wiki a všichni s ní umí pracovat, fungují testy) Jsou popsány kritické scénáře Dokumenty jsou umístěny ve společném repozitáři či Wiki Architektura je stabilní, otestovaná a spustitelná - lze na ní projekt realizovat celý Všechny významné rizika jsou odstraněny (minimalizovány)

Ověření V závěru semestru bude práce ohodnocena vyučujícími a ostatními týmy, zaměříme se hlavně na: správně pochopené potřeby zákazníka a vybrané klíčové požadavky architektura je stabilní oproti testům i klíčovým požadavkům zákazníka budete demonstrovat základní UC v aplikaci ukážete výsledky testů prezentujete model architektury kontrola, jestli je risk list pravidelně aktualizován, doplňován a jestli jsou podle něj plánovány iterace

Naše očekávání NE 100% pokrytí testů (ani unit, ani systémové) NE 100% možných a popsaných UC implementováno NE vymakané GUI u všech scénářů NE profesionální/robustní architektura ALE alespoň nějaké existující unit testy a funkční testy (tabulka v Excelu, Fitnesse, TPTP, ) ALE alespoň 2-3 scénáře implementovány ALE nějaké frameworky použité a ověřené (xunit, Struts, Spring ) ALE pracovat v duchu objektově-orientovaného paradigmatu ALE alespoň základní prostředí nastavené (IDE, SVN, Wiki pro dokumentaci a návody, testovací nástroje, )

ROPR2 Navazuje na ROPR1 dalšími fázemi: Construction - hlavní fáze tvorby software, převážně kódovací, postaveno na ověřené architektuře z ROPR1, dopracování cca 80% procent požadavků Transition - jen některé aktivity - funkční a nefunkční testování, demonstace zákazníkovi

Teorie - jak na to

Základní principy

Rational Unified Process (RUP) UC driven (řízen pomocí UC) Zaměřen na rizika (nejrizikovější věci dělám nejdříve) Iterativní (každá iterace produkuje spustitelný a otestovaný build) Kooperace (analytik, designer, programátor, tester těsně spolupracují) Orientován na architekturu

RUP fáze a disciplíny

Iterace Každá iterace produkuje spustitelný a otestovaný build obsahující nově implementované funkčnosti (scénáře) z důvodu zpětné vazby od uživatele Každá iterace má definovaný přesný cíl, který se snažíme naplnit (paralelní analýza, návrh, implementace a testování vybrané nové funkčnosti jejich scénářů). Iterace je miniprojekt, má svůj začátek, konec a pevně definovaný časový rozsah (2-6 týdnů) což se již předvídá a detailně plánuje lépe, než například 2 roky. V průběhu 1 iterace provádíme všechny disciplíny! Tj. definice požadavků, analýza a návrh, implementace, integrace a testování!!! Zřetězením iterací nabalujeme jednotlivé funkčnosti až do výsledného produktu.

Fáze inception Pochopení problematiky, nastínění funkčností systému (základní UC) Vize Identifikace rizik + akce na jejich snížení / odstranění Návrh možného řešení (architektura) Složení týmu, financování Definice procesu, výběr a nastavení nástrojů

Fáze elaboration Snížení technických rizik Návrh implementace a testování architektury na základě klíčových potřeb (asi 20-30% UC) Výsledek fáze: stabilní, otestovaná architektura Architektura rozhraní subsystémů, komunikační mechanismy, odchytávání výjimek, ukládání dat,

Fáze construction Detailní analýza, návrh, implementace a testování zbývajících 70-80% UC v několika iteracích Využíváme mechanismy definované architekturou Výsledek fáze: beta-release Všechny disciplíny (analýza, návrh, vývoj, testování) jsou v každé iteraci prováděny paralelně

Fáze Transition Beta testování Školení (podpory, uživatelů) Příprava dat a prostředí (souběžný provoz verzí, transformace dat), instalace SW na klientské stanice Další aktivity (marketing, distribuce, prodej, CASE study, white papers, zprávy pro tisk) Lessons learnt - pro zlepšení procesu

Jak to udělat špatně Částečně udělaná práce Extra rysy aplikace (zákazník nikdy nepoužije) Znovu se učení Předávání práce, dokumentů, znalosti Přepínání mezi jednotlivými úkoly (context switching) Zpoždění (čekání na schválení, fronty) Defekty

Jak to udělat dobře TDD Iterative development (feedback, možnost zahrnout v průběhu vývoje změny) UC driven (reuse TC, tracebility) Continuous integration (automatické sestavení + automatický testing) Mále dokumentace + dokumentace návrhu kódem Implementace pouze potřebných požadavků (klíčové potřeby 20% UC) Posunout rozhodnutí