User Tools

Site Tools


docs:bpwiki-about

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

docs:bpwiki-about [2017/09/19 14:31]
docs:bpwiki-about [2022/03/23 16:59] (current)
Line 1: Line 1:
 +====== BPwiki - wiki for Business Processes ======
  
 +BPWiki is a wiki for collaborative Software Engineering. It supports simplebpmn syntax for easy modeling of Business Processes.
 +
 +To guarantee compatibility with BPMN models, BPMN -> simplebpmn converter is provided.
 +
 +===== Business Process =====
 +
 +Business Process (BP) is a set of activities that take a particular input and transform it into particular output. It answers to customer's needs (input) and after executing some activities and tasks it produces product that satisfies customer's needs (output).
 +
 +Busines Process Managament is an process-centric activity that aims to improve the process by automatisation, eraleasing bottlenecks in process, better control of managment (identifying risks etc), improving collaboration between human and systems.
 +
 +**So what are actually business processes?**
 +
 +Every process that can be identified that has some goal eg. buying things in the shop (see example). In companies they are made to improve all the processes that they describe so they can be drawn for any business process. In some way the are similar to UML diagrams although they concern some flow of activities from the business point of view - so there can be tasks made by people as well as by some system.
 +
 +{{ .:simple_example.png?800 |}}
 +
 +==== Basic element definitions ====
 +
 +Process consists of //Flow Elements//, which are the core of each Process, and //Sequence Flows// between them. 
 +There are three categories of Flow Elements :
 +  * **[[#events|events]]** -  they mark that something is happening in the Process; it's possible that they catch some triggered action or that they throw some result; eg. incoming message, incoming signal, error, some (particular) amount of time passing, etc.
 +  * **[[#activities|activities]]** - they symbolize exact work done in the Process; eg. fullfiling order, sending invoice, etc.
 +  * **[[#gateways|gateways]]** - they represent the control flow of the Process; they can merge or split the flow of the process with regard to some conditions that are put on them; eg. they would be put where there's question of product availability - gataway would split the flow into two branches - one when the product is available and the other when it's not.
 +
 +=== Events ===
 +
 +Action that happens during the course of a process and it's important for the process. It affects the process flow and usually have a result or trigger.
 +
 +There are 3 ways of events affecting the flow:
 +  * Starting Events - start the flow;
 +  * Ending Events - end the flow;
 +  * Intermediate Events - happen in the middle of the flow.
 +
 +[[.:bpwiki:events_example |Events Example ]]
 +
 +=== Activities ===
 +
 +Point where actual work is done. 
 +There are 4 types of activities:
 +  * [[#tasks|Task]] - The most common type: it is the unit of work to be performed. Can be typed to indicate the kind of task. Can be atomic or compound (Sub-Process)
 +  * Transaction - A group of logically connected activites, that may follow some protocol.
 +  * Event Sub-Process - A specialized sub-process that is a part of Process. It isn't contained in normal from of its parent process: it activates when its starting event is triggered, so it's possible that it will happen many times. Additionally, it may or may not occur while the parent process is active. It can run either parallelly to the main flow or interrupt it.
 +  * Call Activity - Indicates a call to globally defined Task or Sub-Process.
 +
 +[[.:bpwiki:sim_task_example | Task Example ]]
 +
 +[[.:bpwiki:transaction_example | Transaction Example]]
 +
 +[[.:bpwiki:eventsubprocess_example | Event Sub-Process Example]]
 +
 +[[.:bpwiki:callactivity_example | Call Activity Example]]
 +
 +== Tasks ==
 +
 +Task can be performed by participant - eg. user or sysem, as well as it have particular type eg. script task.
 +These are the types of tasks:
 +  * Abstract - General task, not specialized one;
 +  * Service - Indicates the use of some kind of service or system, eg. automated application
 +  * Send - Sending a message to another Participant
 +  * Receive - Receiving a message from another Participant
 +  * User - Task performed by a human with the assistance of software application
 +  * Manual - Task performed by a human that does not require any software
 +  * Business Rule - Uses the Business Rule Engine
 +  * Script - Indicates executing a specified script
 +
 +Additionally, activities can be interrupted by some events, eg. during the activity of implementing project it can be interrupted by time event when the deadline for the project has passed.
 +
 +[[.:bpwiki:all_tasks | All possible tasks ]]
 +
 +=== Gateways ===
 +
 +They control how sequence flows.
 +
 +Types of gateways:
 +  * Exclusive - It activates exactly one of outgoing branches or waits for exactly one of the incoming ones
 +  * Event-based - Followed by catching Events or the Receive Tasks, it activates the branch for the Event that was triggered first
 +  * Parallel - It activates all outgoing branches at the same time or waits for all incoming ones before outgoing flow is activated
 +  * Inclusive - It activates one or more outgoing branches at the same time or waits for all incoming ones before outgoing flow is activated
 +  * Complex - Complex behavior that is not covered by other gateways
 +
 +[[.:bpwiki:exclusive_example | Exclusive Gateway Example]]
 +
 +[[.:bpwiki:eventbased_example | Event-based Gateway Example]]
 +
 +[[.:bpwiki:parallel_example | Parallel Gateway Example]]
 +
 +[[.:bpwiki:inclusive_example | Inclusive Gateway Example]]
 +
 +
 +==== Process Modeling ====
 +
 +In order to model some process in SimpleBPMN it's important to organize work and think about all the elements that will be needed to design the whole real process.
 +
 +These are the 4 steps to design a proper model (//Steps are design for modeling process in simpleBPMN; since it's lighter than BPMN itself, some steps that would be necessary for BPMN modeling are omitted//):
 +
 +  * Identify the process boundaries: //When the process starts ? What are the conditions? What are the results of process?//
 +  * Identify activities and events: //What is done during the process? What are the tasks? What events are happening during the process? What kind of events? (incoming message, error, etc.)//
 +  * Identify the type of activities: //Is it manual/service/user task?//  
 +  * Identify the control flow: //What is the order of tasks and events?//
 +
 +=== Example of designing a Process ===
 +
 +Let's assume that we want to model the //ideal// process of the student building a program for some subject.
 +
 +User story:
 +
 +We get the topic and short description of a program. We get the functionality, implement the program while writting the documenation ( ;) ). Since the supervisor is busy we meet with him/her only once and then we either pass (then additionally the report about the project is automatically generated) or fail.
 +
 +__Identify the process boundaries:__
 +
 +  - Start: Process starts when we have an event of supervisor giving us the project topic.
 +  - End: Process can end in two ways: project is passed or project is failed.
 +  - Intermediate: nope.
 +
 +__Identify activities and events + identifying the type of activities:__
 +
 +We will have several tasks:
 +
 +  * Functionality analizing -> manual (we do it by ourselves, no system involved)
 +  * Implementing -> user
 +  * Writing documentation -> user
 +  * Meeting with supervisor -> manual
 +  * Generating the report -> service (it's done by some system automatically)
 +
 +[[.:bpwiki:modeling_example | Example in SimpleBPMN ]]
 +
 +===== What's next? =====
 +
 +If you are interested in BPwiki, you can [[downloads:start#bpwiki|download our plugin]], [[docs:installation#bpwiki|install it]] and follow our [[docs:bpwiki-tutorial|tutorial]] to make a quickstart with BPwiki!
 +
 +If you do not want to install it, you can see [[cases:start#bpwiki|use cases in this demo wiki]].
docs/bpwiki-about.txt · Last modified: 2022/03/23 16:59 (external edit)