Forking and Joining
- Forks are used for showing parallel execution of activities
 - A fork may have one incoming transition and two or more outgoing transitions each of which represents an independent flow of control A fork represents the splitting of a single flow of control into two or more concurrent flows of control
 - Below the fork, the activities associated with each of these paths continues in parallel
 - A join may have two or more incoming transitions and one outgoing transition
 - Above the join, the activities associated with each of these paths continues in parallel
 - At the join, the concurrent flows synchronize, meaning that each waits until all incoming flows have reached the join, at which point one flow of control continues on below the join
 - The forking and joining of the parallel flows of control are specified by a synchronization bar
 - A synchronization bar is rendered as a thick horizontal or vertical line
 

Swimlanes
- Swimlanes partitions activity diagrams into groups having activity states where each group represents the entity responsible for those activities
 - Each swimlane has a name unique within its diagram
 - Swimlane represents a high-level responsibility for part of the overall activity of an activity diagram
 - Each swimlane is implemented by one or more classes
 

Object flow
- Object flow indicates the participation of an object in a flow of control. It shows the objects created as a result of an activity, and in which activities those objects are used
 - It is represented with the help of dependency relationships
 

Activity diagram is used: 
- To model a workflow
 - To model an operation
 
Social Plugin