Formální metody a CASE
Technologie specifikace požadavků, nástroje typu CASE. Formální metody specifikace
a jejich využití.
Technologie specifikace požadavků - specifikace požadavků definující funkcionalitu softwarového systému cestou specifikace tzv. případů použití.
Diagramy případů užití
· Specifikace je v jazyce UML řešena prostřednictvím diagramů případu užítí (Use Case Diagram). Tyto diagramy definují vztahy mezi případy (někdy se také hovoří o scénářích) užití systému a aktéry stojící vně systému.
· Případy užití specifikující vzory chování realizované softwarovým systémem. Každý případ užití lze chápat jako posloupnost vzájemně navazujících transakcí vykonaných v dialogu mezi aktérem a vlastním softwarovým systémem.
· Jako aktéry pak definujeme uživatele či jiné systémy, kteří budou vstupovat do interakce s vyvíjeným softwarovým systémem.
Relace mezi případy užití lze shrnout do následujících tří kategorií:
· Relace vložení označovaná klíčovým slovem <<include>> vyjadřuje situaci, kdy určitý scénář popsaný jedním případem užití je součástí i jiného případu užití.
· Relace rozšíření označovaná klíčovým slovem <<extends>> vyjadřuje situaci, kdy určitý případ užití rozšiřuje jiný či představuje variantní průchody tímto scénářem.
· Relace zobecnění/specializace vyjadřuje vztah mezi obecnějším případem užití a jeho speciálním případem.
Relace mezi aktéry - Na rozdíl od případů užití se používá pro aktéry pouze jediná relace generalizace/specializace. Tato relace vyjadřuje vztah mezi aktérem charakterizovaným obecnějšími vlastnostmi a aktérem, který tyto vlastnosti dále rozšiřuje, a tím i specializuje daného aktéra.
CASE nástroje - Zkratka CASE je označením pro Computer Aided Software Engineering což v překladu znamená počítačem podporované softwarové inženýrství nebo vývoj software s využitím počítačové podpory.
CASE nástroje primárně umožňují
· modelování IT systému pomocí diagramů (člověk lépe chápe obrázek než složitě psané slovo),
· generování zdrojového kódu z modelu (usnadňuje práci programátorům),
· zpětné vytvoření modelu podle existujícího zdrojového kódu (reverse engeneering),
· synchronizaci modelu a zdrojového kódu,
· vytvoření dokumentace z modelu
CASE nástroje jsou postaveny tak, aby podporovaly týmovou práci při vývoji systému, zajišťují sdílení rozpracovaných fragmentů, správu vývoje, sledují konzistenci modelu systému, automatizují některé procesy, hlídají dodržování zvolené metodiky, některé umožňují řízení celého životního cyklu aplikací. Úspěch využití CASE nástrojů záleží mimo jiné na vybrané metodice.
Při používání CASE nástrojů, při podpoře návrhu a vývoje softwarové aplikace či informačního systému je potřeba dodržovat určitá pravidla a postupy, které zaručí smysluplnost a efektivitu. Jedná se o metodiky, jakožto souhrny postupů a metod, které určují co, kdo a kdy se má řešit. Podpora metodiky prostředkem CASE vyžaduje především, aby tento prostředek pokrýval všechny fáze životního cyklu projektu.
Tyto prostředky se nazývají integrovaná prostředí pro vývoj aplikací. Přičemž jejich hlavní charakteristikou je pevná svázanost s konkrétní metodikou. Takovéto nástroje mají pak výhodu integrity všech metod, technik a nástrojů v kontextu celého životního cyklu projektu. Další skupinou jsou prostředky označované jako běžné nástroje (tools), které podporují pouze některé metody a techniky z životního cyklu projektu. Od integrovaných prostředí se pak liší nezávislostí na konkrétní metodice.
Komponenty CASE nástrojů - Z toho, jaké jsou obecné funkce, vlastnosti CASE nástrojů a požadavky na ně vyplývá také z jakých komponent se tyto systémy skládají. Mezi důležité funkce a vlastnosti CASE patří:
· Konzistentní grafické ovládací prostředí (podle zásad tvorby GUI) –jednotný vzhled obrazovek, popisků, tlačítek, jednotné ovládání, použití symbolických ikon apod.
· Centrální databáze (repository) pro uchování informací o všech objektech IS (tímto způsobem se zaručí, že informace je použitelná v libovolném dalším kroku projektování)
· Prostředky verifikace konzistentnosti dat a podpora normalizace dat
· Textový editor pro popis jednotlivých objektů –pro účely technické a uživatelské dokumentace systému, možnost jejího přímého generování ze systému
· Možnost rychlého návrhu uživatelských obrazovek včetně simulace vstupů a výstupů (je vyžadováno pro prototyping)
· Generátor zdrojových programů (pro případy častého znovupoužití daného kódu)
· Export / import dat –pro práci s modely a dokumentací, které byly vytvořeny v jiných programech nebo jsou v jiných programech dále využívány a zpracovávány.

Přínosy využití CASE nástrojů
· vyšší produktivita práce
· nižší chybovost
· snazší údržba a další vývoj výsledného produktu
· kvalitnější dokumentace
· umožnění větší participace uživatelů na vývoji produktu
· modelování chování budoucí aplikace
Formální metody specifikace
· Formální specifikace je technika umožňující jednoznačně specifikovat softwarový systém
· Formální metody zahrnují oblasti: specifikace (popisu), analýzy této specifikace, Verifikaci specifikace
· Obecně řečeno, formální specifikace je výraz v nějakém formálním jazyce a na určité úrovni abstrakce, popisující kolekci vlastností, které by popisovaný systém měl splňovat.
Kategorizace formálních metod specifikace
· Funkční specifikace - popisuje systém z pohledu jeho požadovaného chování obvykle cestou modelu systému t.j. abstraktním strojem umožňujícím simulovat toto chování
· Deskriptivní specifikace - definuje požadované vlastnosti systému čistě deklarativním způsobem.
Formální specifikace chování systému - Jeden z nejznámějších přístupů k popisu chování systémů a tedy i nástrojů funkční specifikace jsou tzv. konečné automaty, jenž jsou v jazyce UML realizovány pomocí stavových diagramů a tudíž softwaroví inženýři dostávají k dispozici formální aparát umožňující jednoznačně definovat chování objektů a ověřovat tak jeho požadované dynamické vlastnosti. Příkladem nám může být ověření toho, zda posloupnost zpráv přijatých objektem vede k dosažení jeho koncového stavu.
Formální specifikace vlastností systému - Nejčastěji používanou metodu specifikace vlastností systému je algebraická specifikace. Algebraická specifikace používá k popisu systému dva základní pojmy –druhy a operace. Druhy a operace jsou analogií k pojmům datové typy a procedury běžně používaných v programovacích jazycích.
Formální vs. Semi-formální
· Specifikace větších celků se nutně skládá z částí (jednotek -units) pospojovaných vztahy -jako specializace, agregace, instance, obohacení, použití, apod.
· Každá jednotka specifikace má obecně deklaraci (declaration part) –zde jsou zavedeny symboly a tvrzení (assertion part)
· Formální specifikace se liší od semiformálních (jako jsou různé diagramy) v tom, že semi-formální specifikace eobsahují formální popisy tvrzení.