BPMN
From IPAPI
The Business Process Modeling Notation (BPMN) is a standardized graphical notation for drawing business processes in a workflow. BPMN was developed by Business Process Management Initiative (BPMI), and is now being maintained by the Object Management Group (OMG) since the two organizations merged in 2005. Its current adopted version is 1.1 and the proposed one is 2.0.
The primary goal of BPMN is to provide a standard notation that is readily understandable by all business stakeholders. These business stakeholders include the business analysts who create and refine the processes, the technical developers responsible for implementing the processes, and the business managers who monitor and manage the processes. Consequently BPMN is intended to serve as common language to bridge the communication gap that frequently occurs between business process design and implementation.
Currently, there are scores of business process modeling languages, tools and methodologies. The adoption of BPMN standard notation is can help unify the expression of basic business process concepts (e.g., public and private processes, choreographies) as well as advanced modeling concepts (e.g., exception handling, transaction compensation).
Uses of BPMN
Business process modeling is used to communicate a wide variety of information to a wide variety of audiences. BPMN is designed to cover this wide range of usage and allows modeling of end-to-end business processes to allow the viewer of the Diagram to be able to easily differentiate between sections of a BPMN Diagram.
There are three basic types of sub-models within an end-to-end BPMN model:
* Private (internal) business processes * Abstract (public) processes * Collaboration (global) processes
Private (internal) business processes
Private business processes are those internal to a specific organization and are the type of processes that have been generally called workflow or BPM processes. If swim lanes are used then a private business process will be contained within a single Pool. The Sequence Flow of the Process is therefore contained within the Pool and cannot cross the boundaries of the Pool. Message Flow can cross the Pool boundary to show the interactions that exist between separate private business processes.
Abstract (public) processes
This represents the interactions between a private business process and another process or participant. Only those activities that communicate outside the private business process are included in the abstract process. All other “internal” activities of the private business process are not shown in the abstract process. Thus, the abstract process shows to the outside world the sequence of messages that are required to interact with that business process. Abstract processes are contained within a Pool and can be modeled separately or within a larger BPMN Diagram to show the Message Flow between the abstract process activities and other entities. If the abstract process is in the same Diagram as its corresponding private business process, then the activities that are common to both processes can be associated.
Collaboration (global) processes
A collaboration process depicts the interactions between two or more business entities. These interactions are defined as a sequence of activities that represent the message exchange patterns between the entities involved. Collaboration processes may be contained within a Pool and the different participant business interactions are shown as Lanes within the Pool. In this situation, each Lane would represent two participants and a direction of travel between them. They may also be shown as two or more Abstract Processes interacting through Message Flow (as described in the previous section). These processes can be modeled separately or within a larger BPMN Diagram to show the Associations between the collaboration process activities and other entities. If the collaboration process is in the same Diagram as one of its corresponding private business process, then the activities that are common to both processes can be associated.
Weaknesses of BPMN
Weaknesses related to ambiguity and confusion in sharing BPMN models:
* Lane and pool constructs are overloaded * The informality of the language leaves it open for dialects in vendor applications to be introduced * There are no rules for layout of models which may result in notation dialects * It is possible to model the same process with different notation variations * Light-weight model readers might disregard constructs used from the extended set and miss out on actual model behavior * It is hard to communicate BPMN models based on the BPD alone
Weaknesses related to support for routine work:
* There is no support to represent the state of objects * There is little support for the modeling of system structure * Advanced process modeling require the use of construct attributes that do not have graphical representation * Little support for resource modeling * No support for business specific terms
Weaknesses related to support for knowledge work:
* No support for goals and responsibilities that you commit to by accepting a Role in a process * No support for conditions that, once true, mean you have met the Role's goals * No support for policies and regulations that you must adhere to when playing a Role * No support for personal characteristics required to play a Role, such as skills, experience and personality type * No support for creation of another Role of a particular type - for instance, adding another designer to a team * No support for purposeful, long-lived communication channels (not just hand-offs or function calls) * No support for discussions or other forms of information exchange in which more than 2 people are involved * No support for actions that you can carry out at any time during the life of a Role, repeatedly if necessary, according to a combination of organizational policies and/or personal judgement * No support for separate streams of activity in a single Role * No support for documents and data both private to a Role and shared with other Roles
Weaknesses related to converting BPMN models to executable environments:
* Converting BPMN models to executable process environments are not direct * BPMN cannot be directly semantically validated which makes it possible to build semantically wrong models * There is no clear indication in the specification when a process model is considered to be ”completed” in situations where there are multiple end-events * The specification indicates that each start-event should generate a process instance which causes problems for processes with multiple start events without wait * There are unaddressed issues in the specification regarding the interrupt caused by sub-processes experiencing exceptions in a parallel multi-instance activity * There is a lack of support for instance-specific data for tasks * There is no standardised file format to exchange BPMN models between different tools

