In the preceding posts, I gave you some guidance on how to execute the Event/Response methodology for scope and requirements analysis. In this last of the series of posts on this topic, I will take the 5,000 foot view and put it all together in a summary of steps.

Step 1 – Define the Business Objectives (the measurable benefits realized after implementation). These will be used to verify the scope and requirements.

Step 2 – Define the Project Objectives (the products, services and/or results delivered at project implementation). These will also be used to verify scope and requirements.

Step 3 – The Context Diagram. Look at the area under study as an outsourced business, with Suppliers (of data) and Customers (recipients of data/information/results).

Step 4 – The Event List. This represents your “business model”. You define all of the events that “wake up” your business and require a planned response. In the prior posts, I presented a variety of techniques for fleshing out these events. Included in the Event List are your business processes and stakeholders.

Step 5 – Validate the Event Model. Compare your event scope with the Business and Project Objectives and verify with the Project Sponsor that all objectives are covered by this scope.

Step 6 – Construct Use Cases. Use the defined business processes in the Event Model as the starting point for creating Use Cases.

Step 7 – Test Planning and Execution. The Event Model is a wonderful framework in which to define your test scenarios and cases. Take advantage of all the work you did in the requirements phase to make your test planning and execution easier.

That’s it for this topic. I hope you found it informative and useful. I have used this technique successfully in many real-world projects.

In addition to being a great way to elicit the complete scope of a project, the Event/Response methodology delivers a framework for test planning and execution. When using this methodology, what many call “User Acceptance Testing” can be replaced by the term “Event Testing”.

In my prior posts on this topic, I identified the primary deliverables of the Event/Response methodology as (1) the Event List (containing the event that triggers the response, the origin and data content of the information flow into your “business”, the named processes, the outputs of the processes and the destinations of the outputs) and (2) the Use Cases. You can plan to test by simulating the actual Events, creating the data flows, executing the processes and examining the outputs. The Use Cases give you a good start on creating the data and usage variations for each Event. Doing this yields a direct mapping of the scope and requirements to the test cases and execution.

Note that since the Event List also contains the roles of the actors initiating the events, as well as the roles receiving the outputs, security testing is also built into this framework.

Another major plus of planning and executing the tests this way is that you are testing the system as it will actually be used in context, as opposed to functional testing which tests bits of functionality in isolation.

A recent project of mine used this methodology and yielded 180 Events and over 1,600 test cases. Because of this comprehensive approach, the system was very well tested and only experienced minor problems after implementation.

In my previous post on the topic of Requirements Analysis, I showed you how to derive your Use Cases from the Event List. I also presented a list of recommended elements to be included in each Use Case. The primary element is the list of steps taken by the Actors and the System they interact with. Within these steps are the Functional Requirements.

In my initial post in this series, I mentioned that starting and ending requirements gathering with functional requirements was not very effective. Why? Because functional requirements are at too low of a level and places the burden on the memories of SME’s (Subject Matter Experts) instead of the analytical questions of the Business Analyst, where the burden really belongs. For large systems, if you start and end with functional requirements you will almost assuredly have an incomplete set of requirements.

Using the Event/Response methodology, we started with Event Discovery, using a wide variety of techniques to generate the questions the Business Analyst needs to ask. We fleshed out the Events, which led to discovery of the business processes in scope. We validated the model to make sure we had the complete list of Events and processes. We used the processes to create our Use Cases. We will now examine the Use Cases to derive the functional requirements. This is an organized, top down approach to requirements that will output as complete a set of requirements as is possible.

Within the steps of the Use Cases are things like “Insert Debit Card”, “Read Card”, “Select Action”, “Browse by Last Name”, etc. These are all functional requirements that must be satisfied by the solution. The system design must address all of these requirements. However, these are low-level capabilities and are not a good source for overall system design. By using the Event Model, the system designer can see the big picture and design a friendlier, more efficient system than is possible using just the functional requirements.

In the next post I will address the advantages of the Event Model when designing and executing tests.

Now that you have a complete and comprehensive Event List, you can now use this to create your Use Cases. Before I show you how, let’s first define “Use Case”:

A Use Case is simply a list of steps to achieve a goal

It may have multiple paths (for example, the Use Case for getting cash from an ATM has the normal path, plus an alternate path for the case where a user asks for more money than in their account)

A Use Case Scenario is a specific path thru the Use Case

Column 4 of the Event List (“…Then We Do This”) contains the names of all of the business processes within the scope of your project. Take each of these process names and create a corresponding Use Case. Here is a collection of data elements which you can include in the Use Case:

Use Case Name and ID (you can use a scheme such as capital U + the Event Process ID + decimal point + the Use Case sequential number. For example, U2.1.1)

Use Case brief description (The process name and perhaps an additional clarifying sentence or two)

Sub-System Name (e.g. “Accounts Payable”)

Triggering Event (from the Event List)

“Actors” (Stakeholders that interact with or are affected by the Use Case; Your Event List is a great starting point for identifying your Stakeholders)

Pre-conditions: What needs to be true before the execution of this Use Case (for example, “Customer ID has been established”)

Post-conditions: The state of the system after execution of the Use Case (for example, “Employee has possession of a company credit card”)

Process Flow. Include a column for the Actors and a column for the steps executed by the Actors and the System. Do this until the process is complete and accomplishes the Post-conditions.

In the next post I will discuss deriving Functional Requirements from the Use Cases.