|
ACTOR versus BPM
Ilja Kraval, 2.2.2004 Při tvorbě informačních
systémů (IS) hraje nezastupitelnou roli USE CASE MODEL (model případů užití).
Díky tvorbě tohoto modelu se nejen výrazně ztransparentní vývoj IS, ale díky
tomuto modelu (pokud je tvořen správně, rychle a podle šablon) je možné
efektivně tvořit další důležité dokumenty projektu, které by jinak vznikaly „z
čisté vody“, tedy opakovaně. Tvorba USE CASE MODELU, která se jeví na první
pohled jako „práce navíc“ takto paradoxně šetří práci. Další dokumenty nutné
pro projekt, jako jsou např.:
vznikají z tohoto
dokumentu jednoduchými úpravami. Pro získání těchto dokumentů stačí export
z CASE nástroje a následná úprava dokumentu v RTF nebo HTML formátu.
Vedoucí projektu má takto k dispozici nejenom dokument, který mu slouží
k přehledu nad projektem, ale slouží také jako zdroj pro vznik dalších
dokumentů nezbytných pro projekt. (blíže viz například produkt EFEM UC MODELING
na tomto serveru) Při tvorbě USE CASE MODELU
vzniká vcelku logická otázka, jak nalézt všechny prvky USE CASE a na žádný
přitom nezapomenout. Pokud je systém jenom trochu složitější, nelze nalézt
všechny případy užití výčtem. Vyvstává tedy otázka systematického postupu
vyhledávání všech případů užití (všech funkcionalit systému). V metodikách, které se
zabývají postupy tvorby informačních systémů, lze u tvorby modelů typu USE CASE
(modely případů užití) vypozorovat dva základní přístupy pro vyhledávání
případů užití. Přístup přes prvky ACTOR V prvním z těchto
přístupů, označme jej jako „přístup přes prvky typu ACTOR (aktér)“ hraje
důležitou roli právě prvek okolí, tj. prvek ACTOR. V tomto postupu se
vyhledávají prvky okolí (prvky ACTOR) a na základě těchto prvků se poté určuje
funkcionalita systému. Úvaha zní vcelku logicky: Kdo nebo co všechno
musí komunikovat se systémem a proč? Následuje výčet funkcionalit, které tento
prvek potřebuje od systému. V tomto případě je význam prvků ACTOR velmi
důležitý. Chybné určení prvků ACTOR nebo dokonce jejich vynechání vede
k chybám v modelu případů užití. Přístup přes BPM Druhý možný postup se obrací
na modelování procesů podniku (tzv. BUSINESS PROCESS MODELING neboli BPM). Při
tomto přístupu se jako první nevyhledávají prvky okolí (prvky ACTOR), ale
procesy podniku, které budou podporovány systémem. Přístup je od předešlého
velmi odlišný: Ve chvíli tvorby modelu procesů podniku není až tak zajímavé
„kdo“ je onen objekt z okolí, který komunikuje se systémem, ale „co se
děje v okolí“, že je třeba systém třeba použít. Tímto způsobem lze získat
(pomocí rozkladu procesů apod.) systematický výčet všech procesů podniku a
následně také případy užití systému. Tento postup převzala a využívá také
technologie EFEM UC MODELING
(viz nabídka tohoto serveru). Prvek ACTOR vstupuje do hry až po tomto vyhledání
procesů a případů užití a slouží ke třem účelům:
Porovnání obou přístupů Zkušenost ukazuje, že druhý
způsob, tj. postup vyhledání prvků USE CASE přes BPM, je mnohem schůdnější,
efektivnější a méně chybový. Hlavní důvody jsou tyto: Znázornění prvků ACTOR
narušuje základní princip anonymity klienta systému. Pokud navrhujeme systém,
nevíme, kdo „je na druhé straně“, tj. mimo systém. Snaha o specifikaci prvků
ACTOR vede k neplodným diskusím, kdo je vlastně za klávesnicí. (jak pro
programátora nezajímavé, kdo program vlastně používá!). Pokud si klient zakládá
účet na pobočce banky, a nalezne se prvek USE CASE s názvem „Založení
běžného účtu klientovi na přepážce banky“, tak kdo je vlastně prvkem ACTOR?
Klient nebo Obsluha? Jinak řečeno, který z těchto dvou obrázků
a následující
je vlastně správně? Zažil jsem podobnou situaci:
Tým se v diskusi rozdělil na dva nesmiřitelné tábory. Jedni argumentují:
Přece nebudete tvrdit, že klient přeskočí přepážku, odstrčí obsluhu a naťuká si
to sám? Druzí naopak tvrdí: Prvkem ACTOR je Klient a ta vaše odstrčená Obsluha
je jenom prostředník! Ta přece nic do systému nepřináší, ona pouze
zprostředkuje. To už tam můžete dát taky klávesnici a monitor, protože ona ta
Obsluha jinou funkci nemá! A navíc, přece nebudete tvrdit, že tento případ
užití je tu pro Obsluhu! Případ užití je pro Klienta, jak je již patrné
v názvu případu užití. Jemu přináší užitek, Obsluha by se na to nejraději
vykašlala, kdyby mohla… A kdo má pravdu? Diskuse tohoto typu jsou neplodné a
zbytečné, protože z hlediska návrhu samotného případu užití a jeho scénáře jsou tyto věci
nezajímavé. Práce s prvky ACTOR
vede k častým chybám také při určení, kdo všechno vlastně komunikuje
s prvkem případu užití s následnou záměnou pojmu Role z přístupových
práv. Vezměme takovýto příklad: V knihovně existuje evidenční systém, který
umožňuje, aby se čtenář přes intranet dozvěděl, zda je hledaná kniha
k dispozici a kde se nachází. Nalezneme tyto prvky okolí: Knihovník,
Administrátor a Čtenář. Mějme případ užití Prohlížení titulů knihovny. Kdo
všechno je prvkem okolí? Následující úvaha je chybná: Všichni tři mohou
prohlížet tituly, takže se chybně namaluje následující obrázek:
Pokud autor namaluje
předešlý obrázek, vyjádřil tím úplně jinou skutečnost, než jakou původně
zamýšlel: V probíhajícím scénáři případu užití „Prohlížení titulů
knihovny“ existují tři použité kanály (interfacy), jeden v kontextu
Knihovníka, druhý v kontextu Čtenáře, třetí v kontextu
Administrátora. V daném scénáři „Prohlížení“ by každý z nich musel do
scénáře něčím přispět, což není pravda. Designér při pohledu na tento obrázek
usuzuje, že v daném scénáři budou existovat tři komunikace (kontexty
přístupu k systému). V tomto případě pro tento případ užití by bylo vhodné
zvolit buď „neutrální“ název Obsluha anebo zvolit pouze prvek Čtenář.
V druhém případě nastává drobný problém: Neznalým problematiky je třeba
vysvětlit, že ten, kdo si prohlíží tituly, není ani Administrátor, ani
Knihovník, ale je to ten, kdo vstupuje do prvku ACTOR Čtenář. Název Obsluha je
v tomto případě méně kolizní a proto lepší. Na druhou stranu se může
stát, že daný prvek USE CASE vskutku interaguje hned s několika prvky
ACTOR a nejedná se o chybu. Například v procesu podniku bankovní služby
typu GSM nalezneme následující popisu : „Klient GSM pošle zprávu do banky, ta
se vyhodnotí v bankovním informačním systému a odpověd se pošle buď zpátky
klientovi anebo na fax nebo e-mail“. Odpovídající část modelu pro případ užití
zpracování služby pak vypadat takto:
obrázek 1 Prvky ACTOR správně identifikují interfacy Na předešlém obrázku je
zřetelně vidět, jaké vstupy a výstupy se budou řešit, jsou to průsečíky
interakcí v bodech BOUNDARY s interakcí USE. Nalezly se tři problémy
interfaců k řešení, které se skutečně musely řešit až do kódu (práce
s modemem GSM, vstupní kanál banky, emailový a faxový klient) Nejpádnější důvod pro to,
aby se pro počáteční vyhledání případů užití používaly zásadně procesy podniku,
je následující: Pokud nalezneme prvek ACTOR jako prvek okolí, stejně je tento
prvek pro nás synonymem činností, tj. procesů v okolí. Vysvětleme si to na
předešlém příkladu, kde byl nalezen prvek ACTOR Knihovník. Ale stačí nám to, že
jsme nalezli prvek Knihovník? Stejně se nakonec ptáme, a co to vlastně znamená,
že jsme nalezli Knihovníka, tedy ptáme se, co vlastně knihovník dělá? Je to ten,
kdo zavádí nové knihy, eviduje čtenáře, rozesílá upomínky atd. Tedy lze říci,
že prvek ACTOR je objekt z okolí systému, který je účasten v procesu
podniku, „personifikuje“ jej, je jeho nositelem a proto nalezení procesu (zatím
bez prvku ACTOR) je mnohem důležitější, protože tento proces podniku určuje
kontext užití systému přesně a bez diskusí ohledně názvu a významu prvku ACTOR
(tj. odpadá otázka „kdo to vlastně je ten na druhé straně mimo systém“). Samozřejmě to neznamená, že
se vyhledávání prvků ACTOR vyhneme. Pouze je jim dána jiná pozice v tvorbě
USE CASE MODELU než u prvního přístupu. Závěrem lze konstatovat, že
postup vyhledání prvků USE CASE přes prvky ACTOR je pracnější, více chybové a
méně efektivní s mnoha neplodnými diskusemi. Mnohem snazší je vyhledávát případy užití přes procesy podniku. Doporučený postup práce
s prvky ACTOR je na základě praxe následující:
|