
- •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ý je rozdíl mezi strukturovanými a objektovými metodikami?
Kritéria pro kategorizaci metodik:
přístup k vývoji - strukturované metodiky, RAD metodiky, objektově orientované metodiky, metodiky pro komponentový vývoj, metodiky pro vývoj orientovaný na služby
V průběhu devadesátých let získaly značnou popularitu programové systémy na podporu vývoje informačního systému - systémy CASE.
Členění návrhu systému do etap se ustálilo na tyto etapy:
analýza - vzniká logické řešení problému, bez ohledu na prostředí, ve kterém poběží, a bez ohledu na způsob, kterým bude systém realizován.
design - přizpůsobení logického řešení provozním podmínkám. (U datového modelu to obvykle znamená zavádět redundanci, protože rozsáhlé normalizované databáze mívají neúnosnou dobu odezvy.)
implementace - Teprve v této etapě se systém skutečně vytváří - tj. programuje.
Problém implementace řeší strukturované programování (Dijkstra a Jackson) a další programovací techniky. Problémy analýzy řeší metodiky, v prvé řadě strukturované metodiky.
Strukturované metodiky
F
unkční
i datový rozklad mají doplňující se výhody a nevýhody, bylo
potřeba je nějak sjednotit. Nepřišlo se na nic lepšího, než na
to, že se budou vytvářet paralelně a stále se budou během této
tvorby porovnávat. Tak vznikla naše další zbraň proti složitosti
- porovnávání modelů.
Je to podobná myšlenka, která se s úspěchem používá například
ve strojírenství, architektuře i jinde. Jako plán budoucího
trojrozměrného výrobku (součástky nebo domu) mám několik
dvourozměrných plánů - nárys, bokorys, půdorys.
V obdélníčku je uveden typ hierarchického rozkladu a obvyklý typ techniky. DFD je Data Flow Diagram, tj. diagram datových toků, E-R diagram je Entity Relationship diagram , tj. diagram entit a vztahů. Rozdíl oproti programování je asi v tom, že složitost informačního systému lze charakterizovat více než třemi rozměry.
Návrh informačního systému se tak stává dvouúrovňovým procesem:
Úroveň modelů. Systém se nenavrhuje jako celek, ale vytváří se několik modelů (pohledů), každý model si všímá některých aspektů a jiné opomíjí.
Jednotlivé modely se vytvářejí pomocí hierarchického rozkladu (obvykle).
Podstatou použití modelů je to, že jeden model podrobně rozpracovává některé aspekty systému a jiné aspekty opomíjí. Druhý model rozpracovává tyto opomíjené aspekty a opomíjí některé aspekty rozpracovávané prvým modelem. Je nutné, aby dva modely měly některý rozpracovávaný aspekt společný, aby je bylo možno porovnávat - to znamená, aby změna jednoho modelu ovlivnila model druhý.
Kolem strukturálního návrhu bylo vykonáno mnoho metodické práce, ať již v návrzích různých modelů a dílčích modelů (v některých metodikách jejich počet přesahuje desítku), tak v celkových zásadách práce. Následuje výčet nejvýraznějších charakteristik.
etapisace - návrh informačního systému byl rozdělen na několik etap, každá je charakterizována určitým dílčím úkolem. Jsou to: formulace zadání, analýza, design, implementace, testování, předání do provozu a provoz.
návrat v postupu - i když metodiky obsahují jisté prvky sebekontroly, je nutné do nich zařadit možnost kdykoliv se z jedné etapy vrátit zpět a opravit nebo upravit část předchozí etapy nebo etap.
nejasný design - většina metodik je dobře propracovaná v etapě analýzy a dosti na rozpacích v etapě designu. Utíkají se k takovým nemetodickým popisům, jako jsou stromy volání procedur, nebo se snaží použít strukturované programování jako prostředek mezimodulového návrhu řízení.
Někdo kdysi pejorativně označil strukturální metodiky jako ”vodopádový model” a někteří kritici tuto asociaci berou doslovně a tvrdí, že je zakázáno vracet se do již ukončených etap. Strukturální metodika to naopak doporučuje, na druhé straně je třeba připustit, že tyto metodiky se svým velkým množstvím navzájem provázaných modelů působí poněkud neohrabaným dojmem a člověk se instinktivně takovému návratu vyhýbá.
Objektové metodika
V současné době se v oblasti analyzy a návrhu informačních systémů hovoří o objektově orientovanych metodikách a modelech. Všichni návrháři i producenti modelovacích nástrojů zdůrazňují plnou podporu objektovych metodik (v současnosti zejména UML, viz kapitola o metodikách).
Je nutné hned na začátku zmínit fakt, že objektově orientovaná analyza a design (OOAD) není něčím, co by dokázalo plně nahradit všechny předcházející metodiky ve všech oblastech analýzy a návrhu. Zaměřuje se spíše na popis systému, přičemž po jejím boku mají stále důležité místo diagramy datových a procesních toků.
Základní koncepty objektového přístupu
Všechny následující prvky jsou využívány v UML. Znázornění v modelech UML je přímo popsáno u prvků, které se v diagramech objevují. Důvodem je fakt, že mi nepřipadá vhodné rozdělit vyklad “teoreticky” (tj. prvek objektové metodiky) a “prakticky” (tj. znázornění prvku objektové metodiky). Notace UML je v současné době de facto jedinou používanou objektovou notací v analýze (přičemž využívá všech prvků a dřívějších notací objektového přístupu).
Abstrakce - Výběr vlastností (atributů) a operací (metod) objektu, které je třeba v modelu uvažovat.
Třída - Třídy představují zobecnění reálnych objektů modelovaných v zájmové oblasti. Třída se znázorňuje jako obdélník, přičemž se uvnitř čarou odděluje oblast pro název třídy, pro atributy a pro metody. Každý objekt třídy má své popisné charakteristiky (např. barva, velikost), tzv. atributy. Každý atribut může mít přiřazené omezení (znázorňuje se ve složených závorkách), např. rozsah hodnot, kterých může nabývat. Dále se objekty, které jsou prvky definované třídy, nějak chovají. Toto chování se popisuje prostřednictvím tzv. metod. Popisné charakteristiky metod se nazývají příznaky (signatury). Atributy i metody je možné uspořádat do skupin, název skupiny se pak označuje stereotypem (viz kapitola o metodice UML níže). Odpovědnost třídy popisuje např. výstup (“hodnotu”), který má třída poskytovat.
Třída se označuje jako abstraktní, jestliže se v modelu nevyskytují žádné její instance (objekty). Může se například jednat o nadtřídy při použití dědičnosti. Pokud je třída abstraktní, píše se její jméno kurzívou. Jedna třída může přímo využívat jinou třídu (např. příznak operace jedné třídy využívá třídu jinou - např. metoda “zobraz menu” u jedné třídy a třída “menu”). Jedná se o vztah závislosti. Závislost se znázorňuje čárkovanou čarou začínající např. u dané metody a zakončenou u druhé třídy prázdným trojúhelníkem.
Rozhraní (interface) je skupina operací, které určují chování třídy a její vztah k jiným třídám. Rozhraní nemá žádné atributy, jedná se pouze o skupinu metod. Třída rozhraní se značí stereotypem «rozhraní». Vztah mezi třídou a rozhraním se nazývá realizace. Realizace se znázorňuje přerušovanou čarou zakončenou nevybarveným trojúhelníkem na straně rozhraní. Rozhraní může být zjednodušeně znázorněno i kroužkem spojeným čarou se třídou.
Další důležitou vlastností třídy je viditelnost jejích atributů a metod ostatním třídám (viz zapouzdření). Existují tři úrovně viditelnosti, public (veřejná), private (soukromá) a protected. U protected mohou používat atributy a metody pouze potomci dané třídy (viz dědičnost). Soukromé atributy a metody může používat pouze původní třída. Veřejné atributy a metody může využívat kterákoliv třída. V notaci UML se veřejný atribut nebo metoda označují “+” před nimi. Protected se označují “#” a soukromý “-”.
Dědičnost
Každý objekt dědí atributy a metody třídy, do které patří, i nadtřídy, pokud existuje. V UML se dědičnost nazývá zobecnění. Všude, kde se vyskytuje nadtřída, může se vyskytovat i podtřída. Dědičnost se značí čarou zakončenou na straně nadtřídy (obvykle se označuje jako rodič, podtřída pak jako potomek) nevybarveným trojúhelníkem. Do podtřídy se pak už neuvádí všechny atributy a metody, které jsou uvedeny u nadtřídy. Má-li třída jednoho rodiče, nazýváme tento stav jednoduchou dědičností, má-li jich více, jedná se o vícenásobnou dědičnost. Pokud třída rodiče nemá, jedná se o bázovou (základní) třídu. Pokud třída nemá potomky, hovoříme o listové třídě.
Polymorfismus
Znalost třídy, jak provést určitou operaci, která může být obecně společná pro více tříd.
Zapouzdření
Jedná se o skrývání informací objektů tříd před okolím. Informace se zpřístupňují přes definovaný okruh metod. Dochází tedy na rozlišování dat a operací soukromých (nejsou z vnějšku viditelné ani přístupné) a veřejných (z vnějšku použitelné).
Synergie a objektová struktura
Synergie znamená, že objekt je spojením dat a chování. Objektová struktura vyjadřuje důraz na to, co objekt je, než jak je užit.
Asociace
Vyjadřuje fakt, že objekty jsou mezi sebou ve vzájemném vztahu. Asociace mezi dvěma objekty mohou být jednosměrné i obousměrné. Směr asociace se znázorňuje vybarvenym trojúhelníkem u názvu asociace. Každá třída hraje v asociaci určitou roli. Role se zapisují na konce asociace ke třídám, s nimiž souvisejí. Asociaci může být přiřazeno určité pravidlo, omezující podmínka. Je pak umístěna ve složených závorkách. Násobnost asociace vyjadřuje, kolik objektů jedné třídy se vztahuje ke kolika objektům druhé třídy. Konkrétní počet se zapisuje konkrétním číslem (popř. intervalem), neurčitý počet (N) se značí hvězdičkou. Jestliže jsou dvě třídy ve vztahu 1:0 nebo 1:1, je druhá třída pro první třídu volitelná (nepovinná). Kvalifikátor u třídy určuje, podle jakého atributu se v asociaci vyhledává (např. ve vazbě 1:M kvalifikátor říká, podle kterého atributu se konkrétní objekt ve vazbě z M objektů druhé třídy vyhledá). Znázorňuje se v obdélníku vedle třídy, kde se vyhledávání provádí, z něho pak pokračuje asociační čára. Asociace může být tzv. reflexivní. Jedná se o asociaci mezi jednou a tou samou třídou. Nastává to v případech, kdy objekt třídy může “hrát” více rolí. Dvě asociace (nebo více asociací) může mít vůči sobě vztah nebo (dochází k jedné asociaci nebo ke druhé, jedná se tedy o určité omezení každé z asociací). Vztah nebo se znázorňuje čárkovanou čarou (spojnicí) mezi asociacemi, kterých se týká. Asociace může mít atributy a metody, jedná se pak o asociační (vazební) třídu. Asociační třída je spojena s asociací čárkovanou čarou.