Characteristics of a good SRS

Slides:



Advertisements
Similar presentations
Software Requirements
Advertisements

Testing Relational Database
Configuration Management
Software Requirements
Lecture # 2 : Process Models
Chapter 2 – Software Processes
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.
Software Requirements
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 1 (cont ’d) Title : Client requirements (Review) Mandatory reading: I.
Overview of Software Requirements
1 Software Requirements Specification Lecture 14.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
SOFTWARE REQUIREMENTS SPECIFICATION (SRS)
S/W Project Management
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Managing Software Quality
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
Applying the Inspection Process. What Software Artifacts Are Candidates for Inspection? Software Requirements Software Designs Code Test Plans.
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.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Negotiation and Specification Process
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
Software Requirements Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn Lecture 4 & 5.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
SE: CHAPTER 7 Writing The Program
Systems Life Cycle A2 Module Heathcote Ch.38.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
Quality Management Managing the quality of the software process and products.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Chapter 4 Software Requirements
L To identify the services that the customer requires from a system and the constraints under which it operates and is developed.
(SRS) SOFTWARE REQUIREMENT SPECIFICATION(SRS) 1. Topics to be discussed.. What is an SRS? Purpose of an SRS Who reads the SRS? Who writes the SRS? Characteristics.
1 Quality Attributes of Requirements Documents Lecture # 25.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Requirements Validation
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Requirements / Specifications. 01/18/10CS-499G2 Requirements Determine what the customer needs (wants) the software to do  What are requirements?  An.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Week 3: Requirement Analysis & specification
Software Requirements Specification (SRS)
System Requirements Specification
Software Requirements
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.
Chapter 13 Finalizing Design Specifications
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.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
ISO 9001:2015 Subject: Quality Management System Clause 8 - Operation
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
Software Requirements
Requirements Analysis and Specification
Software Quality Engineering
Methodologies For Systems Analysis.
Requirement Documentation &
SOFTWARE REQUIREMENT SPECIFICATION
Dr. Jiacun Wang Department of Software Engineering Monmouth University
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Software Reviews.
Presentation transcript:

Characteristics of a good SRS An SRS should be: Correct Unambiguous Complete Consistent Ranked for importance and/or stability Verifiable Modifiable Traceable

Characteristics of a good SRS Correct An SRS is correct if every requirement stated in it is one that the software will meet. There is no tool or procedure that ensures correctness, but the customer or user can determine if the SRS correctly reflects the actual needs.

Characteristics of a good SRS Unambiguous An SRS is unambiguous only if every requirement stated in it has only one interpretation. As a minimum this requires that each characteristic of the final product be described using a single unique term. Representations that improve the requirements specification for the developer may be counterproductive in that they diminish understanding to the user and vice versa. Care should therefore be taken to ensure natural language is used so that terms are understandable to both developer and user.

Characteristics of a good SRS Complete An SRS is complete only if it includes the following elements: All significant requirements Definition of the responses of the software to all classes of input data. It is important to specify the responses to both valid and invalid input values. Full labels and references to all figures, tables, and diagrams in the SRS and definition of all terms and units of measure

Characteristics of a good SRS Consistent Consistency refers to internal consistency. It is internally consistent only if no subset of individual requirements described in it conflict. For example: Characteristics may conflict (ie, one requirement may state that all users need a password whilst another states they do not). Actions may conflict (ie one requirement states that two inputs should be added whilst another states they should be multiplied). Different terms are used for the same thing (ie, one requirement may describe a user input as a prompt whilst another may describe it as a cue).

Characteristics of a good SRS Ranked for importance and/or stability Typically all of the requirements that relate to a software product are not equally important. Some requirements may be essential (especially for life critical systems) while others may be desirable. An SRS is ranked for importance and/or stability if each requirement in it has an identifier to indicate either the importance or the stability of a particular requirement. Necessity can be ranked as essential (requirements must be provided), conditional (requirements would enhance the product) and optional (requirement may or may not be worthwhile). Stability can be expressed in terms of the number of expected changes to any requirement based on knowledge of forthcoming events that effect the organisation

Characteristics of a good SRS Verifiable An SRS is verifiable only if every requirement in it is verifiable. Nonverifiable requirements include statements such as “works well”, “good human interface” and “shall usually happen”. These requirements cannot be verified because it is impossible to define the terms “good” “well” or “usually”. An example of a verifiable statement is: “Output of the program shall be produced within 20 s of event x 60% of the time; and shall be produced within 30 s of event x 100% of time” If a method cannot be devised to determine whether the software meets a particular requirement then that requirement should be removed or revised.

Characteristics of a good SRS Modifiable An SRS is modifiable only if it’s structure and style are such that any changes to the requirements can be made easily, completely and consistently while retaining the structure and style. Modifiability generally requires an SRS to: Have an easy-to-use organisation with a table of contents, an index, and cross-referencing. Not be redundant (i.e., the same requirement should not appear in more than one place in the SRS). Redundancy itself is not an error, but it can lead to errors when a redundant document is updated as the requirement may only be updated in one of the places where it appears. The document would then be inconsistent. Whenever redundancy is necessary, the SRS should include cross-references to make it modifiable. Express each requirement separately, rather than intermixed with other requirements.

Characteristics of a good SRS Traceable 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. The following two types of traceability are recommended: Backward traceability (i.e. to the 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. The forward traceability of the SRS is especially important when the software product enters the operation and maintenance phase. As code and design documents are modified, it is essential to be able to ascertain the complete set of requirements that may be affected by these modifications.

Characteristics of a good SRS Documenting changes The SRS may need to evolve as the development of the software progresses. It may be impossible to specify some details at the time the project is initiated. Changes may take place as deficiencies, shortcomings and inaccuracies are discovered in the SRS. Two major considerations in this process are the following: i) Requirements should be specified as completely and thoroughly as known at the time. The fact that they are incomplete should be noted. ii) A formal change process should be initiated to identify, control, track and report changes. Approved changes in requirements should be incorporated in the SRS to: Provide an accurate and complete audit trail of changes Permit the review of current and superseded portions of the SRS

Characteristics of a good SRS Prototyping Prototyping is used frequently during the requirements phase of the project. Many tools exist that allow a prototype, exhibiting some characteristics of a system to be created very quickly and easily. Prototypes are useful for the following reasons: i) The prototype provides quick feedback as the customer may be more likely to view the prototype and react to it than to read the SRS and react to it. ii) The prototype displays unanticipated aspects of the systems behaviour. Thus, it produces not only answers but also new questions. This helps reach closure on the SRS. iii) An SRS based on a prototype tends to undergo less change during development, thus shortening development time.

Characteristics of a good SRS Embedding design in the SRS A requirement specifies an externally visible function or attribute of a system A design describes a particular subcomponent of a system and/or its interfaces with other subcomponents Design should be specified in the design document not the SRS