Chapter 3 Object-Oriented Analysis. Requirements Analysis A requirement is a feature of the system Requirements analysis seeks to assess and specify the.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Analysis Modeling.
Use Case Modeling SJTU. Unified Modeling Language (UML) l Standardized notation for object-oriented development l Needs to be used with an analysis and.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Ch 12: Object-Oriented Analysis
Introduction To System Analysis and Design
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
Analysis Modeling Over view of today’s lesson T he analysis model is the first technical representation of a system. Analysis modeling uses a combination.
Lecture 3 Software Process Models / Requirements Analysis Topics Mythical Man Month Waterfall model Spiral Method Requirements Analysis Readings: Chapter.
Computer Science CS425/CS6258/23/20011 The Architecting Phase Class diagrams are further refined in this phase of development Object diagrams are created.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Computer ScienceSoftware Engineering Slide 1 Groups Paul Simmerlink Andrew Rodgers Daniel Coming Ogechi Ugwulebo William Nelson Jigna J. Bhatt Casey J.
© Copyright Eliyahu Brutman Programming Techniques Course.
Introductory case study. 2 The problem The most difficult part of any design project is understanding the task you are attempting You have been contacted.
Teamwork Know each other Compete Leadership Strengths and Weaknesses
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Process Modeling SYSTEMS ANALYSIS AND DESIGN, 6 TH EDITION DENNIS, WIXOM, AND ROTH © 2015 JOHN WILEY & SONS. ALL RIGHTS RESERVED. 1 Roberta M. Roth.
Software Engineering Case Study Slide 1 Introductory case study.
Com S 362: Object-Oriented Analysis and Design Class, Responsibilities, Collaborations, CRC Cards Com S 362: Object-Oriented Analysis and Design Oct 18,
Chapter 3 Object-Oriented Analysis of Library Management System(LMS)
CMPT 275 Software Engineering
CMPT 275 Software Engineering
Computer ScienceSoftware Engineering Slide 1 LMS l Response to requirements “We gave them what they asked for, so we are not to blame if the system is.
Introduction To System Analysis and design
CMIS 470 Structured Systems Design
Object-Oriented Analysis - Instructor Notes
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
1 CMPT 275 Phase: Design. Janice Regan, Map of design phase DESIGN HIGH LEVEL DESIGN Modularization User Interface Module Interfaces Data Persistance.
1 CMPT 275 Software Engineering Requirements Analysis Phase Requirements Analysis Activity (Identifying Objects, Scenarios) Janice Regan,
Chapter 5 Class Design. The Deliverables of the Class Design Process Class diagrams are further refined in this phase of development Object diagrams are.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
1 Sub-Phase Low Level Design (cont). Janice Regan, Map of design phase DESIGN HIGH LEVEL DESIGN Modularization User Interface Module Interfaces.
Introduction To System Analysis and Design
Chapter 4 – Requirements Engineering Lecture 3 1Chapter 4 Requirements engineering.
Key Takeaway Points A use case is a business process; it begins with an actor, ends with the actor, and accomplishes a business task for the actor. Use.
Lecture 2 Software Process Models / Requirements Analysis Topics Mythical Man Month Waterfall model Spiral Method Requirements Analysis Readings: Chapter.
1 Object-Oriented Analysis Use Case Driven. 2 The outline method for OOA 1.Identify object classes within the problem domain 2.Define the behaviour of.
1 CMPT 275 Software Engineering Requirements Gathering Activity Janice Regan,
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
CS3773 Software Engineering Lecture 04 UML Class Diagram.
Developed by Reneta Barneva, SUNY Fredonia for CSIT 425 Requirements Modeling.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
Chapter 8 Analysis & Modeling. Data Modeling examines data objects independently of processing focuses attention on the data domain creates a model at.
1 CMPT 275 Software Engineering Requirements Analysis Phase Requirements Analysis activity Janice Regan,
Chapter 1 Introduction to Software Engineering. Why Engineer Software? n Air traffic control case study –$2.3 Billion spent without any usable deliverable.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
UML Use Case Models and Modular Programming Session 3 LBSC 790 / INFM 718B Building the Human-Computer Interface.
1 High Level Design Phase Refining Use Cases User Interface Information.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
Week 3: Requirement Analysis & specification
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
UML - Development Process 1 Software Development Process Using UML.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
1 M206 Chapter 31: An Overview of Software Development 1.Defining the problem 2.Analyzing the requirement – constructing initial structural model 3.Analyzing.
Chapter 2 Object-Oriented Paradigm Overview
Chapter 4: Business Process and Functional Modeling, continued
About the Presentations
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

