Lecture 4: Requirements Engineering COSI 120b, Principles of Software Engineering.

Slides:



Advertisements
Similar presentations
Lecture 5: Requirements Engineering
Advertisements

Introduction to Software Requirements.  It depends who you ask…  Requirements try to describe the whole system you are creating.  You need to decide.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Software Requirements
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.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
SE 555 Software Requirements & Specification Requirements Management.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
SE 555 Software Requirements & Specification Requirements Validation.
SE 555 – Software Requirements & Specifications Introduction
CS3773 Software Engineering
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
1 College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 2 Chapter 6 & 7 System.
The Software Development Life Cycle: An Overview
Chapter 4 Requirements Engineering
S/W Project Management
CC20O7N - Software Engineering 1 CC2007N Software Engineering 1 Requirements Engineering Practices with Techniques.
Requirements Analysis
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
CSCI 6231 Software Engineering ( Chapter 10?) Requirements Workflow Instructor: Morris Lancaster.
Requirements Engineering How do we keep straight what we are supposed to be building?
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
CEN rd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Phases of Software.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
IS 466 ADVANCED TOPICS IN INFORMATION SYSTEMS LECTURER : NOUF ALMUJALLY 22 – 10 – 2011 College Of Computer Science and Information, Information Systems.
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.
Some Sub-Activities within Requirements Engineering 1.Prototyping 2.Requirements Documentation 3.Requirements Validation 4.Requirements Measurements 5.Requirements.
Software Requirements Engineering: What, Why, Who, When, and How
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Product Design Finalization; Inspections.
Software Engineering Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com.
Lecture 7: Requirements Engineering
Requirements Gathering How do we find out what we are supposed to be building?
Requirements Collection By Dr. Gabriel. Requirements A requirement is any function, constraint, or property that the system must provide, meet, or satisfy.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
1 BTS330 Requirements Gathering Review. What are requirements? It depends who you ask… Requirements try to describe the whole system you are creating.
1 Chapter 8 Building the Analysis Model (1) Analysis Concepts and Principles.
Requirements Engineering Requirements Elicitation Overview of Requirements Analysis.
Software Engineering REQUIREMENT ENGINEERING. Software Engineering Phases.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Requirement Engineering
Software Requirements Specification Document (SRS)
BTS330: Business Requirements Analysis using OO Lecture 1: Introduction to Software Requirements.
Requirements Analysis
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Requirements Gathering
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Engineering Lecture 10: System Engineering.
Establishing Project Scope 1. Factors Affecting Project Scope  The functionality that must be delivered to meet the user’s needs  The resources available.
Requirements Engineering Dr. Richard Jones
Requirements in the product life cycle Chapter 7.
Copyright © by Quality Improvement Consultants, Inc. (QIC) Slide 1 World-Class Quality Measurably Improving Your Requirements Based on the CMMI.
Introduction to Software Requirement Engineering Nisa’ul Hafidhoh Teknik Informatika
 System Requirement Specification and System Planning.
9/27/ Group Members Sehrish YousafBSEF08A032 Huzaima Naheed QureshiBSEF08A033 Tehmina JavedBSEF08A037 Duaa AjmalBSEF08A048.
REQUIREMENTS ANALYSIS CONCEPTS & PRINCIPLES. Requirement  IEEE defines Software Requirements as:  A condition or capability needed by user to solve.
Requirements Elicitation and Elaboration
Requirements Analysis
Software Engineering Furqan Rustam.
Introduction to Requirements Management
Software Engineering Lecture #3
Lecture # 7 System Requirements
Rapid software development
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Requirements gathering
Presentation transcript:

Lecture 4: Requirements Engineering COSI 120b, Principles of Software Engineering

All Software Starts With Requirements What should this application do? How should it react? What should it accomplish? Who should it be targeted to? What are the priorities? What defines success?

