
- •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ář
Výstupem analýzy:
konceptuální model: - popisuje problém bez ohledu na platformu, implementaci, je na analytické úrovni
datový (např. doménový model)
popisuje entity, atributy (něco charakteristické), vztahy mezi nimi a integritní omezení (něco co je ještě potřeba říct)
model tříd popisuje i operace, často se však k modelu připojí až v návrhu
úplnost datového modelu, např.:
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í
funkční model – co má systém dělat
popisuje služby, které systém poskytuje (pro záznam, údržbu a využití dat)
use cases, DFD (data flow diagram)
úplnost funkčního modelu, např.:
Ú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
dynamický model – popisuje se stavovým diagramem
popisuje možné stavy dat a jejich změny
diagram aktivit, stavy systému, události a reakce na ně
úplnost 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
Kontrola výstupů analýzy - verifikace
Kontrola jednotlivých modulů
Kontrola vzájemné konzistence modulů
Co je smyslem modelem řízeného vývoje (mda, resp. Mdd)?
MDA – Model driven architecture – oddělené analytického pohledu od pohledu návrhu a implementace, založena na XML, UML, ...
MDD - Model Driven Development - využívá jako vyjadřovací prostředek UML modelů, jelikož celý systém je vytvářen na základě modelování. Modely MDD jsou zpočátku obecné a postupem vývoje jsou upřesňovány. Konečný produkt je složením přesně specifikovaných a již implementovaných modelů. Díky průběžnému návrhu a stálému upřesňování, lze velmi jednoduše vytvářet k danému produktu dokumentaci.
Konsorcium Object Management Group si je vědomo úskalí použití UML různými rolemi ve vývojových týmech a nabízí pohled na tvorbu softwarových systémů trochu z jiného úhlu, a to ve formě specifikace Model Driven Architecture.
Co to je MDA? Model Driven Architecture vidí modely aplikací ve čtyřech úrovních:
CIM – model nezávislý na počítačovém zpracování
PIM – platformově nezávislý model řešení
PSM – platformově specifický model řešení
Code – kód aplikace, tj. výsledná realizace řešení
CIM – Computation Independent Model Model nezávislý na počítačovém zpracování je de facto modelem vlastního "businessu". Jedná se především o model procesů. Jeho notace však není v UML standardizována (ani v chystané verzi UML 2.0), nicméně se dá pro tyto účely "přiohnout" diagram aktivit. Dále je to slovník pojmů problémové oblasti, který se dá u složitějších oblastí vyjádřit pomocí konceptuálního modelu tříd. Tento model vytvářejí buď sami uživatelé nebo business analytici.
PIM – Platform Independent Model Platformově nezávislý model reprezentuje koncepci řešení dané problémové oblasti na základě konkrétních požadavků. Jeho hodnota je především ve vyřešení koncepčních otázek, jako jsou třeba algoritmy zaskladňování a vyskladňování v případě skladů, nebo způsob párování saldokontních položek v účetnictví. Tento model však neobsahuje informace spojené s konkrétní technologií realizace a vytvářejí ho IT analytici.
PSM – Platform Specific Model Model řešení na dané platformě (např. J2EE nebo C# a ASP.NET) je podkladem pro vlastní implementaci. Důležité je to, že PSM má stejnou strukturu jako kód aplikace. Tento model vytvářejí návrháři.
Code Z hlediska MDA je zdrojový kód chápán také jako model konkrétní realizace na dané platformě. Konec konců určitě každý zná ze svého okolí aplikace, kde jedině tento model skutečně odpovídá realitě toho, co aplikace dělá.
Co je v MDA objevného? Z uvedeného výčtu by se mohlo zdát, že OMG "vymyslelo kolo", neboť to, že je potřeba vytvářet analytický model (PIM) a návrhový model (PSM), víme již dávno. Nicméně síla MDA není ani tak v členění modelů, jako v tom, že definuje způsob a postup transformace modelů. Opět se nejedná o žádnou magii, ale o aplikaci osvědčených praktik, především zkušeností z použití návrhových vzorů (Design Patterns). Nejzajímavější je otázka transformace platformově nezávislého modelu (PIM) do platformově specifického modelu (PSM).
Transformace PIM -> PSM Postup transformace dle MDA je zhruba následující:
PIM model je doplněn mapovacími značkami, které definují, jaká obecná transformační pravidla budou použita.
Pro PIM model (resp. jeho části) je zvolena implementační platforma.
Na základě mapovacích značek jsou provedeny odpovídající transformace již s ohledem na zvolenou platformu.
Tento postup je schematicky znázorněn na následujícím obrázku spolu se snímkem "značkování" PIM modelu.
MDA mapovací značkou je obecně definováno, jakým způsobem bude realizována asociace, kterou vytvořil analytik. Jedná se v podstatě o přiřazení obecnějšího návrhového vzoru příslušnému modelovému elementu. Konkrétní způsob realizace pak může být pro různé platformy jiný, takže z jednoho "značkovaného" modelu PIM je možné odvodit různé PSM modely.
Při tvorbě PSM modelu pro zvolenou platformu je pak rozvinut aplikovaný návrhový vzor, čímž dojde k doplnění příslušných implementačních atributů, operací nebo i celých tříd a tím vznikne základ platformově specifického modelu. Důležité je to, že přidané implementační prvky jsou označeny jako modelově závislé (MDA doporučuje používat značku řecké pí) a ve výsledném PSM modelu je tak dobře vidět, co jsou prvky převzaté z analýzy a které prvky byly přidány až v návrhu.
Kde je flexibilita? Přínos koncepce Model Driven Architecture je tedy především v tom, že jasně definuje, co je analytický model, co je návrhový model a jak provádět jejich transformaci. Cílem je, aby aplikace byla popsána na různých úrovních abstrakce a tím pádem je značně usnadněno konzistentní promítání změn v aplikaci. Další pozitivní důsledek je standardizace návrhu, která umožňuje zvýšit kvalitu aplikací. A co je důsledkem toho všeho? Především snížení nákladů na údržbu aplikací, tedy peníze, o které jde jako obvykle až v první řadě.