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, nástrojů, dokumentů metod řízení Metodika (metodologie) pro tvůrce IS, který pokrývá celý životní cyklus IS Určuje kdo, kdy, co, proč má dělat během vývoje a provozu IS
Metodika se má vztahovat na všechny prvky IS osoby vývoj, uživatel, zadavatel určení rolí a zodpovědnosti organizaci práce způsob řízení v jednotlivých fázích vývoje IS práci s informacemi o vyvíjeném IS SW a HW ekonomické otázky vývoje IS projektovou a provozní dokumentaci (doporučené dokumenty)
vznik metodiky (metody) zobecnění principů, kroků, zásad použitých při projektování určitého IS
Smysl metodiky vytvoří komunikační standard tvůrců i uživatelů IS zlepší produktivitu práce a kooperace vývojových týmů lepší specializaci projektových týmů na jednotlivé etapy vývoje IS nezávislost vyvíjeného IS na konkrétních řešitelích tvorba aktuální a kvalitní dokumentace větší pružnost k potřebám uživatelů efektivnější údržba IS definice kriterií kvality pro každou etapu vývoje IS kvalitnějšířízení prací na projektech IS (plánování, organizování, vedení, výběr a úkolování pracovníků, kontrola) snížení rizik spojených s vývojem IS (zdroje, rozsah, čas)
Členění metodik státem podporované (stát vyžaduje při státních zakázkách postup dle dané metodiky) SSADM (Structured Systems Analysis and Design Method) - Velká Británie SDM (System Development Metodology) - Nizozemí MERISE - Francie mezinárodní Euromethod EU firemní metodiky SE (System Engineering) - LBMS IE (Information Engineering Methodology) Oracle CASE * Method SAFE/xy (Sybase Advanced Framework to Enable xy) - Sybase
Metodiky vyvíjené v ČR MDIS (KIT VŠE, 1993) PDIT (KIT VŠE, PragoData, 1995)
Mezinárodní a národní normy ISO/IEC12207-Procesy v životním cyklu softwaru definuje procesy, činnosti, úkoly potřebné při dodání, vývoji, provozu, údržbě a odstranění SW produktu/služby a procesy pro definování, řízení a zlepšování procesů životního cyklu SW ISO/IEC 15289 dokumentace ISO/IEC TR 15271 Návod pro ISO/IEC12207 jak mají být procesy definované v ISO/IEC12207 implementovány a přizpůsobeny ISO/IEC 15504 Definuje postup při posuzování procesů, stanoví min. požadavky pro konzistenci a opakovatelnost posuzování
Mezinárodní a národní normy ISO 9000 ČSN EN ISO 9001:2001 Systémy managementu jakosti požadavky na systém ČSN EN ISO 9000:2001 Systémy managementu jakosti základy, zásady a slovník ČSN EN ISO 9004:2001 Systémy managementu jakosti směrnice pro zlepšování výkonnosti ČSN EN ISO 9003 Systémy managementu jakosti směrnice pro použití ISO 9001:2000 na počítačový SW (doplněk normy)
Globální metodiky (Enterprise Methodologies) zaměřené na vývoj, provoz, řízení celopodnikového IS Projektové metodiky (Project Methodologies) zaměřené na vývoj/zavedení IS v určité oblasti
Metoda určuje, CO je třeba dělat v určité fázi životního cyklu IS je vždy spojena s určitým přístupem (funkční, datový, objektový) Každá metoda řeší postup činností v určité části procesu vývoje př. YSM
Technika určuje, jak dosáhnout požadovaného výsledku přesný postup kroků způsob použití nástrojů apod. př. normalizace datového modelu, funkční analýza
Nástroj je prostředkem k uskutečnění určité činnosti- při vývoji a provozu k vyjádření výsledku dané činnosti - formalizuje vyjádření často svázán s konkrétní technikou např. DFD, ERD, STD,...
Vztah metodiky, metod, technik a nástrojů jednotlivé metody nemusí patřit jednoznačně dané metodice některé metody specifické - využívané jen určitými metodikami některé metody univerzální - odkazují se na ně různé metodiky, v různých fázích vývoje IS obdoba pro techniky a nástroje
Životní cyklus IS vymezuje základní etapy vývoje a provozu IS a obsah etap
Životní cyklus metodikami může být chápán a definován různě od jeho definice se odvíjí obsah metodiky k jednotlivým etapám jsou metodikou vázány cíle, metody, techniky, nástroje, dokumenty, specifika řízení apod. milníky - klíčové body postupu vývoje IS - začátky a konce etap
etapy cíl proč má být provedena, co je výsledkem předpoklady zahájení etapy a kriteria ukončení etapy klíčové dokumenty etapy kritické faktory etapy - možná rizika
činnosti etapy (návaznost, souběžnost) cíl činnosti kroky činnosti vstupy (podklady) výstupy (výsledky) klíčové dokumenty účastníci, jejich pravomoc a odpovědnost
Etapy životního cyklu IS IST - informační strategie organizace ÚST - úvodní studie projektu (studie proveditelnosti..) GAN - globální analýza a návrh IS DAN - detailní analýza a návrh IS IMP - implementace ZAV - zavedení (instalace) PUR - provoz, údržba a rozvoj IS
Příprava IS Požadavky (záměr na tvorbu IS) Úvodní studie (studie proveditelnosti) oponentura Analýza a návrh Etapy životního cyklu IS Globální oponentura Detailní posouzení
Etapy životního cyklu IS Realizace Implementace Zavádění Provoz, údržba a rozvoj IS Provoz a údržba IS Rozvoj IS
Postupy vývoje Programuj a opravuj Vodopádový ( jednorázový vývoj) V-model Přírůstkový (inkrementální) Spirálový Evoluční (iterativní model)
Programuj a opravuj Jednoduchý a neformální způsob vývoje Skládá se ze: specifikace požadavků cyklu: programování-testování-oprava chyb uvedení do provozu Základem je cyklus, v němž se vytváří aplikace Ukončení: pokud nejsou chyby, či je jejich počet na akceptovatelné úrovni nebo pokud nastal stanovený termín ukončení projektu
Vodopádový postup vývoje Specifikace požadavků Analýza Návrh Údržba Implementace Testování Zavedení Údržba Zavedení Údržba Zavedení Údržba Testování Zavedení Údržba Testování Zavedení Údržba Implementace Testování Zavedení Údržba Implementace Testování Zavedení Údržba Návrh Implementace Testování Zavedení Údržba Specifikace požadavků Specifikace požadavků Analýza Specifikace požadavků Analýza Specifikace požadavků Návrh Analýza Specifikace požadavků Návrh Analýza Specifikace požadavků Implementace Návrh Analýza Specifikace požadavků Implementace Návrh Analýza Specifikace požadavků Testování Implementace Návrh Analýza Specifikace požadavků Testování Implementace Návrh Analýza Specifikace požadavků Zavedení Testování Implementace Návrh Analýza Specifikace požadavků Zavedení Testování Implementace Návrh Analýza Specifikace požadavků Provoz a údržba Zavedení Testování Implementace Návrh Analýza Specifikace požadavků Zavedení Testování Implementace Návrh Analýza Specifikace požadavků Zavedení Testování Implementace Návrh Analýza Specifikace požadavků Zavedení Testování Implementace Návrh Analýza Specifikace požadavků Zavedení Testování Implementace Návrh Analýza Specifikace požadavků Zavedení Testování Implementace Návrh Analýza Specifikace požadavků Zavedení Testování Implementace Návrh Analýza Specifikace požadavků
Vodopádový postup vývoje Následující etapa začíná po dokončení předchozí V případě nedostatků lze jen návrat do předchozí etapy Na počátku pokrok umožnil systematický a opakovaný postup Používán Vhodný pokud ve fázi specifikace požadavků je možné definovat všechny požadavky Nevhodný v případě, že je nutné provádět změny během vývoje Je možné projít jen jednou všemi etapami, není reakce od zákazníka ( po předání může nastat dlouhá fáze údržby úpravy systému) Integrace systému nastává až po naprogramování všech modulů Při zjištění problémů, které vedou ke změnám návrhu zpoždění projektu
V-model vývoje Analýza požadavků Akceptační testování Návrh systému Systémové testování Návrh architektury Integrační testování Návrh jednotek Jednotkové testování Implementace
V-model Provázání fází specifikace a implementace systému (levá část shora dolů) integrace a testování (zdola nahoru testování začíná od jednotek) Klade důraz na testování, jednotlivé fáze mají přiřazeny typy testů
Přírůstkový (inkrementální) postup vývoje Přírůstek ucelená, relativně uzavřenáčást systému (subsystém), kterou lze samostatně navrhnout, implementovat a uvést do provozu, přičemž funkčnost dříve dokončené části zůstane zachována Vývoj systému po jednotlivých přírůstcích, přitom každý přírůstek má svůj životní cyklus Výhoda částiřešení se zavádějí postupně, zákazník vidí funkčnost jednotlivých částí, poskytne řešiteli dříve zpětnou vazbu
Spirálový model
Spirálový model Definuje 4 iterace Každá iterace má definici cílů, analýzu rizik, návrh řešení, ověření, vývoj, testování, plánování I. iterace identifikace globálních rizik projektu stanovení základních východisek řešení II. iterace specifikace požadavků III. iterace detailní návrh řešení IV. iterace implementace a testování Přínos zavedení iterace a analýza rizik
Evoluční (iterativní) model Předem definovány jen hrubé požadavky Po dodání každé verze se zpřesňují Vyvíjí se jednotlivé verze produktu, ale požadavky nejsou předem specifikovány (x přírůstkovému modelu) Každá specifikace požadavku obsahuje: návrh kódování a testování instalace a akceptace výsledkem každé iterace je funkční verze systému
Vztahy mezi postupy vývoje Inkrementální vývoj Jednotlivé části systému (přírůstky, inkrementy) vytvářeny nezávisle na ostatních, pak integrace Vývoj jednotlivých přírůstků může probíhat iterativně, vodopádem,... Alternativa k inkrementálnímu vývoji je vývoj celého systému naráz Iterativní vývoj kroky směřující k vylepšení, zpřesnění nebo opravení části systému může být použit spolu s inkrementálním vývojem, není ale vyžadováno Vodopádový vývoj Inkrementální vývoj s jediným přírůstkem - celý systém Iterativní vývoj s jedinou iterací Analýza požadavků, analýza, návrh,. se provádí pouze jednou
Silné a slabé stránky modelů životního cyklu vývoje model Programuj a opravuj Silné stránky jednoduchost Slabé stránky obtížně použitelný na větší systémy Vodopádový V-model Spirálový Inkrementální Evoluční (iterativní) rozděluje proces vývoje na fáze dává dobrou představu o rozsahu řešení důraz na testování a různé typy testů trasovatelnost požadavků až do implementace zavádí vývoj v iteracích důraz na analýzu rizik prototypování zpětná vazba od zákazníka častá zpětná vazba od zákazníka přírůstková spotřeba personálních zdrojů častá zpětná vazba od zákazníka specifikace požadavků na základě každé iterace možnost realizovat změny přírůstková spotřeba personálních zdrojů časná a častá integrace předpokládá detailní specifikaci požadavků na začátku projektu malá zpětná vazba od zákazníka pozdní integrace a zjištění problémů pozdě obtížná realizace změn požadavků předpokládá detailní specifikaci požadavků na začátku projektu obtížná realizace změn požadavků všechny požadavky se specifikují ve druhé iteraci testování až ve čtvrté iteraci ne vždy je možné rozdělit systém na přírůstky veškeré požadavky se specifikují na začátku obtížně se realizují změny špatná představa o rozsahu celého řešení obtížně realizovatelné u projektů s pevnou cenou vysoké nároky na dostupnost zákazníka nejlépe denně instalace a akceptace jednotlivých verzí může být nákladná Zdroj: BUCHALCEVOVÁ, A. Metodiky budování informačních systémů. Oeconomia, VŠE Praha, 2009; tabulka 4-1, str. 54
Metodiky vývoje Rigorózní Agilní
Rigorózní metodiky vývoje budování IS/ICT lze popsat, plánovat, řídit, měřit zpravidla založeny na vodopádovém vývoji mohou být založeny na iterativním a inkrementálním vývoji OPEN (Object-oriented Process, Environment and Notation), Rational Unified Process (RUP), Enterprise Unified Proccess (EUP), MMDIS (Multidimensional Management and Development of Information Systems)
Agilní metodiky vývoje Od II. pol. 90. let Důvod vzniku: rychlost změn prostředí, technologií požadavky na rychlé zavedení i změny IS/ICT vede ke změnám v metodikách zaměřené na vývoj nového řešení, ne na údržbu a provoz velmi krátké iterace (jeden měsíc a méně) UML se používá pouze jako doplněk malé ale výkonné týmy (dvojice) zapojení zákazníka do vývoje (zákazník se zúčastní sestavování návrhu a testů, ideálně je součástí vývojového týmu)
Agilní metodiky vývoje Agilní metodiky: XP Extreme Programming Scrum FDD Feature Driven Development Crystal metodiky DSDM Dynamic Systems Development Method Lean Development Agilní modelování (Agile Modeling)
(Manifesto of Agile Software Development) Manifest agilního vývoje SW Deklarace 4 hodnot individuality a interakce mají přednost před nástroji a procesy provozuschopný software má přednost před obsáhlou dokumentací spolupráce se zákazníkem má přednost před sjednáváním smluv reakce na změnu má přednost před plněním plánu 10 hlavních principů 1. Včasné a kontinuální dodávání SW, který zákazníkům přináší hodnotu 2. Změnu požadavků lze provést i v dalších fázích vývoje, protože tím může zákazník získat konkurenční výhodu 3. Uživatelé a vývojáři spolupracují denně na projektu 4. Klíčovým faktorem úspěchu projektu jsou motivovaní jedinci, s podporou vedení i podmínkami pro práci 5. Komunikace je nejefektivnější způsob pro přenos informací v rámci vývoj. týmu 6. Primární mírou úspěchu je fungující SW 7. Agilní procesy předpokládají zdravý vývoj (třeba vymezit prac. dobu cca 40 hod. týdně, přesčasy snižují produktivitu 8. Perfektní technické řešení i návrh 9. Jednoduchost řešení zásadní 10. Nejlepší architektury, požadavky a návrhy vznikají ze samoorganizujících se týmů
Porovnání rigorózních a agilních metodik Předpoklady Rigorózní metodiky SW procesy lze popsat Požadavky lze předem definovat Agilní metodiky SW procesy nelze popsat Předem jen hrubé požadavky Obsah přesně orientované procesy, činnosti Jen generativní pravidla, praktiky, principy Použití Standardní a velké projekty Výzkumné projekty, menší týmy
Způsoby vývoje a provozu IS/ICT
Modely dodávky ICT služeb - trendy řešení 1960 1970 Externí dávkové zpracování 1970 1985 Vlastní vývoj a provoz IS 1985 2000 Externí dodavatelé ERP, provoz vlastními silami 2000 2004 Klasický outsourcing 2005. ASP, cloud computing ( PaaS, IaaS, SaaS)
Alternativy vývoje IS/ICT Vlastní vývoj ve firmě (IASW ) Vývoj na zakázku (IASW ) externí softwarovou firmou Nákup aplikací (TASW) model SW jako licence od různých výrobců od generálního dodavatele systémového integrátora Outsourcing provozu komplexního IS/IT ASP SaaS - model SW jako služba
Zkratky IASW - individuální aplikační software TASW - typový aplikační software OSS - open-source software IaaS - infrastruktura jako služba PaaS - platforma jako služba (= infrastruktura, vývojové a integrační nástroje) SaaS software jako služba SLA ( Service Level Agreement) smlouva o úrovni poskytovaných služeb
IASW funkcionalita IASW maximálně podporuje činnost podnikového procesu vhodné pro podporu specifických procesů vede k dosažení spec. výhody nad konkurencí TASW založen na referenčním modelu business procesů může se lišit od procesů v konkrétní firmě standardizace život. cyklu SW; obvykle lze provozovat na více platformách vhodná volba pro vysoce standardizované procesy (účetnictví, mzdy )
Při volbě TASW podnik koupí licence a technologickou infrastrukturu od externích dodavatelů, provozuje vlastními silami instalace a zprovoznění zajistí implementátor - TASW/systémový integrátor úpravy dle potřeb podniku a individuálních uživatelů před nasazením: lokalizace úpravy dle platné legislativy, jazyka v teritoriu customizace úprava dle specifických potřeb zákazníka přizpůsobení podnik. procesům, vzhled obrazovek, účetní osnova.. perzonalizace úpravy pro konkrét. uživatele komunikač. jazyk, obrazovka úpravy realizovány zejména nastavováním hodnot parametrů jednotlivé instalace TASW u zákazníků se mohou lišit/liší konkrétními úpravami při instalaci (lokalizace, customizace, perzonalizace) verzí při dodávce nové verze na trh nejsou zákazníci povinni si ji nainstalovat případnými úpravami zdrojového kódu; ty smí provádět ten, kdo je dle SW licence oprávněn většinou syst. integrátor či vlastník (= výrobce TASW)
OSS tvoří virtuální tým vývojářů (SW komunita) - často zdarma OSS je zdarma, nesmí být prodán třetí straně (existují výjimky) lze ale prodávat/nakupovat doprovodné služby dodávána v podobě zdrojových programů zákazník si může přizpůsobit potřebám» spíš úpravou kódu než parametry nemusí být garance kvality a opravy chyb v termínu vhodné využít pro standardizované aplikace, které nejsou kritické z hlediska návaznosti a konkurenceschopnosti
Vlastní vývoj IS Výhody Zachování strategie v tajnosti IS přesně odpovídá potřebám Dokonalá znalost podmínek ve firmě Okamžitá dostupnost řešitelů pro uživatele snadnářešitelnost problémů Nevýhody Vysoké náklady pořízení a údržbu Časová náročnost Vysoká pravděpodobnost výskytu funkčních chyb Nedostatek specialistů Nedostatek know - how
Vývoj na zakázku Výhody IS odpovídající potřebám zákazníka Snazšířešitelnost problémů a možnost úprav Využití znalostí specialistů Nevýhody Vysoké náklady pořízení (často vyšší než v případě int. vývoje) Časová náročnost (obvykle kratší než v případě int. vývoje) Riziko závislosti na řešiteli Nebezpečí zániku řešitele Riziko úniku informací
Nákup aplikací od různých výrobců Výhody Nevýhody Rychlá realizace Nejnižší náklady Možnost výběru osvědčených řešení pro každou část IS Obtížnost integrace aplikací do IS firmy Obtížnost údržby vazeb mezi aplikacemi tím relativně nízká stabilita IS
Nákup od generálního dodavatele systémového integrátora Výhody Nejmenší časová náročnost Nízké náklady Osvědčenářešení každéčásti i celého IS Garance integrace dodavatelem Nevýhody Vysoká míra závislosti na dodavateli Riziko úniku informací mimo hranice firmy Riziko volby nevhodného systémového integrátora Vstup know-how do firmy
Outsourcing IS Výhody Odpadá odpovědnost za vytěsněnou oblast a její řízení možnost soustředit se na hlavní předmět činnosti Rychlejší nástup nových technologií, firma nemusířešit technologické aspekty Možnost vyřešení finančního zabezpečení vývoje, provozu a údržby IS/ICT Nevýhody Nevratnost důsledků rozhodnutí Úplná závislost na firmě poskytující outsourcing Riziko úniku informací mimo firmu (větší než u generálního dodavatele) Rizika poskytovatele (nízká úroveň služeb, zánik poskytovatele) Vysoké náklady
ASP Application Service Providing placený pronájem aplikace/služby stejná služba poskytována více zákazníkům současně služba je poskytována všem ve standardizované podobě, resp. s minimálními úpravami informační služba je poskytována po Internetu zákazník si může informační službu vyzkoušet před jejím zakoupením zákazník nemusí investovat do technologií snižuje investiční náklady odpadají aktivity spojené s implementací u zákazníka zrychlení Datová (databázový server uložiště dat) a aplikační vrstva (server pro realizaci obchodní logiky) vlastní a spravuje poskytovatel ; Prezentační vrstva (zpravidla webové technologie) uživatel Pozn. tech. vybavení může vlastnit poskytovatel, nebo si je může pronajímat
SaaS Software as a Service Placený pronájem aplikace, infrastruktury a podpůrných služeb prostřednictvím internetu dodávána velkému počtu zákazníků nástupce ASP někdy považován za ASP ( marketingový tah )-ale rozdíl:» vždy je poskytovatel i výrobce (u ASP nemusí být)» služba je poskytována více podnikům (u ASP může být i 1 klient)» založen na internetu a jeho protokolech
Podrobnosti k SaaS, srovnání s tradičním modelem, ASP v článcích ( zde na Multiedu): Polanský, Voříšek: SaaS model dodávky aplikací a z něho vyplývající transformace IT průmyslu Voříšek: Srovnání SaaS a klasického modelu dodávky a provozu aplikací Prostudovat!!