Object Oriented Analysis UML Use Case Driven Object Modeling

Slides:



Advertisements
Similar presentations
Design by Contract.
Advertisements

Use-Cases.
Use Case Diagrams Damian Gordon.
Use Case & Use Case Diagram
© 2010 Bennett, McRobb and Farmer1 Use Case Description Supplementary material to support Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
Use Case Modeling SJTU. Unified Modeling Language (UML) l Standardized notation for object-oriented development l Needs to be used with an analysis and.
Use cases.
Information System Engineering
January Ron McFadyen1 Use Cases in the UML Functionality under consideration is represented by use cases (named ellipses) enclosed in a box.
Use-case Modeling.
Use Cases & Requirements Analysis By: Mostafa Elbarbary.
Documenting Requirements using Use Case Diagrams
7. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Detailed Object-Oriented Requirements Definitions  System Processes—A Use.
Use Case Modeling. Use case diagram For each use case we develop  Object class diagram (with attributes only)  System sequence diagram (analysis) 
Chapter 3 Use Cases.
Use Cases 2 ENGR ♯10 Peter Andreae
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 06. Requirements.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
Faculty of Computer & Information Software Engineering Third year
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 20. Review Software Requirements Requirements Engineering Process.
USE CASE Bayu Adhi Tama, MTI Faculty of Computer Science, University of Sriwijaya Slides are adapted from Petrus Mursanto
Faculty of Computer & Information
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
1 Object-Oriented Modeling Using UML CS 3331 Section 2.4 Modeling Requirements with Use Cases.
CS212: Object Oriented Analysis and Design Lecture 32: Use case and Class diagrams.
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.
Systems Analysis and Design in a Changing World, Fourth Edition
Object Oriented Analysis UML Use Case Driven Object Modeling
Sept Ron McFadyen1 Use Cases Introduced by Ivar Jacobson in 1986 literal translation from Swedish ”usage case” Used to capture and describe.
UML (Unified Modeling Language)
UML - Development Process 1 Software Development Process Using UML.
Chapter 6: Structuring Requirements: Use Case Description and Diagrams Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
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.
Chapter 3: Software Design –Use case Diagram Nouf Alghanmi.
UC Diagram & Scenario RKPL C & D. Using Use Case Diagram Use case diagrams are used to visualize, specify, construct, and document the (intended) behavior.
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.
Use Cases Discuss the what and how of use cases: Basics Examples Benefits Parts Stages Guidelines.
Engineering Quality Software Week02 J.N.Kotuba1 SYST Engineering Quality Software.
Systems Analysis and Design in a Changing World, Fourth Edition
Using Use Case Diagrams
Chapter 4: Business Process and Functional Modeling, continued
Component and Deployment Diagrams
CMPE 280 Web UI Design and Development August 29 Class Meeting
Use Case Modeling - II Lecture # 27.
ATM OO Design and Implementation Case Study
Use Cases Discuss the what and how of use cases: Basics Benefits
Recall The Team Skills Analyzing the Problem (with 5 steps)
Object-Oriented Analysis and Design
Storyboarding and Game Design SBG, MBG620 Full Sail University
Use Case Model.
Unified Modeling Language
UML Use Case Diagrams.
OO Domain Modeling With UML Class Diagrams and CRC Cards
Start at 17th March 2012 end at 31th March 2012
OO Domain Modeling With UML Class Diagrams and CRC Cards
SE-565 Software System Requirements IV. Use Cases
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Use Case Modeling - techniques for detailing use cases
Concepts, Specifications, and Diagrams
SAD ::: Spring 2018 Sabbir Muhammad Saleh
Object Oriented Analysis and Design
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Using Use Case Diagrams
Seminar 2 Design of Informatics Systems
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Interaction Modeling Extracted from textbook:
Welcome 1 This is a document to explains the chosen concept to the animator. This will take you through a 5 section process to provide the necessary details.
Use cases Dr. X.
Presentation transcript:

Object Oriented Analysis UML Use Case Driven Object Modeling Chapter 5 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences Department of Computer Science Dr. Doaa Sami Khafaga

