Životní cyklus vývoje SW. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/



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

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

RUP - MOTIVACE, PRINCIPY JAROSLAV ŽÁČEK

RUP - Motivace, principy. Jaroslav Žáček

XINF1. Jaroslav Žáček

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

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

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

Analýza a Návrh. Analýza

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

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

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

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

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

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í

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

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

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

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

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

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

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

POŘÍZENÍ A IMPLEMENTACE INFORMAČNÍCH SYSTÉMŮ

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

Agile Software Development

Vývoj řízený testy Test Driven Development

Testování software. Jaroslav Žáček

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

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

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

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

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

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

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

CASE. Jaroslav Žáček

Unifikovaný proces vývoje

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

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

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

Jednotný NIS Prezentace k zahájení projektu pro Radu kraje Vysočina. Projektový manažer - Ing. Ivan Sokolov, Ph.D.

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

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

Cesta k optimalizaci provozních. technologických zařízen

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

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

Obsah. Zpracoval:

2 Životní cyklus programového díla

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

CASE nástroje. Jaroslav Žáček

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

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

Procesní dokumentace Process Management. Pavel Čejka

Mib:S4Road přechod k SAP S/4HANA. Jiří Palát

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

SW podpora projektového řízení

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

KATALOG SLUŽEB NÁSLEDNÉ PODPORY

1. Integrační koncept

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

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

ÚVOD DO PROBLEMATIKY PROJEKTŮ, KATEGORIE

Ing. Jiří Fejfar, Ph.D. Geo-informační systémy

Otázky kurzu 4IT417 Řízení podnikové informatiky verze z 1/2/ Podniková informatika pojmy a komponenty

BI-TIS Případová studie

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

Rozvoj a údržba systémů

Ondřej Bothe, Richard Dobiš

Přípravné činnosti projektu. Mgr. Lenka Svrčinová Ing. Jan Ministr, Ph.D.

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

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

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

TECHNICKÉ POŽADAVKY NA NÁVRH, IMPLEMENTACI, PROVOZ, ÚDRŽBU A ROZVOJ INFORMAČNÍHO SYSTÉMU

Informační strategie. Doc.Ing.Miloš Koch,CSc.

2. Podnik a jeho řízení

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

Řízení ICT služeb na bázi katalogu služeb

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

InternetovéTechnologie

Česká letecká servisní a. s.

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

CobiT. Control Objectives for Information and related Technology. Teplá u Mariánských Lázní, 6. října 2004

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

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

Aplikace modelu CAF 2006 za podpory procesního řízení. Ing. Vlastimil Pecka Ing. Zdeněk Havelka, PhD.

Custom Code Management. Přechod na S/4HANA

IBM Analytics Professional Services

INFORMAČNÍ SYSTÉMY , Ing. Jiří Mráz

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

PROBLÉMY A SPECIFIKA VÝVOJE SOFTWARE

Aplikace IS, outsourcing, systémová integrace. Jaroslav Žáček

Analytická specifikace a její zpracování

Jan Hřídel Regional Sales Manager - Public Administration

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

ITIL pro malé a střední podniky

Jak vytvořit správné Zadání IS

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

Protokol o atestačním řízení

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

ODŮVODNĚNÍ VEŘEJNÉ ZAKÁZKY

Hodnocení železničních systémů podle Evropských standardů. Doc. Dr. Ing. Tomáš Brandejský Ing. Martin Leso, PhD Fakulta dopravní ČVUT v Praze

Transkript:

Životní cyklus vývoje SW Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Proč potřebujeme definovat proces vývoje Při vývoji SW nemáme tvrdá fakta, jako v jiných vědách (fyzika, chemie, ), proto musíme stavět na zkušenostech.) Proces říká co, jak a kdy dělat při vývoji SW) - Ověřené činnosti (best practices)) - Role, aktivity, artefakty, techniky, nástroje) Jaké výstupy produkovat (doc, modely, kód, testy)

Vývoj Software Vývoj bez přímé spolupráce s budoucími uživateli pro hromadný prodej (OS) Specifikace požadavků ve spolupráci s budoucími uživateli (IS) Vývoj na míru Customizace Transformace úspěšné verze na konfigurovatelný SW

GST/IST/Projekty

