Software Requirements Specification SJTU. Subtopics l Background material l System requirements specification l Software requirements specification l.

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Characteristics of a good SRS
Karolina Muszyńska Based on
Software Engineering COMP 201
WKES 3202 SOFTWARE REQUIREMENTS ENGINEERING SEMESTER 1 SESSION 2004/2005.
8/28/2005ECEN5543 Req Elicitation1 Targets of Requirements Engineering ECEN 5543 SW Engineering of Standalone Programs University of Colorado, Boulder.
1 / 26 CS 425/625 Software Engineering Software Requirements Based on Chapter 5 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
Software Requirements
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
CS 425/625 Software Engineering Software Requirements
Software Requirements
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Overview of Software Requirements
SE 555 – Software Requirements & Specifications Introduction
1 Software Requirements Specification Lecture 14.
Karolina Muszyńska Based on
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.
Gregor v. Bochmann, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher (2009) with material from: IEEE Standard, Daniel Amyot.
Software Requirement Specification(SRS)
Requirements Engineering
The Software Development Life Cycle: An Overview
SOFTWARE REQUIREMENTS SPECIFICATION (SRS)
Lecture 18: Specifications
Software Requirements Specification (SRS) Complete description of external behavior of software system Complete description of external behavior.
Typical Software Documents with an emphasis on writing proposals.
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Software Requirements l Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Business Analysis and Essential Competencies
1 Lecture 5.2a: SEF Ch 8 SE Outputs Dr. John MacCarthy UMBC CMSC 615 Fall, 2006.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
소프트웨어공학 강좌 1 Chap 4. Software Requirements - Descriptions and specifications of a system - Soo-Mi Choi
Software Requirements Engineering CSE 305 Lecture-2.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
Lecture 7: Requirements Engineering
1 Introduction to Software Engineering Lecture 1.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
1 Quality Attributes of Requirements Documents Lecture # 25.
Requirements Validation
1 Chapter 8 Building the Analysis Model (1) Analysis Concepts and Principles.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Software Requirements Specification (SRS)
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Software Requirements Specification Document (SRS)
Requirements Analysis
Requirements Analysis
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Software Engineering Lecture 10: System Engineering.
Chapter 7 Part II Structuring System Process Requirements MIS 215 System Analysis and Design.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
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.
Daniel Amyot, University of Ottawa Based on slides by Gunter Mussbacher (2009) and Stéphane Somé (2008) with material from these standards: IEEE ,
Chapter 4 – Requirements Engineering
An Overview of Requirements Engineering Tools and Methodologies*
Chapter 5 – Requirements Engineering
Lecture # 7 System Requirements
Requirements Document
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Software Requirements Specification SJTU

Subtopics l Background material l System requirements specification l Software requirements specification l Other types of requirements specifications l Attributes of a well-written requirements specification l Summary information

Systems Engineering Process Model System Requirements Engineering Architectural Design Requirements Allocation Software Requirements Engineering Sub-system Development System Integration System Validation Needs statement Validated System System Requirements Specification Software Requirements Specification

Requirements Engineering Activity Model Requirements Elicitation Requirements Analysis Requirements Specification Requirements Validation Validated Requirements Specification Existing System Information Stakeholder Needs Organizational Standards Technical Standards Regulations Domain Information Goals Requirements Management

Requirements Elicitation l Knowledge transfer from users to developers l First stage in building an understanding of the problem that the software is required to solve l Fundamentally a human activity l Not a passive activity l Also referred to as requirements capture, requirements discovery, or requirements acquisition

Elicitation Techniques l Interviews l Questionnaires l Scenarios l Use cases Also a requirements analysis method l Prototypes Also a requirements validation method l Facilitated workshops (e.g., JAD session) l Observation Job protocol analysis Social analysis

Requirements Analysis l The process of analyzing requirements to: Detect and resolve requirements problems Decompose (elaborate) requirements Discover system boundary and how system must interact with its environment Discover interactions and overlaps between requirements Gain a better understanding of the problem l Includes the following main activities: Requirements classification Conceptual modeling Requirements negotiation l Quality of analysis directly affects product quality More rigorous analysis leads to better software quality

