Difference between revisions 8650436 and 8650445 on cswiki

==Co je to BPMN?==
BPMN = Business Process Model and Notation; notace sloužící pro modelování procesů uvnitř organizace. Jde o standard pro modelování business procesů. Byl vyvinut skupinou OMG.
==K čemu slouží?==
Původně byl jazyk navržen jako vizuální modelovací nástroj pro popis procesů. Pro svou vyjadřovací sílu a přehlednost si jej brzy oblíbili nejenom analytici, ale i vývojáři a rozvinuli jeho možnosti tak, že v současnosti podporuje plnou automatizaci procesů, tzv. workflow management. V ideálním případě tak stejný procesní model používá management pro pohled na firmu a vlastníci procesů pro zlepšování procesů. BPMN zaplňuje mezeru mezi návrhem a implementací.
==Historie BPMN==
Specifikace BPMN 1.0 byla vyvinuta institutem BPMI (Business Process Management Institute). V květnu 2004 se BPMI sloučil s organizací OMG (Object Management Group ). V únoru 2006 bylo BPMN přijato jako standard organizace OMG. V červnu 2007 byla dokončena verze BPMN 1.1. O rok později v červnu 2008 byla vydána verze BPMN 1.2. Verze BPMN 2.0 byla dokončena v červnu 2010, jako oficiální specifikace byla vydána v lednu 2011.
==Prvky BPMN ==
Notace BPMN je založena na jednoduchých a srozumitelných principech pro vytváření modelů Business procesů.  Nicméně Business procesy jsou často velmi komplexní, proto vznikla malá skupina kategorii, tak aby to přehledné a rychlé. Tím vzniklo pět základních kategorií:
#Flow Objects 
#Data 
#Connecting Objects 
#Swimlanes 
#Artifacts
===Flow Objects ===
''Flow objects'' – jsou hlavním grafickými prvky, které definují chování Business procesů. Lze rozlišovat tři ''Flow objects'':
#Events - události
#Activities - aktivity
#Gateways - brány
===Data===
''Data'' – jsou reprezentovány čtyřmi prvky:
#Data Objects – datový objekt
#Data Inputs – Datový vstup 
#Data Outputs  - Datový výstup
#Data Stores – Datový sklad
===Connecting Objects – „spojovací“ objekty===
''Connecting Objects'' – slouží ke spojení ''Flow Objects'' mezi sebou nebo s další informací. Lze využít čtyř různých prvků:
#Sequence Flows – sekvenční toky
#Message Flows – tok zpráv
#Associations - asociace 
#Data Associations – datové asociace
===Swimmlanes – „plavecké dráhy“===
''Swimmlanes'' – slouží k rozlišení základních skupin prvků.
#Pools – bázeny
#Lanes – dráhy
===Artifacts - artefakty===
''Artifatcs'' – jsou používány pro znázornění dalších informací o procesu. Existují dva standardizované artefakty. Ale v modelovacích nástrojích si lze zdarma přidat těchto prvků kolik je potřeba. V této oblasti by mohlo být vyvíjeno další úsilí a v BPMN standardizovat větší počet artefaktů pro všeobecné užití. Současně lze rozlišit tyto artefakty:
*Group - skupiny
*Text Annotation – textové anotace
==Podrobný popis vybraných prvků BPMN==
{| class="wikitable"
|-
! Prvek !! Popis !! Notace
|-
| Event - událost ||
*reprezentují událost v procesu, která přímo ovlivňuje chod procesu
*dělí se na počáteční, průběžné a konečné průběžné události se vkládají mezi činnosti a mohou reprezentovat odpověď na událost (např. přijetí zprávy) nebo vytvoření události (např. odeslání zprávy)
*události mohou být také vloženy na hranici činností, pak signalizují nějakou událost, která se stala uvnitř činnosti (např. nastala chyba, časovače)
*jako události se smí používat jen ty události, které přímo ovlivňují tok či načasování aktivit procesu
||[[File:Událost.PNG|thumb|Notace prvku událost]]
|-
|Počáteční události ||typy počátečních událostí: 
*none (událost nastala v subprocesu, nebo není definována) - message  (proces startuje přijetí zprávy od nějakého účastníka)
*timer (proces spustí nějaká událost, která se pravidelně děje, např. každé pondělí v 8 hodin) 
*rule (proces se spustí, když se uplatní nějaké podnikatelské pravidlo)
*link (propojení procesů)
*signal (vysílán z jiného procesu) a multiple(několik cest, které spustí proces, pouze jedna je povinná)
||[[File:Událost.PNG|thumb|Notace prvku počáteční událost]]
|-
| Průběžné události || typy průběžných událostí: 
*message 
*rule 
*timer 
*signal 
*link 
*multiple
*error (vznikla chyba),
*compensation (náhrada, TBD),
*cancel (uživatel akci zrušil)
 || [[File:Prubez-udalost.PNG|thumb|Notace průběžné události]]
|-
|Konečné události || typy konečných událostí (reprezentují výsledek toku procesem):
*message 
*error 
*cancel
*compensation 
*link 
*multiple 
*terminate (všechny aktivity uvnitř procesu by měly být   okamžitě ukončeny)
 || [[Soubor:kFile:Konec-udalost.pngPNG|thumb|Notace konečné události]]
|-
| Activity - činnosti|| 
*reprezentují činnost, která má být vykonána uvnitř procesu
* konvence pro pojemenování: sloveso + pods. jméno, např. „Vytvořit Objednávku“
* pro zlepšení čitelnosti se doporučuje každé první písmeno slova psát velkým písmenem (platí i pro ostatní objekty, nikoliv jen činnosti)
*činnosti se dále dělí na Task (úkol) a Sub-process - úkoly jsou jsou co se týče modelování BPMN atomické, již se dále nerozkreslují, naopak subprocess je jen vložený proces
* subprocess pak může být ještě dvojího druhu: Embedded (vložený, je rozkreslen přímo v daném procesním diagramu) a Independent (nezávislý, pak je vložen jen jako odkaz k jinému subprocesu)
 || [[Soubor:cinnost.png]]
|-
| Text buňky || Text buňky || Text buňky
|-
| Text buňky || Text buňky || Text buňky
|-
| Text buňky || Text buňky || Text buňky
|-
| Text buňky || Text buňky || Text buňky
|-
| Text buňky || Text buňky || Text buňky
|-
| Text buňky || Text buňky || Text buňky
|-
| Text buňky || Text buňky || Text buňky
|-
| Text buňky || Text buňky || Text buňky
|-
| Text buňky || Text buňky || Text buňky
|-
| Text buňky || Text buňky || Text buňky
|}

