IV. Metodiky a metody návrhu, vývoje a provozu IS/ICT. ... Flashcards

1
Q

Metodika - obecně

A

Metodika představuje v obecném smyslu souhrn metod a postupů pro realizaci určitého úkolu KDO?KDY?CO?JAK?PROČ?

  • Metodiky zabývající se údržbou a vývojem IS bývají označovány jako metodiky vývoje IS/ICT.
  • Kromě vývoje je rovněž důležité také nasazení hotového řešení, rozšíření řešení a integrace stávajících řešení, jsou tyto metodiky označovány jako metodiky budování IS/ICT.
  • Metodiky budování IS/ICT = metodiky vývoje IS/ICT + metodiky provozu IS/ICT

Vývoj a provoz informačního systému je obtížné oddělit, neboť některé části IS (subsystémy, moduly, komponenty, služby aj.) jsou v daném okamžiku v provozu, některé jsou rozvíjeny, některé jsou vytvářeny nově a všechny musí být dohromady integrovány. Proto metodiky budování IS/ICT pokrývají jak oblast vývoje, tak oblast provozu IS/ICT.

Problematikou provozu IS/ICT se však nezabývají v celé šíři, neboť je tato oblast řešena v rámci metodik pro řízení informatiky (například COBIT, ITIL).

Termín metodika budování IS/ICT je vymezen následovně: Metodika budování IS/ICT definuje principy, procesy, praktiky, role, techniky, nástroje a produkty používané při vývoji, údržbě a provozu informačního systému, a to jak z hlediska softwarově inženýrského, tak z hlediska řízení. Určuje kdo, kdy, co, jak a proč dělat během vývoje a provozu IS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Metodika napomáhá

A

Metodika napomáhá

  • k tomu, aby IS byl přínosem pro uživatele (organizaci, zákazníka, …)
  • k tomu, aby byly provedeny všechny potřebné činnosti tvorby IS, a to ve správné časové posloupnosti
  • k tomu, aby IS byl srozumitelně dokumentován
  • k dobré organizaci práce na projektu
  • k optimalizaci spotřeby zdrojů při tvorbě a provozu IS.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Základní požadavky efektivní využitelnosti metodik:

A

Základní požadavky efektivní využitelnosti metodik:

  • musí jasně deklarovat soubor hodnot, na kterých je založena,
  • musí určovat postup řešení, aby bylo možné celý proces vývoje IS/ICT plánovat,
  • musí se zabývat všemi faktory (dimenzemi), které tvorbu a provoz IS ovlivňují
  • musí určovat priority řešení (co a kdy je důležité),
  • měla by doporučovat metody, techniky a nástroje, které je vhodné využít v jednotlivých fázích řešení.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Rigorózní metodiky

A

Rigorózní metodiky

V současnosti můžeme sledovat dva hlavní proudy v metodických přístupech, které jsou označovány jako rigorózní metodiky a agilní metodiky (popsány v otázce č. 9). Hlavním kritériem, které tyto dva proudy odlišuje, je „Váha metodiky“, ale liší se i dalšími hledisky.

V této kapitole jsou charakterizovány rigorózní metodiky, které vycházejí z přesvědčení, že procesy při budování IS/ICT lze popsat, plánovat, řídit a měřit. Snaží se podrobně a přesně definovat procesy, činnosti a vytvářené produkty, a proto bývají často velmi objemné. Rigorózní metodiky jsou zpravidla založeny na sériovém (vodopádovém) vývoji. Existují ale také rigorózní metodiky založené na iterativním a inkrementálním vývoji.

Příkladem těchto metodik jsou OPEN, Rational Unified Process (RUP), Enterprise Unified Process (EUP). V rámci rigorózních metodik tvoří samostatnou kategorii metodiky pro hodnocení softwarových procesů (Software Process Assesment). Metodiky hodnocení softwarových procesů jsou založeny na přesvědčení, že kvalita procesu určuje kvalitu produktu, a proto popisují postupy, které umožňují hodnotit úroveň zralosti procesů při vývoji software. Nejznámější z těchto metodik je Model zralosti (Capability Maturity Model for Software).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Charakteristika rigorózních metodik

