This chapter gives an overall introduction to documenting requirements using use cases. In this chapter, we will explain the following: • the symbols found in a use case diagrams • the relationships between the symbols in a use case diagram • the textual description of a use case, the use case flow of events It is quite likely that you have written code in an object-oriented language, such as Java or C++. In these object-oriented languages, you have come to create your programs in terms of classes where each class has its own data (via variables/attributes) and its own behavior (via the class methods).
In your programs, you create instances of these classes, called objects. As your program runs, these objects interact with each other to implement the system functionality. In this chapter we will discuss a means of documenting your stakeholder functional requirements in a way that will more easily lead you to discover what classes you will need to implement. This approach is called the use cases approach (Jacobson, Christerson et al. , 1992). When you document your requirements using use cases, these use cases are then valuable during the next steps in your project development – such as in the design and testing activities.
Also, it will be easier to write your user manual if you have documented your requirements by means of use cases. When we document requirements using use cases, we use textual description along with use case diagrams. The use case diagram is a part of the Unified Modeling Language (Rumbaugh, Jacobson et al.
, 1999), more commonly referred to as UML. In this chapter, we will first introduce you to UML. Then, we will show you how to document your requirements using use cases. 1 An Introduction to UML UML is a modeling language or graphical/diagrammatic notation for object-oriented programming – a way to express the “blueprints” of your system.Within UML, there are several types of diagrams. Some of them are: • Use case diagrams for requirements • State diagrams for object-oriented analysis • Class diagrams and sequence diagrams for object-oriented design As a software engineer, you need to become well-versed in these UML diagrams. As you head towards your professional life, your peers will simply assume that you know these diagrams.
When you brainstorm together, your co-workers will quickly draw one of these diagrams on a whiteboard without explaining the symbols or notations, fully expecting that you understand.Or, you might receive UML-based requirements, analysis, or design documents that you will need to work with. Use Case-based Requirements Once you know UML, you can also communicate with your peers using the diagrams too. You know the old adage, “A picture is worth a thousand words. ” You can spend a few moments reviewing a use case, class, or sequence diagram and have a pretty good understanding of what even large programs do. UML diagrams are also very understandable to non-technical stakeholders.
So, these diagrams are useful for validating requirements. 2 Scenario-based Requirements ElicitationBefore jumping into use cases themselves, we will first describe a scenario, which is a subset of a use case. A scenario is a sequence of actions that illustrates behavior. A scenario may be used to illustrate an interaction or the execution of a use case instance. (Rumbaugh, Jacobson et al.
, 1999) Scenarios are used in a scenario-based requirements elicitation, a technique of asking questions related to a descriptive story in order to ascertain the design requirements. For example, consider the following scenario for the Monopoly game: Player 1 lands on Blue 3. This house is owned by Player 2, and the rent is $25.Player 1 gives Player 2 $25. The above scenario specifically describes, step-by-step, what happens on one of Player 1’s turns. With scenario-based requirements elicitation, we query the stakeholders for the kinds of things they want to be able to do.
We ask them to describe how they envision the system in use. We then map these system problem statements into a system specification; the specification is represented as a set of actors and use cases, as we discuss below. We work with the customer to get a complete set of scenarios, which we document in our natural language (as opposed to using any formal notation) using ustomer’s terminology.
A complete set of scenarios should describe everything the system is intended to do. Scenarios have proven useful for eliciting, validating, and documenting requirements (Ralyte, 1999). Scenario-based approaches help to bridge the gap between the user/stakeholder view and the functional view of the future system so that the future system will meet the requirements of its users (Ralyte, Rolland et al. , 1999). Scenariobased approaches are widely used within industry (Weidenhaupt, Pohl et al. , March 1998). 3 Elements of a Use CaseA use case is a specification of sequences of actions, including variant sequences and error sequences, that a system, subsystem, or class can perform by interacting with outside actors (Rumbaugh, Jacobson et al. , 1999).
Scenarios are a set of scenarios tied together by a common user goal (Fowler, 2000) or a sequence of transactions performed by a system that yields an outwardly visible, measurable result of value for a particular actor. A use case typically represents a major piece of functionality that is complete from beginning to end and captures a contract between the stakeholders of a system about its behavior (Cockburn, 2000). © Laurie Williams 2004 Use Case-based Requirements 3. 1 Use Case Is Made Up of Scenarios As you will see, several related scenarios are joined together in one use case. For example, consider the following two scenarios: A player is in Jail. The player clicks the “Get out of Jail” button. $50 is decremented from their money. The player can then roll the dice and continue with the game.
A player is in Jail. The player clicks the “Get out of Jail” button. The player has less than $50. The player becomes bankrupt and all the tradable cells he or she owns becomes available in the game.
The player is out of the game.Both scenarios have the common user goal of getting out of jail. The first scenario is the simplest, all-goes-well scenario. The second has some alternatives that specify what should happen if the player does not have enough money to get out of jail. As you will see, we will build these two related, alternative scenarios into one use case. 3.
2 Basic UML Symbols In UML, a use case is represented by an oval, as shown in Figure 1. In our Monopoly game, the names of some use cases are: Draw Card, Get Out of Jail, and Switch Turn. It is best to express your use case title/label in a few words (generally no more than five words).These few words must begin with a present-tense verb phrase in active voice, stating the action that must take place (notice: Draw Card, Get Out of Jail, and Switch Turn). Figure 1: The UML symbol for a use case An actor is an entity that interacts with the system and/or needs to exchange information with the system. The actor is not part of the system itself and should be included to represent anyone or anything that interacts with the system in the following ways: • • • supplies input information to the system receives information from the system both supplies input information to and receives information from the systemThe total set of actors in a use case model includes everyone and everything that needs to exchange information with the system (Rosenberg and Scott, 1999). In UML symbols, an actor is represented as a stickman, shown below in Figure 2. In our Monopoly game, the actors include the a player and a bad player.
As you see, actors can be people or they can be other systems. An actor is always a noun in the scenario. © Laurie Williams 2004 3 Use Case-based Requirements Figure 2: The UML symbol for an actor You should think of the actors as roles, not as “individuals. For example, you might know that several players will play the game.
However, they would all be represented by one actor because they all have the same role. Similarly, if you happen to know that one person might take on several roles, such as player and bad player, you might be tempted to combine those roles into one actor. However, you should keep each separated into their appropriate roles. Do not confuse actors with people and/or job titles. 3.
3 Identifying the Actors Often, people find it easiest to start the requirements elicitation process by identifying the actors.The following questions can help you identify the actors of your system (Schneider and Winters, 1998): • Who uses the system? • Who installs the system? • Who starts up the system? • Who maintains the system? • Who shuts down the system? • What other systems use this system? • Who gets information from this system? • Who provides information to the system? • Does anything happen automatically at a present time? 3. 4 Identifying the Use Cases Then, the scenario-based requirements elicitation process continues by asking what outwardly visible, measurable result of value that each actor desires.The following questions can be asked to identify use cases, once your actors have been identified (Schneider and Winters, 1998): • What functions will the actor want from the system? • Does the system store information? What actors will create, read, update or delete this information? • Does the system need to notify an actor about chances in the internal state? • Are there any external events the system must know about? What actor informs the system of those events? © Laurie Williams 2004 4 Use Case-based Requirements 3.
5 Identifying the BoundaryIt is important to clearly define the boundary of your system. Things inside the boundary of the system are things you need to worry about creating. In a UML use case diagram, the system boundary is denoted by a rectangle, as in Figure 3.
3. 6 Use Case Diagram A use case diagram is a visual representation of the relationships between actors and use cases together that documents the system’s intended behavior. A simple use case diagram is shown below in Figure 3. Arrows and lines are draw between actors and use cases and between use cases to show their relationships.
We will discuss these relationships more later on in the chapter. The default relationship between an actor and a use case is the «communication» relationship, denoted by a line with a small circle. For example, the actor in Figure 3 is communicating with the use case. System boundary Figure 3: A UML use case diagram Use case diagrams are often developed incrementally. When you feel that you are done with your use case diagram, any remaining actors that do not communicate with any use cases should be removed from your system.
4 Use Case Flow-of-Events The use case diagram is important for visualizing a system.However, a textual description of the sequence of transactions of a use case is also needed for us to understand what really happens in a use case. In this section, we will use the use case flow-of-events, a description of what the system should do. The flow-of-events is written in terms of what the system should do, not how the system does it. 4.
1 Templates for a Use Case Flow of Events Many different templates are available for writing a use case flow of events. The exact structure of these templates can vary slightly from author to author. In this book, we use the format that was described by Quantrani (Quatrani, 1998).This template is shown in Figure 4 followed by an example of a completed flow of events for the Simulate a Configuration use case. © Laurie Williams 2004 5 Use Case-based Requirements X Flow-of-Events for the Use Case X. 1 Preconditions. What needs to happen (in another use case) before this use case can start? What state must the system be in before the use case? X.
2 Main Flow. The main flow is a series of declarative steps. X.
3 Sub-flows. Sub-flows break down the main flow and other sub-flows to improve document readability. X. 4 Alternative Flows.The alternative flows define exceptional behavior that can interrupt the normal flow. Often alternative flows indicate what is to be done under error conditions.
To determine alternative flows, ask yourself, “What could possibly go wrong? ” for each of the actions in the main flow and the sub-flows. Note: X is a unique identifier for each use case. Figure 4: Use Case Flow-of-Events Template 4. 2 An Example Flow of Events Below is an example flow-of-events for the Simulate a Configuration use case. The example uses the template of Figure 4 to structure the flow of events. UC8 Flow of Events for the Buy House Use Case . 1 Preconditions: 1.
It is the player’s turn. 2. The player has not rolled the dice. 3. The player has monopoly on one or more color groups. 8. 2 Main Flow: When a player has all the tradable cells in a color group, this player is said to have monopoly on the color group.
A player may build house(s) in the property cells in the color groups the player has monopoly on by pressing the Buy House button before he or she rolls the dice [S1] [E1 – E2]. The price of the house is determined by the cell. After buying the house(s), the status of the player is updated and displayed on the game board [UC13].
. 3 Subflows: [S1] When the Buy House button is clicked, the Buy House dialog shows up. The player selects the monopoly color group and the number of houses from that dialog. After clicking on OK in the dialog box, the player pays the fee, and the houses are created. All the property cells in the selected color group have the same number of houses. 8.
4 Alternative Flows: [E1] Nothing happens if the player does not have enough money. [E2] The player can build at most five houses in a cell. Let us now dissect this flow of events. © Laurie Williams 2004 6 Use Case-based Requirements • • • • •The use case precondition indicates that before the use case can begin, it must be the player (who wants to buy a house)’s turn. The player has not rolled the dice, and the player must have a monopoly by owning all properties in a color group. The main flow lists the sequence of events. o When a main flow or sub-flow has an event marked such as [Sx], this indicates that a sub-flow of this use case must be “run.
” When that subflow completes, “control” is passed back. For example, the buy house dialog shows up [S1]. Once the dialog box is clicked, control is passed back to the main use case and the house is purchased. When a main flow or sub-flow has an event marked such as [Ex], this indicates that an exceptional condition might occur. If it does occur, the appropriate alternative flow explains how the situation should be handled. For example, if the player does not have enough money or has more than five houses [E1-E2], the buy house dialog will not show up. o When a main flow or sub-flow has an event marked such as [UCx], this indicates that another use case must be “run.
” When that use case completes, “control” is passed back to this use case. For example, once the house purchase is complete, the status of the player is updated and displayed. UC13] The sub-flows list individual sequences of the main flow. Sub-flows can also handle the “calling” of other use cases, other sub-flows, and alternative flows similarly to the main flow. Alternative flows list individual sequences of how exceptional situations should be handled.
All sub-flows and all alternative flows must be “called” from the main flow or from sub-flows(s) by an indication such as [Sx] or [Ex]. If they are not called, they have no purpose because they can never be executed. 4. 3 A Scenario as One Flow Through a Flow of Events As we said, multiple scenarios are handled by one use case.Consider the following two scenarios of this use case. The player has all the tradable cells in a color group and wants to buy a house for the color group. The player has enough money to buy the house and is shown the number of houses own in that group [S1], and purchases the house. The player’s status is displayed [UC13].
The player has all the tradable cells in a color group and wants to buy a house for the color group. The player does not have enough money to buy the house. The player’s status is displayed [UC13]. Both of these scenarios and a multitude of others are represented with this use case.A scenario is just one flow through the use case flow-of events.
© Laurie Williams 2004 7 Use Case-based Requirements 4. 4 Writing a Flow of Events A flow-of-events is generally written in an iterative manner. First, just a brief description of the normal flow of the use case is written. More details are added gradually and iteratively, including the alternative flows.
The complete flow-of-events emerges by the end of the requirements specification phase. By using a formal flow-of-events template, you can be sure that you include all the information you need in a use case.However, you should be sure use the entry ‘none’ as appropriate when you are filling out the template. There is no need to come up with something to fill each slot if the information is not needed. Only fill in items with added information. The use case flow-of-events is very useful for formulating your test cases. When formulating these test cases, choose a variety of scenarios extracted from the use case, particularly those that include the alternate flows.
5 Use Case Relationships There are several different kinds of relationships between actors and use cases.Earlier, we said that the default relationship is the communication relationship. The communication relationship indicates that one of these entities initiated communication or invoked request of the other.
Obviously, an actor communicates with use cases because actors want measurable results. It might not be quite as obvious that use cases can communicate with other use cases. This happens when a use case needs information from or to initiate action of another use case.
When a line or an arrow is draw on a diagram and there is no label on the arrow, it is, by default, a communication relationship.There are two other kinds of relationships between use cases (not between actors and use cases) that you might find useful. These are the include relationship and the extend relationship, both of which we will describe in this section. 5. 1 The include Relationship The include relationship signifies that one use class is included in another’s functionality. You use the include relationship when a chunk of behavior is similar across more than one use case and you don’t want to keep copying the description of that behavior (Fowler, 2000).
This is similar to breaking out re-used functionality in a program into its own methods that other methods invoke for that functionality. For example, suppose many actions of a system require the user to log into the system before the functionality can be performed. These use cases would include the Login use case.
Here’s a hint. You should not break out a use case to be included by other use cases unless more than one other use case will include it (i. e. in a case diagram there should be more than one arrow coming into the included use case). The include relationship is not the default relationship.Therefore, in a use case diagram, the arrow is labeled with «include» when one use case makes full use of another use case, © Laurie Williams 2004 8 Use Case-based Requirements as shown in Figure 5. The Draw Card and the Buy House both use the View Information functionality.
Whenever a use case includes functionality of another use case, the use case flow-of-events will call the included use case. In the example Buy House flow-ofevents in the last section, the View Information [UC13] use case was called from the main flow. Draw Card «include » View Info Player «include » Buy HouseFigure 5: The Include Relationship between Use Cases 5. 2 The extend Relationship You use the extend relationship when you are describing a variation on normal behavior or behavior that is only executed under certain, stated conditions. You might wonder how this is different from simply stating alternative flows. The extend relationship is similar to the alternative flows of a use case.
However, the extend relationship is used when the alternative flow is fairly complex and/or multi-stepped, possibly with sub-flows and alternative flows. For example, consider an earlier scenario of the chapter.A player moves on the board because he or she has to go to jail.
A player moves on the board because he or she has to go to Free Parking. This scenario involves a player moving. However, sometimes a player has to deal with “exceptional” situations – rather than just moving to a new property cell. Therefore, we can extend the Move use case with the Go to Jail and the Go to Free Parking use case (and some others) as shown in Figure 6. In this diagram the extend relationship is signified by writing «extend» below a dotted line whose arrow points toward the use case that is being extended. Figure 6: The Extend Relationship between Use CasesThe Start Individual Train use case would include a sub-flow to close the door.
The Clear Door Obstacles flow-of-events activates only if any door is blocked. If a door is blocked, the train sounds an announcement for passengers to clear the doorways, waits © Laurie Williams 2004 9 Use Case-based Requirements for 10 seconds, and then tries to close the doors again. If the doors are not closed after three such cycles, a train operator is dispatched to find the problem. This is a multi-step alternative flow or sub-flow, best handled by separating the functionality out into a separate, extended use case.As with the including use cases, a use case flow-of-events must specifically call its extending use case(s). By doing so, the additional sequence of steps of the extended use case would be inserted in the base use case under certain, stated conditions. 5. 3 include Versus extend Frequently, software developers are confused as to whether to use the include relationship or the extend relationship.
Consider the following distinctions between the two: • Use Case X includes Use Case Y: X has a multi-step subtask Y. In the course of doing X or a subtask of X, Y will always be completed. Use Case X extends Use Case Y: Y performs a sub-task and X is a similar but more specialized way of accomplishing that subtask (e.
g. going to jail is a sub-task of Y; X provides an alternate means of moving). X only happens in an exception situation. Y can complete without X ever happening. In general, the extend relationship makes use cases difficult to understand.
It is suggested that developers use this relationship sparingly. 6 Misuse Cases Privacy and security requirements are also included as a special kind of use case, the misuse case.A misuse case is a use case from the point of view of an actor hostile to the system; the actor is a hacker deliberately threatening the security of the system and/or the privacy of the users of the system (Alexander, January/February 2003). In the diagram in Figure 7 a black ellipse is used to denote a misuse.
Login «threatens» «include» Obtain Password Hacker Figure 7: Misuse Case We should carefully consider misuse cases in our requirements stage. Misuse cases are used to plan for mitigating threats; we deliberately list our mitigation steps in the flow-of© Laurie Williams 2004 10 Use Case-based Requirements vents. An example of a complete misuse case flow-of-events (based on a template from (Sindre and Opdahl, 2001)) is found in the next section of this chapter. 7 Use Cases and the Software Requirements Specification Organizations that use the use cases requirements approach insert the use cases into an SRS document in place of the functional requirements.
This is called a use case-based software requirements specification. Although some requirements engineers view use cases as requirements (Cockburn, 2000), others caution that use cases are not requirements (Schneider and Winters, 1998).They feel instead that an SRS should contain formal statements of requirements that can be used as the conditions of system acceptance (Anton, Dempster et al. , May 2001); the use cases (with a traceability mapping to the formal requirements) can be added to the SRS if desired as an add-on.
Monopoly Requirements Specification Version 1. 0 May 16, 2004 Project Team: Chih-wei Ho, Team Lead Hema Srikanth, Quality Assurance Manager Nachi Nagappan, Requirements Analyst Lucas Layman, Project Manager Mark Sherriff, Development Manager Document Author(s): Nachi Nagappan, Requirements Analyst Customer Representative(s): Michael GegickI. Introduction The goal of this project is to create a Java-version of Monopoly board game. This game provides several features we can see in the board game version. This document describes the requirements of this program. © Laurie Williams 2004 11 Use Case-based Requirements Enter Player Info Go to Jail «extend» «extend» Move Player «extend» Purchase Tradable Cell «extend» «extend» «include» Draw Card «include» Trade Get Out of Jail Buy House «include» «include» View Information Bad Player Pay Rent Switch Turn Visit Jail Go to Free Parking «extend» «extend» «include» Roll Dice «include» Pass Go Cell include» Play More Than One Turn in a Round «avoid» «include» II. Use Cases UC1 UC2 UC3 UC4 UC5 UC6 UC7 UC8 UC9 UC10 UC11 UC12 UC13 UC14 UC15 UC16 Enter Player Info Move Pass Go Cell Go to Jail Visit Jail Go to Free Parking Purchase Tradable Cell Buy House Pay Rent Draw Card Roll Dice Switch Turn View Information Get Out of Jail Trade Play More Than One Turn in a Round UC1 Flow of Events for the Enter Player Info Use Case 1. 1 Preconditions: None.
1. 2 Main Flow: Right after the game gets started, the Player Information dialog will show to prompt the players enter the number of players for the game [E1] and the name of each player [E2] [E3]. . 3 Subflows: None. 1. 4 Alternative Flows: © Laurie Williams 2004 12 Use Case-based Requirements [E1] The number of players is a whole number between 2 and 8.
If the players do not enter a whole number, or the number is not between 2 and 8, the game asks the player to retype the number of players again. [E2] The name cannot be an empty string. If a player enters an empty string, the game asks the player to retype his/her name. [E3] When the Cancel button is pressed, the Player Information dialog closes and the game ends. UC2 Flow of Events for the Move Use Case 2. Preconditions: The players have entered their information in the Player Information dialog. 2. 2 Main Flow: The game is turn based.
The first player’s turn starts when the players’ information is entered. The movement is based on the player’s dice roll [UC11]. If the dice roll is 2, the player moves forward 2 steps; if the dice roll is 3, the player moves forward 3 steps; etc.
What happens to the player depends on the cell the player lands on [S1] and whether the movement passes the Go cell [UC3]. The new position and information of the player is displayed on the game board [UC13].The turn ends when the player hits the End Turn button [UC12].
Then the next player’s turn begins. 2. 3 Subflows: [S1] After the player moves to a new cell, based on the type of the cell, he or she may stop at the Go cell [UC3]; proceed to the Jail cell [UC4]; stop at the Jail cell [UC5]; stop at Free Parking [UC6]; pay rent to the cell owner [UC9]; draw a card from Community Chest or Chance [UC10]; or purchase an available tradable cell [UC7]. 2. 4 Alternative Flows: None. UC3 Flow of Events for the Pass Go Cell Use Case 3. 1 Preconditions: 1. It is the player’s turn.
2. The player has rolled the dice. 3. Main Flow: If the player passes the Go cell during the movement, or if the player lands on the Go cell after the movement, the player gains $200 [E1]. 3. 3 Subflows: None.
3. 4 Alternative Flows: [E1] If the player passes the Go cell because he or she is sent to Jail, the player cannot collect the money. A player can be sent to Jail either because he or she draws a Go to Jail card, or because he or she lands on the Go to Jail cell. UC4 Flow of Events for the Go to Jail Use Case 4. 1 Preconditions: 1.
It is the player’s turn. 2. The player has rolled the dice 3. The player lands on the Go to Jail cell. Laurie Williams 2004 13 Use Case-based Requirements 4. 2 Main Flow: The player is sent to the Jail cell directly.
When a player is sent to the Jail cell, he or she is said to be in jail. 4. 3 Subflows: None. 4.
4 Alternative Flows: None. UC5 Flow of Events for the Visit Jail Use Case 5. 1 Preconditions: 1. It is the player’s turn. 2. The player has rolled the dice.
3. The player lands on the Jail cell. 5. 2 Main Flow: The player visits the Jail. Nothing happens to the Jail visitors. 5.
3 Subflows: None. 5. 4 Alternative Flows: None. UC6 Flow of Events for the Go to Free Parking Use Case 6. Preconditions: 1. It is the player’s turn. 2.
The player has rolled the dice. 3. The player lands on the Free Parking.
6. 2 Main Flow: Nothing happens to a player landing on the Free Parking cell. 6. 3 Subflows: None. 6. 4 Alternative Flows: None. UC7 Flow of Events for the Purchase Tradable Cell Use Case 7.
1 Preconditions: 1. It is the player’s turn. 2. The player has rolled the dice. 3. The player lands on an available tradable cell. 7. 2 Main Flow: There are three types of tradable cells in this game: property cells, railroad cells, and utility cells.
A tradable cell is available if it has no owner.When a player lands on an available tradable cell, he or she may buy the cell by clicking the Purchase button [E1]. The price the player needs to pay is the land value of the tradable cell [E2]. Player’s information displayed on the game board is refreshed to show the cells and the amount of money a player owns [UC13]. 7. 3 Subflows: None.
© Laurie Williams 2004 14 Use Case-based Requirements 7. 4 Alternative Flows: [E1] Nothing happens if the player does not have enough money for buying the cell. [E2] The price for a railroad cell or a utility cell is fixed. Railroad cells all cost the same.So do utility cells.
UC8 Flow of Events for the Buy House Use Case 8. 1 Preconditions: 1. It is the player’s turn. 2. The player has not rolled the dice. 3. The player has monopoly on one or more color groups. 8.
2 Main Flow: When a player has all the tradable cells in a color group, this player is said to have monopoly on the color group. A player may build house(s) in the property cells in the color groups the player has monopoly on by pressing the Buy House button before he or she rolls the dice [S1] [E1 – E2]. The price of the house is determined by the cell.After buying the house(s), the status of the player is updated and displayed on the game board [UC13]. 8. 3 Subflows: [S1] When the Buy House button is clicked, the Buy House dialog shows up.
The player selects the monopoly color group and the number of houses from that dialog. After clicking on OK in the dialog box, the player pays the fee, and the houses are created. All the property cells in the selected color group have the same number of houses. 8. 4 Alternative Flows: [E1] Nothing happens if the player does not have enough money. [E2] The player can build at most five houses in a cell.UC9 Flow of Events for the Pay Rent Use Case 9.
1 Preconditions: 1. It is the player’s turn. 2. The player has rolled the dice.
3. The player lands on a tradable cell that is owned by another player. 9. 2 Main Flow: The player pay rent to the owner of the cell. The rate of the rent depends on the type of cell the player lands on [S1 – S3] [E1].
9. 3 Subflows: [S1] The rent of a property cell is defined in the property attribute. Each cell may have different rent rate. If the cell is in the owner’s monopoly color group, the rent doubles. [S2] If the cell is a utility cell, the player rolls the dice again [UC11].If the owner owns one utility cell, the player pays three times the dice roll; if the owner owns two utility cells, the player pays ten times the dice roll. [S3] If the cell is a railroad cell, and the owner owns N railroad cells, the amount of rent the player needs to pay is $50 * 2 N-1. 9.
4 Alternative Flows: [E1] If the player does not have enough money to pay the rent, the player is bankrupt. He or she needs to give all the tradable cells to the owner, and is out of the game. © Laurie Williams 2004 15 Use Case-based Requirements UC10 Flow of Events for the Draw Card Use Case 0. 1 Preconditions: 1. It is the player’s turn. 2.
The player has rolled the dice. 3. The player lands on a card cell.
10. 2 Main Flow: There are two types of card cells in this game: Community Chest and Chance. Each type of card cell is associated with a pile of cards.
When the player lands on a card cell, he or she draws a card by clicking the Draw Card button. A card is drawn from the top of the Community Chest card pile or the Chance card pile, depending on the type of cell the player lands on. The player performs the actions described on the card [S1 – S4].After that, the card is put back to the bottom of the card pile, and the status of the player is updated and displayed [UC13]. 10. 3 Subflows: [S1] If the card says the player can collect some certain amount of money, that amount of money is given to the player. [S2] If the card says the player loses some certain amount of money, that money is subtracted from the player [E1]. [S3] If the card says the player goes to jail, the player is sent to the Jail cell immediately.
[S4] If the card says the player goes to some cell, the player is sent to that cell immediately. 10. Alternative Flows: [E1] If the player does not have enough money, he or she is bankrupt. He or she needs to give up all his / her money, and all the tradable cells he / she owns become available. The player is out of the game. UC11 Flow of Events for the Draw Card Use Case 11.
1 Preconditions: It is the player’s turn. 11. 2 Main Flow: The player rolls the dice by clicking on the Role Dice button. The Dice Roll dialog pops up to indicate the value of the dice roll. In this game, there are two six-faced dice. 11.
3 Subflows: None. 11. 4 Alternative Flows: None.
UC12 Flow of Events for the Switch Turn Use Case 12. Preconditions: 1. It is the player’s turn. 2. The player has rolled the dice, and moved to the new cell. 12. 2 Main Flow: The player’s turn ends when he or she clicks on the End Turn button.
12. 3 Subflows: None. 12. 4 Alternative Flows: © Laurie Williams 2004 16 Use Case-based Requirements None. UC13 Flow of Events for the View Information Use Case 13.
1 Preconditions: None. 13. 2 Main Flow: The players can see their status, including their names, money, and properties, on the game board.
The attributes of the cells, including the names, the owners, the number of houses, and the price, is displayed on the game board, too. 3. 3 Subflows: None.
13. 4 Alternative Flows: None. UC14 Flow of Events for the Get Out of Jail Use Case 14. 1 Preconditions: 1. It is the player’s turn. 2. The player has not rolled the dice.
3. The player is in jail. 14.
2 Main Flow: Before the player can roll the dice, he or she needs to click on Get Out of Jail button. Upon clicking the button, the player pays $50, and is no longer in jail [E1]. 14. 3 Subflows: None. 14.
4 Alternative Flows: [E1] If the player does not have enough money, he or she is bankrupt. He or she needs to give up all his / her money, and all the tradable cells he / she owns become available.The player is out of the game.
UC15 Flow of Events for the Trade Use Case 15. 1 Preconditions: 1. It is the player’s turn. 2. The player has not rolled the dice. 15.
2 Main Flow: The player may ask another player to sell his or her tradable cells. If the player wants to trade with another player, he or she clicks on the Trade button. The Trade Property dialog pops up and the player enters the player (the seller) he or she wishes to trade with, the cell he or she wishes to buy, and the amount of money he or she wish to pay [E1 – E2]. Then another dialog box shows up to ask the seller if the seller agrees with the deal.The seller clicks on Yes in the dialog box, and the cell is sold to the player for that amount of money [E3]. 15.
3 Subflows: None. 15. 4 Alternative Flows: [E1] If the player clicks on Cancel button, the dialog closes and the deal is cancelled. [E2] If the player does not have enough money, the deal is cancelled. © Laurie Williams 2004 17 Use Case-based Requirements [E3] If the seller says no to this deal, the deal is cancelled. III. Misuse Cases UC16 Flow of Events for the Play More Than One Turn in a Round Use Case 16.
1 Preconditions: The player has completed moving, except for clicking on the End Turn button. 6. 2 Main Flow: Instead of the End Turn button, the player clicked on the Roll Dice button so that he or she can play another turn in the same round [E1]. 16.
3 Sub-flows: None. 16. 4 Alternative Flows: [E1] The Roll Dice button is disabled after the player rolls the dice. The player cannot click on it until the next turn. IV. Nonfunctional Requirements NR1.
Performance The system shall wait for all user inputs, and execute only the necessary functions given a user input to the system. All functions shall be completed quickly. NR1.
1. User response The system shall respond to any user input within 0. 1 seconds. Origin: Interview with Mr. Gegick on May 1, 2004 (Interview #I03SC01 Priority: 3 Implementation Completed Date: July 9, 2004. NR1.
2. Update user data The system should update user data within 0. 01 seconds. Origin: Interview with Mr. Gegick on May 1, 2004 (Interview #I03SC01 Priority: 3 Implementation Completed Date: July 9, 2004.
NR2. Usability A user shall be able to determine quickly what player options they have to perform. NR2.
1. Player options A user shall only have access to functionality that is allowed to them at a given time. Origin: Interview with Mr.Gegick on May 1, 2004 (Interview #I03SC01 Priority: 3 Implementation Completed Date: July 9, 2004.
NR2. 2. User Interface The system shall allow a user to interface with it through mouse events on buttons and drop down boxes and keyboard events on text fields. The amount of user keyboard input shall be minimized by the system to include only entering the number of players, player names, and a trade price.
Origin: Interview with Mr. Gegick on May 1, 2004 (Interview #I03SC01 © Laurie Williams 2004 18 Use Case-based Requirements Priority: 1 Implementation Completed Date: July 29, 2004. NR2.