Obsah

N-INS 1.1 První otázka (první část)

Zadání

Modely životního cyklu SW. Návaznosti a produkty jednotlivých etap. Aplikace CASE v životním cyklu. Specifikace požadavků. Prototypy a oponentury.

Vypracování

Modely životního cyklu SW

Upřesnení zdrojů:

Lit. 1 Kniha IS (str. 97-102), Lit. 3 TIS II (7. přednáška), Lit. 4 ANANAS (1. a 16. přednáška), Lit. 6 OMNIS (1. přednáška), Lit. 7 SDCL, Lit.8 Vypracované otázky k IS.

Definice

Software Development Life Cycle Model – framework that describes the activities performed at each stage of a software development project.“1)

Životní cyklus SW popisuje život SW od jeho návrhu, přes implementaci, až po jeho předání a údržbu.“2)

Jednotlivé etapy

Fázy životního cyklu SW

Vodopád

Výhody:

  • jednoduchý k porozumění a k použití
  • poskytuje jasnou strukturu pro méně zkušený tým

Nevýhody:

  • požadavky na systém musí být dopředu známé
  • málo flexibilní
  • může dávat mylní dojem progresu
  • chyby, ke kterým je potřeba se vracet – zvyšují se náklady
  • slabá kontrola uživatelem - systém vidí až na konci (může být pozdě)

Použití:

  • požadavky na systém jsou dobře známé
  • definice produktu je stabilní
  • dokonalé pochopení technologií
  • nová verze existujícího produktu

V-Shaped model

Výhody:

  • jasné a jednoduché použití
  • důraz na naplánovaní verifikace a validace je kladený už na začátku vývoje
  • každý výstup z fáze musí být prověřený
  • projektový manažment může sledovat progres po jednotlivých milnících

Nevýhody:

  • souběžné události se nedělají lehko
  • dynamické změny v požadavcích se nedělají lehko
  • neobsahuje analýzy rizik

Použití:

  • pro vývoj systému, který vyžaduje vyšší spolehlivost
  • požadavky na systém jsou dobře známé
  • řešení a technologie jsou dobře známé

Prototypování

Prototyp – částečně funkční model systému, který realizuje nebo simuluje některé vlastnosti systému.

Výhody:

  • zákazník „vidí“ požadavky na systém
  • vývojáři se učí od zákazníků (komunikace nad doménou)
  • více se upřesňuje koncový produkt
  • umožňuje větší flexibilitu návrhu a vývoje
  • protypy stimulují uvědomování si potřebné přídavné funkcionality

Nevýhody:

  • tendence sklouznout k vývoji “code-and-fix”
  • špatná reputace za “quick-and-dirty” methods
  • je nutné stanovit hranici pro vytváření prototypů, aby se nevytvářely donekonečna (scope creep)

Použití:

  • spíše pro menší systémy
  • když jsou nepřesně formulovány, případně měnící se požadavky na systém, nebo požadavky musí být objasněny
  • vývoj uživatelského rozhraní
  • pro případ rychlé demonstrace systému
  • nový, originální návrh
  • vhodné pro OO analýzu a návrh

Spirálový model

Výhody:

  • zahrnuje analýzu rizik
  • uživatel (zákazník) brzo vidí systém v podobe prototypu
  • hodně rizikové funkce se vytvářejí jako první
  • návrh nemusí být úplně perfektní
  • zákazníci jsou lépe provázaní s každou fází životního cyklu
  • včasný a častý feedback od zákazníků
  • lepší odhad kumulativních nákladů

Nevýhody:

  • čas strávený nad vyhodnocováním rizik u projektů s malými nebo nízkymi riziky
  • celkově může být hodně náročné na čas
  • spirála by mohla končit v nekonečně :)
  • může být obtížné definovat konkrétní a ověřitelné mílníky

Použití:

  • pro vývoj od počátku
  • vhodné pro velké systémy
  • vhodné pro IS, kde je známá míra nejistoty ve stanovení požadavků (uživatelé jsi nejsou jistí potřebami)
  • když je vyhodnocení nákladů a rizik důležité
  • pro středně až vysoko rizikové projekty

Výzkumník

Analyzuj a navrhni systém → Implementuj systém → Používej systém → Pokud vyhovuje, předej systém. Pokud ne, vrať se k nové implementaci.

Nevýhody:

  • práce se obtížně řídí a plánuje
  • často dochází k překročení stanovených finančních i časových limitů
  • má problémy s dokumentací (neexistující či neplatná)
  • zpravidla do vývoje vidí jen jeden výzkumník nebo výzkumný tým a jejich rozpad či odchod pracovníka znamená ukončení projektu (nenahraditelnost řešitelů)