Informační strategie vychází z globální podnikové strategie, plánů a zjištěných nedostatků v informační podpoře,) IS podporují strategické cíle a záměry organizace,) analýza stavu informačních systémů, stavu IT, vývojových trendů,) určují se architektury IS (funkční, datová, technologická),) analýza dopadů IS na org. strukturu firmy (zaměstnanci, kvalifikace), ekonomické a technologické dopady nákupu/ vytvoření IS. ) vypracování projektů obsah, harmonogram,...

Úvodní studie posouzení realizovatelnosti jednoho vybraného systému,) určení, zda lze dosáhnout očekávaných výsledků,) rozhodnutí, zda ve vývoji pokračovat či nikoliv, ) odhad nákladů, přínosů, hrubý návrh funkcí, vstupů, výstupů, datového modelu systému, vymezení procesů a hranic systému, hrubý návrh technologického řešení výběr ASW, ZSW a HW.

Analýza a návrh - globální zpodrobnění základních požadavků, rozdělení na podsystémy a vymezení subprojektů, ) návrh hrubého modelu funkcí a dat pro každý subsystém a návrh rozhraní systému. ) úplná specifikace všech hlavních funkčních požadavků, datových, snaha nalézt odvozené požadavky. ) určení priority všech požadavků, struktura systému. ) východisko: ) - cíle IS/IT organizace a schválený plán jejich vývoje.

Analýza a návrh - detailní analýza, definice požadavků a návrh systému až na úroveň, kdy je možné začít navržený systém implementovat. ) zpodrobňujeme funkce, požadavky a modely z předchozí fáze Globální analýzy a návrhu. ) detailní návrh se týká technologické architektury, datové základny, výstupů systému a také organizační struktury. ) možnost prototypu systému (např. návrh UI). ) - určení dat, kterých se to týká, ) - realizace) - nezbytné ověření prototypu

Implementace vytvoření fungujícího systému, který realizuje návrh vytvořený v předchozích etapách, realizace v daném implementačním prostředí.) systém musí bezchybně fungovat a musí mít implementovány všechny stanovené požadavky. ) vytvořená uživatelská a provozní dokumentace a popis pracovních procesů.

Testování Vytvoření unitových testů.) Vytvoření testovacích skriptů pro databázi.) Zavádění nástrojů pro automatizované testování.) Komplexní otestování celého systému z pohledu programátor.

Zavádění do provozu instalace technického a programového vybavení,) školení uživatelů vedoucích pracovníků, administrátorů systému a běžných uživatelů, ) vytvoření a úpravy databáze, integrační a zátěžové testy. ) přechod na nový systém nesmí neomezovat běžný pracovní režim uživatelů a je také třeba zajistit, aby měli uživatelé čas si na nový systém zvyknout. ) počáteční podpora systému, která zahrnuje pomoc uživatelům, sledování zkušebního provozu a opravy chyb.

Provoz, údržba, podpora zajištění provozu systému, jeho údržbu a rozvoj vzhledem k novým uživatelským požadavkům, které jsou v souladu se záměry a cíli organizace. ) monitorování provozu z důvodu optimalizace procesů, zjištění využití aplikací a provozních chyb. ) návrhy změn a úprav mohou být funkčního, provozního nebo organizačního charakteru.

Požadavky Analýza Návrh Implementace Testování Zavedení do provozu

ISO/IEC 12207

Problémy klasických metod Neporozumění klíčovým potřebám zákazníka (core needs).) Neschopnost práce s měnícími se požadavky.) Nemožnost či obtížná integrace SW modulů.) Obtížná a drahá údržba či rozšíření SW systémů.) Pozdní odhalení chyb, problémů.) Špatná kvalita, výkonnost SW produktů.) Problémy s buildy a releasy

Příčina problémů Nevhodná, špatná specifikace požadavků.) Nejasná a slabá komunikace (se zákazníkem, mezi členy týmu).) Nevhodná či nedefinovaná architektura.) Přílišná složitost systémů.) Nekonzistence v požadavcích či v návrhu.) Slabé a nedostatečné testování.) Problém s riziky a neočekávanými událostmi.) Nekontrolované a nestandardní změny.) Nedostatečná automatizace.

Výzkum Standish Group

