location: home->briefing studies->requirements analysis & specification

a crocus information Case Study - Page updated 24 Dec 2009

enitity-event-analysis.jpg
entity event analysis
Index page [<< First] [< Previous] [Next >] [Last >>]
slide 16 of 25

Entity / Event Analysis

Entity Life Histories are a very specific technique but where a supplier is involved, it is probably best to record the business rules in prose with each requirement specification. Each supplier will have its own technique for translating business rules and the sequence of allowed processing into logical system specifications.

If there are very specific rules as to how events should be sequenced and allowed to interact with entities, this can be documented as part of the CRUD matrix (below).

CRUD Matrix - Create, Read, Update, Delete

  • Identify business events, e.g. Customer Order Received and Customer Order Received With Payment
  • Look at each function defined in Function Definition. Track back to its triggering dataflow(s) - these will be Events. It could, for example, be receipt of an order, receipt of a payment against an invoice, decision to add a new product to offer for sale, despatch of an order or receipt of a delivery from a supplier. Follow the processing of that event through the various elementary processes (or parts of a process) that make up the function. Identify the entities affected and the way they are affected - they will be on dataflows, either carried with the event's triggering dataflow or picked up from or created / updated into datastores via dataflows. Every time a user has to make a decision before deciding how to process an item then that is a separate event.

For example, whether there is a payment with the order, or where, say an authoriser has to decide whether to authorise an order that would place a customer over their credit limit. In this latter case, the order would be put into the system, the system would prevent the actual processing of the order and instead would put in suspense, awaiting authorisation from a manager. Here, the processing of the first event, Customer Order Received, can automatically be directed down one of two routes - normal and into suspense (if this order would take them over their credit limit). Another two events would then be the manager picking off orders in suspense and either deciding to authorise them for fulfilling, or to reject the order with a letter to the customer explaining the situation (Suspended Order Authorised and Suspended Order Rejected).

  • For each event you identified, create a new row on the CRUD matrix and put in the Event Name. Next decide which entities are Created, Read, Updated or Deleted.
  • For each such event, also describe the detailed effects of the event and any business rules that can be applied automatically An example would be that the accounts of customers who have unpaid invoices over 30 days past their due date must be put into suspension.

A more straightforward example would be where a customer order turns out not to violate any business rules. You'd describe the effects something like this. The customer entity is read to match against the name on the order. A new Customer Order entity is created. For every item ordered, an Order Line entity is created with product and order quantity details. To get the product details, the Product entity would be read. The order total is used to check against the Customer Account to see if the credit limit would be exceeded. If so the Customer Account entity is updated to put it into suspense.

What about the business rule that a customer can only purchase things on credit if they have an account?

What's likely to happen is that the order entry screen will have somewhere that allows you to put in the customer name to see if they have an account. If not and the order wasn't accompanied by payment, the user wouldn't process the order but would instead write back to the customer. An alternative would be to put in the order details but put it into suspense until payment is received. Next, write to the customer explaining that the order is on hold until payment is received. Users will decide these sorts of details.

Something akin to the above prose description would go into the appropriate requirements catalogue entry and something more precise in the CRUD Matrix.

Google
Index page [<< First] [< Previous] [Next >] [Last >>]
slide 16 of 25
Related information from sponsors:

| Home | Privacy | Diagramming Notation Explained | Analysis Example Documents |
| Business Analysis CV | Requirements Analysis & Specification |

all content is copyright Crocus Information Ltd and may not be reproduced without written permission

Discuss this page content:

General comments here: