Saturday, April 19, 2008

Using CRUD Diagrams to Group Processes into Systems

Using CRUD Diagrams to Group Processes into Systems

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

*





Initial Grouping


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


















































































































Entity

Process

Customer



Customer Order



Customer Account



Customer Invoice



Vendor Invoice



Product


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




































































































































Entity

Process

Customer



Customer Order



Customer Account



Customer Invoice



Vendor Invoice



Product


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




































































































































Entity

Process
Customer

Customer Order



Customer Account



Customer Invoice



Vendor Invoice



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

*





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
CustomerInvoicingProduct
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.