Scenario Modeling Requirements Analysis and Model

J.E.D.I tool used to define the Use case Model is the Use case Diagram. Supplementary Specifications It contains those requirements that dont map to a specific use case. They may be non- functional requirements such as maintainability of the source codes, usability, reliability, performance, and supportability, or system constraints that restricts our choices for constructing a solution to the problem such as the system should be developed on Solaris and Java. It is an important complement to the Use Case Model because with it we are able to specify a complete system requirements. Glossary It defines a common terminology for all models. This is used by the developers to establish a common dialect with customers and end-users. There should only be one glossary per system.

3.3.2 Scenario Modeling

The Use Case Model is a mechanism for capturing the desired behavior of the system without specifying how the behavior is to be implemented. The point of view of the actors interacting with the system are used in describing the scenarios. Scenarios are instances of the functionality that the system provides. It captures the specific interactions that occur between producers and consumers of data, and the system itself. It is important to note that building the model is an iterative process of refinement. Use Case Diagram of UML As was mentioned in the previous section, the Use Case Diagram of UML is used as the modeling tool for the Use case Model. Table 5 shows the basic notation. Basic Notation Name Meaning Actor-name Actor It represents a coherent set of roles that users of the system play when interacting with use cases. It calls on the system to deliver one of its services. It can be a person, device or another system. Actors are named using nouns. Use Case It describes the functions that the system performs when interacting with actors. It is a sequence actions that yields an observable result to actors. It is described using a verb- noun phrase. or Association It shows the relationship or association between an actor and use cases, andor between use cases. Table 5 Use Case Diagram Basic Notation Software Engineering 71 Verb noun J.E.D.I The Use Case Model can be refined to include stereotypes on associations and generalization of actors and use cases. Stereotypes in UML is a special use of model elements that is constrained to behave in a particular way. They are shown by using a keyword in matched guillemets such as extend and include. Generalization or specialization follows the same concepts that was discussed in object- oriented concepts. The Table 6 shows the enhanced notation of the Use Case Diagram in UML. Enhanced Notation Name Meaning Extend It is used to show that a use case provides additional functionality that may be required in another use case. Include It is used to show that when one use case is used, the other the included will also be used. Actor Generalization There may be cases that it would be best to show a super-actor communicating with a use case rather than all actors communicating with the same use case, particularly, when all of them will be interacting with the system using the same functionality. Use Case Generalization There may be similar use cases where the common functionality is best represented by generalizing out that functionality into a super-use case. Table 6 Use Case Diagram Expanded Notation Software Engineering 72 extend include J.E.D.I Developing the Use Case Model STEP 1: Identify actors. Identify the external actors that will interact with the system. It may be a person, device or another system. As an example, Figure 3.2 identifies the actors for the Club Membership Maintenance of the case study. Two actors were identified, namely, club staff and coach. STEP 2: Identify use cases. Identify use cases that the system needs to perform. Remember that use cases are sequence of actions that yields an observable result to actors. As an example, Figure 3.3 identifies the initial use cases. The following use cases were identified. • Add Athlete Record • Edit Athlete Record • Delete Athlete Record • Update Athletes Status Software Engineering 73 Figure 3.2 Club Membership Maintenance Actors Figure 3.3 Club Membership Maintenance Use cases J.E.D.I STEP 3: Associate use cases with actors. Figure 3.4 shows the first iteration of the use case model. The identified use cases are distributed to the two actors. STEP 4: Refine and re-define the model. This use case can be refined by using the enhanced notation. The second iteration of the use case model is seen in Figure 3.5. Optionally, number the use cases. Software Engineering 74 Figure 3.4 First Iteration of Club Membership Use Case Model J.E.D.I In the second iteration, elaboration is done by introducing the Maintain Athlete Record Use Case. This is being managed by the club staff. Stereotypes on associates are used to include or extend this use case. The Maintain Athlete Record Use Case is extended to have the following option: • 1.1 Add Athlete Record • 1.2 Edit Athlete Record • 1.3 Remove Athlete Record Every time Update Athletes Record Use Case is performed, an Edit Athlete Record is also performed. Also, the another use case was added to specify that certain actors can view the athletes record View Athlete Record Use Case. Modeling is an iterative process. The decision when to stop iterating is a subjective one and is done by the one modeling. To help in the decision-making, consider answering questions found in the Requirements Model Validation Checklist. STEP 5: For each use case, write the use case specification. For each use case found in the Use Case Model, the use case specification must be defined. The use case specification is a document where the internal details of the use case is specified. It can contain any of the listed sections below. However, the first five are the recommended sections. 1. Name. This is the name of the use case. It should be the same as the name found in the Use Case Model. 2. Brief Description. It describes the role and purpose of the use case using a Software Engineering 75 Figure 3.5 Second Iteration Club Membership Use Case Model J.E.D.I few lines of sentences. 3. Pre-conditions. It specifies the conditions that exist before the use case starts. 4. Flow of Events. This is the most important part of the requirements analysis part. These are events that describes what the use case is doing. Here, scenarios are identified. 5. Post-conditions. It specifies the conditions that exist after the use case ends. 6. Relationships. In this section, other use case that are associated with the current use case are specified here. Normally, they are the extend or include use cases. 7. Special Requirements. It contains other requirements that cannot be specified using the diagram which is similar to the non-functional requirements. 8. Other Diagrams. Additional diagrams to help in clarifying requirements are placed in this section such as screen prototypes, sketches of dialog of users with the system etc. The flow of events contains the most important information derived from use case modeling work. It describes essentially what the use case is specifically doing; NOT how the system is design to perform. It provides a description of a sequence of actions that shows what the system needs to do in order to provide the service that an actor is expecting. An instance of the functionality of the system is a scenario. It is also describe as one flow through a use case. The flow of events of a use case consists of a basic flow and several alternative flows. The basic flow is the common work flow that the use case follows; normally, we have one basic flow while the alternative flow addresses regular variants, odd cases and exceptional flows handling error situations. There are two ways in expressing the flow of events- textual and graphical. To graphically illustrate the flow of events, one uses the Activity Diagram of UML. It is used similar to the Flowchart. However, it is used to model each scenario of the use case. It uses the following notation indicated in Table 4 . Software Engineering 76 J.E.D.I Notation Name Meaning Activity State It represents the performance of an activity or step within the work flow. Activities can be expressed using verb-noun phrases. Transition It shows what activity state follows after another. An arrow head indicates the direction of the state change. Decision It is used to evaluate conditions similar to the decision symbol of the flow chart. It uses guarded conditions which determines the alternative transitions what will be made. Synchronization Bars It is used to show parallel sub-flows. It illustrates concurrent threads in the work flow. Table 7 Activity Diagram Notation Figure 3.6 is an example of an activity diagram. It illustrates how athletes are initially assigned to a squad. The club staff gets the filled up application form from the athlete s and they prepare the mock try-out area. During the try-outs, the selection committee evaluates the performance of the athletes. If the athlete plays excellently, they are immediately assigned to the Competing Squad. Otherwise, they are assigned to the Training Squad. The club staff will keep the athlete records on the appropriate files. Software Engineering 77 verb-noun J.E.D.I The activity diagram can be modified as a the swimlane diagram. In this diagram, activities are aligned based on the actors who have responsibility for the specified activity. Figure 3.7 is the modified activity diagram where the actors responsible for the activity is drawn above the activity symbols. Software Engineering 78 Figure 3.6 Initial Athlete Squad Assignment J.E.D.I To help software engineers in defining the flow of events, a list of guidelines is presented below. 1. To reinforce actor responsibility, start the description with When the actor.... 1. Describe the data exchange between the actor and the use case. 2. Try not to describe the details of the user interface unless needed. 3. Answer ALL what questions. Test designers will use this text to identify test cases. 4. Avoid terminologies such as For example,..., process and information. 5. Describes when the use case starts and ends. STEP 6: Refine and re-define the use case specifications. Software Engineering 79 Figure 3.7 Initial Athlete Squad Assignment using Swimlane Diagram J.E.D.I Similar with developing the Use Case Model, one can refine and re-define the use case specification. It is also done iteratively. When to stop depends on the one modeling. One can answer the questions presented in the Requirements Model Validation Checklist to determine when to stop refining and redefining the use case specifications.