Conceptual Modeling l Development of models to aid understanding of requirements A model is an abstract representation of system whose requirements are being analyzed Model can be used to answer questions about system Not concerned with initiating design of the solution l In nearly all cases, useful to start by building model of system boundary Crucial to understanding system’s context in its operational environment Crucial to identify system’s interfaces to external environment

Examples of Conceptual Models l Activity model l Class diagram l Context diagram l Data flow model l Data model l Formal model l Object model l Process model l State model l Use case model

Typical Requirements Problems Identified During Analysis l Ambiguous requirements l Conflicting requirements l Design dependent requirements l Infeasible requirements (technical, operational, economic) l Incomplete requirements l Inconsistent requirements l Non-singularized requirements l Non-testable requirements l Unnecessary requirements

Requirements Negotiation l The activity of resolving problems with conflicting requirements Between stakeholder requirements Between requirements and resources Between capabilities and constraints l Includes the following main activities: Requirements discussion Stakeholders involved present their views Requirements prioritization Disputed requirements are prioritized to identify critical requirements Requirements agreement Compromise set of requirements result

Requirement Types (1 of 4) l System requirement Condition or capability that must be met or possessed by a system (IEEE STD 729) Externally visible function or attribute of a system (IEEE STD 830) Defines service the system must provide and associated constraints l Software requirement Condition or capability that must be met or possessed by a software component

Requirement Types (2 of 4) l Functional requirement Condition or capability needed by end user to solve a problem or achieve an objective (IEEE STD 729) User requirement Behavioral requirement

Requirement Types (3 of 4) l Non-functional requirement Requirement not specifically concerned with functionality System quality or attribute Reliability Availability Maintainability Portability Usability Security Capacity Performance Safety Design constraint Restriction on system/software to be built Restriction on developmental process

Requirement Types (4 of 4) l Information requirement Entities, attributes, and relationships that must be stored and processed by the system/software Data requirement l External interface requirement Information that must be exchanged with an external system or component Information exchange requirement

Natural Language l Requirements specifications are typically expressed in natural language l Advantages Extraordinarily rich and expressive Able to describe almost any concept or system property l Disadvantages Inherently ambiguous Hard to describe complex concepts precisely Difficult to modularize natural language requirements Prone to misunderstanding

Alternatives to Natural Language Specifications (1 of 2) l Structured natural language Restricted form of natural language Maintains most of the expressiveness of natural language while ensuring some degree of uniformity l Design description or program description languages Language derived from a programming language containing additional, more abstract, constructs to increase expressiveness l Graphical notations

Alternatives to Natural Language Specifications (2 of 2) l Mathematical notations (formal methods) Z CSP Advantage Non-ambiguous since syntax and semantics are formally defined Disadvantage Not expressive enough to adequate describe every system aspect Almost always requires natural language to supplement

Subtopics l Background material l System requirements specification l Software requirements specification l Other types of requirements specifications l Attributes of a well-written requirements specification l Summary information

System Requirements Specification (SyRS) l Completely describes interface between system (as a black box) and its external environment (actors) Human users External systems Hardware devices l Serves as basis for system architecture and design l Serves as basis for system validation and user acceptance Test solution against system requirements l Forms basis for system development contract l Communicates system requirements to users, customers, developers, and other stakeholders

SyRS Standards and Formats l System requirements specification (SyRS) IEEE Std 1233, 1998 Edition, IEEE Guide for Developing System Requirements Specifications IEEE/EIA , Clause 6.26 l System/Subsystem Specification (SSS) IEEE J-STD , Annex F.2.2

IEEE Recommended Contents for SyRS l Generic specification information l System identification and overview l Required states and modes l Requirements for the functions and performance of the system l Business, organizational, and user requirements l Safety, security, and privacy protection requirements l Human-factors engineering (ergonomics) requirements l Operations and maintenance requirements l System interface requirements System environmental req’ts l Design constraints and qualification requirements Computer resource req’ts l System quality characteristics l Internal data requirements l Installation-dependent data requirements l Physical requirements l Personnel, training, and logistics requirements l Packaging requirements l Precedence and criticality of requirements l Rationale

