O JEDNÉ ČASTÉ CHYBĚ PŘI ROZKLADU PROCESŮ PODNIKU ANEB KDY MÁME UKONČIT ROZKLAD PROCESŮ PODNIKU?



Podobné dokumenty
Jak správně psát scénáře k případům užití?

Třetí část odpovědi na mail ohledně zpracování případů užití, aneb jak je to s číslováním pořadí případů užití

Šumperský efekt rozmnožení případů užití

VYHLEDÁVÁNÍ PRVKŮ ACTOR A PROCESNÍ MODELOVÁNÍ

ROZDÍL MEZI VZTAHEM EXTEND A INCLUDE V USE CASE DIAGRAMECH

NAUČTE SE MALOVAT SI INSTANCE!

Druhá část odpovědi na mail ohledně zpracování případů užití

Čtvrtá část odpovědi aneb jak je to vlastně s interakcí <<include>>

S KONFIGURACÍ POVOLENÝCH KOMBINACÍ DĚDICŮ

JEDNODUCHÁ A PRAKTICKÁ METODA ODHADU PRACNOSTI PROJEKTU (S UTILITOU KE STAŽENÍ ZDARMA)

Úvod do principů objektově orientovaného programování

Odpověď na dotaz ohledně asociační třídy v modelu měření

O JEDNÉ ZÁLUDNOSTI INTERAKCE «INCLUDE» V MODELU PŘÍPADŮ UŽITÍ

Proč je analytický model IS nutným předpokladem pro zabránění tvorbě molochálních systémů

Pokročilé typové úlohy a scénáře 2006 UOMO 71

JE TŘEBA DBÁT NA ANONYMITU KLIENTA NEBO NE?

Případy užití (use case) Projektování SW systémů

Problémové domény a jejich charakteristiky

Objektová tvorba SW, Analýza požadavků 2006 UOMO 53

Business Process Modeling Notation

Vývoj IS - strukturované paradigma II

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

dokumentu, respektive oddílu (více o oddílech v další kapitole). Nemůžeme

Metodika analýzy. Příloha č. 1

Základní informace. Modelování. Notace

Základy analýzy. autor. Jan Novotný února 2007

Příspěvkové organizace PAP (pomocný analytický přehled)

INFORMAČNÍ SYSTÉMY (IS) Ing. Pavel Náplava Katedra počítačů K336, ČVUT FEL Praha 2004/2005

Jedna z velmi častých a závažných chyb při návrhu IS aneb jak vznikají tzv. molochální systémy

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

PŘEHLED FUNKCÍ PROGRAMU KROK ZA KROKEM

Analýza a návrh webových aplikací I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

WinFAS. informace. Doprovodná příručka ke školení Základy ovládání IS WinFAS

Vyhrávejte bez boje nad legislativními změnami

Obsah. Zpracoval:

Unifikovaný modelovací jazyk UML

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová

Modelování procesů (2) Procesní řízení 1

Vztah typu Extend v UML a jeho zvláštnosti

Vlastnosti dokumentu/stránky

JčU - Cvičení z matematiky pro zemědělské obory (doc. RNDr. Nýdl, CSc & spol.) Minitest MT4

PŘÍLOHA C Požadavky na Dokumentaci

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

Manuál k ovládání aplikace INFOwin.

Problém identity instancí asociačních tříd

Obsah. 1.1 Práce se záznamy Stránka Dnes Kontakt se zákazníkem... 5

OPS Paralelní systémy, seznam pojmů, klasifikace

StatSoft Odkud tak asi je?

OOT Objektově orientované technologie

Modul Intrastat.

OOT Objektově orientované technologie

Allegro fakturace. Schéma fakturačního modulu. Podstatné vlastnosti. Allegro Business Solution Fakturace

Modelování procesů s využitím MS Visio.

Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová

7.6 Další diagramy UML

VYHLEDÁVÁNÍ PRVKŮ ACTOR A PROCESNÍ MODELOVÁNÍ

Start Trh Spotřebitel Nápad Koncept Hodnocení. Kdo jsou cíloví spotřebitelé konceptu?

