XIV. The Requirements Specification Document (RSD)

Similar documents
Lecture 5: Requirements Specifications

Requirement Analysis

Standards for Writing Requirements and Specifications. Drs. Schesser & Simone BME 496 Capstone II

Darshan Institute of Engineering & Technology for Diploma Studies

Recommended Practice for Software Requirements Specifications (IEEE)

Modeling Issues Modeling Enterprises. Modeling

Quality Software Requirements By J. Chris Gibson

OMG Systems Modeling Language Tutorial May, 2012

Steps in Using COMET/UML

SOFTWARE MODELING AND DESIGN. UML, Use Cases, Patterns, and. Software Architectures. Ki Cambridge UNIVERSITY PRESS. Hassan Gomaa

Quality Software Requirements By J. Chris Gibson

Lecture 9 Requirements Engineering II

System Name Software Architecture Description

Testing Simulink Models

Requirements Engineering: Specification & Validation. Software Requirements and Design CITS 4401 Lecture 18

Requirements Engineering. Version October 2016

Sequence-Based Specification

Lecture 8 Requirements Engineering

Chapter 4 Objectives

Sofware Requirements Engineeing

CS350 Lecture 2 Requirements Engineering. Doo-Hwan Bae

Software Engineering Prof.N.L.Sarda IIT Bombay. Lecture-11 Data Modelling- ER diagrams, Mapping to relational model (Part -II)

Test and Evaluation of Autonomous Systems in a Model Based Engineering Context

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

1: Specifying Requirements with Use Case Diagrams

QA Best Practices: A training that cultivates skills for delivering quality systems

Natural Language Specification

UNIT II Requirements Analysis and Specification & Software Design

Requirements Engineering

CIS 890: Safety Critical Systems

Architectural Design. Architectural Design. Software Architecture. Architectural Models

Lecture 6: Requirements Engineering

DATA ITEM DESCRIPTION

Topic: Software Verification, Validation and Testing Software Engineering. Faculty of Computing Universiti Teknologi Malaysia

Object-Oriented Design (OOD) Case Study : Architecture and Detail Design and Software Design Document (SDD) Prepared by Shahliza Abd Halim

Chapter 6 Architectural Design

XVIII. Software Architectures

FORMALIZED SOFTWARE DEVELOPMENT IN AN INDUSTRIAL ENVIRONMENT

Lecture 7 (3-April-2013)

Software architecture in ASPICE and Even-André Karlsson

Components Based Design and Development. Unit 3: Software Design Quick Overview

Business Process Modelling

Rules of Writing Software Requirement Specifications

Checklist for Requirements Specification Reviews

Software Requirements Specification (SRS) Software Requirements Specification for <Name of Project>

Requirements Validation and Negotiation

SE 1: Software Requirements Specification and Analysis

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

Scenario-Based Analysis. Scenario-Based Analysis (example) Form analysis

Reusability of Requirements Ontologies. By Rania Alghamdi

Lecture 1. Chapter 6 Architectural design

Chapter 6 Architectural Design. Chapter 6 Architectural design

Lecture Objectives. Documentation What is it? User Documentation Purpose. User Documentation Report Format (an example) User Documentation Purpose

Chapter 8. Database Design. Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel

Diagram Oriented Requirement Specification and the DorsGen Tool

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

What is a Data Model?

Chapter 4. Capturing the Requirements. 4th Edition. Shari L. Pfleeger Joanne M. Atlee

Modeling the Dialogue Aspects of an Information System

SE351a: Software Project & Process Management. 13 Oct., 2005 SE351a, ECE UWO, (c) Hamada Ghenniwa

Chapter 2 Overview of the Design Methodology

Guidelines for deployment of MathWorks R2010a toolset within a DO-178B-compliant process

Vragen. Use case analysis. Use-Cases: describing how the user will Use cases

Rekayasa Perangkat Lunak 2 (IN043): Pertemuan 6. Moving on to Design

Mathematics and Computing: Level 2 M253 Team working in distributed environments

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of MCA

VANCOUVER Chapter Study Group. BABOK Chapter 9 Techniques

Business Requirements Document (BRD) Template

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>

<Company Name> <Project Name> Software Requirements Specification For <Subsystem or Feature> Version <1.0>

Architectural Design. Topics covered. Architectural Design. Software architecture. Recall the design process

Component Design. Systems Engineering BSc Course. Budapest University of Technology and Economics Department of Measurement and Information Systems

Software Architectures. Lecture 6 (part 1)

Practical Database Design Methodology and Use of UML Diagrams Design & Analysis of Database Systems