Objectives The main objective of this chapter is to know how to model users’ tasks using use case diagrams and detailed descriptions of use cases. In this chapter you will learn about the following: Scenarios: used to formulate the actual system requirements Use-Cases: describing how the user will use the system Explain the sections of a use case text Provide the student with a template for writing the use case description Introduce the use case and context diagrams Describe the artifacts used with a Use Case Explain a logic via artifacts decision tables or decision tree Explain use cases relations, e.g., include, extend, generalise Software Engineering UML Use Case Driven Object

Scenarios Scenarios are real-life examples of how a system can be used. They should include A description of the starting situation; A description of the normal flow of events; A description of what can go wrong; Information about other concurrent activities; A description of the state when the scenario finishes. Software Engineering UML Use Case Driven Object

Scenarios Software Engineering UML Use Case Driven Object I would like a Book of stamps, please. Ok. Will that be all? Yes. That will be SR7 Here is SR10 Thanks. Here are your stamps and your change Software Engineering UML Use Case Driven Object

Use cases: describing how the user will use the system Use-cases are a scenario based technique in the UML which identify the actors in an interaction and which describe the interaction itself. A use case is a typical sequence of actions that a user performs in order to complete a given task. A set of use cases should describe all possible interactions with the system. Explains everything in the user’s language Use case answers the question: What is the system supposed to do for the user? Software Engineering UML Use Case Driven Object

Scenarios A scenario is an instance of a use case A specific occurrence of the use case a specific actor ... at a specific time ... with specific data. Software Engineering UML Use Case Driven Object

Use cases: describing how the user will use the system The objective of use case analysis is to model the system from the point of view of … how users interact with this system … when trying to achieve their objectives. It is one of the key activities in requirements analysis A use case model consists of a set of use cases an optional description or diagram indicating how they are related Use case model = the set of all use cases Software Engineering UML Use Case Driven Object

How to describe a single use case A. Name: Give a short, descriptive name to the use case. B. Actors: List the actors who can perform this use case. C. Goals: Explain what the actor or actors are trying to achieve. D. Preconditions: State of the system before the use case. E. Summary: Give a short informal description. F. Related use cases. G. Steps: Describe each step using a 2-column format. H. Post-conditions: State of the system in following completion. A and G are the most important Software Engineering UML Use Case Driven Object

Use Case Diagram Modeling the Context of a System Use case - narration of the sequence of events of an actor using a system UML icon for use case Actor - an entity external to the system that in some way participates in the use case An actor typically stimulates the system with input events or receives outputs from the system or does both. UML notation for actor: Customer UML Use Case Driven Object Software Engineering

Use Case Diagram Modeling the Context of a System An actor is a user of a system in a particular role. An actor can be human or an external system. BookBorrower A use case is a a task that an actor needs to perform with the help of the system. Borrow book Use cases make more precise the concept of viewpoint analysis. Software Engineering UML Use Case Driven Object

Use Case Diagram: Actor Primary Actor - an entity external to the system that uses system services in a direct manner. Supporting Actor- an actor that provides services to the system being built. Hardware, software applications, individual processes, can all be actors. Software Engineering UML Use Case Driven Object

Use Case Diagram Modeling the Context of a System Software Engineering UML Use Case Driven Object

Use Case Diagram Modeling the Context of a System Software Engineering UML Use Case Driven Object

Use Case Diagram Actor Software Engineering UML Use Case Driven Object

Example: LIBSYS use cases Article search Library User Article printing Library Staff Supplier Catalogue services Software Engineering UML Use Case Driven Object

Example: ATM Use Cases Develop a set of use cases and a use case diagram for a simple ATM (simple means you can just consider two kinds of accounts, savings and checking, and two transactions, deposits and withdrawals) Software Engineering UML Use Case Driven Object

Example: Rent Videos Use Cases ● Rent Videos. A Customer arrives with videos to rent. The Clerk enters their ID, and each video ID. The System outputs information on each. The Clerk requests the rental report. The System outputs it, which is given to the Customer with their videos. Show computer system actors with an alternate notation to human actors. Video Store Information System «actor» Credit Authorization Service Rent Videos . . . primary actors on the left supporting actors on the right Software Engineering UML Use Case Driven Object