JRV.CZ s.r.o. Bulharská Brno RosaData. Pohledávky

7.6 Další diagramy UML

Rady pro tvorbu USE CASE MODELU, rada první: Jak pracovat s pojmy ve scénářích UC

WinFAS. 3 účto. Praktický úvod do WinFASu Banka

OBSAH. 48 Příručka ON-LINE KUPEG úvěrová pojišťovna, a.s.

Testování operačního systému Windows Phone 8

Návod pro uživatele ISIS

TAOS321. Administrace. příručka správce systému. informační terminál systému JSVV

Návrh IS - UML. Jaroslav Žáček

Kurz Postupy návrhu IS pomocí UML a OOP (5 dnů, in-house)

2.7.6 Rovnice vyšších řádů

StatSoft Jak vyzrát na datum

Jak funguje element deep history v UML

8.2 Používání a tvorba databází

2.7.6 Rovnice vyšších řádů

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

Modelování požadavků

Pokyny pro vypracování maturitního projektu

1. Podmínky chodu aplikace

Nastavení provozního prostředí webového prohlížeče pro aplikaci

Algoritmizace. 1. Úvod. Algoritmus

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Návrh softwarových systémů - architektura softwarových systémů

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

Helios RED a Elektronická evidence tržeb (Helios RED verze 10)

Spuštění a ukončení databázové aplikace Access

+ 2 = 1 pomocí metody dělení definičního oboru. ( )

Komputerizace problémových domén

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

Jazykové okénko ČT 1 str. 1 07:50 Rubrika dne - Ostrava

( ) ( ) Rozklad mnohočlenů na součin I (vytýkání) Předpoklady:

Soustavy dvou lineárních rovnic o dvou neznámých I

Questionnaire příručka uživatele

Rizikové procesy. 1. Spuštění modulu Rizikové procesy. 2. Popis prostředí a ovládacích prvků modulu Rizikové procesy

Mobile Enterprise jak vypadá ideální mobilní řešení pro obchodníky? - idnes.cz

Algoritmizace- úvod. Ing. Tomáš Otáhal

Uživatelská příručka

Jazz pro Účetní (import) Příručka uživatele

Práce se styly 1. Styl

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

Databázové patterny. MI-DSP 2013/14 RNDr. Ondřej Zýka,

Transkript:

O JEDNÉ ČASTÉ CHYBĚ PŘI ROZKLADU PROCESŮ PODNIKU ANEB KDY MÁME UKONČIT ROZKLAD PROCESŮ PODNIKU? RNDr. Ilja Kraval, říjen 2008 http://www.objects.cz AKTÉROVÁ ŠKOLA Jak známo, informační systémy obsahují řádově stovky až tisíce případů užití. Z toho důvodu při tvorbě Use Case Diagramu musí analytik řešit tyto zásadní otázky: Jak tyto případy užití nalézat systematicky? Jak postupovat, abychom nějaký neopomněli? Existuje jedna klasická metodika vyhledávání případů užití, nazvěme ji pracovně aktérová škola, která byla preferovaná hlavně v období zrodu UML,tj. ve druhé polovině 90.let minulého století. Aktérová škola přistupuje k řešení problému nalézání případů užití pomocí jednoduchého pravidla: Najdi nejprve prvky z okolí systému (tzv. aktéry neboli prvky typu Actor), které budou potřebovat systém, případně najdi ty prvky z okolí, které budou komunikovat se systémem, resp. ty prvky z okolí, kterým bude systém předávat informace. Až nějaký takový prvek (neboli prvek typu Actor) z okolí najdeš, zeptej se, proč a nač aktér tento systém potřebuje, resp. jak jej použije, resp. jak komunikuje. Tímto najdeš případy užití. Bohužel tato metodika se ukázala jako nikoliv stoprocentně účinná. Mnohdy vede ke zdlouhavým a zbytečným diskusím nad názvy aktérů. Navíc díky soustředění se na aktéry spousta případů užití zůstane nepovšimnuta. Mnohdy dojde k chybnému určení počtu aktérů, které komunikují s daným případem užití, tj. nastává chybný jev, kdy počet logických rozhraní nesedí s počtem aktérů u daného případu užití. Je třeba podotknout, že aktérová škola se vcelku dobře osvědčila u technologických systémů (jako je například hlásič požáru, řídící modul výtahů v mrakodrapu, komunikační modul apod.). Jedná se o systémy s nikoliv složitými procesy v okolí a s relativně malým počtem případů užití (řádově desítky). Tyto systémy nebývají většinou složité procesně, ale po technologické stránce (například je k dispozici málo fyzické paměti nebo aplikace musí pracovat ve vícero vláknech, zpracovávat signály apod.). U těchto systémů odpadá i velmi nepříjemná diskuse ohledně pojmenování aktérů, protože s výjimkou nějaké nepodstatné