Důsledky 20% rysů softwarových aplikací je vždy nebo velmi často používáno. ) = klíčové potřeby zákazníka (core needs). ) 80% požadavků problém v produktivitě týmů?) 80% snahy analytiků, návrhářů, programátorů, testerů mohlo být soustředěno jinam (na větší kvalitu produktu, na jiné projekty) a také, že tuto práci zákazník zbytečně platí!

Vodopádové principy Zaměřen na procesy, předpokládá jejich opakovatelnost. Pevné, podrobné plány definovány na úvod, kdy je spousta nejasností. Rizika jsou často překvapení, přináší problémy. Integrace a testování až na konci. Změny nejsou vítány. Často zaměřen na tvorbu dokumentů bez přidané hodnoty a jejich revize. Buildy a testy až na konci, často přeskočeno nefunkční testování. Za kvalitu odpovědní pouze testeři, QA manažeři nebo často nikdo. Iterativní (agilní principy) Zaměřen na lidi motivace, komunikace prvořadá. Pro celý projekt pouze road map. Podrobné plány jen pro iterace (kratší časové úseky, max. 2 měsíce). Řízen riziky nejrizikovější věci řešíme nejdříve. Průběžná integrace a testování. Počítá se změnami, přijímá je. Zaměřen na fungující SW (hodnota pro zákazníka). Automatizované buildy a testy. Všichni (celý tým) odpovědní za kvalitu produktu.

Iterativní přístup Projekt Iterace Iterace Iterace Iterace Iterace

Vodopádový vs. Iterativní přístup

Řízení rizik obou přístupů

Ověření správnosti zadání

Unified Process a jeho varianty

UP Unified Process Software Development, iterativní přístup, UC driven, iterace řízeny riziky) RUP Rational Unified Process (IBM), rozšířené a propracované UP, web aplikace, příklady, šablony, guidelines, IBM nástroje, ) Agilní přístupy XP, Scrum, Lean,

Životní cyklus UP

Milníky, fáze, iterace, přírůstky Milník (milestone) konkrétní ověřovací krok např. ve formě checklistu, schválení cíle a rozpočtu, demonstrace produktu, architektury (spustitelná aplikace! Ne dokumentace!), akceptační testování, ) Fáze (phase) vývoj projektu v čase, zaměřena na konkr. aspekt vývoje (inicializace projektu, odstranění rizik, doručení produktu zákazníkovi) končí definovaným milníkem, nejedná se o fázi vodopádu! Obsahuje několik iterací (ve kterých vykonáváme všechny disciplíny).) Iterace (iteration) mini projekt, provádíme všechny disciplíny, celý tým spolupracuje, výstupem je build (spustitelný kód).) Přírůstek (release) nově implementované funkčnosti aplikace (další scénáře) od posledního releasu, celý release funguje bez chyb jako výsledná aplikace.

RUP a jeho principy Adapt the process) Balance Competiting Stakeholder priorities) Collaborate across teams) Demonstrate value iteratively) Elevate the level of abstraction) Focus on quality

Disciplíny, fáze

LCO LCA IOP PR time! Inception Elaboration Construction Transition Dohoda na rozsahu, prioritách, odhadech? Jak postupovat? Rizika identifikována? Stabilní produkt k nasazení? Stabilní vize, požadavky, architektura? Demonstrovatelná? Rizika snížena? Plány pro Construction? Nástroje/procesy? Je zákazník spokojený?

Délka fáze, objemy prací Objem prací a časové trvání jednotlivých fázi RUP Inception Elaboration Construction Transition Pracnost 5 % 20 % 65 % 10 % Plán 10 % 30 % 50 % 10 %

Fáze Inception Porozumění tomu, co vytvořit vytvoření vize, definice rozsahu systému, jeho hranic; definice toho, kdo chce vytvářený systém a co mu to přinese.) Identifikace klíčových funkcionalit systému identifikace nejkritičtějších Use Casů.) Návrh alespoň jednoho možného řešení (architektury).) Srozumění s náklady (ROI), plánem projektu, riziky.) Definice/úprava procesu, výběr a nastavení nástrojů.