A

Charakteristika rigorózních metodik

  • těžké metodiky – podrobné, hodně formalit, direktivní řízení
  • předpokládají opakovatelnost procesů, možnost definovat všechny požadavky na řešení předem
  • příklady – OPEN, RUP, EUP, OOSP
  • metodiky pro hodnocení SW procesů (Software Process Assesment) – Capability Maturity Model (CMM)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Metodika OPEN = Object–oriented Process, Environment and Notation

A

Metodika OPEN = Object–oriented Process, Environment and Notation

OPEN je veřejně přístupná metodika podporující celý životní cyklus vývoje IS/ICT. Je zaměřena zejména na vývoj objektově orientovaných a komponentových aplikací. Metodika OPEN definuje procesní rámec, známý pod názvem OPEN Process Framework (OPF). Jde o procesní metamodel, ze kterého mohou být generovány instance specifické pro organizaci.

OPEN je flexibilní, může se přizpůsobit jak doméně, tak konkrétnímu projektu, a zohlednit dovednosti členů týmu, kulturu organizace, požadavky specifické pro každou doménu. OPEN může být použit pro malé projekty, stejně jako pro velké, klíčové projekty.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Metodika RUP = Rational Unified Process

A

Metodika RUP = Rational Unified Process

Metodika Rational Unified Process je založena na tzv. nejlepších praktikách softwarového vývoje:

  • iterativní vývoj
  • řízení požadavků
  • použití komponentové architektury
  • vizuální modelování (UML, CASE nástroje…)
  • kontrola kvality software
  • řízení změn
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Životní cyklus SW

A

Životní cyklus software je rozdělen na cykly. Předmětem každého cyklu je nová verze produktu. Jeden vývojový cyklus je v RUP rozdělen do 4 po sobě jdoucích fází:

  • Počáteční fáze (Inception)
  • Elaborační fáze (Elaboration)
  • Konstrukční fáze (Construction)
  • fáze Nasazení (Transition)

1. Počáteční fáze = Definice cílů projektu, požadavků, sestavení harmonogramu projektu (plán iterací), odhad nákladů projektu a definice rizik.

2. Elaborační fáze = Má za cíl definovat architekturu systému. V této fázi by měl být vytvořen prototyp.

3. Konstrukční fáze = Návrh a realizace systému včetně testování.

4. Fáze nasazení = Zajišťuje, aby uživatelé mohli systém používat. Součástí této fáze je školení uživatelů, předání dokumentace, vytvoření help-desk atd. Každá fáze je uzavřena milníkem – časovým okamžikem, ve kterém musí být splněny cíle fáze a dochází k rozhodování. Podstatným nedostatkem metodiky RUP je: zaměřuje pouze na vývoj řešení, ne na jeho provoz a údržbu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Model zralosti SW – Capability Maturity Model for Software (SW–CMM)

A

Model zralosti SW – Capability Maturity Model for Software (SW–CMM)

Nejznámějším příkladem hodnocení softwarových procesů je Model zralosti SW (Capability Maturity Model for Software). Zralost softwarového procesu (Software Process Maturity) je dosažena, pokud je určitý proces explicitně definován, řízen, měřen, kontrolován a je efektivní. Zralost softwarových procesů vede ke zvýšení produktivity a kvality a zvyšuje se výkon procesu.

  • označovaný zkratkou SW-CMM.
  • vyvinut v Institutu pro softwarové inženýrství (Software Engineering Institute – SEI) za
  • účelem hodnocení dodavatelů softwarových řešení pro ministerstvo obrany USA – v r. 1995
  • Integrační model zralosti (Capability Maturity Model Integration, CMMI) od r. 2000

(1) Počáteční úroveň (initial)

  • softwarové procesy jsou náhodné a chaotické
  • organizace nemají stabilní prostředí pro vývoj a údržbu software, reagují pouze na vzniklé problémy.

(2) Opakovatelná úroveň (repeatable)

  • organizace mají definovány a zavedeny postupy řízení projektu.
  • softwarový proces je disciplinovaný

(3) Definovaná úroveň (defined)

  • organizace má definovány, dokumentovány a standardizovány procesy pro řízení i softwarově inženýrské činnosti, které jsou navzájem integrovány v rámci celé organizace
  • softwarový proces je standardní a konzistentní

(4) Řízená úroveň (managed)

  • organizace má stanoveny detailní metriky softwarových procesů i kvality produktu
  • softwarový proces je predikovatelný

(5) Optimalizovaná úroveň (optimizing)

  • organizace má vytvořeny podmínky pro kontinuální zlepšování procesů.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Agilní metodiky

A

Agilní metodiky

  • Důraz na častou komunikaci se zákazníkem, čímž je možné přesunout zodpovědnost za požadavky na zákazníka – zákazník určuje a mění priority funkcí
  • Důraz na přidanou hodnotu pro zákazníka
  • Založeno na důvěře a individualitě
  • Pozitivní přístup ke změnám
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Metodiky provozu IS/ICT

A

ITIL (Knihovna infrastruktury IT)

Soubor best practices pro řízení IT služeb – mezinárodně akceptovaný standard pro řízení IT služeb. Jsou to postupy popisující, co se má udělat. Jakým způsobem to podnik udělá, to už je na něm. Vedle těchto návodů poskytuje širokou škálu dalších produktů v oblasti školení, profesionální kvalifikace, konzultací, softwarových prostředků či výměny zkušeností.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

COBIT

A

COBIT

COBIT je komplexní systém cílů a metrik podnikové informatiky. Tato metodika je oproti ITIL mnohem strukturovanější. Je to všeobecně přijímaný rámec pro zavádění a provoz IT Governance nad IT ve firmě. Významně pomáhá strategii firmy. Dále zavádí postupy měření a vyhodnocuje výkon IT. PIS je v tomto ohledu rozdělena do funkčních domén (plánování, implementace, provoz, monitoring), které obsahují konkrétní procesy. Ty jsou poměřovány 7 kritérii (efektivnost, výkonnost, důvěra, integrita, dostupnost, soulad, spolehlivost). Výsledná zjištění pak přisuzuje 5 zdrojům (personál, aplikace, technologie, vybavenost, data). Obsahuje také systém měkkých metrik, díky kterým je možné měřit úroveň zralosti IS – maturity model.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Agilní metodiky

A

Agilní metodiky

Agilní metodiky začaly vznikat v druhé polovině 90. let jako reakce na nedostatky tradičních rigorózních metodik. Umožňují vytvořit řešení velmi rychle a pružně jej přizpůsobovat měnícím se požadavkům. Tyto „lehké“ metodiky vývoje SW vychází z myšlenky, že jedinou cestou, jak otestovat software, je co nejrychleji ho vyvinout (nebo jeho část), předložit zákazníkovi a na základě zpětné vazby jej upravit. Jednotlivé agilní metodiky používají rozdílné techniky, ale jsou založeny na společných principech a hodnotách. V únoru 2001 byl podepsán „Manifest agilního vývoje softwaru“ a byla vytvořena „Aliance pro agilní vývoj softwaru“.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Agilní metodiky

A

Agilní metodiky:

  • lehké metodiky, nepopisují procesy, ale praktiky, málo dokumentace, dávají přednost osobní komunikaci
  • zaměřeny na ty činnosti, které vytvářejí hodnotu, eliminují činnosti, které hodnotu nepřinášejí
  • inovace a kreativita se rozvíjejí v chaosu, proto málo procesů, spíše praktiky
  • přesun zodpovědnosti za požadavky na zákazníka - zákazník určuje a mění priority funkcí
  • spolupráce zákazníků a vývojářů
  • využívají individualit a silných stránek lidí

Největší použitelnost se předpokládá u:

  • výzkumných projektů
  • time-to-market
  • menších týmů
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Principy agilních metodik

A

Principy agilních metodik