Chapter 3 Object-Oriented Analysis

Requirements Analysis A requirement is a feature of the system Requirements analysis seeks to assess and specify the behavior of the final system Requirements analysis can be iteratively carried out or done in a top-down fashion It is desirable to establish the breadth of behavior of a system to determine the primary classes that will comprise the system

The Importance of Requirements Analysis Frederick Brooks: “The hardest single part of building a software system is deciding precisely what to build” Barry Boehm: by investing more up-front effort in verifying and validating the software requirements, software developers will see reduced integration and test costs, as well as higher software reliability and maintainability

Examples of Good Requirements Analysis Participatory analysis Involves staff members of all levels from the domain area interacting directly with the development team Negotiation-based technique Developed by USC Center for Software Engineering Collaborative analysis approach involving end-users

Requirements Specification Requirements analysis results in a complete, consistent, correct, and unambiguous requirements specification The initial specification may be created by the end users or by the technical staff Independent of the source of the initial specification it must be refined and verified to be correct and complete

Possible Elements of Requirements Specification Supported activity list Human-computer interface description solved problem list Information source list Information requesting organization list Checks and balances Security and fault-tolerant requirements

More: Possible Elements of Requirements Specification Inter-operating systems list Estimates of present information capacity and projected growth Project time frame Prioritization of requirements Ethical concerns list

Case Study: Library Management System Independent of who creates the requirements specification (end users or technical staff), it is the responsibility of the system developers to ensure the user requirements are adequately fleshed out The first step of requirements analysis is to establish and refine the problem statement which takes the form of the requirements specification

LMS Case Study: Clarifying the Requirements Specification What sort of human-computer interface is envisioned? What sort of search facility is necessary for library patrons? Will patrons be assigned a unique ID number? Should the system support inter-library loan requests?

LMS Case Study: More Clarifying the Requirements Specification Are there any limits on patrons’ use of research databases? How are books retired from the library collection? How long are requested books held for patrons? Are overdue fees the same for all type of library resources? Which online databases will the system interact with?

Creating Quality Requirements Specifications The key is to keep in close communication with the end users throughout the development process, but especially during requirements analysis Ideally, a whole array of different end users should be involved with the development team to gain sufficient breadth of input

LMS Case Study: Supported Activity List Support Library staff activities like checking out resources to patrons Validating patrons Current membership No resources more than two weeks overdue Not over maximum of checked resources Assigning library numbers to patrons

LMS Case Study: More Supported Activity List Deleting expired library numbers and associated patron records Checking out library resources: books,CDs, etc Checking in library resources Changing the status of a library resource Allowing materials to be placed on reserve Allowing the searching of the library’s holdings on line Additional activities listed in text

Other Elements of the LMS Requirements Specification Human-computer interface Solved problems list Information source list Information requesting organizations Automated checks and balances Security and fault-tolerant requirements Present information capacity and projected growth

More Elements of the LMS Requirements Specification Projected time frame Prioritization of requirements Ethical concerns Who has access of borrowing history of patrons? How are children protected from questionable materials found on the Internet?

Verifying Requirements A structured walkthrough with the end users is a good technique for ensuring that the user needs are being addressed To ensure that the resulting software supports the requirements specification, items on the supported activity list are numbered and propagated through the software models and source code

The Process of Requirements Analysis Create verified requirements specification Create list of primary classes Create informal scenarios Create use cases Create scenarios Create class diagrams Create use case diagrams

Determining Primary Classes Select nouns from the requirements specification and inspect each noun for the following properties Retained information Needed services Multiple attributes Common attributes Common operations Essential requirements

LMS Case Study:Primary Classes Patron Student, faculty, library staff Resource Book, music CD, video, software Reference resource, reserved resource, requested resource, online research resource Inter-library loan request Overdue charge Overdue form letters