Vize Osobní časovač: vize Problém: Gary není schopný sbírat konsistentní časové údaje od vývojářů reprezentující čas strávený na různých projektech. Není tedy možné monitorovat a porovnat postup oproti plánům, fakturovat řádné časy, platit externí spolupracovníky a samozřejmě také na základě těchto dat dělat věrné odhady dalších iterací. Souhrn vize: Osobní časovač (OČ) měří čas strávený na projektech, shromažďuje a ukládá tato data pro pozdější zobrazení (stylem Post-it poznámek), aby mohl Gary systematicky organizovat a hodnotit projekty, sledovat aktuální postup prací a ty porovnávat s plánovanými odhady pro jednotlivé projekty Zainteresované strany - jednotlivý vývojáři) - pracovníci administrativy) - projektový manažer Use Case - Změř čas aktivity) - Sesbírej týdenní data) - Sluč / konsoliduj data pro každý projekt) - Nastav nástroj a databázi pro projekt

Milník LCO Shoda účastníků projektu (samozřejmě včetně zákazníka) na rozsahu projektu, počátečních nákladech a odhadu plánu, který bude dále upřesňován.) Shoda na identifikaci správných požadavků a porozumění jim.) Shoda na věrnosti odhadů nákladů a plánu, prioritách, rizicích a vývojovém procesu.) Shoda na tom, že počáteční rizika byla identifikována a existují strategie na jejich snížení.

Fáze Elaboration Cílem fáze hlavně snížení či odstranění rizik, 4 hlavní oblasti:) Rizika spojená s požadavky na systém (Vyvíjíme správnou aplikaci?).) Rizika architektonická (Poskytujeme správné řešení?).) Rizika spojená s náklady a plány.) Rizika procesní a spojená s prostředím a nástroji (Máme správný proces a nástroje?)

Cíle Elaboration Podrobnější pochopení požadavků (detailnější popis UC))! Návrh, implementace a ověření architektury (rozhraní, stavební bloky, prototyp, ))! Vytvoření přesnějšího plánu a odhad nákladů

Formální rozpracování scénářů

Milník LCA Je vize produktu stabilní, jsou stabilní požadavky?) Máme stabilní architekturu?) Jsou klíčové postupy a přístupy, které budeme používat, otestovány a je dokázána jejich použitelnost?) Ukázalo testování spustitelného prototypu, že jsou klíčová rizika identifikována a vyřešena?) Máme definovány plány iterací pro následující Construction fázi v náležitých podrobnostech, abychom byli schopni podle nich postupovat?) Jsou tyto plány podpořeny důvěryhodnými odhady?) Naplněním plánu s použitím definované architektury dosáhneme cílů shrnutých ve vizi?) Jsou aktuální náklady akceptovatelné vůči plánovaným?

Construction Minimalizace nákladů na vývoj.) Dosažení určitého stupně paralelního vývoje (pro efektivnější využití zdrojů).) Iterativní vývoj kompletního produktu, který bude připravený k doručení uživatelské komunitě. ) Iterativní vývoj celého produktu) Beta release první funkční verze aplikace.

Organizace kolem architektury Architektonický tým ) - zprostředkovává komunikaci) - řeší problémy

Správa konfigurací CM configuration management) Správa a řízení složitých softwarových projektů) Vytvořen v Inception, doladěn v Elaboration) Evidence a verzování komponent (SW, dokumentace, modely, )) Sestavení buildů ze správných verzí) Umožnění paralelní práce programátorů) - Repository) - Možnost připojení z více míst

Milník IOP Je produkt dostatečně stabilní a vyzrálý, aby mohl být rozeslán mezi komunitu uživatelů?) Jsou aktuální výdaje na zdroje oproti plánovaným stále akceptovatelné?

Transition Beta-testování zjištění, zda jsme naplnili očekávání uživatelů.) Školení uživatelů a správců aplikace.) Příprava prostředí a dat.) Příprava dalších aktivit zahrnujících marketing, distribuci, prodej tvorba letáků s popisem produktu, white papers, technical papers, case study, demo nahrávek, zpráv pro tisk.) Dosažení souhlasu uživatelů, že aplikace splňuje jejich představy zachycené v dokumentu Vize (Vision).) Zlepšení průběhu budoucích projektů díky ponaučením z tohoto projektu tzv. lessons learnt.

Vývojový cyklus verzí

Milník PR Jsou uživatelé spokojeni?) Jsou aktuální výdaje versus plánované akceptovatelné; pokud ne, jaké akce mohou být v příštích projektech provedeny, abychom tomuto problému předešli?