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

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

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

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

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

Analýza a Návrh. Analýza

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

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

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

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

RUP - MOTIVACE, PRINCIPY JAROSLAV ŽÁČEK

RUP - Motivace, principy. Jaroslav Žáček

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

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

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

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

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

Testování software. Jaroslav Žáček

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

Vývoj řízený testy Test Driven Development

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

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

Agile Software Development

CASE. Jaroslav Žáček

CASE nástroje. Jaroslav Žáček

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

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

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

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

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

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

Riziky řízený vývoj software

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

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

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

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

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

Praktické zkušenosti s Azure DevOps

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

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

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

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

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

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

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

Agilní metodiky vývoje softwaru

Obsah. Zpracoval:

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

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

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

Unifikovaný proces vývoje

2 Životní cyklus programového díla

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

Agilní metodiky a vývojové procesy

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

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

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

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

Co se chcete dozvědět?

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

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

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

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

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

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

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

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

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

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

POČÍTAČE A PROGRAMOVÁNÍ

Procesní dokumentace Process Management. Pavel Čejka

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

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

GIT hands-on. Mgr. Šimon Tóth. 12. dubna () GIT hands-on 12. dubna / 25

Jak efektivně testovat IB. Otakar Ertl

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

Obecné informace o cvičeních

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

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

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

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

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

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

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

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

Java/QE Akademie - Osnova

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

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

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

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

Tvorba informačních systémů

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

Jak testovat software v praxi

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

Novinky v UML 2.5 a agilní modelování

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

2013 IBM Corporation

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

AGILNÍ METODIKY VÝVOJE SOFTWARE

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

Transkript:

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 - 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 crossfunctional 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, Hibernate, Spring, Angular, React - Žáček.NET, Entity Framework, ASP,.NET Core - 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 - vytvoření přístupů pro GIT 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 - příklad

Vize - příklad

Risk list

Risk list - příklad týmu z ROPR

Projektový plán

Projektový plán - příklad

Architektura

Architektura - jiný příklad

Prostředí IDE (Idea, VS) GitLab Týmová Wiki? xunit

Prostředí - příklad Repository - používáte školní GitLab, v praxi jsou alternativy SourceForge, Bitbucket, GitHub Enterprise IDE - IntelliJ/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/Gradle/Gulp a xunit

Iterační plán Plán iterace E1 Začátek iterace (plánovací meeting dané iterace): 3.10.2017 Konec iterace (demo, assessment): 10.10.2017 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

Nástroje pro podporu vývoje Vše bude zaznamenáno v Jira a GitLab Podmínka pro udělení zápočtu je dokumentovaná aktivita Počet commitů a vlastní obsah commitů Přidělování práce Nástroje jsou dostupné pouze ze sítě OU: Jira http://172.16.101.101:8080/ GitLab http://195.113.102.176:8085

Organizace práce

Kde najdu co mám dělat?

Koncept iterací/sprintů

Jak dodat výsledek?

Kde najdu minulé sprinty?

Verzovací systém Pro nastartování můžete využít zvanou přednášku z předmětu SWING: http://www1.osu.cz/~zacek/sweng/ Během vývoje musíte používat vlastní větve (branches) Postupně do procesu zapojíte pull requesty a budete používat GitFlow

Historie v GitLabu

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

Proces založený na RUP/OpenUP

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 (sprint) 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í