Identifying Use Cases A use case is a description of a scenario (or closely related set of scenarios) in which the system interacts with users of the system The behavior of the system is expressed without specifying how the behavior is implemented Use cases are initially described narratively, and then modeled graphically by class diagrams and interaction diagrams (to be discuss later) Informal scenarios are a good starting point for use cases

Characteristics of Use Cases Use cases are more abstract than informal scenarios A single use case may encompass multiple scenarios Use cases avoid redundancy Use cases are more formally structured than scenarios Use cases seek to capture complete breadth of system behavior

Use Case Layout Precondition What conditions must be true at the beginning of the use case? Main flow of events Describe the essential behavior associated with the use case Post condition What occurs as a result of the use case executing Exceptional flow of events ( zero to many) Enumerate possible erroneous flow of events

LMS Case Study: Use Cases Validate patron Check out resource Check in resource Request resource Reserve resource Manage Resource Manage Patron Generate from letter

LMS Case Study: Check out Resource Use Case Precondition Library staff and patron validated to LMS Library DB initialized Main flow of events Enter resource Determine due date Exceptional flow of events Patron ID not valid Patron has over due resources or too many checked Resource number not valid

More LMS Case Study: Check out Resource Use Case Postcondition Patron DB entry updated to reflect new resource Resource DB entry updated to reflect changed status: checked out Due date assigned to the resource DB entry

Scenario Development Scenarios are derived from use cases Scenarios are like informal scenarios, but are more formally structured Informal scenarios may be modified to produce scenarios Use cases are abstract because they do not reference specific values Scenarios are concrete because they do reference specific values Multiple scenarios may be required for a single use case

Modeling the System with UML The process of modeling parallels and supports the process of understanding the system requirements Two types of models support the analysis process Class diagrams Use case diagrams

Class Diagrams Models the composition of classes and the essential relationships between classes Models a static perspective of the system May expresses a more or less abstract representation of the system The notational building blocks Classes Interfaces Relationships Collaborations

Notational Elements of Class Diagrams Class Name ClassDetailed Class Interface Relationships: Dependency AssociationGeneralization Collaboration Collaboration Name

LMS Case Study: Class Diagram Requests Browses Checks out Returns PatronResource Overdue form Letter lists Library staff generates processes deletes adds reshelves

LMS Case Study: Class Diagram for Check out Resource Resource SoftwareBookMusic CD Video Patron Library staff processes Checks out

Use Case Diagrams Use case diagrams depict use cases interacting with external actors External actors are entities that interact with the software system, like system users, databases, or books Use cases represent system requirements and show a functional partitioning of the system Functional partitioning is useful for a dividing a system into smaller pieces

Notational Elements of Use Case Diagrams Use case name ActorUse case Relationships: Dependency AssociationGeneralization

LMS Case Study: Use Case Diagram Browse Resource Request Resource Reserve Resource Patron Resource

Steps in UCCD Analysis Process Create/refine requirements specification Create informal scenarios Create list of primary classes Create use cases Create scenarios from use cases Create class diagrams showing basic inter-class relationships Model key class collaborations Create use case diagrams

Evolving the System Requirements analysis may be done iteratively throughout system development The system to be developed may be partitioned into development subgoals Each subgoal has its own requirements analysis phase that it followed by design, implementation, and testing Each subset of the system is made work before the next subgoal is analyzed

Analyzing the Class Project List the primary classes Create a basic class diagram showing aggregation and inheritance Create use cases Create class diagrams Create use case diagrams Create one or more scenarios for each use case Engage in a structured walkthrough with your instructor

Working in Teams Development teams should meet at least once a week A common list of primary classes should be created by the team The creation of use cases, class diagrams, and scenarios should be divided amongst development team members The team as a whole should review the individual products to ensure that the pieces fit together

Additional Pointers for Effective Team Work The role of the chair is to facilitate discussion Each team member should have equal opportunity to be heard The meeting chair to make an extra effort to hear from less aggressive team members Team members should not be interrupted unless they are being long-winded Everyone should strive to make their points as concisely as possible