Software Requirements 1



Similar documents
Software Requirements. Descriptions and specifications of a system. Ian Sommerville 2000 Software Engineering, 6th edition.

Software Requirements

Software Requirements. Objectives. Topics covered

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

Software Requirements

What is a requirement? Software Requirements. Descriptions and specifications of a system

Software Requirements. Objectives

What is a requirement? Software Requirements. User requirements readers. Types of requirements. Descriptions and specifications of a system

Requirement Engineering

Requirements engineering

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)

ARIS Design Platform Getting Started with BPM

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

Interactive system specification. Interactive system definition. Issues to be taken into account for interactive systems

Software Engineering Question Bank

Introduction to Software Engineering. Adopted from Software Engineering, by Ian Sommerville

Merging Functional Requirements with Test Cases

Overview. System Definition Webster s Dictionary. System Engineering Hierarchy. System Engineering. Computer-Based Systems [PRE2005]

The IFPUG Counting Practices On-Going Effort in Sizing Functional Requirements. Janet Russac

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

An Introduction to Software Engineering

An Introduction to Software Engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 1 Slide 1

Organizational Requirements Engineering

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

Communication Diagrams

TECHNICAL SPECIFICATION: LEGISLATION EXECUTING CLOUD SERVICES

Software Requirements Specification

Lecture 17: Requirements Specifications

Software Design Document (SDD) Template

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Topics covered. An Introduction to Software Engineering. FAQs about software engineering Professional and ethical responsibility

Design Document Version 0.0

Business Definitions for Data Management Professionals

Software Development Methodologies

2. Basic Relational Data Model

OCR LEVEL 2 CAMBRIDGE TECHNICAL

WebAmoeba Ticket System Documentation

SOFTWARE REQUIREMENTS

Requirements engineering and quality attributes

Socio-Technical Systems

Survey Instrument Requirements Requirements Definition Template

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

Chapter 23 Software Cost Estimation

Socio technical Systems. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 2 Slide 1

Requirements Engineering for Web Applications

Execution of A Requirement Model in Software Development

Software Metrics & Software Metrology. Alain Abran. Chapter 4 Quantification and Measurement are Not the Same!

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Extended Enterprise Architecture Framework Essentials Guide

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

Modeling Guidelines Manual

Process Modeling Notations and Workflow Patterns

Phases, Activities, and Work Products. Object-Oriented Software Development. Project Management. Requirements Gathering

Introducing Formal Methods. Software Engineering and Formal Methods

Ten steps to better requirements management.

Aerospace Software Engineering

Génie Logiciel et Gestion de Projets. Software Requirements Engineering

SCATS SALES AND CUSTOMER TRACKING SYSTEM SOFTWARE REQUIREMENTS SPECIFICATION VERSION: FINAL 1.0

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

The Essentials of Analysis and Design. Mehran Rezaei

Software cost estimation

VAIL-Plant Asset Integrity Management System. Software Development Process

Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1

Software Engineering. Objectives. Designing, building and maintaining large software systems

DSDM DSDM. CONSORTiUM. CONSORTiUM. AgileBA. The Handbook for Business Analysts. Extract The Requirements Lifecycle In An Agile Project.

The Role of the Software Architect

Software Documentation

Virtzone Cloud Control User Guide

Section C. Requirements Elicitation

WDL RemoteBunker Online Backup For Client Name

Course Syllabus For Operations Management. Management Information Systems

Defining Quality Workbook. <Program/Project/Work Name> Quality Definition

Hildon User Interface Style Guide Summary

PROJECT HUMAN RESOURCE MANAGEMENT

Job Description. Job Title Branch Business Group Reporting to Location. Purpose. Key Tasks

Part One: Introduction to Partnerships Victoria contract management... 1

Procurement Programmes & Projects P3M3 v2.1 Self-Assessment Instructions and Questionnaire. P3M3 Project Management Self-Assessment

Part 2.13: Change and Baseline Management

Software Engineering. System Models. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Capacity Plan. Template. Version X.x October 11, 2012

