Requirements Engineering Csaba Veres. Outline What is requirements engineering? Why is it important? How can you do it (properly)?

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Chapter 2 – Software Processes
CS 411W - Notes Product Development Documentation.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
WKES 3202 SOFTWARE REQUIREMENTS ENGINEERING SEMESTER 1 SESSION 2004/2005.
Software Requirements
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
A summary of the PSS-05 URD template
Software Requirements
Overview of Software Requirements
1 REQUIREMENTS ENGINEERING and SYSTEMS ANALYSIS Elements and Definitions.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Requirements Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes 1.
The Software Development Life Cycle: An Overview
S/W Project Management
CS 4310: Software Engineering Lecture 3 Requirements and Design.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
Requirements Analysis
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Chapter 5: Requirement Engineering Process Omar Meqdadi SE 2730 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Requirements Engineering How do we keep straight what we are supposed to be building?
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
©Ian Sommerville Software Engineering Slide 1 Software Requirements l Definition: Description and Specifications of a system l Topics covered: Functional.
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
소프트웨어공학 강좌 1 Chap 4. Software Requirements - Descriptions and specifications of a system - Soo-Mi Choi
Software Requirements Engineering CSE 305 Lecture-2.
Some Sub-Activities within Requirements Engineering 1.Prototyping 2.Requirements Documentation 3.Requirements Validation 4.Requirements Measurements 5.Requirements.
Lecture 7: Requirements Engineering
1 Introduction to Software Engineering Lecture 1.
Requirements Engineering Requirements Elicitation Process Lecture-6.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Requirements Engineering Overview Senior Design Don Evans.
Chapter 4 Software Requirements
SOFTWARE REQUIREMENT ANALYSIS AND SPECIFICATION. What is a requirement? It may range from a high-level abstract statement of a service or of a system.
Systems Development Life Cycle
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
OHTO -01 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Week 3: Requirement Analysis & specification
Requirements Engineering Process
SWE 513: Software Engineering
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Requirements Engineering Requirements Validation and Management Lecture-24.
Software Requirements Specification Document (SRS)
Requirements Analysis
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
1 Software Requirements Engineering (CS 708) Dr. Ghulam Ahmad Farrukh.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
1 Software Requirements Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements (utvalgte foiler fra Kap 6 og 7 i Sommerville)
 System Requirement Specification and System Planning.
Software Requirements Engineering (CS 708)
Chapter 4 Requirements Engineering (2/3)
Chapter 4 – Requirements Engineering
Classifications of Software Requirements
Software Requirements
Chapter 5 – Requirements Engineering
Software Requirements
Requirements Analysis
Software Requirements Specification Document
SE-565 Software System Requirements I. Introduction
Lecture # 7 System Requirements
Requirements Document
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Requirements Engineering Lecture 6
INTRODUCTION OF REQUIREMENT ENGINEERING Chapter- one.
Presentation transcript:

Requirements Engineering Csaba Veres

Outline What is requirements engineering? Why is it important? How can you do it (properly)?

Plan Requirements engineering, P11 overview quality evaluation (validation) Using objects for Systems Analysis, P10, P13 differences in problem analysis, requirements, and design different objects in different phases Requirements engineering and COTS, P14 special methods Use cases, P12 motivation for use cases in requirements engineering how to write good use cases

Today’s lecture Reading from Kotonya/Sommerville: Requirements Engineering: Processes and Techniques Processes Intro Requirements processes Techniques well known techniques

Why are requirements important? Many systems are delivered late and over budget. they often don’t do what users wanted often not used to full effectiveness Proper requirements definition can ease the problems. Each stage of development can multiply the problem by 10 times discovering problems at requirements: cost 1 discovering after design: cost 10 discovering after implementation: cost 100 discovering after rollout to client: cost 1000

What are requirements? Requirements define what the system is required to do, and the circumstances under which it must operate. e.g. 1. The system shall maintain records of all library materials including books, serials, newspapers and magazines, video and audio tapes, reports, collections of transparencies, computer disks and CD-ROMS. 2. The system shall allow the users to search for an item by title, author, or ISBN. 3. The system’s user interface shall be implemented using WWW browser. 4. The system shall support at least 20 transactions per second. 5. The system facilities which are available to public users shall be demonstrable in 10 minutes or less.

What sorts of requirements? The previous list contained different types of requirement: 1. Very general requirements that set out in broad terms what the system should do 2. Functional requirements 3. Implementation requirements 4. Performance requirements to specify minimum acceptable performance 5. Usability requirements

A complex web of needs... Functional requirements Non functional requirements security speed usability (?) Organisational standards Other interacting systems

