CASE nástroje: Porovnání verzí

Smazaný obsah Přidaný obsah
uu
Provedení urgentních úprav
Řádek 1:
{{Urgentně upravit/dne|20090604155220 - informatika}}
 
Zkratka CASE je označením pro Computer Aided Software Engineering nebo také Computer Aided Systems Engineering, což v překladu znamená "počítačem podporované softwarové (systémové) inženýrství" nebo-li "vývoj software s využitím počítačové podpory".
CASE nástroje jsou nástroje, které 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.
 
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.
 
== Historie a současnost ==
 
Pokud se chceme zaměřit na historii CASE nástrojů, musíme vyjít z názvu CASE, konkrétně ze softwarového (systémového) inženýrství.
 
Podle definice IEEE 610.12 „softwarové inženýrství je aplikace systematického, disciplinovaného, kvantifikovatelného přístupu k vývoji, provozu a údržby softwaru, tj. aplikace inženýrství na software. Také je to studium přístupů dle výše uvedeného.“
Definice IEEE 610.12:
„Softwarové inženýrství je aplikace systematického, disciplinovaného, kvantifikovatelného přístupu k vývoji, provozu a údržby softwaru, tj. aplikace inženýrství na software. Také je to studium přístupů dle výše uvedeného.“
 
[[Softwarové inženýrství]] se začalo formovat ke konci 60. let, kdy začala tzv. softwarová krize, kdy výkon hardware předčil vývoj software. Zcela zlomová byla konference NATO v r. 1968 ve středisku Garmisch Partenkirchen ve Spolkové republice Německo, která popularizovala softwarové inženýrství. Do té doby se počítače využívaly pro vědeckotechnické výpočty, kde záleželo spíše na preciznosti řešení, než na efektivitě výrobyvývoje. V 70. letech dochází k formulaci základních principů tohoto oboru. V dalších letech jsou vyvíjeny metodiky (strukturovaná, objektová) pro analýzu. Vzniká také první generace nástrojů pro podporu této disciplíny, což jsou právě CASE nástroje. Mezi první CASE nástroje patřily nástroje, které můžeme nazývat Lower Case. Tyto nástroje jsou dodnes určeny pro fázi implementace např. generování kódu. Původní myšlenka CASE nástrojů byla ta, že už nebude zapotřebí programátorů, tzn., že CASE nástroj vygeneruje již samotný kód, který nebude potřeba upravovat a bude se moci tak jak byl vygenerován použít. CožTato myšlenka ovšem byla myšlenka nesprávná, jelikož existují taková odvětví jako je např. letecké inženýrství, které je velmi specifické a každý rozměr v něm má „jiný kód“mylná.
Euforii zažívají CASE nástroje v 80. letech společně s GUI rozhraním.
 
Obrození zažívají CASE nástroje v 80. letech společně s grafickým uživatelským rozhraním. To byl prvopočátek CASE nadšenosti. Dosud byly dostupné pouze samostatné malé nástroje, nyní bylo možné vše integrovat vna univerzální univerzálnímpracovní workbenchuploše. Strategická příležitost, kterou poskytovala CASE technologie, byla ta, že program může být případně udržován na návrhové úrovni spíše než na úrovni zdrojového kódu. Toto by bývalo jedním z východisek z boje programovacích jazyků. Naděje, že CASE nástroj zautomatizuje generování kódů, se však nenaplnila. Když byla investice do CASE prosazena za podmínky automatického generování kódů, úsilí se poté nevyplatilo. Výsledkem bylo, že dichotomie mezi návrhem a kódem přetrvávala, tzn. když se změnil návrh, musel být změněn i kód. Nebo naopak, když se změnil kód, musel se aktualizovat i návrh, což představovalo ještě větší problém. CASE nástroj, který by mohl být používán jako pouze návrhový nástroj nebo jako zdroj pro všechny druhy nesouvisejících materiálů, se stal brzy příliš drahý, tzn. náklady na učení a údržbu byly příliš vysoké.
Časem, v souvislosti s vývojem strukturovaných a hlavně objektových metod, se problémy a chyby postupně odstranily, tzn. nástroje začaly zajišťovat provázanost jednotlivých modelů, je poskytují možnost zpětného vytvoření modelu ze zdrojového kódu ad.
 