Example: Point of Sale – Problem Description Software Engineering UML Use Case Driven Object

Example: Point of Sale – Problem Description Software Engineering UML Use Case Driven Object

Example: Point of Sale – Problem Description Software Engineering UML Use Case Driven Object

Example: Point of Sale - Actors Cashier Customer Supervisor Choosing actors: Identify system boundary Identify entities, human or otherwise, that will interact with the system, from outside the boundary. Software Engineering UML Use Case Driven Object

Example: Point of Sale – Actor-Goal List Software Engineering UML Use Case Driven Object

Example: Point of Sale – Use Case Diagram Process sale Payment Authorization service Handle returns Cashier <<actor>> Tax calculator Process rental Manage security <<actor>> Accounting system System administrator Manage users Use Case Diagram: illustrates a set of use cases for a system. Software Engineering UML Use Case Driven Object

Exercise: movie ticket machine Problem Description Implement a simple movie ticket vending machine. The movie theater that will use the machine has only one movie and one show time each day. Every morning, the theater manager will turn on the ticket machine, and it will ask him for the name of the movie and the ticket price that day. It will also ask how many seats are in the theater (so it won't sell too many tickets). When a customer walks up to the ticket machine, he will see the name of the movie, the time, and the ticket price displayed. There is a slot to insert money, a keypad of buttons to enter a number into the "Number of Tickets" field, and a "Buy" button. Printed tickets come out of a slot at the bottom of the machine. Above the ticket slot is a message display (for error messages like "Please enter more money or request fewer tickets" or "SOLD OUT!"). An additional display shows the customer's balance inside the machine. Finally, there is a "Return Change" button so the customer can get his unspent money back. Who or what are the actors? ● What are the use cases (goals of actors)? Software Engineering UML Use Case Driven Object

Identification of Use Cases Use cases for Manager Use case: Set title Actors: Manager, Machine 1. Manager requests a change of movie title 2. Machine asks manager for new movie title 3. Manager enters movie title Use case: Set price 1. Manager requests a change of ticket price 2. Machine asks manager for new price for movie title 3. Manager enters ticket price Alternatives: Invalid price If manager enters price below SR5 or greater than SR50 3a. Machine asks manager to reenter price Use case: Set seats Actors: Manager, Machine 1. Manager requests a change in number of seats 2. Machine asks manager for number of seats in theatre 3. Manager enters number of seats Alternatives: Invalid number of seats If manager enters number less than 20 or greater than 999 3a. Machine asks manager to reenter number of seats Software Engineering UML Use Case Driven Object

Identification of Use Cases Use cases for Customer Use case: Buy tickets Actors: Customer, Machine 1. Customer requests tickets 2. Machine tells customer to put balance due in money slot 3. Customer enters money in money slot 4. Machine updates customer balance 5. Customer requests tickets 6. Machine prints tickets 7. Machine updates number of seats Alternative: Insufficient seats At step 1, if number of tickets requested is less than available seats, 1a. Display message and end use case Alternative: Insufficient funds At step 5, if money entered < total cost, 5a. Display insufficient amount entered 5b. Go to step 3 Use case: # of tickets Actors: Customer, Machine 1. Customer enters number of tickets 2. Machine displays total balance due Alternative: Customer wants zero tickets At step 1, customer enters zero tickets 1a. Display thank you message 1b. Set balance to $0.0 Use case: Return change to customer Actors: Customer, Machine 1. Customer requests change 2. Machine dispenses money 3. Machine updates customer balance Software Engineering UML Use Case Driven Object

Use case diagram for Movie Ticket Machine Set title # of tickets Set price Buy tickets Give change Set seats Manager Customer TicketMachine Software Engineering UML Use Case Driven Object

Use Case Description Use case text provides the detailed description of a particular use case Use Case ID: Give each use case a unique integer sequence number identifier. Use Case Name: Start with a verb. Created By: Last Updated By: Date Created: Date Last Updated: Actors: Calls on the system to deliver its services. Description: "user-goal" or "sub-function" Stakeholders and Interests: Who cares about this use case, and what do they want? Trigger: Identify the event that initiates the use case. Pre-conditions: What must be true on start, and worth telling the reader? Post-conditions: Describe the state of the system at the conclusion of the use case execution. Normal Flow: A typical, unconditional happy path scenario of success. Alternative Flows (Extensions): Alternative scenarios of success or failure. Priority: Indicate the relative priority of implementing the functionality required to allow this use case to be executed. Technology and Data Variations List Varying I/O methods and data formats. Special Requirements: Related non-functional requirements. Notes and Issues: Such as open issues. Software Engineering UML Use Case Driven Object

Use Case Description Software Engineering UML Use Case Driven Object Use Case Identification Use Case ID Give each use case a unique integer sequence number identifier. Use Case Name State a concise, results-oriented name for the use case. These reflect the tasks the user needs to be able to accomplish using the system. Include an action verb and a noun. Use Case History Created By Date Created Last Updated By Date Last Updated Actors An actor is a person or other entity external to the software system being specified who interacts with the system and performs use cases to accomplish tasks. Name the actor that will be initiating this use case and any other actors who will participate in completing the use case. Description Provide a brief description of the reason for and outcome of this use case. Stakeholders and Interests Who cares about this use case, and what do they want? Trigger Identify the event that initiates the use case. This could be an external business event or system event that causes the use case to begin, or it could be the first step in the normal flow. Software Engineering UML Use Case Driven Object

Use Case Description Software Engineering UML Use Case Driven Object Use Case Definition Pre-conditions List any activities that must take place, or any conditions that must be true, before the use case can be started. Number each precondition. Examples: User’s identity has been authenticated. User’s computer has sufficient free memory available to launch task. Post-conditions Describe the state of the system at the conclusion of the use case execution. Number each post-condition. Examples: Price of item in database has been updated with new value. Normal (basic) Flow of events – Happy path - Successful path – Main Success Scenario Provide a detailed description of the user actions and system responses that will take place during execution of the use case under normal, expected conditions. This dialog sequence will ultimately lead to accomplishing the goal stated in the use case name and description. Alternative Flows (Extensions): Alternate scenarios of success or failure Document other, legitimate usage scenarios that can take place within this use case separately in this section. State the alternative flow, and describe any differences in the sequence of steps that take place. Number each alternative flow in the form “X.Y”, where “X” is the Use Case ID and Y is a sequence number for the alternative flow. For example, “5.3” would indicate the third alternative flow for use case number 5. Software Engineering UML Use Case Driven Object

Use Case Description Software Engineering UML Use Case Driven Object Use Case Definition (Cont) Priority Indicate the relative priority of implementing the functionality required to allow this use case to be executed. The priority scheme used must be the same as that used in the software requirements specification. Technology and Data Variations List Varying I/O methods and data formats. ● Special Requirements Identify any additional requirements, such as nonfunctional requirements, for the use case that may need to be addressed during design or implementation. These may include performance requirements or other quality attributes. Notes and Issues List any additional comments about this use case or any remaining open issues or TBDs (To Be Determineds) that must be resolved. Identify who will resolve each issue, the due date, and what the resolution ultimately is. Software Engineering UML Use Case Driven Object

Advantages of use cases Use Cases are a way to describe and present business functions from a user perspective. All requirements for a user to accomplish a particular task are gathered together in a single Use Case. The Use Case model is a collection of all individual Use Cases. Use Case modeling consists of diagrams that give a visual overview of the system, followed by text that describes the actors and the Use Cases. Advantages of Use Case modeling include: Facilitates communication among Project Teams Assures Architectural soundness Provides a visual modeling language for building an object-oriented and component based system Provides users with a ready-to-use, expressive visual modeling language, providing the ability to develop and exchange meaningful models Provides independence from programming languages and development processes Provides stakeholders the ability to development organization to work as one team with one language and one tool, by using UML to visualize, specify, construct, and document the artifacts of the system Supports High Level Development concepts such as components, collaborations, frameworks and patterns Software Engineering UML Use Case Driven Object

Identifying Actors and Use Cases Observation Read documents and discuss requirements with users Shadowing important potential users as they do their work ask the user to explain everything he or she is doing Session video taping Interviewing Conduct a series of interviews Ask about specific details Ask about the stakeholder’s vision for the future Ask if they have alternative ideas Ask for other sources of information Ask them to draw diagrams Software Engineering UML Use Case Driven Object

Use Case Best Practices Method 1 - Actor based Identify the actors related to the system Identify the processes these actors initiate or participate in Method 2 - Event based Identify the external events that a system must respond to Relate the events to actors and use cases Method 3 – Goal based [Actors have goals.] Find user goals. [Prepare actor-goal list.] Define a use case for each goal. Software Engineering UML Use Case Driven Object

Use Case Best Practices Identify user goal-level UCs- that serve each goal of the primary actor Use EBP guide lines if a UC is at a suitable level: goals hierarchy and sub goals Find the user goals: Ask: what are your goals? Do not ask what are the use cases Do not ask what do you do? Software Engineering UML Use Case Driven Object

Use Case Best Practices Define a use case for each goal Answers to the question ‘what are your goals ?’ combined with a question to move higher up the goal hierarchy (‘what is the goal of this goal’) will: open up the vision for new & improved solutions focus on the business get to the heart of what the stakeholders want from the system Goals may be composed of many sub goals (sub functional goals) leading to a primary UC and sub UCs Software Engineering UML Use Case Driven Object

Use Case Best Practices: Primary & Supporting Actors Primary actors: have goals to be fulfilled through system services Supporting actor: provide services to the system under design Software Engineering UML Use Case Driven Object

System boundary What is inside? If difficult to identify, then define what is outside as external primary and supporting actors Software Engineering UML Use Case Driven Object

Finding Primary Actors Goals & Use Cases Use cases are defined to satisfy the goals of the primary actors: Choose the system boundary Identify primary actors For each primary actor, identify their user goals. Raise goals to the highest goal level that satisfy the EBP guidelines Name a UC according to its goal: usually, a 1:1 relationship common exception to 1:1 relationship: CRUD (create, retrieve, update, delete) goals into one CRUD UC called “manage” Software Engineering UML Use Case Driven Object

<<extend>> 27  An extension is a significant exception to the normal case.  Use an extend link to show that one use case may add functionality to another use case under certain circumstances.  Major variation: If you have an alternative path in the use case, especially when something goes different from what does plan.  Optional sub-goal: If you have parts of the use case that would be optional to implement or execute to meet the actor’s goals. Doing so clarifies the relationships between actors and their goals. It also emphasizes that you may deliver these optional goals in later releases.

<<extend>> 28  The arrow should point at the main, extended use case.  For example, the Login use case of a typical Web site can involve Register New User - but only when the user does not already have an account

<<include>> 29  Used to indicate that one use case includes the functionality of another use case.  Some use cases may share one or more common steps  The arrow should point at the more detailed, included use case.

Generalization 30  Generalization between Use Cases means that the child is a more specific than the parent; the child use case inherits all attributes and associations of the parent use case, but may add new features.  Children of the same parent are all specializations of the parent.

Generalization 31

Generalization 32

Use Case Specification Outline Example 35 Use Case: Withdraw Money Actors: system user Precondition: 1. The Customer has selected a language to use. 2. The Customer is a member of a bank. 3. The Customer has placed their credit card into the ATM machine. 4. The Customer has verified their account with PIN number. Trigger: Customer selects withdraw money from the transaction options list. Flow of events: 1. The use case starts when the Customer selects withdraw money from the transaction options list.. 2. The system then checks this chosen amount against Customer’s current account balance. 3. The system shows a confirmation message that the withdraw money transaction was successful. 3.1. If the Customer does not have sufficient funds for the withdraw amount a message is displayed and they are requested to supply a different withdraw money amount. 4. The system then counts up money notes to the value of the withdraw amount and places it in the cash dispenser. 5. The system ask the user if they need a receipt 5.1. If the Customer selects “No” then a transaction receipt is not printed. 5.2. If the Customer selects “yes” then a transaction receipt is printed. 5.2.1 if there is no papers, a message is displayed “Sorry receipt cannot be printed”. Post condition: 1. The system has updated the Customer’s account balance if a transaction was successfully completed. 2. The system has ejected the Customer’s account card if no other transactions were required.