University of Southern California Center for Systems and Software Engineering CS577a: Use-Case Analysis and Workshop 10/12/2009© USC-CSSE 2005-2009 1 David.

Slides:



Advertisements
Similar presentations
Chapter 7 Structuring System Process Requirements
Advertisements

9/10/2004Use Case Workshop 1 CSC480 Software Engineering Workshop 1 Requirements Modeling.
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
Conversation Form l One path through a use case that emphasizes interactions between an actor and the system l Can show optional and repeated actions l.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Slide 6B.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
CSCI 639 Topics in Software Engineering Assignment #5 Fall 2008.
Object Oriented Analysis Process
NJIT Drawing System Sequence Diagrams Chapter 10 Applying UML and Patterns Craig Larman Presented by Anuradha Dharani.
1 Info 1409 Systems Analysis & Design Module Lecture 8 – Modelling tools and techniques HND Year /9 De Montfort University.
Sharif University of Technology1 Design and Use-case Realization Software Engineering Laboratory Fall 2006.
03/12/2001 © Bennett, McRobb and Farmer Use Case Diagrams Based on Chapter 6 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and.
Use Case Analysis – continued
UML exam advice. Minimal, yet sufficient UML course 80% of modeling can be done with 20% of the UML. Which 20% was that again? We’re supposed to be “Use.
Chapter 7 Structuring System Process Requirements
TK2023 Object-Oriented Software Engineering CHAPTER 6 SYSTEM SEQUENCE DIAGRAMS.
The chapter will address the following questions:
Traditional Approach to Requirements Data Flow Diagram (DFD)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Extended Class Diagram.
Data Flow Diagrams (DFDs)
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
University of Southern California Center for Systems and Software Engineering CS577a: Understanding the SSAD, Use-Cases and GUI Prototyping David Klappholz,
1 © 2005 course technology University Of Palestine Chapter 6 Storyboarding the User’s Experience.
Moodle (Course Management Systems). Assignments 1 Assignments are a refreshingly simple method for collecting student work. They are a simple and flexible.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Object Oriented.
1 CMPT 275 Phase: Design. Janice Regan, Map of design phase DESIGN HIGH LEVEL DESIGN Modularization User Interface Module Interfaces Data Persistance.
Interaction Modeling Interaction model describes how objects interact to produce useful results. Interactions can be modeled at different levels of abstraction:
Understanding User Requirements. Documenting Use Cases 2 At this stage of the exploration, the participants should be thinking of essential use cases.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
© 2005 course technology1 1 1 University Of Palestine UML for The IT Business Analyst A practical guide to Object Oriented Requirement Gathering Hoard.
Use Cases 1. Last week  Introduction to software engineering  How is it different from traditional engineering?  Introduction to specification  Operational.
By the end of this session you should be able to...
1 © 2005 course technology1 1 1 University Of Palestine Chapter 5 (Cont.) Scoping the IT Project with System Use Cases.
Black Box Testing Techniques Chapter 7. Black Box Testing Techniques Prepared by: Kris C. Calpotura, CoE, MSME, MIT  Introduction Introduction  Equivalence.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
UML-1 3. Capturing Requirements and Use Case Model.
Sept. 18, 2003CS WPI1 CS 509 Design of Software Systems Lecture #3 Thursday, Sept. 18, 2003.
1 אירוע אמאזון. 2 שלבי הפיתוח עם דיאגרמות UML 3 אמאזון תרשים תוכן.
University of Southern California Center for Systems and Software Engineering CS577a: Sequence Diagrams and ‘Design Classes’ David Klappholz, Nupul Kukreja.
UML-1 8. Capturing Requirements and Use Case Model.
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.
ANALYSIS - II REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Object-Oriented Architecture & Design – Lecture 2 (of 3) UML in Depth David Woollard University of Southern California Computer Science Department Software.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
Microsoft ® Office Excel 2003 Training Using XML in Excel SynAppSys Educational Services presents:
Drawing System Sequence Diagrams
Use Case Model Use case diagram.
Lecture 4 :Use cases III (UC description) 1. Outline CT 1414 * Nouf Aljaffan2  Concept of Use Case Description  Levels of Use Case Description  Reading.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Analysis Modeling CpSc 372: Introduction to Software Engineering
Use Cases CS 6961 – Lecture 4 Nathan Dykman. Neumont UniversityCS Lecture 102 Administration Homework 1 is due –Still reviewing the proposal, but.
Human Computer Interaction
Use Case Textual Analysis
Slide 12D.88 © The McGraw-Hill Companies, 2005 Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach.
1 SEQUENCE DIAGRAM EXAMPLE The domain model, showing the navigability of the associations, and the Reserve video (staff scenario) use-case description.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
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.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.
Use Case, Component and Deployment Diagrams University of Sunderland.
Use Case Diagrams A Detailed Description. Use Case Diagrams Use case diagrams describe relationships between users and use cases A use case is a (usually.
CMPE 280 Web UI Design and Development August 29 Class Meeting
Object-Oriented Analysis and Design
Use Case Model Use case diagram.
CIS 764 Database Systems Engineering
Presentation transcript:

University of Southern California Center for Systems and Software Engineering CS577a: Use-Case Analysis and Workshop 10/12/2009© USC-CSSE David Klappholz, Nupul Kukreja

University of Southern California Center for Systems and Software Engineering Roadmap We shall a discuss a technique called “Robustness Analysis” –To help analyze the use-case descriptions –as well as help identify classes that may have not been captured in the domain model (as well as those are required in the design/implementation) There will be a workshop in the latter half of the lecture – each team should have their use-case descriptions. We shall be applying this for at least 14 use-cases – one per team! 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Robustness Analysis This term is a misnomer!! It is not intended for analyzing the robustness of a system but for analyzing the accuracy of use- case descriptions to help in software design/implementation It was ‘invented’ by Ivar Jacobson, but never made it into the UML specification – it was then furthered by Doug Rosenberg et al. We may use the term “Initial Design Diagram” to mean “Robustness Diagrams” at times 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Robustness Analysis - Purpose Its purpose is to discover the necessary: –Interface objects: What various actors use to interact with the system e.g., Pages, Dialog boxes, etc., –Entity objects: Both temporary and persistent data that are used/generated by the system, e.g., temporary data structures, DB tables, etc. –Control objects: – To state loosely the ones that facilitate interactions between the above! It will be clarified further when we’ll see examples on later slides. 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Robustness Analysis - Process‏ Performed one use-case at a time; its result is one “robustness diagram” per use-case. The first use-case for which we’ll create a robustness diagram is the Log In use-case from the Internet Bookstore system that we have been following The text of the Log In use-case is repeated on the following slides after which the Log In use-case’s initial design diagram (i.e., robustness diagram) is shown –Some of the symbols may be unfamiliar, but most of which you’ll be able to figure out if you spend a bit of time looking at the diagram. We explain them in detail in today’s lecture. 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Basic Course 1.The Customer clicks the Log In button on the Home Page. 2.The system displays the Login Page. 3.The Customer enters his or her user ID and password and then clicks the Log In button. 4.The system validates the login information against the persistent Account data and then returns the Customer to the Home Page. Log In Use Case 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering If the Customer clicks the New Account button on the Login Page, the system invokes the Open Account use case. If the Customer clicks the Reminder Word button on the Login Page, the system displays the reminder word stored for that Customer, in a separate dialog box. When the Customer clicks the OK button, the system returns the Customer to the Login Page. If the Customer enters a user ID that the system does not recognize, the system displays a message to that effect and prompts the Customer to either enter a different ID or click the New Account button. If the Customer enters an incorrect password, the system displays a message to that effect and prompts the Customer to reenter his or her password. If the Customer enters an incorrect password three times, the system displays a page telling the Customer that he or she should contact customer service, and also freezes the Login Page. Log In Use Case: Alternate Courses 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Robustness Diagram for Log In 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering New Symbols: Interface Object 10/12/2009© USC-CSSE The symbolrepresents an “interface object.” That is, an object with which an actor interacts. Some examples from Log-In’s Initial Design Diagram are: Home PageLogin PageReminder Word Dialog Box

University of Southern California Center for Systems and Software Engineering New Symbols: Entity Object 10/12/2009© USC-CSSE The symbolrepresents an “entity object.” The only example from Log In’s Initial Design Diagram is: which represents customer account data that the Log In use-case needs to refer to. Account

University of Southern California Center for Systems and Software Engineering New Symbols: Control Object 10/12/2009© USC-CSSE The standard symbol for a “control object” is: i.e., a circle with a left-pointing arrow head on top. We will see instances of this symbol, later, in the initial design diagram for the Open New Account use-case. An alternative symbol for a “control object,” and the one used in Log In’s Initial Design Diagram is: The small arrow head on the oval is a bit hard to see, but it’s there – pointed to by the red arrow.

University of Southern California Center for Systems and Software Engineering New Symbols: Control Object (cont.)‏ 10/12/2009© USC-CSSE The two instances of control objects in Log-In’s Initial Design Diagram are named “Display” and “Validate.” DisplayValidate

University of Southern California Center for Systems and Software Engineering Constructing the Robustness Diagram - I Remember: There will be one robustness diagram for each use-case. This diagram for a use-case is created (sort of) sentence-by-sentence from the text of the use-case, starting with the text of the basic course. What we mean by “sort of” is illustrated, on the next slide, by the break-down of Log-In’s basic course into “(sort of) sentences.” 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Constructing the Robustness Diagram II ‏ 10/12/2009© USC-CSSE The Customer clicks the Log In button on the Home Page. 2.The system displays the Login Page. 3.The Customer enters his or her user ID and password and then clicks the Log In button. 4.The system validates the login information against the persistent Account data and then returns the Customer to the Home Page. That is, for the purpose of constructing an initial robustness diagram, a sentence with no “and” or “or” is treated as an individual unit, but a sentence with an “and” or an “or” is broken into its constituent parts. NOTE: THIS MEANS THAT USE-CASE TEXT MUST BE WRITTEN AS COHERENT, UNAMBIGUOUS, SENTENCES!!!

University of Southern California Center for Systems and Software Engineering Constructing the Robustness Diagram III ‏ 10/12/2009© USC-CSSE If you look carefully at Log-In’s basic course’s decomposition, on the previous slide, into five components or “sentences,” you’ll find two apparent violations of the “break at an ‘and’ or an ‘or’ “ rule. See if you can find the two apparent violations before you go to the next slide.

University of Southern California Center for Systems and Software Engineering Constructing the Robustness Diagram IV The two apparent violations are the two “and”s and one “or” in the following “sentence” that didn’t cause us to break it up into separate parts as we said we’d do when we saw instances of “and” and “or”: The Customer enters his or her user ID and password and then clicks the Log In button. The reason we didn’t break the sentence at each “and” and “or” is that in constructing the initial design diagram we’re trying to figure out the interface objects, entity objects, control objects that will have to be parts of the system, and actions that the system will have to perform, so the rule actually should have been “a sentence with an “and” or an “or” that describes a system (application) activity is broken into its constituent parts; a sentence describing an actor’s activity isn’t broken down.” 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Constructing the Robustness Diagram IV Since Log-In’s basic course consists of five “sentences” – Log-In’s initial design diagram will be constructed in five steps Log-In’s initial design diagram starts out as an empty/blank diagram, and additions are made to it for each “sentence.” The next five slides show the step-by-step construction of Log-In’s initial design diagram. 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Constructing the Robustness Diagram V There are four basic ‘rules’* to follow: –Actors can only talk to boundary objects. –Boundary objects can only talk to controllers and actors. –Entity objects can only talk to controllers. –Controllers can talk to boundary objects, entity objects, and other controllers, but not to actors 10/12/2009© USC-CSSE *Use Case Driven Object Modeling with UML – Doug Rosenberg et al.

University of Southern California Center for Systems and Software Engineering 10/12/2009© USC-CSSE Figure 5-5. Robustness Diagram Rules Source: Use Case Driven Object Modeling with UML – Doug Rosenberg et al.

University of Southern California Center for Systems and Software Engineering STEP 1 The Customer clicks the Log In button on the Home Page. 10/12/2009© USC-CSSE Note that the Log In button is an interface item; if it were any more complex than just being a button to click on, the author of Log In’s initial design diagram might have modeled it as a separate interface object. Note, further, that just as was the case in deciding what the use-cases are for the Internet Bookstore, deciding on what’s an “object” worthy of going into an initial design diagram is a judgment call. IN SOFTWARE DEVELOPMENT THERE IS OFTEN NO SINGLE RIGHT ANSWER OR RIGHT ANALYSIS OR DESIGN DECISION.

University of Southern California Center for Systems and Software Engineering STEP 2 The system displays the Login Page 10/12/2009© USC-CSSE It wouldn’t be much of a stretch to guess that oval-shaped control objects in initial design diagrams later turn into “methods” (or independent ‘controller classes’)

University of Southern California Center for Systems and Software Engineering STEP 3 The Customer enters his or her user ID and password and then clicks the Log In button. 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering STEP 4 The system validates the login information against the persistent Account data 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering STEP 5...and then returns the Customer to the Home Page 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Alternate Courses If the Customer clicks the New Account button on the Login Page, the system invokes the Open Account use-case. If the Customer clicks the Reminder Word button on the Login Page, the system displays the reminder word stored for that Customer, in a separate dialog box. When the Customer clicks the OK button, the system returns the Customer to the Login Page. If the Customer enters a user ID that the system does not recognize, the system displays a message to that effect and prompts the Customer to either enter a different ID or click the New Account button. If the Customer enters an incorrect password, the system displays a message to that effect and prompts the Customer to re-enter his or her password. If the Customer enters an incorrect password three times, the system displays a page telling the Customer that he or she should contact customer service, and also freezes the Login Page. 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering If the Customer clicks the New Account button on the Login Page, the system invokes the Open Account use-case 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering If the Customer clicks the Reminder Word button on the Login Page, the system displays the reminder word stored for that Customer, in a separate dialog box. 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering When the Customer clicks the OK button, the system returns the Customer to the Login Page. 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering More on Robustness Analysis In most cases, initial design results in the realization that use-case texts are missing details, so use-case construction and initial design are iterative processes, during which both use-case texts and initial design diagrams improve iteratively until they are deemed to be adequate to go on to the next step – sequence diagram construction. In our case, however, the use-case texts are already extremely well written – in particular, they cover all/most alternate courses, the source of the largest number of problems if they aren’t done well – so we have assumed that they’re OK and have constructed initial design diagrams directly from them, i.e., without trying to improve them. You DON’T need to document this for 577ab! It is a ‘tool’ to help guide you in your system development!! 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Next Step: Transform the Domain Model For every Interface, Boundary and Entity Object that got identified refer the Domain Model (which should have been revised a few times over by now and is relatively stable/understood!) The DM will no longer be called a ‘domain model’ henceforth – it would now be transformed into an analysis/design model The robustness analysis should give you a good idea of what classes you need to incorporate in your analysis/design model – each of the above objects should be ‘found’ in your design model! 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Transforming the Domain Model (cont’d) The classes from the DM suggests all that the application needs to know about the business The ‘Persistent Data Classes’ (PDC) (from the artifact and information diagram) would tell you what all it is that the application needs to ‘store’ Your initial ‘Analysis Model’ would typically show associations between the DM and PDC classes (you may discover the need for additional classes or refactor existing ones!) 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Transforming the Domain Model (cont’d) The robustness diagrams will typically show you the following: –Classes that belong to the application interface (could be simple pages or actual classes e.g., Java Swing’s JFrame etc.,) –Classes that belong to the ‘Persistent Data Classes’ – they help ‘verify’ if you captured the relevant aspects or left out in your initial analysis or if you need to refactor them –Methods (or possibly classes) that are responsible for the ‘flow of control’ to achieve the functionality put forth by the use-case description 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Transforming the Domain Model (cont’d) Remember: There is NO MAGIC algorithm to help ‘glue’ the Domain Model, Persistent Data Classes and the Methods/Classes, identified by the Robustness Analysis, together! This comes with a lot of practice and experience (not to mention, patience!!!)– thus you have to “iterate” over this multiple times! But how do you know what methods go in which classes?? Are the ‘controller’ objects enough to help identify this? 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Sequence Diagrams! The sequence diagrams help identify the corresponding methods that are required for each of the previously identified classes, the controller objects ‘hint’ at the possible presence of some methods We shall see this in detail in the subsequent lecture on OOA&D… …we shall now proceed into the workshop session! 10/12/2009© USC-CSSE

University of Southern California Center for Systems and Software Engineering Workshop Will help you grasp today’s concepts better Each team will ‘present’ their use-case description (only one) and we shall construct the robustness diagrams for that use-case Teams? Ready? 10/12/2009© USC-CSSE