... can lead to many problems Requirements don’t reflect real needs Requirements are inconsistent/incomplete e.g. requirement 1) above... CDs don’t have ISBN.. author? Misunderstandings between customers, users, developers... Requirements engineering aims at concrete, repeatable methods for doing the job as well as possible

FAQs about requirements What are requirements? In addition to what we already talked about, requirements can relate to: i. user-level facility (e.g. ’word processor should have spell checker’) ii. general system property (e.g. ’the system should never make personal information available’) iii. specific constraint on the system (e.g. ’the sensor must be polled 10 times a second’) iv. business rules (specific computations, formulas) v. constraint on development (e.g. the system must be developed using Ada)

FAQ Requirements can be about what the system has to do functional, non-functional how it has to do it domain experts

FAQ What is requirements engineering? Discovering, documenting, and maintaining requirements Systematic, repeatable techniques to make sure requirements are complete consistent relevant

FAQ How much does RE cost? Depends on the project Around 10% to 15% of total cost

FAQ What happens when the requirements are wrong? Late delivery and inflated cost End-users not satisfied with the system modification, abandoning Unreliable High cost of maintenance and modification

FAQ What is a requirements engineering process? Structured set of activities to derive, validate, and maintain requirements document elicitation analysis negotiation validation Ideally should include timelines, tools, responsibilities, etc.

FAQ Is there an ideal RE process? Yes. Only joking... System, organizational culture, etc. The few existing standards relate to process outputs, not processes themselves

FAQ What is a requirements document? THE official statement of the system requirements Describes a number of lower level entities (functional specifications, etc.)

FAQ What are stakeholders? Anyone who has a direct or indirect bearing on the system requirements end users, managers, development and maintenance engineers, customers who rely on the system, external bodies (e.g. tax department) Make sure ALL stakeholders are consulted, or there will be trouble!

FAQ How do requirements relate to design? Seperate activities? specification vs. solution what vs. how In reality, often there are overlaps system has to fit within existing environment (e.g. ’data has to be read from ORACLE DB’) large systems decompose into subsystems which have their own requirements re use of existing software re use of approved ’patterns’ or solutions

FAQ What is requirements management? The process of managing changes to requirements document Change control collect, verify, and assess changes Change impact management how does the change impact the whole system? economic feasability

Systems engineering ”Software requirements” involves properties of the system as a whole software hardware operational processes Computer systems are either: user-configured no explicit system requirements COTS? custom made all stakeholders participate in requirements

Different types of system Information systems process information typically database access standard hardware RE: primarily software requirements Embedded systems software used as a controller special purpose hardware and OS RE: hardware and software Command and control systems combined information and embedded special purpose systems to aide decision making e.g. air traffic control, railway traffic control, military RE: software, hardware, operational processes

Emergent properties ”non constuctive” aspects of information systems follwing subsystem integration reliability maintainability performance usability security

General systems engineering processes System requirements engineering Architectural design Requirements partitioning Software requirements engineering Sub-system development System integration System validation

The requirements document A text based document containing the services and functions the system should provide the constraints under which the system must operate overall properties (i.e. constraints on the system’s emergent properties) definitions of other systems which the system must integrate with information about the application domain of the system, e.g. how to carry out particular types of computation constraints on the process used to develop the system

Standards No single standard exists, but several large organizations have proposed them DOD, IEEE One of the simplest is IEEE/ANSI (IEEE, 1993)

IEEE, Introduction 1. Purpose of the requirements document 2. Scope of the product 3. Definitions, acronyms and abbreviations 4. References 5. Overview of the remainder of the document 2. General description 1. Product perspective 2. Product functions 3. User characteristics 4. General constraints 5. Assumptions and dependencies

IEEE, Specific requirements functional, non functional, and interface requirements. Also external interfaces, performance requirements, logical database requirements, design constraints, system attributes, and quality characteristics 4. Appendices 5. Index

Users of the document System customers Specify the requirements and read them to check that they meet their needs. They specify changes to the requirements. Managers Use the requirements document to plan a bid for the system development process. System engineers Use the requirements to understand what system is to be developed System test engineers Use the requirements to develop validation tests for the system System maintanence engineers Use the requirements to help understand the system and the relationship between its parts

Writing requirements Natural language is often used Some common problems complex conditional statements are confusing terminology often not precise or inconsistent writers assume too much knowledge and leave out essential detail

3 essentials for requirements documentation writers 1. Requirements are read more often than they are written 2. Readers come from different backgrounds... do not leave out essential detail 3. It takes a long time. Leave time to write, review, revise.