Systémová analýza v praxi


Cendelín, Jiří1 & Hajšman, Václav2

1 Doc., Ing., CSc., Západočeská univerzita v Plzni, Fakulta aplikovaných věd, Katedra kybernetiky, Univerzitní 22, 306 14 Plzeň, cendelin@kky.zcu.cz

2 Ing., hajsman@kky.zcu.cz

Počítačová podpora systémové analýzy

Efektivní využití metod systémové analýzy v praxi je možné jen díky počítačové podpoře. Jádro těchto prostředků tvoří CASE systémy, k nimž se řadí široké spektrum programových nástrojů zaměřených na dílčí problémy. Tyto prostředky jsou předkládány jako nástroje SW inženýrství a předpokládá se jejich využití pro tvorbu programového vybavení nejrůznějšího druhu, i když v praxi to jsou převážně programové systémy založené na databázových aplikacích. Mnohé CASE systémy byly také s tímto cílem vytvořeny. Velmi rychle se však vyvinuly v prostředky integrované programové podpory analýzy, návrhu a případné programové implementace systémů nejrůznějších druhů. Jsou založeny především na grafických metodách. To vytváří předpoklady pro zpřístupnění systémových metod mnohem širšímu spektru uživatelů, než tomu bylo dosud. Díky zavádění grafických metod, zejména prostředků grafického programování, se snižují nároky na detailní znalosti techniky programování a tradiční přístup založený na psaní zdrojového kódu se zjednodušuje a mnohdy ustupuje do pozadí.

Vedlejším efektem tohoto vývoje je překonávání bariéry, která ztěžovala realizaci počítačových informačních a řídicích systémů. Klesá totiž nutnost spolupráce technologa znalého funkčních detailů řešeného systému a programátora znalého techniky programování. Otevírá se cesta založená na přímém zápisu algoritmů technologem v grafické formě a na jejich přímém, nebo alespoň automatizovaném, převodu do formy funkčního programu. Vývoj zjevně směřuje ke stavu, kdy bude např. pro projektanta strojního zařízení potřebnější znalost metod popisu algoritmů např. metodami kroků a přechodů, než znalost programování v jazyku Pascal.

Metody systémové analýzy

V oblasti systémové analýzy jsou v současné době k dispozici počítačové nástroje podporující metody založené na strukturovaném nebo objektově orientovaném přístupu.

Metody strukturované systémové analýzy, mnohdy označované jako klasické, jsou historicky starší a vycházejí z principů strukturovaného programování. Díky svému dlouhému vývoji a řadě praktických zkušeností z jejich používání se soubor metod strukturované systémové analýzy ustálil na několika základních, s jejichž využitím lze popsat široké spektrum systémů. Metody strukturované systémové analýzy jsou založeny na relativně jednoduchých principech a existují jasná a jednoznačná pravidla jejich aplikace při analýze systémů. To umožňuje tvůrcům CASE systémů implementujících metody strukturované systémové analýzy vybavit programové systémy řadou kontrolních mechanismů zajišťujících tvorbu logicky konzistentního modelu.

Naproti tomu metody systémové analýzy založené na objektově orientovaném přístupu vycházejí, jak již sám název napovídá, z principů používaných v objektově orientovaném programování. Nutno však poznamenat, že se mnoho OO metod se svými původními vzory, základními principy uplatňovanými v OO programování, již značně rozchází. Vývoj OO metod je ve srovnání se strukturovanými podstatně kratší a o bohatých zkušenostech z praktických aplikací snad nemůže být ani řeč. Důvodů, které brání širokému využívání OO metod, je celá řada. Jestliže principy OO programování jsou ve srovnání se strukturovaným podstatně složitější, pak při srovnání analytických metod platí toto tvrzení dvojnásob. Oproti strukturovaným metodám může koncový uživatel při používán OO metod nabýt pocit naprosté volnosti, která je však draze vykoupena tím, že se při analýze složitějších systémů brzy stane model značně nepřehledným. Vesměs všechny stávající OO metody lze použít pro analýzu pouze omezené skupiny systémů, především databázového charakteru. Řada OO metod umožňuje takové konstrukce, které jsou v rozporu s klasickým systémovým přístupem. V neposlední řadě pak neexistuje jasná metodika pro aplikaci OO metod, která by uživatele vedla při analýze systému.