strana 2 živé obsluhy ( ) jsou aktéry u technologického systému většinou externí software nebo hardware se specifickým rozhraním, které lze snadno pojmenovat. U informačních systémů, které jsou charakteristické právě vysokým stupněm složitosti chodu procesů okolo systému, však aktérová škola není stoprocentní a selhává. Je třeba podotknout, že i přes toto selhání stoprocentnosti není tato škola úplně zatracena jako nesmyslná. Stává se rozumným podpůrným (a tedy dodatečným doplňkovým) postupem u jiné školy, kterou budeme nazývat jako procesní škola (viz dále). Aktérová škola není plně zavržena a je využita v tom smyslu, že lepší procesní školu doplní svými již zmíněnými otázkami (tj. kdo použije systém? ). Navíc mnohdy získáme od zákazníka dokumenty, ve kterých se to hemží rolemi v podniku, jako jsou ředitel, manažer, obchodník, realitní makléř apod. Tyto role se stávají vstupními parametry zmíněných otázek kdo a proč používá systém?. Musíme však být u tohoto postupu s aktéry opatrní na jednu záludnost: Některé případy užití bývají shodné pro několik rolí v podniku, jinak řečeno mnohdy dva nalezené případy užití nakonec splývají v jeden případ užití pro dvě a více různých rolí v podniku. I když se jedná o jeden případ užití, je pak tendence hovořit o dvou případech pro dva aktéry. Anebo se v tomto případě provede jiný druh hrubé chyby: Určí se pro několik rolí v podniku správně jeden splývající případ užití, ale namalují se k němu dva a více aktérů, i když případ užití má pouze jednoho aktéra, což je opravdu hrubá chyba v modelu případu užití. Nakonec ještě jedna poznámka: Existuje typ softwaru, kde nemusíme používat žádnou zvláštní školu pro vyhledávání případů užití a vystačíme si pouze s dobrým logickým členěním případů užití do prvků typu Package, což u tohoto software dostačuje a samo o sobě vede k systematičnosti. Jedná se software typu desktop aplikace, jako je například editor, tabulkový procesor (Word, Excel apod.) s jedním uživatelem. Poznámka: Existuje veřejný projekt UML Open Source, kde si můžete prohlédnout UML model (případně i spolupracovat), blíže viz tato stránka. PROCESNÍ ŠKOLA Pro systematické vyhledávání případů užití se do popředí se v posledních letech dostala více škola tzv. procesního modelování (zkratka BPM = Business Process Modeling) ve svých různých klonech a variantách, např. BPMN, Eriksson-Penker aj. Podstata procesní školy pro vyhledávání případů užití je sice podobná, ale trochu jiná, než u aktérové školy. Její návod zní velmi podobně: Najdi všechny činnosti neboli procesy strana 2