Časem, v souvislosti s vývojem strukturovaných a hlavně objektových metod, se problémy a chyby postupně odstranily, tzn. nástroje začaly zajišťovat provázanost jednotlivých modelů, je poskytují možnost zpětného vytvoření modelu ze zdrojového kódu ad.
V současné době existuje nespočet CASE nástrojů, které plní různé funkce, nepomáhají již pouze vývojářům, ale také např. v procesu řízení firmy, kdy se zanalyzují stávající firemní procesy a pomocí CASE nástrojů se potom na základě analýzy vymodelují tak, jak by správně tyto procesy měly fungovat.
 
V současné době existuje nespočet CASE nástrojů, které plní různé funkce, nepomáhají již pouze vývojářům, ale také např. v procesu řízení firmy, kdy se zanalyzují stávající firemní procesy a pomocí CASE nástrojů se potom na základě analýzy vymodelují tak, jak by správně tyto procesy měly fungovat.
 
Dnes většina CASE nástrojů představuje velké aplikace, které je možno využít ve všech fázích procesu vývoje software. U většiny nástrojů je jádrem univerzální modelovací jazyk UML (Unified Modeling Language).
 
Dnes většina CASE nástrojů představuje velké aplikace, které je možno využít ve všech fázích procesu vývoje software. U většiny nástrojů je jádrem univerzální modelovací jazyk UML (Unified Modeling Language).
Pokud se podíváme na CASE nástroj, první co uvidíme, je grafické rozhraní. Zde je možno modelovat nejrůznější typy diagramu. Uveďme alespoň ty nejběžnější: DFD diagramy, které dovolují provádět funkční analýzu; Class diagramy – pro modelování tříd; STD diagramy; procesní diagramy a další. Podpora používání těchto nástrojů byla jedním z podnětů pro vznik CASE nástrojů. Hlavním důvodem byla častá aktualizace diagramu, kterou, při vyšší složitosti diagramu, nebylo možné provádět jen tak v ruce.
 
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ří:<br />
 
· 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.<br />
* 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í)<br />
* 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
* 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<br />
* 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)<br />
* 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)<br />
* 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.<br />
* 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.
<br />
 
== Způsoby klasifikace CASE nástrojů ==
 
=== Podle životního cyklu projektu ===

Nejčastější dělení CASE nástrojů vyplývá ze životního cyklu projektu, tzn. v jaké fázi cyklu vývoje se CASE nástroj využije. Toto dělení je následující:<br />
 
· '''Pre CASE''' (podporuje činnosti předcházející vývoji IS – globální strategie)<br />
· * '''UpperPre CASE''' (podporuje tvorbučinnosti informačnípředcházející strategievývoji aIS fázi analýzy)<brglobální />strategie)
· * '''MiddleUpper CASE''' (podporuje tvorbu globálníhoinformační strategie a detailníhofázi návrhu ISanalýzy)<br />
· * '''LowerMiddle CASE''' (podporuje fázitvorbu implementace)<brglobálního />a detailního návrhu IS)
· * '''Lower CASE''' (podporuje fázi implementace)
* '''Post CASE''' (podporuje fázi uvedení IS do provozu, provoz, údržbu,reengineering)<br />
 
