Refining the Use Cases 1. How Use Cases Evolve  Early efforts typically define most of the major use cases.  The refining stages complete the process.

Slides:



Advertisements
Similar presentations
Design by Contract.
Advertisements

Use Case & Use Case Diagram
1 Lecture 2: Processes, Requirements, and Use Cases.
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Project management Project manager must;
Use Case Model. C-S 5462 Use case model describes what the user expects the system to do –functional requirements may describe only the functionalities.
Information System Engineering
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
Use-case Modeling.
Software Testing and Quality Assurance
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
Use cases and requirement specification - 1 Use case diagrams 3 use cases System boundaries Remember: Use case diagramming is a tool, not the requirements.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Functional Requirements – Use Cases Sriram Mohan/Steve Chenoweth (Chapters 14, 21 – Requirements Text) 1.
1 Lecture 1: Processes, Requirements, and Use Cases.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
Functional Requirements – Use Cases Steve Chenoweth & Chandan Rupakheti (Chapters 14, 21 – Requirements Text)  Quiz question 9 relates to this, when you’ve.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Requirements and the Requirements Engineering Process Chapters 5 and 6.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Object Oriented Analysis and Design Using the UML
Use Case Diagram (UCD) Yong Choi BPA.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
Interaction Modeling. Introduction (1) Third leg of the modeling tripod. It describes interaction within a system. The class model describes the objects.
From Use Cases to Test Cases 1. A Tester’s Perspective  Without use cases testers will approach the system to be tested as a “black box”. “What, exactly,
1 IBM Software Group ® Mastering Requirements Management with Use Cases Module 10: Structure the Use-Case Model.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
 Development is organized in a series of short, fixed-length mini-projects called iterations  Iterations are also incremental  Successive enlargement.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Chapter 5 Models and UML Notation for The Object-Oriented Approach.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 Use Case 1 what are use cases? “A specification of sequences of actions, including variant.
UML-1 8. Capturing Requirements and Use Case Model.
1 Use Case Modeling Reference: RUP Doc. Use Case Example 2.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Engineering Lab Use Cases Faculty of Information system Technology.
1 Structuring Systems Requirements Use Case Description and Diagrams.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Functional Requirements – Use Cases (Chapters 14, 21) Sriram Mohan 1.
Use Case Driven Analysis Requirements Use Case Use Case Description System Sequence Diagram Chapter 5.
Capturing Requirements with Use Cases
Requirements and Use Cases
Scenario A scenario is a sequence of steps describing an interaction between a user and a system. Use case is a set of scenarios tied together by a common.
UML - Development Process 1 Software Development Process Using UML.
Use Case Model Use case description.
Use Case Diagrams. Introduction In the previous Lecture, you saw a brief review of the nine UML diagrams. Now that you have the clear, you'll start to.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
Software Requirements and the Requirements Engineering Process
Recall The Team Skills Refining the Use cases
Chapter 8 Advanced Interaction Modeling
Recall The Team Skills Analyzing the Problem (with 5 steps)
Use Case Model.
Unified Modeling Language
SAD ::: Spring 2018 Sabbir Muhammad Saleh
Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A. Hoffer
Object Oriented Analysis and Design
Analysis models and design models
Software Design Lecture : 15.
Use Case Model Use case diagram – Part 2.
Using Use Case Diagrams
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Interaction Modeling Extracted from textbook:
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Software Development Process Using UML Recap
Presentation transcript:

Refining the Use Cases 1

How Use Cases Evolve  Early efforts typically define most of the major use cases.  The refining stages complete the process by describing all the use cases needed to define the system.  We have “enough” use cases when they describe all possible ways in which the system can be used, at a level of specificity suitable to drive design, implementation, and testing.  Use case refinement is not system decomposition. 2

The Steps in Refining a Use Case  Review the actors – Upon closer examination there may be more actors (not seen by the user) that interact with the use case. (E.g., Light Bank)  Review the name – Make sure that the name of the use case indicates what is achieved by its interaction with the actor(s). (E.g., change “Turn Light On/Off” to “Control Light”) 3

The Steps in Refining a Use Case (Cont’d)  Refine the description – Update the description as necessary based on changes made.  Define and refine the flow of events – Based on the changes in the description, refine the event flow. This is usually a textual description, but it could be in the form of UML interaction diagrams or some other representation. 4

The Steps in Refining a Use Case (Cont’d)  Define and refine the flow of events (cont’d) – Be sure to document all alternative flows, including all error conditions. (Defining and managing alternative flows and error conditions may be as much work, and contribute as much or more to the ultimate success of the system, as developing the requirements, architecture, and implementation for the “happy day” flow.) Now is a good time for brainstorming, especially involving testers. 5

The Steps in Refining a Use Case (Cont’d)  Identify the pre- and post-conditions – A pre-condition is the state of the system and its surroundings that is required before the use case can begin. Post-conditions are the states the system can be in, including the state of persistent data, after the use case ends. The states described by pre- or post- conditions should be states that the user can observe. 6

The Steps in Refining a Use Case (Cont’d)  Identify the pre- and post-conditions (cont’d) – A pre-condition is a constraint on when a use case can start. It is not the event that starts the use case. Pre- and post-conditions for a use case are not for only one individual flow, although you can define them at that level. A post-condition for a use case should be true regardless of which alternative flows were executed. If the action could fail, you cover it in the post-condition by saying “If nothing failed then...” 7

The Steps in Refining a Use Case (Cont’d)  Identify the pre- and post-conditions (cont’d) – Post-conditions can be an important tool for describing use cases. You first define what the use case is supposed to achieve, the post-condition. You can then describe how to reach this condition (the flow of events needed.)  Identify special requirements – Identify any nonfunctional requirements, like those relating to usability, reliability, performance, etc. that might be relevant for the specific use case in question. 8

Extending Use Cases Using the > Relationship  Why extend an existing use case rather than simply rewriting original one.  The extend relationship can simplify maintenance of the use and allow the team to focus and elaborate on the extended functionality, as an entity, without worrying about rereading or managing the base case itself.  When an extension is envisioned as a use case is developed, extension points can be provided in the base use case as a map to “future features”.  The extended use case may represent optional behavior, as opposed to a new, basic, or alternate flow. 9

Extending Use Cases Using the > Relationship (Cont’d)  From the perspective of the flow of events, under certain defined circumstances, a use case executes the extended flow of the use case as if it were an alternate flow, but upon completion, flow of the use case returns to the extension point in the base use case.  In order to apply this construct, all that is required it to indicate the extension points in the basic flow and the conditions under which the extended flow is to be executed. 10

Extending Use Cases Using the > Relationship (Cont’d)  These conditions are expressed in what is called a condition guard, which is a state that must be true for the extension to execute.  In order to simplify maintenance, the conditional guard and the extension points may be described in the extending use case, in which case the base use case will be entirely unaffected by the existence of the extension. 11

Including Use Cases in Other Use Cases  Often certain patterns of user and system behavior reoccur in a variety of places.  This cause the generation of redundant documentation in multiple use cases.  An when a change is required in this common behavior, it has to be made in multiple places.  A new use case can be defined with just this common behavior and accessed, just like a subprogram, using the include relationship. 12