Requirements Engineering

Similar documents
REQUIREMENTS ENGINEERING

Requirements Engineering Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 7 Slide 1

Requirements Elicitation

Introduction to Software Engineering

8/30/2010. Lecture 1. Topics covered. Functional and non-functional requirements The software requirements document Requirements specification

Requirements Engineering. Massimo Felici Room 1402, JCMB, KB

version NDIA CMMI Conf 3.5 SE Tutorial RE - 1

Organising Requirements

! To solve problems. ! To take up new opportunities. ! Requirements - descriptions of. " Behavior. " Data. " Constraints (eg. cost and schedule)

Requirements Engineering

Requirements engineering

Requirements Engineering: Part I. Software Requirements & Project Management CITS3220

Global Journal of Engineering Science and Research Management

Requirements Analysis and Specification. Importance of Good Requirements Analysis

Software Processes. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1

Lecture 1. In practice, most large systems are developed using a. A software process model is an abstract representation

Requirements Organisation, Analysis. Software Requirements & Project Management CITS3220

Software Processes. Objectives. Topics covered. The software process. Waterfall model. Generic software process models

Functional and non functional requirements. Requirements elicitation Requirements analysis Requirements validation Requirements management

What are requirements? Basics of Requirement Engineering. Definition of a Stakeholder. Stated Vs. Real Requirements. Stated Vs.

Requirements Verification and Validation

Objectives. The software process. Topics covered. Waterfall model. Generic software process models. Software Processes

Sistemi ICT per il Business Networking

Requirements Validation and Negotiation

Software Processes 1

The software process

Course : Software Engineering and Project Management. Unit 2 Software Requirements Engineering & Analysis

Functional requirements and acceptance testing

Requirements elicitation: Finding the Voice of the Customer

CSEB233: Fundamentals of Software Engineering. Software Requirements Part 1 Understanding Requirements Engineering

Requirements Elicitation. Software Requirements and Design CITS 4401 Lecture 17

Topics covered. Software process models Process iteration Process activities The Rational Unified Process Computer-aided software engineering

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

System and Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

Requirements Elicitation. Software Requirements & Project Management CITS3220

Software Development

Requirements Engineering. Andreas Zeller Saarland University

SWE 211 Software Processes

T Software Testing and Quality Assurance Test Planning

CHAPTER 2 LITERATURE SURVEY

Requirements Engineering

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

Lectures 2 & 3. Software Processes. Software Engineering, COMP201 Slide 1

The Systems Development Lifecycle

Attendees of this course may go on to attend our ISEB top-up course in order to achieve their ISEB Business Analysis diploma.

A Survey of Requirement Engineering Practices in Software Development Swathine.K 1, Dr. J.KomalaLakshmi 2

Viewpoints: principles, problems and a practical approach to requirements engineering

Domain Understanding and Requirements Elicitation (2)

Software Architecture and Engineering Requirements Elicitation Peter Müller

Software Engineering Fall 2014

CCU 2010 / Identifying User Needs and Establishing Requirements. Lesson 7. (Part1 Requirements & Data Collection)

What are Requirements? SENG1031 Software Engineering Workshop 1. My Notes. System Overview: The Big Picture

II. Software Life Cycle. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Prerequisites It is recommended that the participants have a working knowledge of traditional Business Analysis tasks and techniques.

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

Chapter 4 Requirements Elicitation

Requirements Elicitation

Pertemuan 2. Software Engineering: The Process

Software Architecture and Engineering Requirements Elicitation Peter Müller

Chapter 6: Software Evolution and Reengineering

Software Engineering QUESTION BANK

Based on Software Engineering, by Ian Sommerville Coherent sets of activities for specifying, designing, implementing and testing software systems

IE 366 Requirements Development

Product Requirements. Requirements. Get it Right ASAP. Why Requirements are Difficult. Types of S/W Requirements. Levels of S/W Requirements

Course Organization. Lecture 1/Part 1

Requirements Elicitation. Proactive vs. Reactive Elicitation

Systems Analysis and Design in a Changing World, Fourth Edition

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Measuring and Assessing Software Quality

REQB Foundation Level Sample Exam paper

Software Requirements and Organizational Culture: 10 Lessons Learned

Comparison of various Elicitation Techniques and Requirement Prioritisation Techniques

Business Analysis for Practitioners - Introduction

Software Requirements. CSCE Lecture 4-08/30/2016

Chapter 2 Analyzing the Business Case

B/AWP2/YT Reading University, UK

[Name] [ ID] [Contact Number]

INFORMATION SYSTEMS ANALYSIS AND DESIGN

Defining Requirements

Requirements Change Management Practices

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Evolutionary Differences Between CMM for Software and the CMMI