Výše zmíněný „Manifest agilního vývoje softwaru“ deklaruje čtyři hodnoty, přičemž tučně vyznačené prvky mají větší relativní význam než prvky vedle nich. „Odhalili jsme lepší způsob vývoje softwaru, sami jej používáme a chceme pomoci i ostatním, aby jej používali.

Manifest agilního vývoje dává přednost (2001):

  • individualitám a komunikaci před procesy a nástroji
  • provozuschopnému software před obsažnou dokumentací
  • spolupráci se zákazníkem před sjednáváním kontrakt
  • reakci na změnu před plněním plánu

Na základě tohoto manifestu bylo definováno 10 hlavních principů agilních metodik:

  • včasná a kontinuální dodávka softwaru s hodnotou pro zákazníka
  • změna požadavků i v průběhu vývoje
  • každodenní spolupráce uživatelů a vývojářů
  • podpora motivovaných jedinců
  • osobní komunikace
  • fungující software
  • „zdravý vývoj“
  • perfektní technické řešení i návrh
  • jednoduchost řešení, maximalizace množství neudělané práce
  • samoorganizující se týmy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Na základě manifestu bylo definováno 10 hlavních principů:

A

Na základě tohoto manifestu bylo definováno 10 hlavních principů agilních metodik:

  • včasná a kontinuální dodávka softwaru s hodnotou pro zákazníka
  • změna požadavků i v průběhu vývoje
  • každodenní spolupráce uživatelů a vývojářů
  • podpora motivovaných jedinců
  • osobní komunikace
  • fungující software
  • „zdravý vývoj“
  • perfektní technické řešení i návrh
  • jednoduchost řešení, maximalizace množství neudělané práce
  • samoorganizující se týmy
17
Q

Charakteristika agilních metodik

A

společné principy:

  • iterativní vývoj s velmi krátkými iteracemi,
  • zaměření na fungující SW, který má hodnotu pro zákazníka,
  • lidé jsou prvořadým faktorem – důraz na spolupráci a komunikaci,
  • tolerantní ke změnám,
  • automatizované testování.

místo procesů praktiky:

  • Proces – je popisován v manuálech, pohlíží na lidi jako na sekundární, zaměřuje se na explicitní (popsanou) znalost
  • Praktika – vychází ze zkušenosti, soustředí se primárně na lidi, soustředí se na interní „tacit“ znalosti

spolupráce zákazníků a vývojářů (rigorózní metodiky x agilní metodiky):

  • Rigorózní metodiky
    • Nevěřím ti, že uděláš práci správně, tak tě musím neustále sledovat a kontrolovat.
    • standardizují lidi v organizaci
    • snaží se vykázat lidi do role zaměnitelné součástky
  • Agilní metodiky
    • Věřím ti, že uděláš práci dobře, a tak budeme spolupracovat, abychom dosáhli výsledku.
    • využívají individualit a silných stránek lidí
18
Q

Rozdíl mezi metodikami

A

Rigorózní metodiky:

  • požadavky, procesy je třeba specifikovat předem a změnám se snažíme zabránit
  • SW procesy lze popsat
  • hodně formalit, dokumentace, direktivní řízení
  • standardní projekty, velké projekty
  • příklady: OPEN, RUP, EUP

Agilní metodiky:

  • individualita, pozitivní přístup ke změnám
  • důležitější než dokumentace je provozuschopný software
  • klade důraz na přidanou hodnotu pro zákazníka
  • spolupráce se zákazníkem – častá komunikace
19
Q

Příklady metodik

A

Příklady metodik

Které metodiky řadíme mezi agilní?:

  • původní
    • Adaptive Software Development (ASD),
    • Dynamic Systems Development Method (DSDM),
    • Feature-Driven Development (FDD),
    • Extreme Programming (XP),
    • Lean Development,
    • SCRUM,
    • Crystal metodiky,
    • Agile Modeling
  • nové
    • OpenUP
    • MSF for Agile development
20
Q

Dynamic Systems Development Method (DSDM)

A

Dynamic Systems Development Method (DSDM)