V principu nabízí OO systémová analýza oproti strukturované více možností a tedy širší využití. Uvedené nedostatky souvisejí vesměs se stávajícím stavem vývoje těchto metod a stavem jejich implementace v CASE nástrojích. Je tedy jen otázkou času a vůle tvůrců metod a jejich programových implementací, kdy tyto metody najdou široké uplatnění v praxi a stanou se “klasickými” metodami systémové analýzy.

Využití systémové analýzy

Jako příklad uvedeme použití metod systémové analýzy k tvorbě modelu společnosti a analýze podnikových procesů. Účelem konstrukce modelu je zachycení vlastností podstatných pro dodržení kvality (jakosti) odpovídající požadavkům souboru norem ISO 9000. Tvorba modelu je založena na využití metod strukturované systémové analýzy, neboť stávající stav implementace OO metod v CASE systémech jinou volbu neumožňoval. Pro vlastní realizaci je využit integrovaný CASE systém case/4/0.

Základem tvorby modelu je specifikace všech funkcí, které v souhrnu ovlivňují kvalitu. K nim dospějeme hierarchickou dekompozicí činností firmy při zohlednění požadavků modularity (relativní samostatnosti a minimalizace funkčních vazeb). Postupnou dekompozici činností zachytíme v diagramu funkční struktury. Listové položky tohoto diagramu představují soubor elementárních funkcí, s ohledem na daný účel již dále nedělených, které zajišťuje jeden pracovník a současně se jedná o činnost, která náleží do působnosti nějakého relativně samostatného dílčího celku v rámci firmy.

Těžištěm popisu je diagram informačních toků. Ten znázorňuje kromě skupiny elementárních funkcí náležejících do jednoho hierarchicky nadřazeného funkčního celku i informace, které jsou vzájemně předávány mezi jednotlivými funkcemi. Kromě informačních toků mezi elementárními funkcemi je možno v diagramu zachytit i informační toky k vnějším prvkům (např. odběratel, dodavatel), k navazujícím subsystémům, které s právě popisovaným systémem spolupracují, nebo k paměťovým místům (např. záznamové knihy, databáze). Předávané informace vyjádřené v diagramu informačních toků orientovanými spojnicemi mezi prvky představují informaci reprezentovanou datovou strukturou.

V dané aplikaci představuje dokumentace předávaná mezi jednotlivými prvky objekty ekvivalentní datovým strukturám. Ta obvykle sestává ze souboru dokumentů a může být tedy dále členěna. Jednotlivé dokumenty slouží trvalému záznamu informací o průběhu a řízení podnikových procesů a zachycují údaje o provedení té které činnosti. Pokud některé činnosti není třeba z hlediska kvality dokumentovat, nemusí být specifikovány jako samostatné činnosti. Pro stanovení zodpovědností za tvorbu jednotlivých dokumentů nevystačíme s jednoduchým jednoúrovňovým členěním, ale musíme informaci strukturovat tak, aby byla vždy jednoznačně určitelná zodpovědnost za každou samostatnou činnost a aby byla zachována možnost vztažení zodpovědnosti ke skutečnému prvotnímu tvůrci příslušného dokumentu jako k potencionálnímu zdroji poruchy. Jedině za tohoto předpokladu lze po zjištění závady ve vykonávané funkci objektivně zjistit její příčinu a zcela jednoznačně doložit selhání určitého prvku. Jinými slovy tedy dokument, který je z pohledu určité funkce vstupním nebo zároveň vstupním a výstupním, je danou funkcí pouze využíván a tedy tato funkce neovlivňuje jeho kvalitu. Dokument, který je pro určitou funkci pouze výstupním, je danou funkcí vytvořen neboli funkce je jeho zdrojem a zodpovídá za jeho kvalitu. Pro funkci, která není zdrojem dokumentů, není tedy dokumentována její činnost a je z hlediska řízení jakosti nepodstatná. Každá funkce v systému by tedy měla být zdrojem alespoň jednoho dokumentu. Zdrojem každého dokumentu musí být právě jen jedna funkce.

