It can be useful to examine the expected effects of an execution of an elementary process against objects in the data model. This can assist you in finding gaps in your analysis. Expected effects are defined in terms of creating entities of an entity type, reading entities of an entity type, updating entities of an entity type, or deleting entities of an entity type. Collectively, these are often known as CRUD (Create, Read, Update, Delete) actions.
What are the expected effects of an execution of REGISTER GOLFER on the entity type GOLFER? This process is expected to Create an occurrence (entity) of the GOLFER entity type.
Follow these steps:
Note: If you made a mistake adding a value, remove the cell value by selecting the cell, selecting = Not Referenced from the upper-left corner of the matrix, and selecting the Add object… icon.
What are the expected effects of LOGIN GOLFER? It is expected to Read an occurrence of GOLFER to verify the User ID and Password.
What are the expected effects of ENTER SCORING RECORD? It is expected to Create an occurrence of SCORING RECORD and -, to associate that SCORING RECORD to the GOLFER that maintains it. It must get currency on the GOLFER, and to do that, it has to Read GOLFER.
What are the expected effects of CALCULATE GOLFER HANDICAP? It is expected to Read SCORING RECORDs, calculate the handicap index, and Update the GOLFER that maintains them. To update the GOLFER, it must Read the GOLFER first.
Note: Only the update is indicated in the cell value, not the read. If there are multiple CRUD actions for a single cell, it shows the value representing the greatest degree of involvement.
In order from lowest to highest that would be R, U, D, and C. To verify that both values exist, use the following steps:
You can also maintain the expected effects from here.
What are the expected effects for DELETE GOLFER? It is expected to Delete the GOLFER. To delete the GOLFER, you first must read GOLFER to verify that it exists.
To record this in the matrix, follow these steps:
How can this help you discover gaps in your analysis? We know that every object of interest to a business has at least two lifecycle states. A creation (create) state represents that point when an object becomes of interest to a business, and the termination (delete) state represents when the object is no longer of interest to the business. However, somewhere between these states a business typically needs to use, that is read and update, these objects. Examining the CRUD actions can help us identify missing processes.
A GOLFER becomes of interest to the business when they register and they no longer are of interest when they remove themselves. Between these events, a GOLFER gets used when they login, enter their scoring records, and when we calculate their handicap index. It appears that a GOLFER receives the full treatment. However, only the golfer's handicap index is updated. What if the GOLFER changes their name or incorrectly enters their name? There is no provision to handle this change, or a change in the SCORING RECORD. Scoring records are created and read, but no provision exists for updating them if they were incorrectly entered, or for removing them.
Some development methodologies suggest that common action blocks (CAB) can be created to handle these error correction routines. Most people prefer to see them as elementary processes on the Activity Hierarchy diagram. One technique is to take the elementary process where these error correction routines are most likely needed, mark them as non-elementary, and add them as new elementary processes following the original process.
For example, REGISTER GOLFER can be marked as non-elementary, with ADD GOLFER and UPDATE GOLFER added as elementary processes underneath it.
ENTER SCORING RECORD can be marked as non-elementary with ADD SCORING RECORD, UPDATE SCORING RECORD, and DELETE SCORING RECORD added following it.
The improved activity hierarchy should look like the following illustration:
Our first level processes under GOLFER MANAGEMENT still represent the lifecycle of a golfer, and we have incorporated all of the activities to fully support the object. Each activity marked as an elementary process meets the guidelines set forth earlier for an elementary process.
To contract and expand portions of the diagram or the entire diagram, select an activity that has lower-level activities and select the Expand or Contract icons on the Menu Bar. When an object is contracted it shows °°°. This is true for many other diagrams as well, including the Data Model diagram.
The updated Elementary Process uses Entity Type matrix that look similar to the following example. You can sort or move columns around as necessary.
Each entity type now has a full complement of CRUD actions.
Copyright © 2013 CA.
All rights reserved.
|
|