DSDM kombinuje přístup rychlého vývoje aplikací (RAD) s objektově orientovaným vývojem.

  • Klade velký důraz na kvalitu
  • dobře dokumentována
  • zaměřená zejména na softwarově-inženýrskou oblast, méně se zabývá oblastí řízení.
  • Základní technikou používanou při analýze a návrhu je prototypování.

Metodika DSDM je postavena na 9 principech:

  • aktivní zapojení uživatele
  • tým s rozhodovací pravomocí
  • časté dodávky produktů
  • klíčovým kritériem pro přijetí dodávky je podpora podnikových cílů
  • iterativní a inkrementální vývoj jako nástroj postupného přibližování k žádoucímu řešení
  • změny v průběhu vývoje
  • definice požadavků na hrubé úrovni
  • testování v průběhu celého životního cyklu
21
Q

Adaptive Software Development (ASD)

A

Adaptive Software Development (ASD)

  • představuje filosofické zázemí pro agilní metodiky
  • je silně ovlivněna teorií komplexních adaptivních systémů.
    • Změnám, které nastávají, se nesmíme bránit, ale musíme se na ně adaptovat
  • dynamický cyklus „Speculate–Collaborate–Learn“ à „Spekulace-Spolupráce-Učení“, kde na učení klade největší důraz

ASD - zhodnocení

  • určena pro projekty charakterizované vysokou rychlostí, změnami a neurčitostí
  • „lehká“ metodika, která se zabývá nejen oblastí softwarově inženýrskou, ale i oblastí řízení
  • přináší nový přístup k řízení nazvaný „Leadership – Collaboration management“
  • projektová metodika zaměřená na objektově orientovaný a komponentový vývoj nového řešení
22
Q

Lean Development (LD)

A

Lean Development (LD)

  • je aplikací principů známých jako Lean Manufacturing a Total Quality Management na oblast vývoje softwaru
  • je založena na konceptu dynamické stability
    • schopnost přizpůsobit se rychle a efektivně požadavkům (dynamická část) je spojena se schopností vytvářet stabilní, neustále se zlepšující vnitřní procesy, které mají obecnou platnost a přizpůsobují se širokému okruhu produktů.
  • cílem je vytváření softwaru tolerantního ke změnám s třetinovou lidskou prací, s třetinovým časem, s třetinou investic do nástrojů a metod, s třetinovou námahou přizpůsobit se novému tržnímu prostředí.

Lean Development - zhodnocení

  • Zatímco většina agilních metodik se zabývá taktickou úrovní, Lean Development se zaměřuje spíše na strategickou úroveň s vazbou na podnikovou strategii
  • je nástrojem přechodu na podnikání tolerantní ke změnám (change tolerant bussiness)
  • je zaměřen zejména na řízení vývoje softwaru, méně pak na softwarově inženýrskou oblast
23
Q

Feature Driven Development (FDD)

A

Feature Driven Development (FDD)

  • agilní metodika, která zachovává procesní řízení a zdůrazňuje úlohu modelování při vývoji
  • je založena na iterativním vývoji, který je řízen užitnými vlastnostmi produktu (feature-driven)

Praktiky FDD

  • doménové objektové modelování (Domain Object Modeling) - diagram tříd UML, který zahrnuje nejdůležitější typy objektů v problémové doméně a vztahy mezi nimi
  • vývoj podle užitných vlastností (Developing by Feature) - malá funkce (realizovatelná během 2 týdenní iterace)
    s hodnotou pro zákazníka
  • vlastnictví tříd (Individual Class Ownership),
  • týmy pro užitné vlastnosti (Feature Teams),
  • inspekce (Inspections)
  • pravidelné buildy (Regular Builds),
  • řízení konfigurací (Configuration Management),
  • reporting/viditelnost výsledků (Reporting/Visibility of Results).

5 procesů FDD:

  • vytvoření celkového objektového modelu (Develop an Overall Model)
  • sestavení seznamu užitných vlastností (Build a Features List)
  • plánování podle užitné vlastnosti (Plan by Feature)
  • návrh podle užitné vlastnosti (Design by Feature)
  • realizace podle užitné vlastnosti (Build by Feature)