Good Software Starts With Good Requirements Underspecified requirements can result in a poorly defined application –If the priorities are unclear, the application may appear incomplete to the customer –If interactions are ambiguous, the application may not respond correctly –If the application functionality is underspecified, features may not be implemented correctly –If success is undefined, how do you know what you are trying to do?

Bad Software Starts With Bad Requirements percent of all defects can be traced to bad requirements (Davis, 1993, Leffingwell, 1997) Defects in the requirements stage may be the most expensive to fix later on (Brooks, 1995) Two most frequently reported problems in industry are specifying and managing requirements (ESPITI, 1995)

No Silver Bullet “The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technique requirements, including all the interfaces to people, to machines, and to other software systems. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later” - No Silver Bullet: Essence and Accidents of Software Engineering (Brooks, 1987)

Cost of Change

Overview Stakeholders What is a requirement? –Parts of a requirement Requirements Process Establishing Scope Functional Requirements Prototyping and XP Conclusions

Stakeholders Requirements come from somewhere –If they only came from one source, that would be easy –Requirements may come from multiple sources, and may be altered by still more –These people are stakeholders

Stakeholders Customers who fund the project –Direct funding, acquisition funding, etc Users who interact with the product – UI designers Requirements analyst –Someone in your organization that interfaces with the customer Fellow Developers –Especially if the application has multiple stages of development

Stakeholders Testers –Determine correctness Documentation writers Project Managers Legal Staff –Intellectual property –Legal guidance Manufacturing Sales, marketing, field support, help desk

Stakeholders Dealing with the stakeholders –Is a given stakeholder authorized to give you a new requirement? A sales person who promises a new feature –How does the requirement interface with existing requirements? Does it conflict with existing requirements? –How does the requirement effect the success metric? If it increases the work, what happens to your promised delivery date? –Is it possible? “perpetual energy”

What is a requirement? A capability or condition needed by a user to solve a problem or achieve an objective A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document

What are requirements? What is the problem? –Project’s scope may not defined –Customers are too busy with the design –Project managers or sales people give conflicting requirements –Authoritative requirements exist in the head of the project manager alone –Lack of prioritization –Ambiguous requirements

What are requirements More problems –Focus on UI, not the functionality –Requirements are signed-off, yet continue to change –Project scope increases, yet resources do not –Lost requirements –Unknown status –Unused functionality –Completed to specification, but the customer is still not happy

What are requirements How do we avoid these problems? –Well specified requirements –Techniques to manage requirements –Understanding of how requirements can hurt and help the project –Techniques to elicit reasonable requirements out of stakeholders –Techniques to reconcile requirements

Types of Requirements

Requirements Process Elicitation –Defining the stakeholders –Getting the needs for stakeholder representatives Analysis –Taking the elicited requirements and turning them into useful objects Tasks Business rules Functional requirements Nonfunctional requirements

Requirements Process Specification –Requirements to system components and system architecture –Negotiation of implementation priorities –Translation into written requirements, specifications and models Validation –Reviewing the documented requirements with the customer –Correct any problems before design starts

Requirements Management Requirements baseline Evaluating changes before approving –Change Control Board Incorporating approved changes in a controlled fashion Keeping deadlines and timelines in sync Negotiating new commitments Incorporating new requirements into the baseline

Requirements Management

Good Requirements The characteristics of good requirement statements –Complete –Correct –Feasible –Necessary –Prioritized –Unambiguous –Verifiable

Good Requirements The characteristics of good requirement specifications –Complete –Consistent –Modifiable –Traceable

Conclusions Requirements are important –Cost of change Next class we will talk about –Gathering requirements –Formalizing requirements Requirements are hard to get right –As you are about to find out

Assignment 1a Think about building a new Word Processor Everyone will be assigned a stakeholder For the class one week from today, come up with a set of requirements that you, in the role of a stakeholder, would request Be prepared to present these requirements Work ALONE Send me your requirements by 5pm on Sunday

Stakeholder Roles for Assignment 1a Customer UI Designer Tester Sales End User