FedRAMP General Document Acceptance Criteria. Version 1.0

Restricted Use Case Modeling Approach

Introduction to Modeling

Controller/Pilot Data Link Communication Application

Requirements Elicitation

Lesson 06. Requirement Engineering Processes

Week 9 Implementation

Requirements Analysis. SE 555 Software Requirements & Specification

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

Objectives. Architectural Design. Software architecture. Topics covered. Architectural design. Advantages of explicit architecture

Structured Analysis and Structured Design

Architectural Design

System models Abstract descriptions of systems whose requirements are being analysed. System modelling. Structured methods

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 8 Slide 1

Requirements Engineering. Contents. Functional requirements. What is a requirement?

Chapter 4: Data Management

Chapter 5, Analysis: Dynamic Modeling

Applying UML to System Engineering Some Lessons Learned Murray Cantor Principal Consultant

Evidence-based Development coupling structured argumentation with requirements development.

Release of Octopus/UML

Data. Entities. Accounting Information Systems. Chapter 4: Data Management

SOFTWARE QUALITY. MADE IN GERMANY.

IFPUG 4.3 What You Need to Know!

Methods for requirements engineering

PROJECT IMPLEMENTATION PROGRAM

Software Quality Starts with the Modelling of Goal-Oriented Requirements

Transcription:

XIV. The Requirements Specification Document (RSD) What is a RSD? What to include/not include in a RSD? Attributes of a Well-Written RSD Organization of a RSD Sample Table of Contents An Example 2002 John Mylopoulos Software Requirements Specification 1 The Requirements Specification Document (RSD) This is the document that is generated by the requirements engineering process; the document describes all requirements for the system under design and is intended for several purposes: Communication among customers, users and designers -- specification should be quite specific about what the system will look like externally Supporting system testing, verification and validation activities -- specification should include sufficient information so that when the system is delivered, it is possible to make sure that it meets requirements Controlling system evolution -- maintenance, extensions and enhancements to system should be consistent with requirements, else the requirements themselves must evolve 2002 John Mylopoulos Software Requirements Specification 2

Contents of a RSD What to include in a RSD: A complete yet concise description of the entire external interface of the system with its environment, including other software, communication ports, hardware and user interfaces Functional requirements (also called behavioural requirements) specify what the system does by relating inputs to outputs Non-Functional requirements (also called quality or non- behavioural) define the attributes of the system as it operates What not to include in a RSD: Project requirements -- because these are development-specific and become irrelevant as soon as the project is over Designs -- because inclusion of designs is irrelevant to endusers and customers and pre-empts the design phase Quality assurance plans -- for example, configuration management plans, verification and validation plans, test plans, quality assurance plans 2002 John Mylopoulos Software Requirements Specification 3 Content Qualities Correct in the sense that all stated requirements represent a need a stakeholder has (customer, user, analyst or designer) Unambiguous in the sense that every stated requirement has a unique interpretation. Complete in the sense that it possesses the following four qualities: Everything the software is supposed to do is in the RSD; The response to all possible input combinations is stated explicitly; Pages and figures are numbered (document completeness); There are no to-be-determined sections in the document. Verifiable in that every requirement can be established through a finite cost, effective process Consistent in that no requirement is in conflict with existing documents or with another stated requirement; incosistencies among requirements may be of four kinds (i) conflicting behaviour, (ii) conflicting terms, (iii) conflicting attributes (iv) temporal inconsistencies 2002 John Mylopoulos Software Requirements Specification 4

Qualities of a Well-Written RSD Understandable by customers, which means that formal notations can only be used as backup to help with consistency and precision, while the RSD document itself is expressed in natural language or some notation the customer is familiar with (e.g., UML.) Modifiable in the sense that it can be easily changed without affecting completeness, consistency; modifiability is enhanced by a table of contents (TOC), an index and cross references where appropriate; redundancy can also be used (mention the same requirement several times, but cross-reference them all) Traced in that the origin of every requirement is clear; this can be achieved by referencing earlier documents (pre-existing documents, drafts, memos,...) Traceable in the sense that attributes of the design can be traced back to requirements and vice versa; also, during testing you want to know which requirement is being tested by which test batch; to enhance traceability (i) number every requirement, (ii) number every part of the RSD hierarchically, all the way down to paragraphs 2002 John Mylopoulos Software Requirements Specification 5 Traceable vs Traced System-level Reqs drafts, memos,... traced Software Requirements Specification traceable traceable Software Design 2002 John Mylopoulos Software Requirements Specification 6

