Lecture 3 Software Process Models / Requirements Analysis Topics Mythical Man Month Waterfall model Spiral Method Requirements Analysis Readings: Chapter.

Slides:



Advertisements
Similar presentations
Software Quality Assurance Plan
Advertisements

Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Gu & Maher University of Sydney, October 2004 DECO2005 Monitoring Team Process.
Introduction To System Analysis and Design
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Documenting Requirements using Use Case Diagrams
Overview of Software Requirements
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
Computer ScienceSoftware Engineering Slide 1 Groups Paul Simmerlink Andrew Rodgers Daniel Coming Ogechi Ugwulebo William Nelson Jigna J. Bhatt Casey J.
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
Teamwork Know each other Compete Leadership Strengths and Weaknesses
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Chapter 3 Object-Oriented Analysis of Library Management System(LMS)
CMPT 275 Software Engineering
USE Case Model.
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
Chapter 4 Requirements Engineering
CMIS 470 Structured Systems Design
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 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
Chapter 3 Object-Oriented Analysis. Requirements Analysis A requirement is a feature of the system Requirements analysis seeks to assess and specify the.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
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,
Prepared by Afra`a Sayah. Introduction. Weekly Tasks. Plane Phase. Analysis Phase. Design Phase. Report Rules. Conclusion. 2.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
CMPT 275 Software Engineering
1 Sub-Phase Low Level Design (cont). Janice Regan, Map of design phase DESIGN HIGH LEVEL DESIGN Modularization User Interface Module Interfaces.
Lecture 2 Software Process Models / Requirements Analysis Topics Mythical Man Month Waterfall model Spiral Method Requirements Analysis Readings: Chapter.
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.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Lecture 3 Uses Cases Topics UML Use Cases pop quiz Readings: Chapter 3 January 24, 2008 CSCE 492 Software Engineering.
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
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
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.
Chapter 1 Introduction to Software Engineering. Why Engineer Software? n Air traffic control case study –$2.3 Billion spent without any usable deliverable.
1 Modeling System Requirements with Use Cases. 2 Why Do We Need Use Cases? Primary challenge in a system design process –ability to elicit correct and.
Information Systems Analysis and Management Modeling Sys. Requirements with Use Cases Arnie Lund, Jeffrey Kim May 5, 2009 INFO380.
UML Use Case Models and Modular Programming Session 3 LBSC 790 / INFM 718B Building the Human-Computer Interface.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
By Germaine Cheung Hong Kong Computer Institute
1 High Level Design Phase Refining Use Cases User Interface Information.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
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
Requirements Engineering Requirements Validation and Management Lecture-24.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
CS223: Software Engineering Lecture 8: Requirement Engineering.
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.
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.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
Chapter 2 Object-Oriented Paradigm Overview
Software Configuration Management
Software Process Models
CIS 375 Bruce R. Maxim UM-Dearborn
Presentation transcript:

Lecture 3 Software Process Models / Requirements Analysis Topics Mythical Man Month Waterfall model Spiral Method Requirements Analysis Readings: Chapter 3 January 15, 2009 CSCE 492 Software Engineering

– 2 – CSCE 492 Spring 2009 Overview Last Time Overview Quality Software Today’s Lecture Pragmatics UML references, Teams Models for the process of software development Waterfall model, Spiral model, Agile, RequirementsReferences: Chapters 2 and 3 of the text Boehm paper “Spiral Model” Next Time:

– 3 – CSCE 492 Spring 2009 UML – Unified Modeling Language UML reference Website of Quickreference Cards

– 4 – CSCE 492 Spring 2009 Teams Team 1: BENDER SAMUEL, BENNETT RONALD, BUSH BRANDON, SCHANDLER J M, CHILDERS WESLEY Team 1: BENDER SAMUEL, BENNETT RONALD, BUSH BRANDON, SCHANDLER J M, CHILDERS WESLEY Team 2: CROCKETT MATTHEW, DINKINS CHANCE, ELLIOTT MICHAEL, GALLOWAY SCOTT, HITE E Team 2: CROCKETT MATTHEW, DINKINS CHANCE, ELLIOTT MICHAEL, GALLOWAY SCOTT, HITE E Team 3: MICHALSKI JASEN, RABON TONI ANN, SHANNON MARION, SIMMONS KATIA, STIFFLER N Team 3: MICHALSKI JASEN, RABON TONI ANN, SHANNON MARION, SIMMONS KATIA, STIFFLER N Team 4: STOICHITA RAZVAN, TAYLOR KAREEM, THAPA BIJAYA, VAN O'LINDA M Team 4: STOICHITA RAZVAN, TAYLOR KAREEM, THAPA BIJAYA, VAN O'LINDA M

– 5 – CSCE 492 Spring 2009 Working in Teams Be conscientious about due dates Be conscientious about due dates Meet regularly with your team Meet regularly with your team Always create an agenda for every team meeting Always create an agenda for every team meeting Rotate responsibility for chairing team meetings Rotate responsibility for chairing team meetings Authors’ slide modified

– 6 – CSCE 492 Spring 2009 Holding Effective Team Meetings Create a clear agenda addressing the essential tasks that must be accomplished in order to complete the necessary deliverables Create a clear agenda addressing the essential tasks that must be accomplished in order to complete the necessary deliverables Stick to the agenda during the meeting Stick to the agenda during the meeting Ensure that each team member understands his or her tasks before the meeting is adjourned Ensure that each team member understands his or her tasks before the meeting is adjourned Ensure that tasks are equitably distributed Ensure that tasks are equitably distributed Authors’ slide modified

– 7 – CSCE 492 Spring 2009 Class Project Deliverables The deliverables associated with the class project are essential to successfully completing the project The deliverables associated with the class project are essential to successfully completing the project The class project is not merely a programming assignment The class project is not merely a programming assignment The deliverables result from completing tasks associated with analysis, design, implementation, and testing the class project The deliverables result from completing tasks associated with analysis, design, implementation, and testing the class project Authors’ slide modified

– 8 – CSCE 492 Spring 2009 General Project Parameters Type 1 Projects: Web-enabled System Type 1 Projects: Web-enabled System Web interface Database backend Publically accessible Security/permissions issues Examples: appointment calendar, scheduling system Type 2 Projects: Stand-alone Systems Type 2 Projects: Stand-alone Systems More elaborate graphics May require a database Examples: games, mobile data collection tool Suggestions from the floor? Suggestions from the floor?

– 9 – CSCE 492 Spring 2009 Should we fix this bug or not? Four questions when a bug is discovered  (Severity) When this bug happens, how bad is the impact?  (Frequency) How often does this bug happen?  (Cost) How much effort would be required to fix this bug?  (Risk) What is the risk of fixing this bug?

– 10 – CSCE 492 Spring 2009 Severity and Frequency The vertical axis is Severity. The vertical axis is Severity. The top of the graph represents a bug with extremely severe impact: "This bug causes the user's computer to burst into flame." The bottom of the graph represents a bug with extremely low impact: "One of the pixels on the splash screen is the wrong shade of gray." The horizontal axis is Frequency. The horizontal axis is Frequency. The right side represents a bug which happens extremely often: "Every user sees this bug every day." The left side represents a bug which happens extremely seldom: "This bug only affects people who live in eastern Washington state and who have both Visual Studio 2003 and Visual Studio 2005 installed and it only happens during leap years on the day that daylight savings time goes into effect and only if the first day of that month was a Tuesday."

– 11 – CSCE 492 Spring 2009 Mythical Man-Month Main Ideas in “Mythical Man-Month” collection of essays Mythical Man-Month Mythical Man-Month Second-system effect Second-system effect Second-system effect Second-system effect IBM 7094  360, the second system an engineer designs will be too ambitious, including way too much Progress Tracking Progress Tracking Question: How does a large software project get to be one year late? Answer: One day at a time! Question: How does a large software project get to be one year late? Answer: One day at a time! Conceptual Integrity Conceptual Integrity The Pilot System The Pilot System Communication Communication

– 12 – CSCE 492 Spring 2009 Waterfall Model of Software Life Cycle Not the first iterative method But the first paper to explain why to use the iterative method Figure from Barry Boehm88

– 13 – CSCE 492 Spring 2009 Water Fall Model Requirements analysis Requirements analysis Design Design Implementation Implementation Testing (validation) Testing (validation) Integration Integration maintenance maintenanceReference

– 14 – CSCE 492 Spring 2009 The Spiral Model Note iterative repetition of the cycle!

– 15 – CSCE 492 Spring 2009 Requirements Analysis Software requirements analysis is the activity of eliciting, analyzing, and recording requirements for software systems. requirements 1 Eliciting Requirements 2 Analyzing Requirements 3 Recording Requirements

– 16 – CSCE 492 Spring 2009 Requirements Analysis A requirement is a feature of the system A requirement is a feature of the system Requirements analysis seeks to assess and specify the behavior of the final 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 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 It is desirable to establish the breadth of behavior of a system to determine the primary classes that will comprise the systemReference: Most requirements analysis slides are from authors

– 17 – CSCE 492 Spring 2009 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

– 18 – CSCE 492 Spring 2009 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

– 19 – CSCE 492 Spring 2009 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

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

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

– 22 – CSCE 492 Spring 2009 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

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

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

– 25 – CSCE 492 Spring 2009 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 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 Ideally, a whole array of different end users should be involved with the development team to gain sufficient breadth of input

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

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

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

– 29 – CSCE 492 Spring 2009 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?

– 30 – CSCE 492 Spring 2009 Verifying Requirements A structured walkthrough with the end users is a good technique for ensuring that the user needs are being addressed 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 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

– 31 – CSCE 492 Spring 2009 The Process of Requirements Analysis Create verified requirements specification Create verified requirements specification Create list of primary classes Create list of primary classes Create informal scenarios Create informal scenarios Create use cases Create use cases Create scenarios Create scenarios Create class diagrams Create class diagrams Create use case diagrams Create use case diagrams

– 32 – CSCE 492 Spring 2009 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 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 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) 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 Informal scenarios are a good starting point for use cases

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

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

– 35 – CSCE 492 Spring 2009 LMS Case Study: Use Cases Validate patron Validate patron Check out resource Check out resource Check in resource Check in resource Request resource Request resource Reserve resource Reserve resource Manage Resource Manage Resource Manage Patron Manage Patron Generate from letter Generate from letter

– 36 – CSCE 492 Spring 2009 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

– 37 – CSCE 492 Spring 2009 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

– 38 – CSCE 492 Spring 2009 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

– 39 – CSCE 492 Spring 2009 UML Use Case Diagrams Use case diagrams depict use cases interacting with external actors 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 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 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 Functional partitioning is useful for a dividing a system into smaller pieces

– 40 – CSCE 492 Spring 2009 Notational Elements of Use Case Diagrams Use case name ActorUse case Relationships: Dependency AssociationGeneralization

– 41 – CSCE 492 Spring 2009 LMS Case Study: Use Case Diagram Browse Resource Request Resource Reserve Resource Patron Resource

– 42 – CSCE 492 Spring 2009 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