Standard for Software Component Testing

Sub Code: CP7007 Sub Name: SOFTWARE REQUIREMENTS ENGINEERING Branch / Year: ME CSE / I Year Staff in charge: Dr.M.Senthil Kumar

RSA Authentication Agent 7.1 for Microsoft Windows Installation and Administration Guide

From Object Oriented Conceptual Modeling to Automated Programming in Java

Information Management

SolovatSoft. Load and Performance Test Plan Sample. Title: [include project s release name] Version: Date: SolovatSoft Page 1 of 13

Master Data Management Architecture

Systems Engineering. Designing, implementing, deploying and operating systems which include hardware, software and people

IF2261 Software Engineering. Introduction. What is software? What is software? What is software? Failure Curve. Software Applications Type

BMC Remedy Service Desk: Incident Management User s Guide

Information Security Awareness Survey Prepared by SAI Global

Introduction to WIPOScan Software

Transcription:

Software Requirements 1 Requirements are descriptions of the services that a software system must provide and the constraints under which it must operate Requirements can range from high-level abstract statements of services or system constraints to detailed mathematical functional specifications Requirements Engineering is the process of establishing the services that the customer requires from the system and the constraints under which it is to be developed and operated Requirements may serve a dual function: As the basis of a bid for a contract As the basis for the contract itself Requirements Documents If a company wishes to let a contract for a large software development project it must define its needs in a sufficiently abstract way that a solution is not predefined. The must be written so that several contractors can bid for the contract, offering, perhaps, different ways of meeting the client organisation s needs. Once a contract has been awarded, the contractor must write a system definition for the client in more detail so that the client understands and can validate what the software will do. Both of these documents may be called the document for the system. [A.M. Davis Software Requirements: Objects, Functions and States, Englewood Cliffs, 1993] 2.1 Types of Requirement User Statements in natural language plus diagrams of the services that the systems provides and its operational contraints. Written for customers System A structured document setting out detailed descriptions of the system services. 1 These notes are based on those provided by Ian Sommerville on his Software Engineering text website 1

Written as a contract between client and contractor Software specification A detailed software description which can serve as a basis for a design or implementation. Written for developers 2.1.1 Example Definition and specifications User Requirements definition: The software must provide a means of representing and accessing external files created by other tools System Requirements specification: 1. The user should be provided with facilities to define the type of external files 2. Each external file type may have an associated tool which may be applied to the file 3. Each external file type may be represented as a specific icon on the user s display 4. Facilities should be provided for the icon representing an external file to be defined by the user 5. When a user selects an icon representing an external file, the effect of that selection is to apply the tool associated with the type of external file to the file represented by the selected icon 2.2 Functional, non-functional and domain Functional Statements of services that the system should provide, how the system should react to particular inputs and how the system should behave in particular situations Non-functional Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. 2

Domain Requirements that come from the application domain of the system that reflect the characteristics of that domain May be functional or non-functional 2.2.1 Functional Describe functionality or system services Depend on the type of software, expected users and the type of system where the software is used Functional user may be high-level statements of what the system should do; functional system should describe the system services in detail Examples The user shall be able to search either all of the initial set of databases or select a subset from it The system shall provide appropriate viewers for the user to read documents in the document store Every order shall be allocated a unique identifier (ORDER ID) which the user shall be able to copy to the account s permanent storage area 2.2.2 Non-functional Product Requirements which specify that the delivered product must behave in a particular way, e.g. execution speed, reliability etc. Organisational Requirements which are a consequence of organisational policies and procedures, e.g. process standards used, implementation etc. External Requirements which arise from factors which are external to the system and its development process, e.g. interoperability, legislative etc. 3

Non functional Product Organistational External Portability Delivery Ethical Reliability Implementation Interoperability Usability Standards Legislative Efficiency Safety Space Privacy Performance Figure 2.1: Non-functional Requirements Metrics for non-functional See figure??. 2.2.3 Domain Describe system characteristics and features that reflect the domain May be new functional, constraints on existing or may define specific computations If domain are not satisfied, the system may be unworkble Example: Library system 4