Style Qualities Design-independent in the sense that it does not imply a particular software architecture or algorithm Annotated in that it provides guidance to the developers; two useful types of annotations are (i) relative neccesity, i.e., how necessary is a particular requirement from a stakeholder perspective, (ii) relative stability, i.e., how likely is it that a requirement will change Concise -- the shorter an RSD document the better Organized in the sense that it is easy to locate any one requirement 2002 John Mylopoulos Software Requirements Specification 7 There is no Perfect RSD! ambiguous redundant inconsistent not not understandable incomplete 2002 John Mylopoulos Software Requirements Specification 8

How to Organize a RSD There are many RSD standards, including: US DoD DI-MCCR- 80025A, NASA SMAP-DID-P200-SW, IEEE ANSI 830-1984 Organization may be based on different criteria: External stimulus or external situation, e.g., for an aircraft landing system, external stimuli or situations might be wind gusts, no fuel,...; System feature, e.g., call forward, call long distance,...; System response, e.g., generate pay-cheques; External object, e.g., by book type for a library information system; User type. It is useful to define a hierarchy among these criteria, use it throughout the RSD document, e.g., sections are defined with respect to (wrt) external stimulus, subsections wrt system feature etc. 2002 John Mylopoulos Software Requirements Specification 9 Sample Table of Contents 1 Introduction 1.1 Scope 1.2 Document Overview 1.3 Applicable Documents -- list of other relevant documents 1.4 Nomenclature -- definition of terms used in the document 2 System Decomposition 3 Subsystem External Interface Requirements 3.x <external interface name> External Interface 3.y <inter-subsystem interface name> Inter-Subsystem Interface X <subsystem name> Subsystem X.1 Software Requirements (X stands for one or more of 4, 5,... ) 2002 John Mylopoulos Software Requirements Specification 10

Sample Requirements (cont'd cont'd) 5 Data Requirements -- format of data passed through each interface 6 Performance Requirements 6.1 Sizing Requirements 6.2 Timing Requirements 7 Operating Requirements 7.1 Security Requirements 7.2 Safety Requirements 7.3 Restart Requirements 7.4 Backup Requirements 7.5 Fallback Requirements 2002 John Mylopoulos Software Requirements Specification 11 Sample Requirements (cont'd cont'd) 8 Platform Requirements 8.1 Memory Requirements 8.2 Disk Space Requirements 8.3 Operating System Requirements 8.4 Window System Requirements 8.5 CPU Requirements 8.6 Peripheral Requirements 8.7 Network Requirements 9 Requirements Traceability Appendices A.1 Hardware Requirements B.1 Data Dictionary Notation Glossary of Terms 2002 John Mylopoulos Software Requirements Specification 12

Example System Decomposition An Automated Money Machine (AMM) might be decomposed as follows: AMM System Control Banking Applications Network Manager Banking Applications Subsystem includes use cases for banking transactions and their inputs and outputs. Network Manager Subsystem provides for communication with the central computer system. System Control Subsystem is responsible for startup/shutdown control of the AMM system and error handling. 2002 John Mylopoulos Software Requirements Specification 13 Card Box External Interfaces card box notification banker display Customer banker commands Cash Box cash box notification control and commands information Banking Applications transaction statement updates Printer System boundary System Control control and commands information operational status Network Manager Bank s Computer information 2002 John Mylopoulos Software Requirements Specification 14

Software Requirements for a Subsystem Define inputs, outputs for each use case for the System Control subsystem invalid pin display pin card number request enter pin display Process PIN pin validation response Process Account Balance select banking transaction display transaction statement query Process Cash Deposit pin validation request Control Startup/ Shutdown transaction statement deposit cash request cash box notification Process Cash Withdrawal update transaction statement update withdraw cash request cash box notification request startup shutdown 2002 John Mylopoulos Software Requirements Specification 15 Data Requirements Name: enter_pin_display Description: Prompt customer to enter his pin. Composition: source + destination + message_number 1{alphanumeric character}80 Name: error_message Description: Software, hardware, or security failure message. Composition: source + destination + message_number + error_code + severity_level + error_message_text Name: invalid_pin_display Description: Inform customer that pin entered was invalid. Composition: source + destination + message_number + 1{alphanumeric character}80 2002 John Mylopoulos Software Requirements Specification 16

References [Davis93] Davis, A., Software Requirements, Prentice-Hall, 1993, (chapter 3) [Thayer90] Dorfman, M. and Thayer, R. Standards, Guidelines and Examples on System and Software Requirements Engineering, IEEE Computer Society Press, 1990. 2002 John Mylopoulos Software Requirements Specification 17