
- •Co je předmětem fáze analýzy požadavků na informační systém? Analýza
- •Výstupem analýzy:
- •Co je smyslem modelem řízeného vývoje (mda, resp. Mdd)?
- •Co to je architektura informačního systému? Uveďte typické příklady architektury.
- •Integrace stávajících aplikací
- •Co to je bezpečnost informačních systémů, jak se zajišťuje?
- •Co to je inspekce produktu?
- •Inspekční setkání
- •Co to je programové rozhraní (api), jak se navrhuje?
- •Co to je síťový graf (pert)?
- •Co to je sloupcový diagram (Gantt Chart)?
- •Co to je softwarové inženýrství a proč vzniklo?
- •Co to je softwarový projekt a jaké jsou jeho charakteristické rysy?
- •Co to je uml, k čemu V kontextu softwarového inženýrství slouží?
- •C o to jsou funkční a nefunkční požadavky?
- •Co to jsou softwarové metriky, kdy se používají?
- •Co to jsou stupně dospělosti vývoje (cmm), jak se liší?
- •Jaké dokumenty jsou vstupem a výstupem fáze návrhu informačního systému?
- •Vstupy:
- •Výstupní dokumenty návrhu
- •Jaké metodiky řízení vývoje informačních systémů znáte?
- •Jaké metody modelování informačních systémů znáte?
- •Jaké metody se používají pro řízení kvality vývoje informačních systémů?
- •Jaké metody testování softwarových produktů znáte?
- •Jaké nástroje pro vývoj informačních systémů znáte? Ve kterých fázích se používají?
- •Implementace:
- •Výběr vhodného case nástroje
- •Jaké softwarové profese znáte a co je předmětem jejich zaměření?
- •Jaké techniky plánování znáte, jak se liší?
- •Jaké znáte metody odhadu nákladů na informační systém?
- •Jaký je rozdíl mezi strukturovanými a objektovými metodikami?
- •Vazba (link)
- •Jakými fázemi prochází životní cyklus informačního systému?
- •Na čem je založena technika odhadu dekompozicí?
- •Na čem jsou založeny statistické metody odhadu (cocomo)?
- •Vysvětlete pojem datové modelování, jaké datové modely znáte?
- •Vysvětlete pojem funkční (procesní) modelování, jaké modely znáte?
- •Vysvětlete, co to je akceptační test.
- •1. Podmínky pro akceptační test – za kterých bude splněn
- •2. Dokumentaci pro akceptační test – jak se to má dokumentovat
- •3. Definici akcí pro akceptační test – postup aby naplnil scénář
Jaké metody modelování informačních systémů znáte?
Modelování – tvorba modelu, kdy se během jeho tvorby soustředíme jen na
nejnutnější detaily a ostatní zanedbáváme. V průběhu tvorby softwaru je potřeba
vytvořit řadu různých modelů, které odpovídají jednotlivým pohledům na řešený úkol.
Datový model - popisuje entity, atributy, vztahy a integritní omezení. Podmínky datového modelu: Musí existovat entita pro každý objekt, Vyloučit nadbytečné entity, Zanést všechny vztahy, Vyloučit odvoditelné vztahy, Udržet model v normální formě, Zanést všechny integritní omezení. Entity (student, učitel, předmět), vztahy (relace), atributy, integritní omezení... ER diagramy, relační modely, UML Classe diagramy....
Funkční model - popisuje služby, které systém poskytuje pro záznam, údržbu a využití dat
Podmínky funkčního modelu: Úplnost datového modelu, Vyloučit nadbytečné funkce a metody. Slouží k detailní identifikaci a specifikaci procesů, jejich struktury, vlastníků, vstupů, výstupů, omezení apod.
Dynamický model - popisuje možné stavy dat a jejich změny. Podmínky dynamického modelu: Úplnost dynamického modelu (model pro každou entitu, i včetně různých vztahů), Existence modelu pro každý řídící proces, Existence popisu životního cyklu systému
Datový model
popisuje entity, atributy, vztahy a integritní omezení
Podmínky datového modelu:
Musí existovat entita pro každý objekt
Vyloučit nadbytečné entity
Zanést všechny vztahy
Vyloučit odvoditelné vztahy
Udržet model v normální formě
Zanést všechny integritní omezení
Vyvážení datového modelu:
Datový model vs. datový slovník
Datový model vs. funkční dekompozice
Datový model vs. minispecifikace
Funkční model
popisuje služby, které systém poskytuje pro záznam, údržbu a využití dat
Podmínky funkčního modelu:
Úplnost datového modelu (metoda pro každou událost, každá funkce/metoda musí být popsána)
Vyloučit nadbytečné funkce a metody
Vyvážení funkčního modelu:
Funkční model vs. datový slovník
Funkční model vs. datový model
Funkční model vs. dynamický model
Dynamický model
popisuje možné stavy dat a jejich změny
Podmínky dynamického modelu:
Úplnost dynamického modelu (model pro každou entitu, i včetně různých vztahů)
Existence modelu pro každý řídící proces
Existence popisu životního cyklu systému
Jaké metody se používají pro řízení kvality vývoje informačních systémů?
COBIT, ITIL apod. jsou zaměřeny na procesy v informatice (COBIT) či řízení ICT (ITIL), podle zadání otázky jde jen o kvalitu vývoje (SW).
Definice jakosti softwaru říká: Je to shoda s explicitně stanovenými požadavky na funkci a chování, explicitně dokumentovanými vývojovými standardy a implicitními charakteristikami, které se očekávají od každého profesionálně vyvinutého softwaru. Jedná se o to, že kvalitní produkt musí být vytvořen kvalitním procesem. To platí, jak si ukážeme dále, pro software dvojnásob. Bez kvalitního vývoje si nemůžeme být jisti kvalitou výsledku. Kvalitu nemůžeme kontrolovat až potom, co byl vytvořen programový kód. Kvalitou se musíme zabývat během celého vývoje softwaru.
Terminologie a přístup k managementu jakosti se u různých autorů může lišit. Držme se normy ISO/DIS 9000:2000, která říká, že management jakosti jsou koordinované činnosti pro nasměrování a řízení organizace s ohledem na jakost.
Obvykle zahrnuje
1) stanovení politiky jakosti a cílů jakosti
2) plánování jakosti
3) řízení jakosti
4) zabezpečování jakosti
5) zlepšování jakosti.
Z hlediska řízení projektu se managementu jakosti týkají hlavně body 2)-4), které najdeme popsané i v americké normě pro projektové řízení [PMBOK].
Plánování jakosti spočívá ve stanovení cílů jakosti a specifikování procesů pro splnění těchto cílů. Výsledkem této činnosti je plán řízení jakosti.
Řízení jakosti je zaměřené na splnění požadavků na jakost. Spočívá ve sledování konkrétních výsledků projektu a posuzování, zda odpovídají standardům a stanoveným požadavkům. Pokud neodpovídají, navrhují se způsoby odstraňování příčin nevyhovujícího plnění.
Zabezpečování jakosti je zaměřené na poskytování důvěry, že jsou splněny požadavky na jakost. Je tedy zaměřeno na to, aby zákazník, vedení prováděcí organizace, případně další strany nabyly důvěry v kvalitu procesu a produktu (je to vlastně ujištění zákazníka nebo třetí strany o kvalitě). Činnosti pro zabezpečování jakosti mohou být prováděny i externě, třeba formou externího auditu.
Zabezpečení jakosti kvality
Ve starším pojetí byl proces zabezpečení jakosti nadřazen a zahrnoval i činnosti plánování a řízení jakosti. S tímto přístupen se setkáme v řadě softwarových knih. Podle [Pressman], jednou ze zastřešujících aktivit procesu vývoje softwaru je zabezpečování jakosti softwaru (SQA – Software Quality Assurance), která zahrnuje
cíle managementu jakosti
efektivní technologie (metody a nástroje)
formální revize, přezkoumání
strategii testování
řízení softwarové dokumentace a jejích změn
zajištění shody se standardy
měření a vykazování
Příprava plánu řízení jakosti pro projekt.
Plán je vytvořen během plánování jakosti. Aktivity SQA jsou pak vedeny podle tohoto plánu.
Plán stanoví:
prováděná vyhodnocování
prováděné audity a přezkoumání
standardy, které se mají použít v projektu
procedury pro evidenci a sledování chyb
dokumenty, které budou vytvářeny skupinou SQA
zpětnou vazbu poskytovanou projektovému týmu.
Účast při vývoji popisu procesu softwarového projektu. Skupina SQA přezkoumá popis procesu vzhledem ke shodě s politikou organizace a externími normami (např. ISO) a ostatními částmi plánu projektu.
Přezkoumání analýzy a návrhu softwaru a verifikace vzhledem k definovanému softwarovému procesu. Skupina SQA identifikuje, dokumentuje a sleduje odchylky a verifikuje prováděné opravy.
Audity stanovených softwarových produktů, verifikace vzhledem k specifikacím. Skupina SQA identifikuje, dokumentuje a sleduje odchylky a verifikuje prováděné opravy, periodicky podává zprávy vedení projektu.
Zajištění, aby odchylky v softwarové práci a produktech byly dokumentovány a ošetřeny podle dokumentovaných procedur.
Zaznamenání všech neshod a vykazování managementu.
Navíc má skupina SQA koordinovat řízení změn a pomáhat při sběru a analýze softwarových metrik.
Techniky řízení jakosti softwaru
Přezkoumání, revize, testování, oponentura, inspekce, audit jsou různé typy kontroly. Jejich výklad se u různých autorů mnohdy liší, a to také v závislosti na rozdílném překladu z angličtiny.
Přezkoumání (nebo také revize, v angličtině review) je podle definice normy ISO činnost
prováděná k zajištění vhodnosti, přiměřenosti, efektivnosti a účinnosti předmětu s cílem
dosáhnout stanovených cílů. [Humphrey]rozlišuje tři základní metody přezkoumání:
inspekci
procházení (walk-throughs)
osobní přezkoumání
Inspekce je formální metoda týmového přezkoumání podle přísných pravidel.
[Fagan] popsal inspekci softwaru s pevnou strukturou a pravidly.
Skládá se ze tří fází:
1. příprava
2. vlastní inspekce
3. zpráva
Příprava začíná krátkou schůzkou, kde se jsou účastníci inspekce seznámeni s problematikou tak, aby byl všem jasný produkt a jejich role během inspekce. Potom následuje individuální studium podkladů a odkrývání problémů a otázek. Vlastní inspekce je setkání inspekčního týmu s realizátory, kde se probírají nalezené problémy a vyjasňují případné otázky. V poslední fázi se specifikují nalezené defekty a píše se zpráva z inspekce.
Procházení (walk-through) podle Humphreye je méně formální metoda, která může spočívat v prezentaci pro spolupracovníky, případně pro uživatele. Realizátor prochází programem (nebo jeho návrhem) a vysvětluje posluchačům, jak program řeší jednotlivé situace. Cílem je objevit případná nedorozumění a nedostatky.
Osobní přezkoumání je aktivita, kterou provádí sám tvůrce. Autor by si měl projít analytický model, návrh softwaru nebo napsaný program předtím, než bude implementován, přeložen nebo testován. Měl by se snažit objevit, co nejvíc chyb dřív, než bude předložen k inspekci. Spoléhat na testování hotového programu se nevyplácí. Ideálnem je napsat program, který nebude mít žádnou chybu. Tím, že budeme jednotlivé vývojové fáze procházet a upravovat, aby byly průhledné a srozumitelné, vyhneme se celé řadě logických chyb. Pokud bude náš produkt srozumitelný a bude mít jasnou strukturu, usnadníme práci sobě i inspekčnímu týmu. Můžeme to srovnat s literární činností. Jen málo z knih, které se zdají být napsány lehce, byly takto napsány hned napoprvé. Obvykle se výsledný tvar rodí pomalu po mnohém přepisování. Domnění, že přezkoumáváním programového kódu ztrácíme čas, je mylné. Ušetříme si často mnohem delší dobu, kterou bychom strávili laděním špatně napsaného programu. Vyplatí se, když i do osobního přezkoumání vneseme řád. Tím může být předem připravený
postup třeba ve formě kontrolního seznamu, který nás povede. Pressman používá pro inspekci termín formální technická revize (FTR – Formal Technical Review). Jejím cílem je
odkrýt chyby ve funkci, v logice, v implementaci
ověřit, že software vyhovuje požadavkům
ujistit se, že software je reprezentován podle definovaných standardů
zajistit, aby software byl vyvinut jednotným způsobem
docílit, aby projekt byl lépe řiditelný.
FTR má být prováděna v týmu o třech až pěti pracovnících. Vlastní revizní jednání by neměla být delší než dvě hodiny, pak přestává mít požadovaný efekt. Pokud jde o rozsáhlý produkt, je třeba jej rozdělit podle jeho struktury na menší části, které budou přezkoumávány samostatně. FTR může probíhat i v několika fázích. Každou FTR musí někdo vést a každé jednání musí někdo zapisovat. Mělo by se postupovat podle předem známého programu.
Opravdu účinné techniky jsou takové, které postupují podle předem daných pravidel. Avšak i méně formální techniky mají své místo. Mohou to být i pravidelná „posezení u kávy“ s kolegy, na kterých si vzájemně vyjasňujeme problémy.
Testování je prověřování funkčnosti produktu. U programu to znamená jeho spuštění za účelem nalezení chyb. Pokud testování chyby neobjeví, neznamená to, že v programu žádné chyby nejsou. Znamená to jenom, že jsme neprovedli správný test.
Simulace jsou ruční nebo poloautomatické procházení částí programu se symbolickým prováděním výpočtu.
Formální důkaz správnosti je metoda, která má formou matematického důkazu ověřit, že je program správný.
Evaluace je celkové zhodnocení rozsáhlých materiálů, provádí se technikou přezkoumání nebo inspekce. Může jít například o oponenturu požadavků (studie proveditelnosti, anglicky feasibility study). Zjištění, zda jsou požadavky úplné, bezesporné, ve shodě s cíly projektu.
Verifikace je ověření, zda výstupy etapy splňují požadavky vstupních dokumentů (shoda cíle a specifikací, návrhu a specifikací, kódu a návrhu a specifikací). Provádí se technikou přezkoumání, inspekce, procházení nebo čtení kódu. Dále se sleduje dodržování termínů, rozpočtu, know-how, norem a standardů.
Validace je předvedení a praktické ověření správné činnosti technikou testování.
Audit je prověření dodržování a stavu plnění úkolů nezávislou skupinou. Některou specifickou oblast (jako např. účetní audit, audit kvality podle normy ISO 9000) může prověřovat jen akreditovaná organizace.
Cena za jakost
Každá inspekce a každý test něco stojí. Každý další test může odkrýt další chyby a přispět tak ke zvýšení kvality produktu. Kdy to skončit? Kdy budeme s dosaženou kvalitou spokojeni? Jak vysokou cenu za kvalitu máme investovat? Pochopitelně se budeme snažit za minimální náklady dosáhnout maximální kvality.
Náklady na kvalitu můžeme dělit na náklady vynaložené na prevenci, na prověření a na odstranění chyb.
Do prevence patří plánování jakosti, školení týmu a také třeba pořízení nástrojů na testování. Náklady na prověřování zahrnují cenu za přezkoumání, inspekce a testování. Náklady na odstranění chyby se liší, byla-li chyba objevena před dodáním zákazníkovi (vnitřní chyba) nebo po dodání (vnější chyba).
Ukazuje se, že náklady dramaticky rostou od prevence defektů k jejich detekci, od odstraňování vnitřních chyb k odstraňování chyb vnějších.
Je pochopitelné, že cena za opravu defektu u zákazníka je tím větší, čím víc zákazníků produkt používá. Taková cena zahrnuje náklady za vyřízení reklamace, za vrácení produktu, jeho opravy a poskytnutí náhrady. Ztráta důvěry ve firmu následkem takové reklamace je cena, kterou lze jen těžko vyčíslit. V IBM je používán model zesilování defektů k ilustraci generování a detekci chyb během vývoje softwaru. Budeme si tento model ilustrovat v následující tabulce na hypotetickém příkladu. Myšlenka, na které je postaven tento model, říká, že v každém kroku vývoje softwaru můžeme a obvykle uděláme nějaké chyby. Jestliže je neobjevíme, přenáší se do dalšího kroku, kde buďto přetrvávají beze změny, nebo v častějším případě jsou zdrojem následných chyb – zesilují se.
Testování SW by mělo tvořit 70procent procesu řízení kvality, 30procent ověřování kvality dokumentace, analýzy, návrhu, zdrojových kodů, atd.
U softwaru vysoké kvality, který má stoprocentně splňovat požadavky klienta, je ověřování kvality celého vývojového procesu a současně každé jednotlivé části projektu nezbytné. Po celou dobu vývoje stačí vycházet z jednoduchého předpokladu: cena chyby s časem narůstá (čím později je chyba odstraněna, tím je odstranění dražší). Cílem tedy je zajistit takovou kvalitu vývoje aplikací, aby byly případné chyby nalezeny co nejdříve. Pro tyto účely je užitečné definovat kvalitu jako objektivní míru, jejíž stav lze zhodnotit testováním příslušné části systému nebo příslušných výstupů procesu vývoje softwaru.
Řízení kvality lze rozdělit na dvě roviny, na formální quality assurance (QA) a na věcné quality assurance. Předmětem formální části QA je kontrola výstupů dle zvoleného metodického rámce (Rational Unified Process, Prince 2 apod.), dále plánování a rozvržení jednotlivých aktivit, ověřování kvality a stanovení kritérií kvality výsledného produktu i dílčích výstupů. V praxi projektu se tedy jedná převážně o kontrolu formálních náležitostí jednotlivých procesů a výstupů při vývoji softwaru.
QA centrum je jednotka kompetentní za ověřování kvality, vedená QA managerem. Provádí formální i věcné řízení kvality v určených „měřících“ bodech procesu softwarového vývoje. Není náhodou, že tyto měřící body odpovídají typickým vývojovým disciplínám, tj. správě požadavků, analýze a designu atd. V každém měřícím bodu se aplikují obě roviny procesu ověřování kvality - jak formální QA, tak věcné QA.
Statistické přístupy k jakosti softwaru
Tak jako jinde i zde platí, že pokud se chceme zlepšovat, musíme své procesy měřit, naměřené hodnoty uchovávat, abychom měli porovnání a věděli, jestli se zlepšujeme nebo zhoršujeme, a abychom se z minulých chyb uměli poučit. Statistický přístup k jakosti softwaru se sestává z následujících kroků:
Sběr a kategorizace informací o softwarových defektech
Nalezení příčiny pro každý defekt (např. neshoda specifikací, chyba návrhu, porušení standardů, špatná komunikace se zákazníkem)
Identifikace závažných příčin. Paretův princip říká, že velkou část následků způsobuje jen malé procento příčin (Uvádí se typický poměr 80:20, který znamená, že zdrojem 80% všech chyb je jen 20% možných příčin).
Ošetření problémů, které způsobují závažné příčiny.
Diagram příčin a následků
Klasickým prostředkem pro vizualizaci a analýzu příčin a následků je Ishikawův diagram. Je nazván je podle japonského odborníka na zabezpečování jakosti prof. Kaoru Ishikawa. Jiný název je fishbone (rybí kost) diagram. Tak jak se vyhledávají příčinné jevy, které brání hladkému průběhu procesu, zakreslují se do diagramu. Přitom je možné znázornit jejich strukturální rozklad.