strana 3 podniku v okolí takové, které vedou k použití systému, následně tak najdeš případy užití vyvolané z těchto procesů podniku. Jak vidět, základní otázkou není kdo použije systém, ale co se děje okolo systému takového, že se použije systém. Tato škola má jednu velkou výhodu zejména pro zákazníka: Nemusí pracně přemýšlet nad tím, Kdo bude používat systém, ale otázka zní jednodušeji: Jak to děláte? Například pokud se budeme věnovat agendě zpracování úvěrů v bance, budeme si odpovídat na dotaz Jak chodí úvěry a nikoliv Kdo s nimi pracuje. Jak vidět, první otázka je pro vyhledávání případů užití mnohem cílevědomější! Jak však bylo řečeno, procesní škola může být doplněna také navíc otázkou z aktérové školy ve smyslu kdo potřebuje systém, ale to slouží spíše pro kontrolu a revizi již nalezených případů užití při již nalezených procesech (například a co uklízečka, ta nebude pracovat s agendou úvěrů? ). Procesní škola nalézání případů užití má několik nesporných výhod: umožňuje popsat chod procesů (například jak chodí úvěry ) umožňuje systematický rozklad procesů a tím dát řád mezi případy užití zákazníkovi je tato škola velmi dobře srozumitelná, zákazníkem bývají modely procesů podniku s případy užití přímo vyžadovány jako součást projektové dokumentace Nakonec ještě jedna důležitá poznámka: Jak vyplývá z účelu zavedení procesní školy, tedy k čemu vlastně slouží (nezapomeňme, že hledáme případy užití informačního systému!), tak je potom zřejmé, že procesní model popisuje chod podniku s novým vyvíjeným systémem a nikoliv chod podniku dnešní ještě bez navrhovaného systému. Velmi častou otázkou při školeních bývá dotaz: A máme modelovat i současný stav nebo ne? Odpověď z praxe je opravdu čistě praktická: Pokud se po vás současný model podniku vyžaduje (a zákazník jej zaplatí), pak jej musíte vyhotovit, tj. model současného chodu podniku se stává součástí dokumentace projektu stejně jako chod procesů s novým systémem. Pokud se výstupy současného stavu podniku přímo nevyžadují a nemusíte odevzdávat formalizovaný model současného stavu, pak to ještě neznamená, že se mu nebudete věnovat! Je vhodné si se zákazníkem pohovořit o současném stavu, tedy o současném chodu podniku se současným informačním systémem, a tyto poznatky si nějak zapsat jako cenný zdroj informace. Pokud se však nevyžaduje výstup, nemusíte být však při zápisu až tak formální (například nemusíte malovat diagramy), stačí pouze textový tvar zápisu. Pokud se i tak vedoucí projektu rozhodne, že součástí projektu bude procesní model stávajícího stavu, aniž by to zákazník požadoval, jedná se v tom případě o ekonomickou stránku a možnosti zdrojů projektu (tj. o otázku, kdo to zaplatí a kdo to udělá). strana 3

strana 4 ROZKLAD PROCESŮ Je zřejmé, že pokud nalezneme pro každý případ užití jeden proces podniku, ze kterého dojde k použití systému, tak logicky vzato najdeme tolik procesů, kolik je případů užití, což je samozřejmě opět velké množství. Velkou výhodou procesní školy je systematičnost daná možností rozkladu procesů a to nám umožňuje následně uspořádat systematicky i případy užití. Základní myšlenka je jednoduchá: Procesy (neboli prvky typu Activity v UML se stereotypem <<business process>>) umějí tak zvaný rozklad procesů neboli aktivit. Znamená to, že v rozkladu procesů existují vyšší procesy, které se skládají z nižších procesů. Laik rozumí tomuto skládání (nebo naopak rozkladu směrem dolů) procesů velmi dobře a intuitivně jej chápe opravdu správně. Například když se bavíme se zákazníkem o tom, jak vypadá proces podniku Fakturace v podniku, bude pro něj opravdu srozumitelná tato jednoduchá věta: Proces Fakturace se skládá z procesů Založení faktury, Editace faktury, Odsouhlasení faktury atd. Všimněme si, že vyšší proces Fakturace je v tomto případě složen z nižších procesů Založení faktury, Editace faktury, Odsouhlasení faktury atd. Díky této vlastnosti procesů skládat se můžeme zavést systematičnost rozkladu všech procesů podniku. Zavedeme vrchní top proces a dáme mu název IS. Chápeme jej jako proces podniku zahrnující všechny procesy podniku podporované IS. Následuje rozklad odshora dolů na první úrovni rozložíme proces ještě dost nahrubo (například Evidence subjektů, Účetnictví, Skladové hospodářství atd.). Další rozklad zjemní další procesy atd. Takovouto dekompozici odshora dolů můžeme chápat jako rozdělení na oblasti řešení daného IS podobně jako zoom u lupy: Nejprve vidíme oblasti řešení nahrubo a postupně pohled zjemňujeme. Tento rozklad procesů nebo také oblastí řešení znázorníme graficky, přičemž pro zákazníka je nejlépe odevzdat jej ve formě stromu a nazvat jej oblasti řešení IS. Asi není třeba zdůrazňovat, že zákazník tento strom vidí velice rád, protože mu dává dobrý přehled o funkcionalitách IS, a to opravdu velmi přehledně a názorně. Poznámka: Zde poskytujeme pouze zkrácený popis celé problematiky za účelem tohoto článku, procesnímu modelování a práci s případy užití je ve Školení OOP a UML věnováno celé jedno odpoledne včetně doporučených postupů v EA, tipů, triků a rad... strana 4