Selection of SyRS Standard and Format l Depends on context Project User organization Customer organization Development organization For example, U. S. Army requires operational requirements document for all major system development efforts l Should tailor selected standard for project Eliminate unneeded sections For example, eliminate states and modes if not applicable

Subtopics l Background material l System requirements specification l Software requirements specification l Other types of requirements specifications l Attributes of a well-written requirements specification l Summary information

Software Requirements Specification (SRS) l Completely describes interface between software component and its external environment (actors) Decomposition of system requirements (from SyRS) that have been allocated (during requirements allocation) to software components (within architectural design) Non-functional requirements from SyRS are elaborated and quantified SRS requirements traced to SyRS requirements l Serves as basis for software sub-system design l Serves as basis for software sub-system testing l Forms basis for software development contract l Communicates software requirements to users, customers, developers, and other stakeholders

Contents of SRS l Functional requirements Functions software must provide l External interface requirements Required interaction with external environment People, hardware, and other software l Performance requirements Speed, availability, response time, recovery time of various software functions l Non-functional requirements Portability, correctness, maintainability, security, etc. l Design constraints imposed on an implementation Required standards, implementation language, policies for database integrity, resource limits, operating environment(s) etc.

SRS Standards and Formats l IEEE STD IEEE/EIA , Clause 6.2.2, Software Requirements Description l IEEE p123/D3 l ISO/IEC l IEEE J-STD , Annex F.2.4

Selection of SRS Standard and Format l Depends on context Project User organization Customer organization Development organization l Should tailor selected standard for project Eliminate unneeded sections

IEEE Recommended SRS Format (1 of 3) Table of contents 1 Introduction 1.1 Purpose 1.2 Scope 1.3 Definitions, acronyms, and abbreviations 1.4 References 1.5 Overview

IEEE Recommended SRS Format (2 of 3) 2 Overall description 2.1Product perspective 2.2 Product functions 2.3 User characteristics 2.4 Constraints 2.5 Assumptions and dependencies 2.6 Apportioning of requirements

IEEE Recommended SRS Format (3 of 3) 3 Specific requirements 3.1 External interfaces 3.2 Functions Organize by mode, user class, object, feature, stimulus, response, or functional hierarchy 3.3 Performance requirements 3.4 Logical database requirements 3.5 Design constraints 3.6 Software system attributes l Appendixes l Index

Section 3.2 Organized By Feature l 3.2 System features l System Feature 1 l Introduction/Purpose of feature l Stimulus/Response sequence l Associated functional requirements l Functional requirement 1 l... l n Functional requirement n l System feature 2 l... l 3.2.m System feature m l …

Subtopics l Background material l System requirements specification l Software requirements specification l Other types of requirements specifications l Attributes of a well-written requirements specification l Summary information

Other Requirements Specifications l Interface Requirements Specification (IRS) IEEE J-STD , Annex F.2.3 l Operational Concept Description (OCD) IEEE J-STD , Annex F.2.1 IEEE/EIA , Clause 6.3 IEEE l Operational Requirements Document (ORD) l Functional Description (FD) l Mission Needs Statement (MNS)

Subtopics l Background material l System requirements specification l Software requirements specification l Other types of requirements specifications l Attributes of a well-written requirements specification l Summary information

Attributes of a Well-Written SRS Correct Unambiguous Complete Consistent Ranked for importance and/or stability Verifiable Modifiable Traceable

Correct An SRS is correct if, and only if, every requirement stated therein is one that the software shall meet

Unambiguous An SRS is unambiguous if, and only if, every requirement stated therein has only one interpretation The SRS should be unambiguous both to those who create it and to those who use it Impossible to achieve using natural language Natural language is inherently ambiguous Glossary of terms is helpful in reducing ambiguity Examples of ambiguous requirements The system shall work well The system shall be user friendly