Software Engineering Unit - 1 (Lecture Notes)

Darshan Institute of Engineering & Technology for Diploma Studies Rajkot Unit-1

WNR Approach: An Extension to Requirements Engineering Lifecycle

Requirements Engineering and Software Architecture Project Description

Chapter 4 Requirements Engineering

Critical Skills for Writing Better Requirements (Virtual Classroom Edition)

Unit 9 Information Systems

Software development processes: from the waterfall to the Unified Process

Requirements Validation Techniques: An Empirical Study

Passit4Sure.OG Questions. TOGAF 9 Combined Part 1 and Part 2

Software Processes. Chapter 2. CMPT 276 Dr. B. Fraser Based on slides from Software Engineering 9 th ed, Sommerville.

Software Engineering Fall 2014

Introduction to Software Engineering

Requirements Analysis and Design Definition. Chapter Study Group Learning Materials

Implementation of Five Key Process Areas to Improve the Requirement Engineering Process

Software Quality Engineering Courses Offered by The Westfall Team

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Transcription:

Requirements Engineering Professor Ray Welland Department of Computing Science University of Glasgow E-mail: ray@dcs.gla.ac.uk The Importance of Requirements Identifying (some) requirements is the starting point for all software development projects regardless of the development method being used. In conventional development, the cost of fixing problems after system delivery is high (perhaps 100 times the cost of fixing an implementation error) Changes in requirements are inevitable as understanding of the requirements develops as the software development proceeds after the system is delivered (maintenance, evolution) INF3120-RE 2 1

Why Requirements Engineering? Many projects have failed because of inadequate understanding of requirements Need for a systematic approach to specifying requirements, stages in the process: Feasibility Study cost/benefit analysis for business and risk analysis prepared for management decision making Requirements Elicitation and Analysis (requirements capture or discovery) - finding out what is needed from the customers Specify Requirements for the customer (contract) and the system developer Validate Requirements - do the specified requirements actually define what the customer wants? INF3120-RE 3 Requirements Engineering - Process From Sommerville 8 p143 INF3120-RE 4 2

Desirable Features of a Requirements Specification Emphasise what is required not how to do it; but there are always constraints (non-functional requirements) Standardised presentation of documents (e.g. Sommerville 6.5: The Software Requirements Document), agreed design notations Agreed by all customers (need for compromise and trade-offs) Realistic: can be realised within cost constraints and using existing technology (or known future technology) Consistent: no conflicting requirements Complete: identifies all requirements INF3120-RE 5 Requirements Validation (Sommerville 7.3) How to ensure that a Requirements Document does define the customers requirements (check against desirable features) Comprehensibility - do customers understand the requirements? Verifiability (testability) - can requirements be realistically tested? {If you cannot test it, it is not a requirement!} Traceability - source of the requirement? {Important when making changes.} Adaptability (changeability) - what is the impact of changing a particular requirement? INF3120-RE 6 3

Requirements Evolution (Sommerville 7.4 Requirements Management) Change is inevitable and must be managed! Some requirements are enduring (stable) while others are more volatile (likely to change). Sommerville (7.4.1, Figure 7.11) divides volatile requirements into: Mutable - caused by environmental changes, changes outside the organisation (e.g. changes in the law) Emergent - occur as the customers (and analysts) understanding of the system develops Consequential - resulting from the introduction of the new system creating opportunities for further work Compatibility - dependent upon other parts of the business, must change if they change INF3120-RE 7 Functional and Non-Functional Requirements Requirements can be divided into two main categories; functional and non-functional. Functional requirements, as the name suggests, define the basic functions of the system and are usually fairly easy to identify and specify. Non-functional requirements are constraints which restrict the product and the development process, and place external conditions which the product must meet. There is a trade-off between functional and nonfunctional requirements (another compromise) INF3120-RE 8 4

Non-functional Requirements Must be objective and testable (e.g. the system must be user-friendly is subjective and there are no criteria for testing the requirement) Sommerville (6.1.2, Figure 6.4) divides non-functional requirements into three major categories: Product requirements: usability; efficiency (performance, space); reliability; portability. Organisational requirements: delivery; implementation; standards. External requirements: interoperability; legal (safety, privacy) There are standard checklists of non-functional requirements, for example: IEEE Std-830-1993 INF3120-RE 9 Non-Functional Requirements - Examples Compatibility with other systems (internal and external) Existing Practices - programming languages, methods, tools, platforms Security of Data and Communications Performance throughput (transactions per hour) response time (maximum acceptable) Reliability test load (stress testing) mean time between failures availability (up time) INF3120-RE 10 5