Použití:

  • tento model je vhodný řekněme pro programování věcí, které řešitelé neznají, pro experimentální projekty

Iteratívní vývoj

Iterativně = „předělávat“

Výhody:

  • rychlejší (dílčí) výsledky (umožňuje dříve dospět k SW (po částech))
  • rychlejší odhalení chyb
  • lze vyvíjet i v menším týmu
  • snadněji se integrují produkty třetích stran a existující aplikace

Nevýhody:

  • celý systém je hotový až za delší dobu
  • obtížně se zkracují termíny realizace
  • u některých systémů je obtížné použítí
  • nutnost předělávat kód (není tak velká nevýhoda – je lepší špatný kód přepsat, než ho nějak obcházet)

Inkrementální vývoj

Inkrementálně = „přidávat k“

Výhody:

  • ve více týmech (možný paralelní vývoj)
  • integrace existujících aplikací a aplikací třetích stran
  • samotné přírustky lze realizovat různymi metodami
  • snadno lze modifikovat, modernizovat

Nevýhody:

  • vyžaduje dobré plánování a návrh
  • vyžaduje dřívější definici kompletního a plně funkčního systému, aby se definovaly inkrementy
  • vyžaduje dobře zadefinovat rozhraní modulů

Použití:

  • projekty, které mají dlouhý plán vývoje
  • iterativní a inkrementální vývoj používejte pouze pro projekty, se kterými chcete uspět :-) – Martin Fowler: UML Distilled

RUP

Agilní metodiky

Manifesto of Agile Software Development http://agileManifesto.org

Konkrétní metodiky:

  • Adaptive Software Development (ASD)
  • Feature Driven Development (FDD)
  • Crystal Clear
  • Dynamic Software Development Method (DSDM)
  • Rapid Application Development (RAD)
  • Scrum
  • Extreme Programming (XP)
  • Test-Driven Development (TDD)

Upřesnení zdrojů:

Lit. 1 Kniha IS (str. 84-86), Lit. 4 ANANAS (1. přednáška), Lit. 9 Analyza a navrh IS.mm (Navaznosti a produkty jednotlivych etap).

Produkty jednotlivých etap

Specifikace požadavků

Specifikace systému

Implementace

Testování

Předávání systému

Provoz a údržba

Aplikace CASE v životním cyklu

Upřesnení zdrojů:

Lit. 1 Kniha IS (str. 297-300), Lit. 8 Vypracované otázky k IS, Lit. 9 Analyza a navrh IS.mm (Aplikace CASE v zivotnim cyklu).

Computer Aided Software Engineering (CASE)

Z hlediska životního cyklu SW se nástroje CASE dělí do následujících skupin:

1. Horní (upper) CASE

Hlavní nástroje

2. Střední (middle) CASE

Hlavní nástroje

3. Dolní (lower) CASE

Hlavní nástroje

Aktuálnější dělení

  1. Pre-CASE: plánování
  2. Upper-CASE: specifikace požadavku
  3. Middle-CASE: kooperace při návrhu
  4. Lower-CASE: návrh a vývoj
  5. Post-CASE: údržba, modifikace

Specifikace požadavků

Upřesnení zdrojů:

Lit. 1 Kniha IS (str. 83, 87-95), Lit. 3 TIS II (5. přednáška), Lit. 4 ANANAS (2. přednáška), Lit. 8 Vypracované otázky k IS, Lit. 9 Analyza a navrh IS (Specifikace pozadavku).

Specifikace požadavků

Požiadavky rozdeľujeme na funkčné (funkcionalita) a nefunkčné (napr. výkon, bezpečnosť). Výsledkom špecifikácie je tzv. feasibility study (štúdium uskutočniteľnosti – vyhodnotenie z ekonomického hľadiska, právneho hľadiska, schopnosti tímu a pod.).

Analýza představuje studium problému před tím, než podnikneme nějaké akce směřující k jeho řešení.
Předmět analýzy:

Výsledkem analýzy je specifikace systému.

Specifikace požadavků je součástí analýzy. Vychází z dokumentu „Stanovení cílů“ (z fáze stanovení vizí). Obsahuje cíl řešení, požadovaný výsledek. Je základem a úzkým místem každého systému. Cílový stav je dokumentovaný tak, aby bylo možné posoudit, zda implementace uvedeného stavu dosáhla. Dokument Specifikace požadavků je závazným podkladem pro návrh a realizaci systému. Může být formální i neformální.