Navazujícím krokem popisu systému je analýza struktury dat včetně podrobné datové analýzy. V diagramu informačních toků jsme zatím jednotlivé informace předávané mezi funkcemi pouze pojmenovali s tím, že jsou to určité soubory dokumentů. Ty jsou dále členěny na elementární dokumenty, tj. v názvosloví použité metody na datové prvky. Opět musíme přihlédnout k tomu, že v našem případě je důležitým hlediskem popisu určení a objektivní doložení zodpovědnosti za jednotlivé činnosti. Proto za elementární dokument považujeme ten, jehož obsah je výhradním produktem jedné elementární funkce a tedy v souladu s tím, co bylo uvedeno výše, jednoho konkrétního pracovníka. To tedy znamená, že v mnoha případech nelze za elementární dokumenty považovat jednotlivé fyzicky existující dokumenty jako celky, ale často to jsou jen části těchto dokumentů. Z těchto důvodů budeme označovat elementární dokument splňující výše uvedené požadavky jako elementární dokumentovou jednotku, ať již se jedná o dokument nebo pouze jeho část.

Formou popisu souboru dokumentů (datových struktur) jsou hierarchické stromové diagramy. Každému listovému prvku těchto datových struktur reprezentujícímu elementární dokumentovou jednotku musíme přiřadit datový element. Vlastnosti datových elementů zachytíme v rámci tzv. datového slovníku, kde každému elementu můžeme přiřadit řadu atributů, které jej blíže specifikují (vzorový formulář, doba a místo archivace). Zatímco prvky datových struktur vyjadřují obsah předávané informace, datové elementy její konkrétní formu (Potvrzení o odeslání x Záznam v knize odeslané pošty).

Při práci s prvky datového slovníku lze využít systémem case/4/0 nabízený mechanismus generalizace, který umožňuje prvky hierarchicky strukturovat, tzn. určitému elementu přiřadit jiný hierarchicky nadřazený element, a zároveň přenášet hodnoty vybraných atributů z nadřazeného elementu na podřízené. V popisované aplikaci lze princip generalizace využít například k zachycení výše uvedené skutečnosti, kdy jeden fyzicky existující dokument bývá často složen z více částí. Rovněž možnost přenosu hodnot vybraných atributů lze s výhodou použít pro sdílení informací o společných vlastnostech nadřazených a podřízených elementů (vzorový formulář, doba a místo archivace). Tyto sdílené informace pak musí být aktualizovány pouze u elementů nejvyšší hierarchické úrovně.

V následujícím bude na části projektu ukázána vlastní realizace popsané metodiky v integrovaném CASE systému case/4/0.

Hierarchická funkční struktura je znázorněna pomocí stromového diagramu. Z důvodu přehlednosti diagramu funkční struktury, ale především navazujícího diagramu informačních toků, bychom měli dodržet pravidlo omezeného počtu funkcí ve skupině.

Obr. 1. Funkční struktura Zpracování objednávky

Na následujícím obrázku je znázorněn diagram informačních toků odpovídající výše uvedené části funkční struktury činností. Zachycuje výměnu informací mezi elementárními funkcemi náležejícími do hierarchicky nadřazeného funkčního celku Zpracování objednávky.

Obr. 2. Informační toky Zpracování objednávky

Informace předávané mezi prvky diagramu informačních toků se detailně popisují v rámci analýzy struktury dat a v navazující podrobné datové analýzy. Příklad popisu struktury dokumentace je uveden v následujících diagramech. Prodejní smlouva schválená se sestává z vlastní prodejní smlouvy, za jejíž tvorbu je zodpovědná elementární funkce Vypracování prodejní smlouvy, a schválení, které je v kompetenci elementární funkce Schválení prodejní smlouvy. Z výpisu přiřazených datových elementů je patrné, že informace o schválení prodejní smlouvy je fyzicky uložena v průvodním listu prodejní smlouvy a má formu data a podpisu.

Obr. 3. Datová struktura Prodejní smlouva schválená

Výpis prvků datové struktury Prodejní smlouva schválená

Schválení prodejní smlouvy

Datový element: Prodejní smlouva - Schválení Typ: DATUM A PODPIS

Prodejní smlouva

Part: Prodejní smlouva

Výpis datových elementů v datovém slovníku (hierarchické zobrazení)

+ Prodejní smlouva - Průvodní list

Výše uvedený postup tvorby konzistentního modelu firmy plně vyhovuje potřebám zachycení vlastností podstatných pro dodržení požadavků souboru norem ISO 9000 a znamená výrazný pokrok ve srovnání s grafickými metodami používanými většinou poradenských firem.