Requirements Elicitation and Analysis Sommerville, Section 7.2 Elicitation, also called requirement collection, capture or discovery Identifying the customers real requirements Who are the customers? The term stakeholder is often used rather than customer - anyone who has some direct or indirect influence on the system requirements Stakeholders can be managers, end-users of the system, other parts of the organisation, external organisations,... INF3120-RE 11 Elicitation and Analysis - Problems Different types of businesses have their own domain terminology (jargon) Organisations have their own terminology and business practices, which are unfamiliar to the system developers Stakeholders do not know what they want or make unrealistic demands (e.g. technically infeasible or too expensive) Conflict between stakeholder requirements Organisational structure and politics (often implicit) The organisational environment may change (in the worst case there is a business take over or a major restructuring of the organisation) INF3120-RE 12 6

Elicitation and Analysis - Process Domain understanding - the application area and terminology Requirements Elicitation - identifying requirements by talking to stakeholders, observing processes, analysing data, etc. Classification - organising the information collected, imposing structure (hierarchies, clusters) Conflict Resolution - identify and resolve conflicts between different stakeholders requirements Prioritisation - identify the most important requirements Validation - completeness, consistency and realism INF3120-RE 13 Elicitation and Analysis - Process (2) Domain Understanding Requirements Elicitation Classification Validation Prioritisation Conflict Resolution Requirements Definition and Specification Requirements Document INF3120-RE 14 7

Requirements Elicitation Elicit = to draw forth In order to analyse the requirements it is necessary to study the existing system and understand it. This is the field of traditional systems analysis and also usability studies. A major part of this work requires communication skills rather than technical ability! Possible techniques: Interviews planning, recording and analysing; with managers, customers (strategists and those paying for the system!) Structured, with pre-planned questions, can be used over telephone Unstructured, free format, difficult to analyse Hybrid, anywhere between Structured and Unstructured! INF3120-RE 15 Requirements Elicitation (2) Inspection studying existing records, statistical sampling; useful where there are large volumes of data Observation (Ethnography, Sommerville 7.2.2) observation of activities, processes and workflows participation in activities with end-users video recording of activities, very difficult to analyse Scenarios talk through different scenarios with users to understand normal and exceptional processes (what if?) Prototypes Build partial prototypes, quick and dirty, usually focussed on interfaces; try out ideas with users (c.f. active scenario?) Questionnaires high-volume, low-quality input, difficult to design; suitable for gathering background data (e.g. customer attitudes) INF3120-RE 16 8

Classification of Requirements We need to classify (organise) requirements in order to make it easier to find conflict and redundancy There is remarkably little material about classification in general terms! Three suggested techniques Partitioning - identifying aggregations Abstraction - identifying generalisations Projection - organisation of knowledge from different viewpoints INF3120-RE 17 Identifying Conflicts and Priorities Analysing a draft set of requirements for inconsistencies between requirements Using checklists (see next slide for example) Systematically checking for conflicts using an interaction matrix Negotiating with the stakeholders to resolve conflicts Prioritising the agreed requirements, either to meet cost constraints or phased delivery INF3120-RE 18 9

Checklist for Internal Validation Kotonya & Sommerville suggest the following: Premature design - early commitment to design or implementation Complex requirements - could be split into simpler units Unnecessary requirements - gold-plating Use of non-standard platform - special hardware / software Conformance with business goals - consistent with business aims (project mandate) Ambiguity - different possible interpretations? Realism - given the proposed (available) technology Testability - can you write a test for this requirement? INF3120-RE 19 Requirements Engineering - Summary Requirements Engineering attempts to provide a systematic approach (framework) to an imprecise problem area A major part of requirements engineering concerns conflict resolution between: stakeholder requirements (different viewpoints) functional and non-functional requirements (e.g. level of functionality versus delivery time) non-functional requirements (e.g. performance versus reliability) Requirements Engineering process is iterative Change is inevitable and must be managed. INF3120-RE 20 10

Requirements Engineering - Summary (cont.) These lectures were intended to identify the general principles that apply to requirements engineering, regardless of the methods used Background information can be found in: Ian Sommerville, Software Engineering (8th Edition), Chapters 6 and 7. (Specific references to topics given in the slides.) More detailed information in: Gerald Kotonya & Ian Sommerville, Requirements Engineering - Processes and Techniques, John Wiley & Sons, 1998 INF3120-RE 21 Requirements and Processes Requirements Engineering assumes that the bulk of the requirements are identified before development (design, implementation, testing) Incremental techniques, such as the Rational Unified Process (using UML) and Extreme Programming (XP), integrate requirements capture within the development cycle. But requirements still have to be identified, conflicts resolved, functions prioritised, Outsourcing ( Offshoring ) of software development puts the emphasis back onto requirement specification before development. INF3120-RE 22 11