Lze se i setkat s jednodušším členěním na:
<br />
· '''Upper CASE''' (nástroje podporující fáze analýzy a návrhu – např. nástroje pro tvorbu diagramu, generování reportu a formulářů a analytické nástroje)<br />
· '''Lower CASE''' (nástroje podporující fáze implementace, testování a řízení konfigurací)<br />
<br />
Další dělení dle:<br />
<br />
interaktivity<br />
· CASE nástroje, které '''jsou interaktivní''' ze své podstaty (např. nástroje podporující metodu návrhu)<br />
· CASE nástroje, které '''nejsou interaktivní''' (tzv. vývojové nástroje, např. kompilery)<br />
<br />
fáze projektu vývoje software, v níž jsou využívány<br />
· '''front-end CASE''' nástroje (využívány v dřívějších fázích projektu – např. nástroje na podporu návrhu)<br />
· '''back-end CASE''' nástroje (využívány v dřívějších fázích projektu – např. kompilery a nástroje podporující testování)<br />
<br />
toho, zda jsou využívány během celého životního cyklu software<br />
· '''vertikální CASE''' nástroje (nástroje podporující jen dílčí krok životního cyklu software či dílčí oblast – např. zjišťování uživatelských požadavku nebo kódování)<br />
· '''horizontální CASE''' nástroje (nástroje podporující několik kroku životního cyklu software či více oblastí – např. nástroje pro tvorbu dokumentace či řízení konfigurace)<br />
<br />
stupně integrace<br />
· '''CASE tools''' (nástroje zabezpečující automatizovanou podporu libovolné úlohy životního cyklu software)<br />
· '''CASE toolkits''' (soubor integrovaných softwarových nástrojů, který poskytuje částečnou či komplexní podporu jen v rámci jedné fáze životního cyklu software)<br />
· '''CASE workbenches''' (množina integrovaných CASE tools nebo CASE toolkits, která poskytuje částečnou či komplexní podporu v minimálně dvou fázích životního cyklu software)<br />
· '''I – CASE''' (představuje nejvyšší stupeň integrace; představuje propojení několika CASE tools, CASE toolkits a CASE workbenches)<br />
 
* '''Upper CASE''' (nástroje podporující fáze analýzy a návrhu – např. nástroje pro tvorbu diagramu, generování reportu a formulářů a analytické nástroje)
* '''Lower CASE''' (nástroje podporující fáze implementace, testování a řízení konfigurací)
 
=== Podle interaktivity ===
 
* CASE nástroje, které '''jsou interaktivní''' ze své podstaty (např. nástroje podporující metodu návrhu)
* CASE nástroje, které '''nejsou interaktivní''' (tzv. vývojové nástroje, např. překladače)
 
=== Podle fáze projektu vývoje software, v níž jsou využívány ===
 
* '''front-end CASE''' nástroje (využívány v dřívějších fázích projektu – např. nástroje na podporu návrhu)
* '''back-end CASE''' nástroje (využívány v dřívějších fázích projektu – např. kompilery a nástroje podporující testování)
 
=== Podle toho, zda jsou využívány během celého životního cyklu software ===
 
* '''vertikální CASE''' nástroje (nástroje podporující jen dílčí krok životního cyklu software či dílčí oblast – např. zjišťování uživatelských požadavku nebo kódování)
* '''horizontální CASE''' nástroje (nástroje podporující několik kroku životního cyklu software či více oblastí – např. nástroje pro tvorbu dokumentace či řízení konfigurace)
 
=== Podle stupně integrace ===
 
* '''CASE tools''' (nástroje zabezpečující automatizovanou podporu libovolné úlohy životního cyklu software)
* '''CASE toolkits''' (soubor integrovaných softwarových nástrojů, který poskytuje částečnou či komplexní podporu jen v rámci jedné fáze životního cyklu software)
* '''CASE workbenches''' (množina integrovaných CASE tools nebo CASE toolkits, která poskytuje částečnou či komplexní podporu v minimálně dvou fázích životního cyklu software)
* '''I – CASE''' (představuje nejvyšší stupeň integrace; představuje propojení několika CASE tools, CASE toolkits a CASE workbenches)
 
== Přínosy využití CASE nástrojů ==
 
Využití CASE nástrojů s sebou přináší celou řadu výhod, zde jsou uvedeny nejpodstatnější z nich.<br />jsou:
· Vyšší produktivita práce<br />
· Nižší chybovost<br />
· Snazší údržba a další vývoj výsledného produktu<br />
· Kvalitnější dokumentace<br />
· Umožnění větší participace uživatelů na vývoji produktu<br />
 
* 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
 
== Příklady CASE nástrojů ==
 
*Powerdesigner (Sybase)
* Powerdesigner (Sybase)
*Oracle Designer (Oracle)
* Oracle Designer (Oracle)
*Case Studio
* Case Studio
*Rational Rose
* Rational Rose
*MS Visio
* MS Visio
 
[[Kategorie:Softwarové inženýrství]]