strana 5 UKONČENÍ ROZKLADU PROCESŮ Velkou výhodou rozkladu je mimo jiné to, že procesy lze dolů libovolně rozkládat a to stále níže a níže... To je sice pěkné, ale kde máme tento postup korektně a správně ukončit? Jak poznáme, že jsme na konci rozkladu? V praxi a také při cvičeních na školeních jsem velmi často narazil na chybně vytvořený rozklad. Nejčastější chybou je neukončení rozkladu procesů podniku v ten moment, kde je třeba jej bezpodmínečně ukončit. Pokračování rozkladu procesů podniku za tento správný bod je totiž nejenom hrubou chybou, ale navíc totálně zmate zákazníka a také vývojáře! Abychom správně pochopili, kde nastal kýžený bod ukončení rozkladu procesů podniku, musíme se si nejprve odpovědět na otázku, proč vlastně hledáme procesy a proč provádíme rozklad procesů. Cíl je jasný: Hledáme případy užití a na to musíme mít fokus. Znamená to, že v okamžiku, kdy nalezneme proces podniku spouštějící případ užití, tak rozklad povinně končíme. Ano, to zní sice jednoduše, ale v praxi se to hůře hledá! Z toho důvodu, tj. abychom pochopili, kde končí rozklad, je třeba si opravdu velmi jasně vysvětlit, jak tento bod přesně vypadá, a potom jej můžeme opravdu přesně určit. Jak má tedy vypadat proces, který se již dále nedělí na sub-procesy, jak jej bezpečně poznáme? Je to takový proces, který spouští případ užití, tj. přímo v něm, v jeho scénáři se o tomto případu užití hovoří, že se daný případ užití použije, nebo jinak řečeno případ užití se zavolá a spustí. Znamená to, že logický scénář procesu podniku, který se dále nedělí, má toto schéma: Něco se děje venku, bla bla atd...., a dále se použije případ užití XY.... Toto schéma logiky scénáře chodu venku je signálem k ukončení rozkladu! Poznámka: Pokud najdeme v jednom procesu více zavolání případů užití, tak doporučuji tento proces ještě jednou rozložit tak, aby každý proces spouštěl právě jeden případ užití. Je to pouze postup pro lepší systematický přehled. Mnohdy pak bývají proces venku pouze malou obálkou zavolání případu užití, například obsluha potřebuje zaevidovat novou fyzickou osobu v systému apod. Je dobré si představit, že případ užití vypadá jako tlačítko na systému, které se nabízí ven k použití. Nápis na tomto tlačítku odpovídá vnějšímu pohledu na prvek v objektovém paradigmatu. Vnější proces venku provádí nějakou činnost, poté děj přistoupí k tomuto tlačítku a to se stiskne. Tam končí popis procesů, protože další rozklad by vedl k popisu chování systému a to je vnitřek (vnitřní pohled) na případ užití, neboli implementace jeho služby užitek případu užití. V tomto bodě tedy rozklad končíme. Této představě odpovídá následující obrázek: strana 5