Má obvykle následující strukturu:

  1. název projektu a identifikátor projektu
  2. úvod - shrnutí úkolů v obecně srozumitelné rovině
  3. vymezení uživatelů a způsobu využití produktu
  4. perspektivy realizovaného systému (doba života,…)
  5. způsob vedení dokumentace
  6. zajištění spolupráce mezi dodavatelem a uživatelem
  7. dokumenty odkazované v textu
  8. použité zkratky a slovník
  9. vazby na jiné projekty
  10. požadavky na HW, efektivnost a spolehlivost
  11. rozpis dat a funkcí - dekompozice systému
  12. plán testů
  13. vymezení obsahu dokumentace předávané uživateli
  14. termíny realizace, plán realizace
  15. ekonomické a organizační zajištění (odhad nákladů, řešitelský tým)
  16. vymezení způsobu údržby a způsobu prodeje produktu dalším uživatelům

Základní vlastnosti specifikace požadavků: úplnost, ověřitelnost, bezespornost, konzistentnost, modifikovatelnost, srozumitelnost, vystopovatelnost (každý požadavek má své důvody), použitelnost i během provozu systému, stabilnost (aby se požadavky neměnily příliš).

Techniky zjišťování požadavků

Sběr dat obecně

Jednotlivé techniky

  1. Interview: dobře připravený pohovor o tom, co pracovník uživatele dělá, co by mohl IS zlepšit či přinést. Může být i skupinové. Existence moderátora a zapisovatele.
  2. Strukturované interview: interview, kde se postupně odpovídá na otázky dle předem připraveného dotazníku.
  3. Dotazníky: rozesílají se, uživatelé vyplní sami. Levné, ale nezjistí se vše.
  4. Studium dokumentů: používaných zákazníkem.
  5. Pozorování chodu prací u zákazníka: drahé, zdlouhavé, ruší při práci.
  6. Účast na pracovním procesu: totéž co výše, někdy se neodchytí výjimečné případy.
  7. Analýza existujícího IS: nebezpečí převzetí chyb původního IS.
  8. Společný vývoj požadavků: formulace požadavků skupinou pracovníků uživatele a konzultantů dodavatele IS.
    • Brainstorming: Neformální porada s cílem najít nová řešení, vize a myšlenky. Okamžité nápady se hned zapisují na flipcharty a obvykle neformálně hodnotí, i bláznivé nápady se nezatracují a zapisují, vyhodnocení a koordinace nápadů již nebývá součástí porady.
    • Workshop: pro hodnocení a kontrolu průběhu prací, získání přehledu o stavu prací. Členění: úvod, řada kratších vystoupení –- presentací výsledků s diskusí, shrnutí a závěr.
    • Oponentury: nejefektivnější detekce anomálií, snížení rizika neúspěchu. Pracné, detekuji, ale nemám opravovat (revize, inspekce,…).

Prototypy a oponentury

Upřesnení zdrojů:

Lit. 1 Kniha IS (str. 97-98, 103-111), Lit. 3 TIS II (5. přednáška), Lit. 4 ANANAS (8. přednáška), Lit. 8 Vypracované otázky k IS, Lit. 9 Analyza a navrh IS (Prototypy a oponentury).

Prototypy

SW prototyp = částečně funkční model systému, který realizuje či simuluje některé vlastnosti systému.

Prototypování umožňuje odhalit nedostatky již v začátku projektu. Prototyp není určen k cílovému řešení, pouze k ověření specifikace funkcí, zpřesnění požadavků. Bohužel zřídka otestuje vlastnosti, jež se ukážou až v provozu.

Důvody pro vytvoření prototypů:

Výhody: ověření správnosti, lepší konzultace se zákazníkem a odhady pracnosti, brzo máme něco v ruce.
Nevýhody: větší pracnost, ne vždy odhalí funkční chyby

Typy prototypů

  1. Potěmkin: model cílového systému, který simuluje uživatelské rozhraní, tedy obrazovky dialogů a tvar tiskových sestav. Výkonná část systému téměř, čí úplně chybí.
  2. Neúplný: modeluje pouze některé funkce.
  3. Jiný kůň: téměř úplný, ale funguje na jiném HW nebo nad jiným základním SW
  4. Hlemýžď: neefektivní, pomalý
  5. Nepříjemný: má nepříjemné uživatelské rozhraní, je nestabilní
  6. Lajdák: nereaguje správně na chyby v datech a chyby obsluhy

Oponentury

Napr. specifikace požadavků by měla být zakončena oponenturou. Kontroluje se splnitelnost požadavků, dodržení záměrů cílů projektu, návrh a zhodnocení plánu
dalšího postupu, správnost požadavků, bezespornost, atd. Výstupní dokument je Feasibility study = studie splnitelnosti. Její součástí mohou být výstupy částí vnitřních oponentur. Nejpozději se vypracovává před zahájením kódování, nejdříve však po dokončení spec. požadavků.

