addison wesley writing effective use cases phần 3 ppsx

25 245 0
addison wesley writing effective use cases phần 3 ppsx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

48 Chapter 3. Scope Design scope - Page 48 A small, true story To help with constructing a fixed-time, fixed-cost bid of a large system, we were walking through some sample designs. I picked up the printer and spoke its function. The IS expert laughed, "You personal computer people crack me up! You think we just use a little laser printer to print our invoices? We have a huge printing system, with chain printer, batch I/O and everything. We produce invoices by the boxfull!" I was shocked, "You mean the printer is not in the scope of the system?" "Of course not! We'll use the printing system we already have." Indeed, we found that there was a complicated interface to the printing system. Our system was to prepare a magnetic tape with things to be printed. Overnight, the printing system read the tape and printed what it could. It prepared a reply tape describing the results of the printing job, with error records for anything it couldn't print. The following day, our system would read back the results and note what had not been printed correctly. The design job for interfacing to that tape was significant, and completely different from what we had been expecting. The printing system was not for us to design, it was for us to use. It was out of our design scope. (It was, as described in the next section, a supporting actor.) Had we not detected this mistake, we would have written the use case to include it in scope, and turned in a bid to build more system than was needed. _________________________________ Figure 10. Design scope can be any size. Typically, the writer considers it obvious what the design scope of the system is. It is so obvious that they don't mention it. However, once there are multiple writers and multiple readers, then the design scope of a use case is not at all obvious. One writer is thinking of the entire corporation as the design scope (see Figure 10.), one is thinking of all of the company's software systems, one is company computer systems other dept. other company other app. our application subsystem Chapter 3. Scope Page 49 - Design scope 49 thinking of the new, client-server system, and one is thinking of only the client or only the server. The readers, having no clue as to what is meant, get lost or misunderstand the document. What can we do to clear up these misunderstandings? The only answer I have found is to label each and every use case with its design scope, using specific names for the most significant design scopes. To be concrete, let us suppose that MyTelCo is designing NewApp system, which includes a Searcher subsystem. The design scope names are: • "Enterprise" scope (put the real name here, e.g. MyTelCo) signifies that you are discussing the behavior of the entire organization or enterprise in delivering the goal of the primary actor. Label the scope field of the use case with the name of the organization, e.g., MyInsCo, rather than just writing "the company". If discussing a department, use the department name. Business use cases are written at enterprise scope. • "System" scope (put the system name in here, e.g., NewApp) means just the piece of hardware/software you are charged with building. Outside the system are all the pieces of hardware, software and humanity that it is to interface with. • "Subsystem" scope (put the subsystem name in here, e.g. Searcher) means you have opened up the main system and are about to talk about how a piece of it works. Using graphical icons to highlight the design scope Consider attaching a graphic to the left of the use case title, to signal the design scope to the reader before they start reading. There are no tools at this time to manage the icons, but I find that drawing them reduces the confusion about a use case’s scope. In this book I label each use case with its appropriate icon to make it easier for you to note the design scope of each example. Recall, in the following, that a black-box use case does not discuss the internal structure of the system under discussion, while a white-box use case does. • A business use case has the enterprise as its design scope. Its graphic is a building. Color it grey if you treat the whole enterprise as a black box. Color it white if you talk about the departments and staff inside the organization. • A system use case has a computer system as its design scope. Its graphic is a box. Color it grey if you treat it as a black box, white if you reveal how its componentry works. • A component use case is about a subsystem or component of the system under design. Its 50 Chapter 3. Scope Design scope - Page 50 graphic is a bolt (as in nuts and bolts): . See the use case set Documenting a Design Framework for an example of a component use case. Examples of design scope I offer three samples to illustrate descriptions of systems at different scopes. Enterprise to system scope This is the most common situation. We work for telephone company MyTelCo, which is designing a new system, Acura, to take orders for services and upgrades. Acura consists of a workstation connected to a server computer. The server will be connected to a mainframe computer running the old system, BSSO. BSSO is just a computer terminal attached to the mainframe. We are not allowed to make any changes to BSSO. We can only use its existing interfaces. The primary actors for Acura include the customer, the clerk, various managers, and the mainframe system BSSO (we are clear that BSSO is not inside our design scope). Let’s find a few of the goals the system should support. The most obvious is "Add a new service." We decide the primary actor for that is the company clerk, acting on h customer. We sit down to write a few use cases. The immediate question to ask is: "What is the system under discussion?" It turns out that there are two that interest us. • MyTelCo. We are interested in the question, "What does MyTelCo’s service look like to the customer, showing the new service implementation in its complete, multi-day form, from initial request to implementation and delivery?" This question is of double interest. The company managers will want to see how the new system appears to the outside world, and the implemen- tation team will want to see the context in which the new system will sit. This use case will be written at enterprise scope, with the Scope field labeled MyTelCo, and the use case written without mention of company-internal players (no clerks, no departments, no computers). This sort of use case is often referred to as a business use case, since it is about the business. • Acura. We are interested in the question, "How does Acura's service appear, at its interface to the clerk or customer on one side, and to the BSSO system on the other side?" This is the use case the designers care most about, since it states exactly what they are to build. The use case will be written at system scope, with the Scope field labeled Acura. It will freely mention clerks and departments and other computer systems, but not mention the workstation and the Chapter 3. Scope Page 51 - Design scope 51 server subsystems. We produce two use cases. To avoid having to repeat the same information twice, we write the enterprise use case at a higher level (the kite symbol), showing MyTelCo responding to the request, delivering it, perhaps even charging for it and getting paid. The purpose of the enterprise use case is to show the context around the new system. Then we describe the five- to twenty-minute handling of the request in detail in the user-goal use case having Acura as design scope. U SE C ASE 6: A DD N EW S ERVICE (E NTERPRISE ) . Primary Actor: Customer Scope : MyTelCo Level : Summary 1. Customer calls MyTelCo, requests new service 2. MyTelCo delivers etc U SE C ASE 7: A DD NEW S ERVICE (A CURA ) . Primary Actor: Clerk for external customer Scope : Acura Level : User goal 1. Customer calls in, clerk discusses request with customer. 2. Clerk finds customer in Acura. 3. Acura presents customer’s current service package, etc No use case will be written with design scope Acura Workstation or Acura Server, as they are not of interest to us. Actually, they are not of interest to us, now. Later, someone in the design team may choose to document Acura’s subsystem design using use cases. At that time, they would write two use cases, one with Scope: Acura Workstation, the other with Scope: Acura Server. My experience is that, typically, these use cases are never written, since there are other adequate techniques for documenting subsystem architecture. Many computers to one application The following is a less common situation, but one that is very difficult. Let us build onto the MyTelCo situation. Acura will slowly replace BSSO. New service requests will be put into Acura, and then modified using BSSO. Over time, Acura will take over more function. The two systems must co-exist and synchronize with each other. Use cases have to be written for both systems, system Acura being entirely new, and system BSSO being modified to synchronize with Acura. 52 Chapter 3. Scope Design scope - Page 52 The difficulty in this situation is that there are four use cases, two for Acura and two for BSSO. There is one use case for each system having the clerk as primary actor, and one having the other computer system as the primary actor. There is no way to avoid these four use cases, but people looking at them get confused. They look redundant. To document this situation, I first write a summary-level use case whose scope is both computer systems together. This gives me a chance to document their interactions over time. In that use case I reference the specific use cases that comprise each system’s requirements. This first use case will be a white-box use case (note the white-box symbol). The situation is complicated enough that I also include inline diagrams of the design scope of each use case. Figure 11. System scope diagram for Acura - BSSO. In this case, I put the system scope diagram directly within Use Case 8:. U SE C ASE 8: E NTER AND U PDATE R EQUESTS (J OINT S YSTEM ) . Primary Actor: Clerk for external customer Scope : Computer systems, including Acura and BSSO (see diagram) Level : Summary Main success scenario : 1. Clerk adds new service into Acura. 2. Acura notes new service request in BSSO. 3. Some time later, Clerk updates service request in BSSO. 4. BSSO notes the updated request in Acura. _______________________________ The four use cases called out above are all user-goal use cases, and get marked with the sea-level symbol. Although they are all system use cases, they are for different systems! Hence the inline diagrams. In each diagram, I circle the primary actor and shade the SuD. The use cases are black- box this time, since they are requirements for new work. In addition to all that, I gave the use cases slightly different verb names, using Note to indicate the synchronization activity. computer systems Acura BSSO Clerk 1 Clerk 2 Chapter 3. Scope Page 53 - Design scope 53 U SE C ASE 9: A DD NEW S ERVICE ( INTO A CURA ) Primary Actor: Clerk for external customer Scope : Acura Level : User goal use case body follows U SE C ASE 10: N OTE NEW S ERVICE REQUEST ( IN BSSO) Primary Actor: Acura Scope : BSSO Level : User goal use case body follows U SE C ASE 11: U PDATE S ERVICE REQUEST ( IN BSSO) Primary Actor: Clerk for external customer Scope : BSSO Level : User goal use case body follows U SE C ASE 12: N OTE UPDATED R EQUEST ( IN A CURA ) Primary Actor: BSSO Scope : Acura Level : User Goal use case body follows If you are using UML-style use case diagrams, you will draw , possibly instead of writing the summary level use case. That still does not reduce the confusion within the four user-goal use cases, so you should still carefully mark their primary actor, scope, and level, and possibly still draw the inline scope diagrams. Personally, I do not find that eliminates the confusion very much. I would consider drawing the non-standard use case diagram in Figure 12. to show the connection between the two systems. This computer systems Acura BSSO Clerk 1 computer systems Acura BSSO Clerk 1 computer systems System A System B Actor 1 Actor 2 Clerk 2 computer systems Acura BSSO 54 Chapter 3. Scope Design scope - Page 54 diagram is clearer, but harder to maintain over time.You should draw whichever you and your readers find communicates best for you. Figure 12. Use case diagrams for Acura - BSSO. This is the UML style of denoting the interactions between the two systems. The upper section shows that BSSO is a supporting actor to one use case of Acura, and a primary actor to another use. In the lower section, it shows the roles reversed. Figure 13. A combined use case diagram for Acura- BSSO. This drawing shows the relationships of the four use cases most clearly, but is non-standard, since it shows one system’s use case triggering another system’s use case. Nuts and bolts use cases At the far end of the scale, let us look the way one group documented their design framework with use cases. They started with an 18-page, diagram-loaded description of the rules for their framework. They decided it was too hard to read, and experimented with use cases as the descriptive technique. They spent one week on the task. First they drafted 40 use cases to make sure they had captured all the requests their framework would handle. Using extensions and the data variations list, they revised those down to just six use cases. You will find these use cases incomprehensible unless you are in that business. However, I expect some readers to be technical programmers looking for ways to document their designs. I Clerk Acura Note updated request BSSO Clerk BSSO Note new service request Acura Acura Add new service BSSO Update service request Clerk Acura Note updated request BSSO Note new service request Add new service Update service request Chapter 3. Scope Page 55 - Design scope 55 include these use cases to show how this group documented an internal architecture, and how they made use of the variations list. I find them fairly easy to read, given the complexity of their problem. Notice that sub-use cases are underlined when they are used. Thanks to Dale Margel in Calgary for the writing. General Description: The overall architecture must be able to handle concurrent tasks. To do this, it must support Process Threads and Resource Locking. These services are handled by the Concurrency Ser- vice Framework (CSF). CSF is used by client objects to protect critical sections of code from unsafe access by multiple Processes. U SE C ASE 13: S ERIALIZE ACCESS TO A RESOURCE Primary Actor: Service Client object Scope : Concurrency Service Framework (CSF) Level : User goal Main Success Scenario 1) Service Client asks a Resource Lock to give it specified access. 2) The Resource Lock returns control to the Service Client so that it may use the Resource. 3) Service Client uses the Resource. 4) Service Client informs the Resource Lock that it is finished with the Resource. 5) Resource Lock cleans up after the Service Client. Extensions 2a.Resource Lock finds that Service Client already has access to the resource. 2a1.Resource Lock applies a lock conversion policy (Use Case 14:) to the request. 2b.Resource Lock finds that the resource is already in use: 2b1. The Resource Lock applies a compatibility policy (Use Case 15:) to grant access to the Service Client. 2c.Resource Locking Holding time limit is non-zero: 2c1.Resource Lock starts the holding timer. 3a.Holding Timer expires before the Client informs the Resource Lock that it is finished: 3a1.Resource Lock sends an Exception to the Client's process. 3a2.Fail! 4a.Resource Lock finds non-zero lock count on Service Client: 4a1.Resource Lock decrements the reference count of the request. 4a2.Success! 5a.Resource Lock finds that the resource is currently not in use: 5a1.Resource Lock applies an access selection policy (Use Case 16:) to grant access to any suspended Service Clients. 5b.Holding Timer is still running: 5b1.Resource Lock cancels Holding Timer. 56 Chapter 3. Scope Design scope - Page 56 Technology and Data Variations List: 1. The specified requested access can be: · For Exclusive access · For Shared access 2c. The Lock holding time-out can be specified by: · The Service Client · A Resource Locking Policy · A global default value. U SE C ASE 14: A PPLY A L OCK C ONVERSION P OLICY Primary Actor: Client object Scope : Concurrency Service Framework (CSF) Level : Subfunction Main Success Scenario 1) Resource Lock verifies that request is for exclusive access. 2) Resource Lock verifies that Service Client already has shared access. 3) Resource Lock verifies that there is no Service Client waiting to upgrade access. 4) Resource Lock verifies that there are no other Service Clients sharing resource. 5) Resource Lock grants Service Client exclusive access to the resource 6) Resource Lock increments Service Client lock count. Extensions 1a.Resource Lock finds that the request is for shared access: 1a1.Resource Lock increments lock count on Service Client. 1a2.Success! 2a.Resource Lock finds that the Service Client already has exclusive access. 2a1.Resource Lock increments lock count on Service Client. 2a2.Success! 3a.Resource Lock finds that there is another Service Client waiting to upgrade access. 3a1.Signal Service Client that requested access could not be granted. 3a2.Fail! 4a.Resource Lock finds that there are other Service Clients using the resource. 4a1.Resource Lock makes Service Client wait for resource access (Use Case 17:) U SE C ASE 15: A PPLY A CCESS C OMPATIBILITY P OLICY Primary Actor: Service Client object Scope : Concurrency Service Framework (CSF) Level : Subfunction Main Success Scenario 1) Resource Lock verifies that request is for shared access. 2) Resource Lock verifies that all current usage of resource is for shared access. Extensions Chapter 3. Scope Page 57 - Design scope 57 2a.Resource Lock finds that the request is for exclusive access. 2a1.Resource Lock makes Service Client wait for resource access (Use Case 17:) (the process is resumed later by the Lock serving strategy 2b.Resource Lock finds that the resource is being exclusively used: 2b1.Resource Lock makes Service Client wait for resource access (Use Case 17:) Variations : 1) The compatibility criterion may be changed. U SE C ASE 16: A PPLY A CCESS S ELECTION P OLICY Primary Actor: Client object Scope : Concurrency Service Framework (CSF) Level : Subfunction Main Success Scenario Goal in Context: Resource Lock must determine which (if any) waiting requests should be served Note: This strategy is a point of variability. 1) Resource Lock selects oldest waiting request. 2) Resource Lock grants access to selected request(s) by making its process runnable. Extensions 1a.Resource Lock finds no waiting requests: 1a1.Success! 1b.Resource Lock finds a request waiting to be upgraded from a shared to an exclusive access: 1b1.Resource Lock selects the upgrading request. 1c.Resource Lock selects a request that is for shared access: 1c1.Resource repeats [Step 1] until the next one is for exclusive access. Variations : 1) The selection ordering criterion may be changed. U SE C ASE 17: M AKE S ERVICE C LIENT W AIT FOR R ESOURCE A CCESS Primary Actor: Client object Scope : Concurrency Service Framework (CSF) Level : Subfunction Main Success Scenario Used By: CC 2,4 Resource Locking 1) Resource Lock suspends Service Client process. 2) Service Client waits until resumed. 3) Service Client process is resumed. Extensions : 1a.Resource Lock finds that a waiting time-out has been specified: 1a1.Resource Lock starts timer 2aWaiting Timer expires: 2a1.Signal Service Client that requested access could not be granted. [...]... security use cases, the 58 Chapter 3 Scope Page 59 - The Outermost Use Cases marketing department is the primary actor on the advertising use cases, and the customer the primary actor on the main system function use cases Typically, there are only 2-5 outermost use cases for the entire system, so it is not the case that every use case gets written twice There are so few of them because each outermost use. .. application in which a user’s workstation is connected through the web to your company’s web server, attached to a legacy mainframe system Exercise 11 Describe the difference between "enterprise-scope white-box business use cases" and "enterprise-scope black-box business use cases" 3. 3 The Outermost Use Cases In “Enterprise to system scope” on page 50, I recommend writing two use cases, one for the system... lower level use cases for those actors I highly recommend writing the outermost use cases It takes very little time, and provides excellent context for the set of use cases The outermost use cases show how the system ultimately benefits the most external users of the system, and they also provide a table of contents for browsing through the system’s behavior Let’s visit the outermost use cases for MyTelCo... context in which the user goals operate, • They show life-cycle sequencing of related goals, They provide a table of contents for the lower-level use cases, both lower white use cases and blue use cases • Summary use cases are white on the color gradient White use cases have steps that are white, blue, or, occasionally, even indigo ("Log in" is an indigo goal likely to be found in a white use case) I have... actor to any use case, and all the roles they all can play Use the role names in the Primary Actor field Use the actor-role list to get from the use cases to the people and systems in the world This strategy allows the writers to ignore the intricacies surrounding job titles and simply get on with writing the use cases Someone, perhaps the user interface designer or the software packager, will use the actor-to-role... 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 the computer systems and the Service Department for setting up performance bonuses,... promotion register user Summary Goals invoice place order identify product create invoice send invoice identify customer User Goals “white” “blue” “indigo” Subfunctions Figure 14 The levels of use cases The use case set reveals a hierarchy of goals, the everunfolding story 69 Chapter 5 Three Named Goal Levels User-goals (blue, sea-level) - Page 70 5.1 User-goals (blue, sea-level ) The user goal is the... skills We do this so that the user interface and system designers can match the system to that expertise * It sets up the structure for the actor-goal list, which will be used to prioritize and partition the development work * It will be used to partition a large set of use cases into packages that can be given to different design teams During use case writing, and during design 63 Chapter 4 Stakeholders... Customer buys a policy 3 Customer makes a claim against the policy 4 Customer closes the policy Other examples of white use case are * Use Case 19:“Handle Claim (business)” on page 78, * Use Case 20:“Evaluate Work Comp Claim” on page 79, and * Use Case 21:“Handle a Claim (systems)” on page 80 1.(In previous writing, I used both "strategic" and "summary" I recently decided "summary" causes the least confusion,... Actors The primary actor of a use case - Page 64 Once we start developing the use cases in detail, the primary actors become almost unimportant That may surprise you What happens is that, over time, the use case writers discover that a use case can be used by multiple sorts of actors For example, anyone higher than Clerk might answer the phone and talk to a customer The use case writers often start . business use cases& quot; and "enterprise-scope black-box business use cases& quot;. 3. 3 The Outermost Use Cases In “Enterprise to system scope” on page 50, I recommend writing two use cases, . get on with writing the use cases. Someone, perhaps the user interface designer or the software packager, will use the actor-to-role table to match up the use cases with the eventual users. The. outermost use cases. It takes very little time, and provides excellent context for the set of use cases. The outermost use cases show how the system ultimately benefits the most external users

Ngày đăng: 23/07/2014, 19:21

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan