Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.

Slides:



Advertisements
Similar presentations
Chapter 2 Analyzing the Business Case.
Advertisements

Chapter 4: Inception is Not the Requirements Phase
CS 411W - Notes Product Development Documentation.
Systems Analysis and Design 9th Edition
Requirements Analysis CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology January 7, 2003.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
SE 555 Software Requirements & Specification Requirements Management.
SE 555 Software Requirements & Specification Requirements Validation.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Recall The Team Skills Analyzing the Problem
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
The Software Development Life Cycle: An Overview
S/W Project Management
RUP Requirements RUP Artifacts and Deliverables
CC20O7N - Software Engineering 1 CC2007N Software Engineering 1 Requirements Engineering Practices with Techniques.
1 Shawlands Academy Higher Computing Software Development Unit.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management greene.com 1 Applied Software.
Applied Software Project Management Andrew Stellman & Jennifer Greenehttp:// Applied Software Project Management Chapter 1: Introduction.
Applying the Inspection Process. What Software Artifacts Are Candidates for Inspection? Software Requirements Software Designs Code Test Plans.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
Business Analysis and Essential Competencies
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Applied Software Project Management
Centro de Estudos e Sistemas Avançados do Recife PMBOK - Chapter 4 Project Integration Management.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
IT Requirements Management Balancing Needs and Expectations.
Software Requirements Engineering: What, Why, Who, When, and How
ISM 5316 Week 3 Learning Objectives You should be able to: u Define and list issues and steps in Project Integration u List and describe the components.
Lecture 7: Requirements Engineering
12.1 Introduction Checklists are used as a technique to give status information in a formalized manner about all aspects of the test process. This chapter.
Systems Analysis and Design 8 th Edition Chapter 2 Analyzing the Business Case.
Applied Software Project Management
Rational Requirements Management with Use Cases v5.5 Copyright © Rational Software, all rights reserved 1 Requirements Management with Use Cases.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Systems Analysis and Design in a Changing World, Fourth Edition
Develop Project Charter
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Lecture 2 Developing Requirements
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
The Software Development Process
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
(SRS) SOFTWARE REQUIREMENT SPECIFICATION(SRS) 1. Topics to be discussed.. What is an SRS? Purpose of an SRS Who reads the SRS? Who writes the SRS? Characteristics.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Systems Development Life Cycle
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
~ pertemuan 4 ~ Oleh: Ir. Abdul Hayat, MTI 20-Mar-2009 [Abdul Hayat, [4]Project Integration Management, Semester Genap 2008/2009] 1 PROJECT INTEGRATION.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Requirement Discipline Spring 2006/1385 Semester 1.
5. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the activities of the requirements discipline  Describe the difference.
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.
Information Technology Project Management, Seventh Edition.
Software Engineering Developing Requirements. © Lethbridge/Laganière 2001 Chapter 4: Developing requirements2 4.1 Domain Analysis The process by which.
 System Requirement Specification and System Planning.
CHAPTER 2 SYSTEM PLANNING DFC4013 System Analysis & Design.
4 Chapter 4: Beginning the Analysis: Investigating System Requirements Systems Analysis and Design in a Changing World, 3 rd Edition.
Requirements Determination
Software Project Configuration Management
Classifications of Software Requirements
Project Integration Management
Software Requirements analysis & specifications
Software Requirements Specification (SRS) Template.
Applied Software Project Management
Presentation transcript:

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software Project Management Chapter 6: Requirements [Modified version of Stellman and Greene’s Chapter 6 slides. Adapted for class use only in the CS 709B course at UNR, Spring 2012]

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Software Requirements Software requirements are documentation that completely describes the behavior that is required of the software-before the software is designed, built and tested  Requirements analysts (or business analysts) build software requirements specifications through requirements elicitation. Interviews with the users, stakeholders and anyone else whose perspective needs to be taken into account during the design, development and testing of the software Observation of the users at work Distribution of discussion summaries to verify the data gathered in interviews

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Interviews Examples of leading questions in interviews: Why is the software being built? What benefits? What problems need to be addressed? Who will use the software? How often? Who will support the software? In what environment will the software be used? What are the known constraints? What inputs and outputs? Are there workarounds? Is there anything that I missed? Anything else that I should know? Are out there any potential limitations or problems?

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Discussion Summary A requirements analyst can use a discussion summary to summarize information gathered during elicitation and validate it through a review Notes gathered during the elicitation should fit into the discussion summary template The discussion summary outline can serve as a guide for a novice requirements analyst in leading interviews and meetings Discussion Summary outline 1.Project background a)Purpose of project b)Scope of project c)Other background information 2.Perspectives a)Who will use the system? b)Who can provide input about the system? 3.Project Objectives a)Known business rules b)System information and/or diagrams c)Assumptions and dependencies d)Design and implementation constraints 4.Risks 5.Known future enhancements 6.References 7.Open, unresolved or TBD issues

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Use Cases A use case is a description of a specific interaction that a user may have with the system Use cases are deceptively simple tools for describing the functionality of the software  Use cases do not describe any internal workings of the software, nor do they explain how that software will be implemented  They simply show how the steps that the user follows to use the software to do his work  All of the ways that the users interact with the software can be described in this manner

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Use Cases Use case template 1.Summary 2.Rationale 3.Users 4.Preconditions 5.Basic course of events 6.Alternative paths 7.Postconditions

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Use Cases Use case development script (major steps) 1.Identify the basic set of use cases 2.Add a rationale and summary to each case. Identify users. Create a master list of user categories. Where possible, add pre- and post-conditions. 3.Define basic course events and alternative paths for each use case 4.Very each use case, ensuring all paths make sense and are correct

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Functional Requirements Functional requirements define the outward behavior required of the software project  The goal of the requirement is to communicate the needed behavior in as clear and unambiguous a manner as possible  The behavior in the requirement can contain lists, bullets, equations, pictures, references to external documents, and any other material that will help the reader understand what needs to be implemented

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Functional requirements example

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Nonfunctional Requirements Nonfunctional requirements define characteristics of the software which do not change its behavior  Users have implicit expectations about how well the software will work  These characteristics include how easy the software is to use, how quickly it executes, how reliable it is, and how well it behaves when unexpected conditions arise  The nonfunctional requirements define these aspects about the system. The nonfunctional requirements are sometimes referred to as “non-behavioral requirements” or “software quality attributes”

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Nonfunctional Requirements Categories of non-functional requirements Availability Efficiency Flexibility Portability Integrity/Security Performance Reliability Reusability Robustness Scalability Usability

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Nonfunctional Requirements Nonfunctional requirements example

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Software Requirements Specification The software requirements specification (SRS) represents a complete description of the behavior of the software to be developed. The SRS includes:  A set of use cases that describe all of the interactions that the users will have with the software  All functional requirements necessary to define the internal workings of the software: calculations, technical details, data manipulation and processing, and other specific functionality that shows how the use cases are to be satisfied  Nonfunctional requirements, which impose constraints on the design or implementation (such as performance requirements, quality standards or design constraints)

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Software Requirements Specification SRS Outline 1.Introduction -Purpose -Scope -System overview -References 2.Definitions 3.Use cases 4.Functional requirements 5.Nonfunctional requirements

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management SRS Inspection Checklist When done, the SRS document should be checked for: Completeness Feasibility Modifiability Use case clarity Use case level of detail Use case testability Requirements clarity Requirements completeness Requirements consistency Requirements level of details

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Requirements vs. Design Many people have difficulty understanding the difference between scope, requirements and design  The scope demonstrates the needs of the organization, and is documented in a vision and scope document  Requirements document the behavior of the software that will satisfy those needs  Design shows how those requirements will be implemented technically

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Change Control Change control is a method for implementing only those changes that are worth pursuing, and for preventing unnecessary or overly costly changes from derailing the project  Change control is an agreement between the project team and the managers that are responsible for decision-making on the project to evaluate the impact of a change before implementing it  Many changes that initially sound like good ideas will get thrown out once the true cost of the change is known

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Change Control A change control board (CCB) is made up of the decision-makers, project manager, stakeholder or user representatives, and selected team members  The CCB analyzes the impact of all requested changes to the software and has the authority to approve or deny any change requests once development is underway  Before the project begins, the list of CCB members should be written down and agreed upon, and each CCB member should understand why the change control process is needed and what their role will be in it

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Change Control Whenever a change is needed, the CCB follows the change control process to evaluate the change:  The potential benefit of the change is written down, and the project manager works with the team to estimate the potential impact that the change will have on the project  If the benefit of the change is worth the cost, the project manager updates the plan to reflect the new estimates. Otherwise, the change is thrown out and the team continues with the original plan.  The CCB either accepts or rejects the change

Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Problems with Software Requirements Iteration abuse  Iteration (or repetition) seems to be a good development practice, liked by many and with many benefits  However, if overdone, it in fact complicates the development and cannot substitute an initial good description of the required behavior of the software (it’s easier to change things on paper than in the code) Scope creep  Many project have ended in failure because poor change control  Through a series of apparently small and innocuous changes the scope of the projects drifts away from its original version