24
Q

Crystal metodiky

A

Crystal metodiky

  • rodina metodik, které jsou určeny pro různé typy projektů
  • výběr vhodné metodiky z rodiny se provádí na základě
    • velikosti projektu, kterou určuje počet členů týmu (osa x),
    • důležitosti systému (osa y)
    • třetí rozměr určuje hledisko, pro které je metodika optimalizována (produktivita, trasovatelnost apod.)
  • jednotlivé metodiky jsou pojmenovány podle barev ( „nejlehčí“ metodika je nazvána Clear, potom následuje Yellow, Orange, Red, Maroon, Blue, Violet atd.)
25
Q

Scrum

A

Scrum

  • framework pro řízení projektu
  • vývoj SW není definovaný proces, který je možné přesně popsat a opakovat, ale empirický proces
  • empirický proces vyžaduje odlišný styl řízení - vyžaduje konstantní monitorování a adaptaci
  • implementace empirického procesu má 3 pilíře
    • viditelnost do procesu
    • inspekce
    • adaptace

Role Scrum:

  • Product Owner - spravuje seznam požadavků (Product Backlog) tak, aby maximalizoval hodnotu projektu reprezentuje všechny zainteresované
  • Team - kros-funkční skupina lidí, kteří se sami řídí tak, aby v každém sprintu dodali fungující SW
  • ScrumMaster - zodpovídá za Scrum proces, jeho správnou implementaci a maximalizaci užitku

Průběh Scrumu:

  • tvorba product backlogu - prioritizovaný seznam požadavků (spravuje Product Owner)
  • následuje sprint:
    • Sprint je 30 denní iterace
    • na začátku se koná sprint planning meeting - z product backlogu jsou vybrány požadavky k realizaci v rámci sprintu
    • výstupem je sprint backlog - obsahuje vybrané požadavky rozdělené na úkoly ke kterým se přihlásili členové týmu
    • každý den se koná Scrum Meeting – 15 min. (daily standup meeting) - každý účastník musí zodpovědět 3 otázky
      • co udělal od poslední scrum porady
      • co bude dělat do příští scrum porady
      • jaké překážky mu stojí v cestě
    • na konci sprintu se koná Sprint review meeting - tým prezentuje, co bylo vyvinuto
    • závěrem je Sprint Retrospective Meeting - zlepšení procesu a praktik

Scrum - zhodnocení

  • Metodika Scrum je jazykem vzorů (pattern language) a je zaměřena hlavně na oblast řízení projektu.
  • Název je odvozen ze skrumáže neboli mlýna v rugby,
26
Q

Extrémní programování (XP)

A

Extrémní programování (XP)

  • metodika určená zejména pro malé až středně velké týmy (2 – 10 programátorů), které vyvíjejí software, jehož zadání není jasné a nebo se mění
  • hodnoty XP: komunikace, jednoduchost, zpětná vazba, odvaha

XP - 12 praktik:

  • plánovací hra(na začátku je stanoven hrubý plán, po každé iteraci se zpřesňuje - zákazník), malé verze (iterativní, přírůstkový vývoj), metafora(vývoj je řízen metaforou – příběhem, jak má systém fungovat), jednoduchý návrh, testování (automatizované testy, testování před kódováním), refaktoring (změna struktury systému bez změny jeho chování), párové*** ***programování (programují dva programátoři na 1 počítači), společné vlastnictví kódu(každý může provést jakoukoli změnu kdekoli v systému), nepřetržitá integrace, 40hodinový týden, zákazníkna*** ***pracovišti, standardy pro psaní zdroj. kódu

Zaměřuje se na oblast softwarově-inženýrskou, řízení a organizaci. Jednoduchý návrh redukuje testovací práci. Neustálé testování redukuje čas dodávky. Prokládání kódování a testování dává vývojářům a testerům lepší porozumění kódu. Automatizované testy dovolují vývojářům provádět refaktorizaci.