==Příklad užití BPMN==
===Popis procesu===

Procesní diagram začíná u zákazníka, který dostal chuť na pizzu. Zákazník si vybral pizzu a telefonicky si ji objednal. Po té zákazník čeká na pizzu, až bude dodána. Žlutý kosočtverec se pětiúhelníkem uvnitř dvojitého kruhu znázorňuje tzv. bránu nebo také rozhodovací krok řízený událostí, tzn., že se pokračuje tehdy, když nastane jedna ze dvou událostí následujících po tomto rozhodovacím kroku. 
#Pizza je doručena
#Zákazník čeká na pizzu po dobu 60 minut, po uplynutí této doby vznese dotaz na výrobce pizzy, zda je pizza již hotová. Výrobce pizzy slíbí, že pizza bude doručena brzy a zákazník čeká na pizzu znovu. Po dalších 60 minutách zákazník volá znovu a čeká dalších 60 minut atd…

Z pohledu výrobce pizzy proces začíná přijetím objednávky od zákazníka, přičemž slíbí, co nejrychlejší dodávku pizzy. Objednávku předá kuchaři a současně musí být připraven odpovědět na dotazy zákazníka, což je znázorněno žlutým rozhodovacím krokem se symbolem „+“, který znázorňuje paralelní kroky následující po přijetí objednávky. Následuje upečení pizzy kuchařem a předání k dodávce poslíčkem. Poslíček dodá pizzu a převezme platbu za pizzu a vydá účtenku. Tím je z hlediska výrobce pizzy objednávka ukončena. Zákazník již pouze převezme pizzu a sní ji. Tím je proces ukončen i z pohledu zákazníka.
V tomto příkladu užíváme zprávy (message) nejenom jako informační objekty, typu objednejte pizzu, ale také i pro fyzické objekty jako jsou pizza nebo peníze. Toto lze provést, protože tyto fyzické objekty jsou ze své podstaty informačními objekty: Když je pizza doručena k zákazníkovým dveřím, zákazník pozná, že pizza byla doručena, což je přesně účelem této zprávy (message) v zákazníkově bazénu (pool).
Komunikace je zde mezi obchodními partnery znázorněna pomocí čárkované čáry (message) připojené z výchozího bodu pomocí kroužku a u cílového bodu pomocí šipky k objektům modelu u zákazníka a u výrobce pizzy. Např. při komunikace k objednávce pizzy je propojena pomocí čárkované čáry nesoucí zprávu o objednávce s událostí u výrobce pizzy, která znázorňuje přijetí objednávky. Podobně je to u dodávky pizzy a platby za pizzu. Pozor, uvnitř bazénu se průběh procesu znázorňuje plnou čarou, komunikační čárkovaná čára se nepoužívá.
===Model procesu ===
==Nástroje pro tvorbu BPMN==
Nástrojů pro tvorbu BPMN modelů existuje, velké množství.  Některé jsou zdarma, za některým je potřeba koupit drahou licenci. Takovým příkladem může být Oracle Designer, který stojí okolo 80 000 kč. Samozřejmě, že většina nástrojů umí daleko více modelů než jen vytvářet BPMN. Jako další vlastnosti lze uvést tyto: Tvorba dynamických diagramů, tvorba statických diagramů, generování dokumentace, verzování, generování kódu… 
==Popis vybraných nástrojů==
==Reference==