Software Requirements Thomas Alspaugh ICS 221 2002 Nov 5.

Slides:



Advertisements
Similar presentations
System Analysis (Part 1)
Advertisements

Principles of Software Development CS-300 Fall 2005 Supreeth Venkataraman.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Managing Software Requirements in DSD
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
CSC 402 Requirements Engineering 1. 2 Problem Definition Requirements Definition informal statement of need for system natural language statement of what.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Software Requirements
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Irwin/McGraw-Hill Copyright © 2004 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS6th Edition.
Bina Nusantara 7 C H A P T E R MODELING SYSTEM REQUIREMENTS WITH USE CASES.
SE 555 Software Requirements & Specification Requirements Validation.
Overview of Software Requirements
Modeling System Requirements with Use Cases
SE 555 – Software Requirements & Specifications Introduction
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Managing Software Requirements in DSD
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes 1.
Software Engineering Introduction. Why are you here? …alternatively, why do we think you need to be here? Why a course on software engineering? How is.
The Software Development Life Cycle: An Overview
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
CS3500 Software Engineering How does a “program” differ from a “software system”? Program System Tens to hundreds of lines of code Thousands to millions.
Dillon: CSE470: QUALITY ASSURANCE1 Software Qualities Maintainer User Customer Good Documentation Readable Code Good Design Low Cost Portability Increased.
SoITSSpecifications of IT systems? 1 Specifications of IT systems checking and validating Jens Bennedsen and Peter Gorm Larsen
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
S S I E M E N S C O R P O R A T E R E S E A R C H 1 SCR SE Architecture Requirements Engineeering Theory vs. Practice Bob Schwanke STRAW ‘03.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Requirements Engineering: What, Why, Who, When, and How
INFO 637Lecture #51 Software Engineering Process II Defining Requirements INFO 637 Glenn Booker.
1 CSE 403 Software Requirements Reading: Pragmatic Programmer Ch. 7: Before the Project These lecture slides are copyright (C) Marty Stepp, 2007, with.
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
CS 111 – Nov. 22 Chapter 7 Software engineering Systems analysis Commitment –Please read Section 7.4 (only pp ), Sections –Homework #2.
Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University Department of Computer Information Systems CIS 499 Yarmouk University.
Writing requirements specifications. Why we need requirements specifications To give structure to your desires To avoid waste of resources To avoid slippage.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Rational Unified Process (RUP) Process Meta-model Inception Phase These notes adopted and slightly modified from “RUP Made Easy”, provided by the IBM Academic.
Lecture 2 Developing Requirements
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Introduction to Design. What is Design? 2 minutes Pairs.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Systems Development Life Cycle
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
Software Engineering REQUIREMENT ENGINEERING. Software Engineering Phases.
Software Requirements Specification (SRS)
Lecture 4: Requirements Engineering COSI 120b, Principles of Software Engineering.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Software Requirements Specification Document (SRS)
Software Quality Assurance and Testing Fazal Rehman Shamil.
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
Software Requirements Specification. Requirements Specification: An Overview Basic goal: To understand the problem as perceived by the user. Activities.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Requirements Engineering Dr. Richard Jones
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Software Engineering Developing Requirements. © Lethbridge/Laganière 2001 Chapter 4: Developing requirements2 4.1 Domain Analysis The process by which.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
 System Requirement Specification and System Planning.
REQUIREMENTS ANALYSIS CONCEPTS & PRINCIPLES. Requirement  IEEE defines Software Requirements as:  A condition or capability needed by user to solve.
Lecture 2 Developing Requirements
Requirements Analysis and Specification
Software Engineering Furqan Rustam.
Software Engineering Lecture #3
Lecture 7 Algorithm Design & Implementation. All problems can be solved by employing any one of the following building blocks or their combinations 1.
Prepared by Stephen M. Thebaut, Ph.D. University of Florida
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Requirements gathering
Presentation transcript:

Software Requirements Thomas Alspaugh ICS Nov 5

Context “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 technical requirements … No other part of the work so cripples the resulting system if done wrong. No other part is as difficult to rectify later.” -- Fred Brooks, The Mythical Man-Month

What are requirements? Everything that must be true about the software in order for it to be acceptable And nothing else “What” but not “how” Properties of the software Or, a model to be duplicated

Why produce requirements? To decide precisely what is to be built To record hard-earned results To communicate with others  Stakeholders  Development team  Documenters  Marketing, legal, regulators … To have a contract To form a basis for testing and acceptance Because not having them can be even more costly

What is the cost? Increased likelihood of a development catastrophe  No product at all Failure to meet goals  An unsatisfactory product  A product that is too late  A product that cost too much Inefficiency  $1 if found and fixed during RE phase, $ if found and fixed in maintenance

What are the alternatives? Don’t have requirements  Don’t build anything complicated or important  Don’t use a group Have partial requirements  E.g. scenarios or use cases  Postpone some of the pain Develop requirements as you go  Refactor, redesign, recode; hope for consistency Requirements answer questions that must be answered sooner or later

How are requirements classified? Functional/nonfunctional  Functional: relates inputs to outputs  Nonfunctional: everything else  Not an especially useful distinction Behavioral/developmental quality  Behavioral: all observable behavior  Developmental quality: not behavior Testability, maintainability, reusability

Why are requirements hard? “Essential” vs. “accidental”  Essential difficulties: inherent and unavoidable  Accidental difficulties: not inherent Software requirements involve both kinds

Essential difficulties Comprehension  Stakeholders cannot know what they want Communication  Complex, unlike familiar metaphors, arbitrary Control  SW development is hard to control Inseparable concerns  “Everything depends on everything else”

Accidental difficulties Written afterwards  … and thus can’t help development Conflicting purposes  Marketing (hyped)  general documentation (unrelated to requirements)  contract (intentionally imprecise) Not expected to be useful  So doesn’t receive appropriate attention and effort Essential properties not present …

What semantic properties are desirable for requirements? Complete Internally consistent Precise Not redundant Unambiguous Verifiable

What “packaging” properties are desirable for requirements? Readable Modifiable Organized for easy reference Organized for effective review

What are some approaches? Scenarios, use cases OO approaches Operational specification SCR (Software Cost Reduction) approach