Property Speed Size Ease of Use Reliability Robustness Portability Measure Processed transactions/s User/Event response time Screen refresh time Kbytes Number of RAM chips Training time Number of help frames Mean time to failure Probability of unavailability Rate of failure occurrence Availability % events causing failure Time to restart after failure Probability of data corruption on failure % target system dependent statements Number of target systems Figure 2.2: Metrics for non-functional Because of copyright restrictions, some received on-line documents must be deleted immediately after printing Example: Train protection system Train deceleration shall be computed as where is 9.81 ms! * compensated gradient/alpha and where the values of 9.81 ms! /alpha are known for different types of train Domain requirement issues Understandability Requirements are expresed in the language of the application domain this is often not understood by software engineers developing the system Implicitness 5

Domain specialists understand the area so well that they do not think of making the domain explicit 2.3 User Should describe functional and non-functional so that they are understandable by system users who don t have detailed technical knowledge User are defined using natural language, tables and diagrams 2.3.1 Problems with natural language Ambiguity Readers and writers may not interpret words in the same way Over-flexibility The same thing may be expressed in a number of different ways Requirements amalgamation & confusion Several different may be expressed together; functional and non-functional may be mixed together Lack of modularisation NL structures are inadequate to structure system Example The for a CASE tool for editing software design models include the requirement for a grid to be displayed in the design window To assist in the positioning of entities on a diagram, the user may turn on a grid in either centimetres or inches, via an option on the control panel This statement mixes up three different kinds of requirement A conceptual functional requirement stating that the editing system should provide a grid; it presents a rationale for this A non-functional requirement giving information about the grid units A non-functional user interface requirement defining how the grid is switched on and off by the user 6

2.3.2 Revised requirement The editor shall provide a grid facility where a matrix of horizontal and vertical lines provides a background to the editor window. This grid shall be a passive grid where the alignment of entities is the user s responsibility. Rationale: A grid helps the user to create a tidy diagram with well-spaced entities. Although an active grid, where entities snap to grid lines can be useful, the positioning is imprecise; the user is the best person to decide where entities should be positioned. Concentrates on the essential system feature Presents a rationale both its inclusion and for rejection of an automatic alignment feature Separate statements are needed to cover the other parts of the original requirement, e.g. The grid can be turned on or off via an option in the control panel The grid can be in centimetres or inches The grid shall initially be in inches 2.3.3 Alternatives to NL specification Structured natural language depends on defining standard forms or templates to express specification Design description languages similar to programming languages but with additional, more abstract features Graphical notations a graphical language, supplemented by text annotations, is used to define functional (e.g. use-case diagrams) Mathematical/formal specifications based on mathematical concepts such as finite-state machines or sets; unambiguous specifications reduce arguments between customers and contractors but most customers don t understand formal specifications 7

2.4 The Requirements Document Official statement of what is required of the system developers Should include both a definition and a specification of Should: specify external system behaviour specify implementation constraints be easy to change (but changes must be managed) serve as a reference tool for maintenance record forethought about the life cycle of the system (i.e. predict changes) characterise responses to unexpected events It is not a design document it should state what the system should do rather than how it should do it 2.4.1 Requirements document structure Introduction Glossary User definition System architecture System specification System models System evolution Appendices Index 8

2.4.2 Requirements document users System customers Specify the and read them back to check that they meet their needs; specify changes to the Development Managers Use the document to plan a bid for the system and to plan the system development process Implementation Programmers Use the to understand what system is to be developed Test programmers Use the to develop validation tests for the system Maintenance programmers Use the to help understand the system and the relationships between its parts 2.5 Summary Requirements set out what the system should do and define constraints on its operation and implementaion Functional set out services that the system should provide Non-functional constrain the system being developed or the development process User are high-level statements of what the system should do User should be written using natural language, tables and diagrams System are intended to communicate the functions that the system should provide System may be written in structured natural language, a PDL or in a formal language A software document is an agreed statement of the system 9