Complete An SRS is complete if, and only if, it includes: All significant requirements relating to functionality, performance, design constraints, attributes, and external interfaces Definition of the responses of the software to all realizable classes of input data in all realizable classes of situations Important to specify responses to both valid and invalid input values Full labels and references to all figures, tables, and diagrams Definition of all terms and units of measure No use of the term “ to be determined ” (TBD)

Consistent An SRS is internally consistent if, and only if, no subset of individual requirements described in it conflict Examples of inconsistency The format of an output report may be described in one requirement as tabular but in another as textual One requirement may state that “ A ” must always follow “ B ” while another may require that “ A ” and “ B ” occur simultaneously A program ’ s request for a user input may be called a “ prompt ” in one requirement and a “ cue ” in another

Ranked for Importance and/or Stability An SRS is ranked for importance and/or stability if each requirement in it has an identifier to indicate either the importance or stability of that particular requirement For example: essential vs. desirable

Verifiable l An SRS is verifiable if, and only if, every requirement stated therein is verifiable l A requirement is verifiable if, and only if, there exists some finite cost-effective process with which a person or machine can check that the software product meets the requirement l Examples of non-verifiable (and ambiguous) requirements The system shall work well The system shall be user friendly In general any ambiguous requirement is not verifiable l Example of a verifiable requirement Output of the program shall be produced within 20 s of event ´ 60% of the time; and shall be produced within 30 s of event ´ 100% of the time

Modifiable An SRS is modifiable if, and only if, its structure and style are such that any changes to the requirements can be made easily, completely, and consistently while retaining the structure and style Coherent and easy-to-use organization with a table of contents, an index, and explicit cross-referencing No redundant requirements (i.e., the same requirement should not appear in more than one place in the SRS) Singularized requirements Express each requirement separately, rather than intermixed with other requirements

Traceable l An SRS is traceable if the origin of each of its requirements is clear and if it facilitates the referencing of each requirement in future development or enhancement documentation Backward traceability (i.e., to previous stages of development) This depends upon each requirement explicitly referencing its source in earlier documents Forward traceability (i.e., to all documents spawned by the SRS) This depends upon each requirement in the SRS having a unique name or reference number

Benefits of a Well-Written Specification l Establishes basis for agreement between customers and developers on what functions software product must perform l Reduces development effort Reduces later redesign, recoding, and retesting l Provides basis for estimating costs and schedules l Provides baseline for validation and verification l Serves as basis for software maintenance Correction of bugs Enhancements

Common Requirements Specification Problems l Use of long sentences with complex sub-clauses l Use of terms with more than one plausible interpretation Ambiguity l Presenting several requirements as a single requirement l Inconsistency in use of terms

Subtopics l Background material l System requirements specification l Software requirements specification l Other types of requirements specifications l Attributes of a well-written requirements specification l Summary information

Recommended Practices l Use restricted subset of natural language l State requirements succinctly (in short sentences) l Standardize on small set of modal verbs to indicate relative priorities For example, “shall” indicates requirement is mandatory while “should” indicates requirement is optional but desirable l Generate specification from baselined requirements in requirements management database l Adopt organizational requirements specification standard l Tailor requirements document for project

Key Points l Requirements define what the system should provide and define system constraints l Requirements problems lead to late delivery and change requests after the system is in use l Quality of requirements document directly affects product quality l Requirements specification should be sufficient for design and procurement decisions to be made

References l Gerald Kotonya and Ian Sommerville, Requirements Engineering: Processes and Techniques, Wiley, 1998 l Pete Sawyer and Gerald Kotonya, Guide to the Software Engineering Body of Knowledge, Chapter 2, Version 0.95, May 2001, IEEE l Ian Sommerville, Software Engineering, 7th Edition, Addison-Wesley, 2000 l Alan Davis, Software Requirements, Prentice Hall, 1993 IEEE STD , IEEE Recommended Practice for Software Requirements Specifications IEEE STD , IEEE Recommended Practice for Developing System Requirements Specifications