Grouping or clustering processes allows the analyst to identify what business processes fit naturally together. The groupings help determine what functions a specific system should perform and what data it requires.
The objective is for groups to have a high degree of independence from one another.
Converting to Association Matrix may Simplify Grouping
Grouping processes does not distinguish between create, read, update, or delete. Therefore, it may be simpler to convert the CRUD Diagram to an Association Matrix by changing each intersection with a C, R, U, and/or D into a common symbol such as a check mark or an asterisk.
Example: CRUD Diagram Converted to Association Matrix
* * * * * * * * * * * * * * * * * * * * * * Entity
Process Customer Customer Order Customer Account Customer Invoice Vendor Invoice Product Receive Customer Order Process Customer Order Fill Customer Order Maintain Customer Account Terminate Customer Account Pay Vendor Invoices Validate Vendor Invoices Pay Vendor Invoices Invoice Customer Maintain Inventory
Begin by identifying the first two processes that use the same data entities. Rearrange the rows to position these two processes at the top of the matrix.
Identify other processes that use the same data entities and, if any, move them into the next rows in the matrix.
Example: Initial Grouping of Processes
Customer Customer Order Customer Account Customer Invoice Vendor Invoice Product * * * * * * * * * * * * * * * * * * * * * Entity
Process Maintain Customer Account Terminate Customer Account Receive Customer Order Process Customer Order Fill Customer Order Ship Customer Order Validate Vendor Invoices Pay Vendor Invoices Invoice Customer Maintain Inventory
Continue Grouping Process
Continue to identify other sets of processes that share the same data entities and move them into the next rows.
Example: Next Grouping of Processes
Customer Customer Order Customer Account Customer Invoice Vendor Invoice Product * * * * * * * * * * * * * * * * * * * * * Entity
Process Maintain Customer Account Terminate Customer Account Process Customer Order Fill Customer Order Validate Vendor Invoices Pay Vendor Invoices Receive Customer Order Ship Customer Order Invoice Customer Maintain Inventory
Manual Grouping
Once all processes that use the same entities have been identified, begin to analyze remaining entities to determine their best fit. This analysis is subjective. In the example you may decide that Receive Customer Order and Invoice Customer should be grouped with Process Customer Order and Fill Customer Order because they are all involved in processing the customer's order.
Example: Manual Grouping of Processes
Customer Order Customer Account Customer Invoice Vendor Invoice Product * * * * * * * * * * * * * * * * * * * * * Entity
Process Customer Maintain Customer Account Terminate Customer Account Receive Customer Order Process Customer Order Fill Customer Order Invoice Customer Ship Customer Order Validate Vendor Invoices Pay Vendor Invoices Maintain Inventory
Consider Using Subject Databases
Entities may be grouped into subject databases using a method such as Affinity Analysis. The subject databases are then used on the matrix instead of data entities. Grouping processes will be easier when there are fewer objects to analyze. For example, Customer, Customer Order, and Customer Account may be grouped as Customer while Customer Invoice and Vendor Invoice may be grouped as Invoicing.
Example: Grouping Processes using Subject Databases
Subject Process | Customer | Invoicing | Product |
Maintain Customer Account | * | ||
Terminate Customer Account | * | ||
Receive Customer Order | * | ||
Process Customer Order | * | * | |
Fill Customer Order | * | * | |
Invoice Customer | * | * | |
Ship Customer Order | * | * | |
Validate Vendor Invoices | * | ||
Pay Vendor Invoices | * | ||
Maintain Inventory | * |
Craig Borysowich (Chief Technology Tactician)
No comments:
Post a Comment
Dear blog visitor, Thanks for visiting my blog.