- FUNCTIONAL SCOPE
- 2 DESIGN SCOPE
- 3 THE OUTERMOST USE CASES
- 4 USING THE SCOPE-DEFINING WORK PRODUCTS
- 5 EXERCISES
3.3 THE OUTERMOST USE CASES
In the Enterprise-to-System Scope subsection on page 41, I recommend writing two use cases, one for the system under design and one at an outer scope. Now we can get more specific about that: For each use case, find the outermost design scope at which it still applies and write a summary-level use case at that scope.
The use case is written to a design scope. Usually, you can find a wider design scope that still has the primary actor outside it. If you keep widening the scope, you reach the point at which widening it farther would bring the primary actor inside. That is the outermost scope. Sometimes the outermost scope is the enterprise, sometime the department, and sometimes just the computer. Often, the computer department is the primary actor on computer security use cases, the marketing department is the primary actor on advertising use cases, and the customer is the primary actor on the main system function use cases.
Typically, there are only two to five outermost use cases for the entire system, so not every use case gets written twice. There are so few of them because each one merges the primary actors having similar goals on the same design scope, and pulls together all the lower-level use cases for those actors.
I highly recommend writing the outermost use cases because it takes very little time and provides excellent context for the use case set. The outermost use cases show how the system ultimately benefits the most external users of the system; they also provide a table of contents for browsing through the system's behavior.
Let's visit the outermost use cases for MyTelCo and its Acura system.
MyTelCo decides to let web-based customers access Acura directly to reduce the load on the clerks. Acura will also report on the clerks' sales performance. Someone will have to set security access levels for customers and clerks. We have four use cases: Add Service (by Customer), Add Service (by Clerk), Report Sales Performance, and Manage Security Access.
We know we will have to write all four use cases with Acura as the scope of the SuD. We need to find the outermost scope for each of them.
The customer is clearly outside MyTelCo, so there is one outermost use case with the customer as primary actor and MyTelCo as scope. This use case will be at the summary level, showing MyTelCo as a black box, responding to the customer's request, delivering the service, and so on. In fact, the use case is outlined in Use Case 6, Add New Service (Enterprise), on page 42.
The clerk is inside MyTelCo. The outermost scope for Add Feature (by Staff) is All Computer Systems. This use case will gather all the interactions the clerks have with the computer systems. I would expect all the clerks' user-goal use cases to be in this outermost use case, along with a few subfunction use cases, such as Log In and Log Out.
Report Sales Performance has the Marketing Department as the ultimate primary actor. The outermost use case is at scope Service Department and shows the Marketing Department interacting with All Computer Systems and the Service Department for setting up performance bonuses, reporting sales performance, and so on.
Manage Security Access has the Security or IT Department as its ultimate primary actor and either the IT Department or All Computer Systems as the outermost design scope. The use case references all the ways the Security Department uses All Computer Systems to set and track security issues.
Notice that these four outermost use cases cover security, marketing, service, and customers, using Acura in all the ways that it operates. It is unlikely that more than these four need to be written for the Acura system, even if there are a hundred lower-level use cases to write.