strana 6 Schéma konce rozkladu procesů Koncový dále nedělený proces podniku X Use Case Y scénář procesu a použije se UC Y scénář případu užití Daná situace je velmi podobná popisu chodu funkcí. Představme si, že máme popsat chod funkce F1, která uvnitř sebe volá funkci F2. Začneme popisovat chod funkce F1 až dospějeme k bodu zavolání funkce F2. Popis chodu funkce F1 zde zastavíme (uvnitř funkce F1 nebudeme přece popisovat chod funkce F2, která je volána) a prostě napíšeme a zavolá se F2. Další popis chodu umístíme do funkce F2. A nyní si tento příklad převedeme na situaci procesu posledního procesu rozkladu (viz předešlý obrázek): Funkce F1 odpovídá procesu podniku X, funkce F2 odpovídá případu užití Y. Pokud bychom popisovali chod procesu na straně procesu (další rozklad) i v rámci zavolání případu užití, dopustili bychom se stejné chyby, jako kdybychom v chodu funkce F1 popisovali chod funkce F2. Tok děje u koncového procesu je tedy tento: Něco se děje venku, což popíšeme. V rámci tohoto děje se spustí případ užití. Popíšeme dále děj uvnitř případu užití. Vnější popis končí na stisknutí (zavolání, použití) případu užití informačního systému. Jako příklad hrubé chyby bych uvedl následující rozklad: Rozkladem procesů autor dospěl až k procesu Příjem konečné faktury k proplacení do podniku (úmyslně jsem tento proces podniku nazval dlouhým názvem, aby bylo patrné, co se v něm děje). Při určení chodu tohoto procesu měl autor správně zavolat případ užití Založení nové došlé konečné faktury v systému a scénář procesu mohl v té chvíli vypadat velmi jednoduše: strana 6

strana 7 Do podniku došla (například poštou) nová konečná faktura k proplacení od obchodního partnera. Obsluha tuto fakturu zadá do systému, viz případ užití Založení nové došlé konečné faktury v systému. Namísto toho autor chybně pokračuje v rozkladu na straně procesů, a vychází mu proto chybně rozklad na další sub-procesy procesu Příjem konečné faktury k proplacení a to ještě na straně BPM, tj. procesy jako Založení hlavičky faktury, Založení řádků atd. Samozřejmě, že to je špatně... V tomto případě je oprava chyby jednoduchá: Uvedený popis rozkladu za požadovaným bodem se přemístí z prostoru BPM do prostoru za hranice případu užití, tj. dovnitř systému, protože se jedná o jeho řešení (co dělá systém) a problém je vyřešen. Není bez zajímavosti, že pokud autor použije pro popis vnitřku chodu opět Activity diagram namísto slovního scénáře, tak potom vzniknou v projektu dva Activity diagramy: Jeden popisuje chod procesu podniku (mají stereotyp <<business process>). Jeho rozklad končí povinně spuštěním případu užití. Druhý Activity diagram popisuje vnitřek případu užití ( je jich tolik, kolik je případů užití a prvky typu Activity nemají stereotyp <<business process>>), ten začíná svůj chod právě spuštěním případu užití. Pozor, tyto dva diagramy nepatří do jednoho diagramu a tedy do jednoho rozkladu! Jsou to dva diagramy ve dvou oddělených prostorech. Jeden je venku a jeho pohled na systém končí spuštěním případu užití, druhý je uvnitř a popisuje, jak se chová případ užití uvnitř po spuštění! Oba diagramy propojuje bod spuštění případu užití. ZÁVĚR Při rozkladu procesů končíme rozklad okamžikem spuštění případu užití. Až v tomto případu užití (v jeho vnitřku) potom popisujeme další pokračující chod děje (buď slovním scénářem anebo pomocí Activity diagramu), tj. chod procesů na straně BPM již dále nedělíme. Až ve vnitřku případu užití popisujeme, co se děje jako implementaci logiky případu užití (tj. nikoliv na straně procesů podniku). Diskuse k článku viz Fórum Serveru objektových technologií. Konec článku strana 7