Oproti klasickému “nesystémovému” přístupu poskytuje CASE systém mnoho prostředků k tomu, jak při popisu činností zabránit vzniku systémových chyb (kontrola součinnosti jednotlivých subsystémů) nebo jak snadno odhalit chyby aplikační (křížová kontrola elementárních funkcí a elementárních dokumentových jednotek).

Všechny údaje o modelu, které jsou uloženy v CASE systému prostřednictvím jednotlivých diagramů a dalších údajů, můžeme dále využít k automatickému nebo poloautomatickému zpracování. Prostředkem, který nám CASE systém k tomu poskytuje jsou tzv. vyhodnocovací funkce, které zpřístupňují informace o analyzovaném systému uložené v bázi dat.

Hlavním výstupem zde popisované aplikace je generování technicko-organizačních směrnic pro jednotlivé subsystémy zajištění kvality. Jádro této směrnice sestává především z postupového diagramu (diagramu informačních toků) příslušného úseku činností firmy doplněného slovním popisem jednotlivých funkcí a specifikací funkční zodpovědnosti. Tyto směrnice lze pomocí vyhodnocovacích funkcí generovat z CASE systému zcela automaticky.

CASE systémy nejsou jediným nástrojem, na kterém lze založit praktické uplatnění metod systémové analýzy. Jiným příkladem mohou být počítačové systémy pro podporu řízení činností. Tyto nástroje Jsou známy pod označením “workflow”. Mohou být výhodně použity všude tam, kde se v pracovním procesu uplatňují počítače tím, že slouží jako nástroje vytváření produktů uplatňujících se ve výrobním procesu. Mohou to být různé textové dokumenty, výkresy, schémata, plánovací dokumenty a pod.

Takovýto pracovní proces může být rozdělen do jednotlivých činností, které vytvářejí, zpracovávají a používají jednotlivé produkty v součinnosti s ostatními činnostmi. Takovýto proces lze dokonale popsat osvědčenou metodou informačních toků. Ta umožňuje graficky přehledně zachytit souvislosti jednotlivých činností a současně definovat jednotlivé produkty, které se pracovním procesem pohybují. Takto vzniklý popis struktury činností se přenese do nástroje typu “workflow”, jehož úkolem je sledovat tok produktů pracovním procesem, zaznamenávat stavy jednotlivých produktů, shromažďovat informace o postupu prací a zajišťovat dodržení závazného pracovního postupu.

Z uvedeného je zřejmá možnost vhodné aplikace tohoto nástroje v návaznosti na analýzu podnikových procesů provedených pomocí CASE systému. Využití nástrojů typu “workflow” by pak spočívalo ve vlastní realizaci informačních vazeb zachycených v modelu a v jejich řízení.

Závěr

Pronikání metod a nástrojů, o kterých jsme se v tomto příspěvku zmínili, do praxe není bez problémů. Jedním z nich je nízká úroveň znalostí metod systémové analýzy. Ta ve spojení s nízkou úrovní osvojení počítačové techniky, pochopitelnou u starších pracovníků, je příčinou pomalého rozšiřování nových progresívních metod do praxe.

Jestliže například strukturované CASE systémy je schopna samostatně a efektivně využívat pouze část koncových uživatelů, u CASE systémů založených na OO metodách se tento okruh ještě zúží. To však otevírá prostor pro vývojová pracoviště, mezistupeň mezi tvůrci CASE systémů a jejich koncovými uživateli, která budou vytvářet analytické nástroje přizpůsobené specifickým požadavkům koncových uživatelů. Domníváme se, že by se tímto mezistupněm mohli stát právě absolventi oborů se zaměřením na automatizaci, kybernetiku apod. Z hlediska trendů budoucího vývoje by bylo tedy velmi potřebné věnovat v přípravě mladých odborníků tomuto tématu náležitou pozornost.

Literatura

CENDELÍN, J. Programové prostředky pro návrh a realizaci průmyslových informačních a řídicích systémů. Automatizace, 38 (1995), č. 4, s. 103 - 108.

CENDELÍN, J. Analýza struktury a činností firmy z hlediska řízení jakosti. Automatizace, 41 (1998), č. 1, s. 319 - 323.

CENDELÍN, J. Novinka v počítačové podpoře projektování. Automatizace, 40 (1997), č. 5, s. 260 - 261.