Dělení

Vnitřní oponentury

Společné rysy
Inspekce

Jednofázové inspekce

Etapy jednofázové inspekce:

  1. plánování (moderátor), příprava materiálů, výběr členů, termín,…
  2. úvodní studium (účastnící se školí, stanoví se jim role)
  3. příprava (materiály pár dní dopředu, studium materiálů)
  4. inspekce (pod vedením moderátora, zjišťují se chyby)
  5. vypracuje se zápis (data do DBS)
  6. přepracování (oprava materiálů)
  7. kontrola (kontrola, zda byly chyby opraveny)

Aktivní inspekce = metoda “zasetých chyb”, sleduje kvalitu inspekce

c/C=z/Z c … počet nalezených chyb
C … celkový počet dosud neznámých chyb
z … počet nalezených zasetých chyb
Z … celkový počet zasetých chyb

Vícefázové inspekce

Etapy vícefázové inspekce:

  1. provádějí jednotlivci: kontroly formálních vlastností (ty lze provést v principu i počítačem) Například se kontroluje celková struktura dokumentu, mnemotechnika zkratek, identifikátorů, index a úplnost odkazů, programovací standardy, typ org. rozložení, …
  2. skupinové inspekce:
    • oponenti dostanou materiály předem spolu s kontrolními otázkami jak co funguje
    • oponenti individuálně pročítají program či dokument a řídí se seznamem otázek a pokyny, co mají sledovat
    • ve skupině se výsledky z výše uvedených bodů jednotlivých respondentů porovnávají, zjistí se nejasnosti
    • provede se oponentura
    • vše se zanese do zápisu
Revize

Etapy revize:

  1. určí se moderátor, ten si vybere oponenty
  2. každý oponent dostane k analýze určitou část oponovaného materiálu a snaží se nalézt problematická místa
  3. provede se vlastní revize (stručně se specifikuje úkol, uvedou se a prodiskutují zjištěné nedostatky, zhodnocení dodržení plánu práce, lze vypracovat i doporučení, zhodnocení kvality materiálu)
  4. výstupem revize je souhrnné hodnocení s přílohami obsahující seznam problémů

Výhody: větší flexibilita, možnost oponovat rozsáhlejší materiály, menší nároky na kvalitu členů oponentského týmu.
Nevýhody: menší účinnost, menší možnosti měření kvality provedení.

Další techniky oponentur

Ne/výhody:

U oponentur lépe postupovat shora, u testů to není tak jednoznačné.

Předměty

Použitá literatura

  1. Král, Jaroslav. 1998. Informacní systémy : specifikace, realizace, provoz. Veletiny: Science. ISBN: 80-86083-00-4.
  2. Král, Jaroslav. 2008. PA102 Technologie informačních systémů I (přednášky). FI MU, Brno.
  3. Král, Jaroslav. 2009. PA105 Technologie informačních systémů II (přednášky). FI MU, Brno.
  4. Ráček, Jaroslav. 2011a. PB007 Analýza a návrh systémů (přednášky). FI MU, Brno. Dostupné z http://is.muni.cz/el/1433/podzim2011/PB007/um/27384117/ (Jan. 2012).
  5. Ráček, Jaroslav. 2011b. PA104 Vedení týmového projektu (přednášky). FI MU, Brno. Dostupné z http://is.muni.cz/el/1433/jaro2011/PA104/um/22859873/ (Jan. 2012).
  6. Ošlejšek, Radek. 2011. PA103 Objektové metody návrhu informačních systémů (přednášky). FI MU, Brno. Dostupné z https://is.muni.cz/auth/el/1433/jaro2011/PA103/um/prez/ (Jan. 2012).
  7. Software Development Life Cycle (SDLC). Dostupné z PowerPoint – Powered by Google Docs (Jan. 2012).
  8. Horačková, Lenka. Vypracované otázky k IS. Dostupné z http://fi.muny.cz/vypracovane-otazky-statnice-is.zip-594/ (Jan. 2012).
  9. SZZ_Informacni_systemy_varianta_I.zip. FIMUNY. Dostupne z http://fi.muny.cz/szz-informacni-systemy-varianta-i.zip-1180/ (Jan. 2012).

Přílohy

1a.pdf – rozšíření některých témat a soukromé zpracování, vycházelo se z této wiki na přelomu roku 2013/2014. Nekonzultováno s kantory.

Vypracoval

Ľuboš Kohút, https://is.muni.cz/auth/osoba/172607, 172607@mail.muni.cz
Aktuální stav: hotovo

Ospravedlňujem sa za moje prípadné preklepy a chyby v češtine.

1)
Lit. 7, sld. 4
2)
Lit. 6, první přednáška