SlideShare a Scribd company logo
Software Engineering Software Requirements
S.H
CSC 342
1
Chapter 3
Software Requirements
Software Engineering – CSC 342
King Saud University
College of Computer and Information Sciences
Department of Computer Science
Dr. S. HAMMAMI
Software Engineering Software Requirements
S.H
CSC 342
2
Objectives
 To introduce the concepts of user and system
requirements
 To describe functional and non-functional
requirements
 To explain how software requirements may be
organised in a requirements document
Software Engineering Software Requirements
S.H
CSC 342
3
Outcomes
When you have read the chapter, you will
 Understand the concepts of user requirements
 Understand the concepts of system requirements
 Understand why these requirements should be written in different
ways
 Understand the differences between functional and non-functional
software requirements
 Understand how requirements may be organized in a software
requirements document.
Software Engineering Software Requirements
S.H
CSC 342
4
Requirements engineering
 The process of establishing the services that the
customer requires from a system and the
constraints under which it operates and is
developed.
 The requirements themselves are the
descriptions of the system services and
constraints that are generated during the
requirements engineering process.
Software Engineering Software Requirements
S.H
CSC 342
5
What is a requirement?
 It may range from a high-level abstract statement of a
service or of a system constraint to a detailed
mathematical functional specification.
 The requirements analysis and definition establish the
system's services, constraints and goals by consultation
with users. They are then defined in a manner that is
understandable by both users and development staff.
Requirements define the function of the system FROM
THE CLIENT'S VIEWPOINT.
Requirements Analysis and Definition
Software Engineering Software Requirements
S.H
CSC 342
6
Types of requirement
 User requirements
• Statements in natural language plus diagrams of what services
the system is expected to provide and its operational
constraints. Written for customers.
 System requirements
• A structured document setting out detailed descriptions of the
system’s functions, services and operational constraints.
Defines what should be implemented so may be part of a
contract between client and contractor.
Software Engineering Software Requirements
S.H
CSC 342
7
Types of requirement
User Requirement:
Let us assume that we have a word-processing system that does
not have a spell checker. In order to be able to sell the product, it is
determined that it must have a spell checker. Hence the business
requirement could be stated as:
 user will be able to correct spelling errors in a document
efficiently.
 Hence, the Spell checker will be included as a feature in the
product.
Software Engineering Software Requirements
S.H
CSC 342
8
Types of requirement
System Requirement:
 After documenting the user’s perspective in the form of user
requirements, the system’s perspective: what is the
functionality provided by the system and how will it help the
user to accomplish these tasks. Viewed from this angle, the
functional requirement for the same user requirement could be
written as follows:
 The spell checker will find and highlight misspelled words.
Right clicking a misspelled word, will then display a dialog box
with suggested replacements. The user will be allowed to select
from the list of suggested replacements. Upon selection it will
replace the misspelled word with the selected word. It will also
allow the user to make global replacements.
Software Engineering Software Requirements
S.H
CSC 342
9
Definitions and specifications
- On making a request for a document from LIBSYS, the requestor shall be
presented with a form that records details of the user and the request made.
- LIBSYS request forms shall be stored on the system for five years from
the date of the request.
- All LIBSYS request forms must be indexed by user, by the name of the
material requested and by the supplier of the request.
- LIBSYS shall maintain a log of all requests that have been made to the
system.
- For material where authors’lending rights apply, loan details shall be sent
monthly to copyright agencies that have registered with LIBSYS
Library System (LIBSYS) shall keep track of all data required by copyright licensing
agencies.
User requirement definition
System requirements specification
Software Engineering Software Requirements
S.H
CSC 342
10
Functional and non-functional requirements
 Functional requirements
• Statements of services the system should provide, how the system should
react to particular inputs and how the system should behave in particular
situations.
 Non-functional requirements (Quality Requirements)
• Constraints on the services or functions offered by the system such as timing
constraints, constraints on the development process, standards, etc.
Software system requirements are often classified as functional
requirements, non-functional requirements:
Software Engineering Software Requirements
S.H
CSC 342
11
Functional requirements
 Describe functionality or system services.
 Depend on the type of software, expected users of the
software and the general approach taken by the
organisation when writing requirements.
 Functional user requirements may be high-level
statements of what the system should do but functional
system requirements should describe the system
services in detail.
Software Engineering Software Requirements
S.H
CSC 342
12
Example: The LIBSYS system
 A library system that provides a single interface to a number of databases of
articles in different libraries.
 Users can search for, download and print these articles for personal study.
 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.
Functional requirements may be expressed in a number of way.
Example: LIBSYS used by students and faculty to order books and documents
from other libraries.
Software Engineering Software Requirements
S.H
CSC 342
13
Non-functional requirements
 These define system properties and constraints e.g. reliability,
response time and storage requirements.
 They may define constraints on the system such as the capabilities
of I/O devices and the data representations used in system
interfaces.
 Process requirements may also be specified mandating a particular
CASE system, programming language or development method.
 Non-functional requirements may be more critical than functional
requirements. If these are not met, the system is useless.
Software Engineering Software Requirements
S.H
CSC 342
14
Non-functional classifications
 Product requirements
• Requirements which specify that the delivered product must
behave in a particular way e.g. execution speed, reliability, etc.
 Organisational requirements
• Requirements which are a consequence of organisational
policies and procedures e.g. process standards used,
implementation requirements, etc.
 External requirements
• Requirements which arise from factors which are external to the
system and its development process e.g. interoperability
requirements, legislative requirements, etc.
Software Engineering Software Requirements
S.H
CSC 342
15
User requirements
 Should describe functional and non-functional
requirements in such a way that they are
understandable by system users who don’t have
detailed technical knowledge.
 User requirements are defined using natural
language, tables and diagrams as these can be
understood by all users.
Software Engineering Software Requirements
S.H
CSC 342
16
Problems with natural language
Various problems can arise when requirements are written in
natural language sentences in a text document:
 Lack of clarity
• Precision is difficult without making the document difficult to read.
 Requirements confusion
• Functional and non-functional requirements tend to be mixed-up.
 Requirements amalgamation
• Several different requirements may be expressed together as a single
requirement.
Software Engineering Software Requirements
S.H
CSC 342
17
Guidelines for writing requirements
To minimise misunderstandings when writing user requirements, It is
recommended that you follow some simple guidelines:
 Invent a standard format and use it for all requirements.
 Use language in a consistent way. You should always distinguish
between mandatory and desirable requirements.
 Use text highlighting to identify key parts of the requirement.
 Avoid the use of computer jargon.
Software Engineering Software Requirements
S.H
CSC 342
18
System requirements
 More detailed specifications of system functions, services and
constraints than user requirements.
 They are intended to be a basis for designing the system.
 They add detail and explain how the user requirements should be
provided by the system.
 The system requirements should simply describe the external
behaviour of the system and its operational constraints.
 They should not be concerned with how the system should be
designed or implemented.
Software Engineering Software Requirements
S.H
CSC 342
19
Requirements and design
 In principle, requirements should state what the system should do
and the design should describe how it does this.
 In practice, requirements and design are inseparable
• A system architecture may be designed to structure the
requirements;
• In most cases, systems must interoperate with other existing
systems. These constrain the design, and these constraints
impose requirements on the new system;
Software Engineering Software Requirements
S.H
CSC 342
20
Problems with Natural Language (NL) specification
 Ambiguity
• The readers and writers of the requirement must interpret the same
words in the same way. NL is naturally ambiguous so this is very
difficult.
 Over-flexibility
• The same thing may be said in a number of different ways in the
specification.
 Lack of modularisation
• NL structures are inadequate to structure system requirements.
Because of these problems, requirements specification written in
natural language are prone to misunderstandings.
Software Engineering Software Requirements
S.H
CSC 342
21
Alternatives to NL specification
Notation Description
Structured natural
language
This approach depends on defining standard forms or templates to express the
requirements specifi cation.
Design
description
language s
This approach uses a language like a programmi ng langu age but with more abstract
features to specify the requirements by defining anoperational model of the system.
This approach is not now widely used although it can be useful for interface
specifications.
Graphical
notations
A graphical languag e, supp lemented by text anno tations is used to define the
func tional requirements for the system. An earlyexa mple of such a graphical
language was SADT. Now, use-case descriptions and sequence d iagrams are
commonlyused .
Mathematical
specifications
These are notations based on mathematicalconcep ts such as finite-state machines or
sets. These una mbiguous specifications reduce the arguments between customer and
contractor about system func tionalit y. Howeve r, most customers don’t unde rstand
formal specifications and a re reluctant to accept it as a system contract.
Software Engineering Software Requirements
S.H
CSC 342
22
Structured language specifications
 The freedom of the requirements writer is limited by a predefined
template for requirements.
 All requirements are written in a standard way.
 The terminology used in the description may be limited.
 The advantage is that the most of the expressiveness of natural
language is maintained but a degree of uniformity is imposed on the
specification.
 Structured language notations limit the terminology that can be used
and use templates to specify system requirements.
Software Engineering Software Requirements
S.H
CSC 342
23
Form-based specifications
 Definition of the function or entity.
 Description of inputs and where they come from.
 Description of outputs and where they go to.
 Indication of other entities required.
 Pre and post conditions (if appropriate).
 The side effects (if any) of the function.
Software Engineering Software Requirements
S.H
CSC 342
24
Graphical models
 Graphical models are most useful when you
need to show how state changes or where you
need to describe a sequence of actions.
 Different graphical models are explained in next
chapters.
Software Engineering Software Requirements
S.H
CSC 342
25
The requirements document
 The requirements document is the official statement of
what is required of the system developers (SRS).
 Should include both a definition of user requirements and
a specification of the system requirements.
 It is NOT a design document. As far as possible, it should
set of WHAT the system should do rather than HOW it
should do it
Software Engineering Software Requirements
S.H
CSC 342
26
Key points
 Requirements set out what the system should do and
define constraints on its operation and implementation.
 Functional requirements set out services the system
should provide.
 Non-functional requirements constrain the system being
developed or the development process.
 User requirements are high-level statements of what the
system should do. User requirements should be written
using natural language, tables and diagrams.
Software Engineering Software Requirements
S.H
CSC 342
27
Key points
 System requirements are intended to communicate the
functions that the system should provide.
 A software requirements document is an agreed
statement of the system requirements.
 The IEEE standard is a useful starting point for defining
more detailed specific requirements standards.

More Related Content

PPTX
Introduccion norma iso iec 12207.v1.1
PDF
5. Métodos de Prueba de Software
PPT
Pruebas De Software
PPTX
Teste de software - Conhecendo e Aplicando
PPTX
Estimación de Proyectos de Software
PPT
Presentación levantamiento y análisis de requerimientos
PPTX
Requerimiento de los sistemas de informacion
PPTX
Aseguramiento de la Calidad del Software II
Introduccion norma iso iec 12207.v1.1
5. Métodos de Prueba de Software
Pruebas De Software
Teste de software - Conhecendo e Aplicando
Estimación de Proyectos de Software
Presentación levantamiento y análisis de requerimientos
Requerimiento de los sistemas de informacion
Aseguramiento de la Calidad del Software II

What's hot (20)

PPTX
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
PPTX
Ciclo de vida del desarrollo de sistemas
PPS
Calidad De Software Diapositivas
PDF
IIS Unidad 3A Proceso de desarrollo de software
PDF
Sistema de Gerenciamento de Locadora de Vídeo - Apresentação
PPT
5 fallas comunes en las computadoras
PDF
POE Unidad 2: Diseño y construcción de programas visuales y orientados a eventos
PPT
Curso completo bpmn
PPTX
Modelo TSP
PPTX
Aseguramiento de la Calidad del Software
PDF
IIS Unidad 3B Proceso de desarrollo de software
PPTX
Importancia del análisis de requerimientos
PPT
Expo modelo de madurez del cmmi
PDF
Metodologia del rup
PDF
Diagrama de Casos de uso
PPS
Sistemas de soporte a la toma de decisiones (DSS)
PPT
Documentación de los sistemas de información
PPTX
Iso 25000
PDF
Estudio de caso
PDF
Tema 1 -T2: La ingeniería de requisitos de software
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
Ciclo de vida del desarrollo de sistemas
Calidad De Software Diapositivas
IIS Unidad 3A Proceso de desarrollo de software
Sistema de Gerenciamento de Locadora de Vídeo - Apresentação
5 fallas comunes en las computadoras
POE Unidad 2: Diseño y construcción de programas visuales y orientados a eventos
Curso completo bpmn
Modelo TSP
Aseguramiento de la Calidad del Software
IIS Unidad 3B Proceso de desarrollo de software
Importancia del análisis de requerimientos
Expo modelo de madurez del cmmi
Metodologia del rup
Diagrama de Casos de uso
Sistemas de soporte a la toma de decisiones (DSS)
Documentación de los sistemas de información
Iso 25000
Estudio de caso
Tema 1 -T2: La ingeniería de requisitos de software
Ad

Similar to chapter_3_8 of software requirements engineering (20)

PDF
Se lec-uosl-8
PPT
Software Requirements
DOCX
Software engg unit 2
PPTX
Requirements engineering
PPTX
Requirements engineering
PPTX
Requirement and Specification
PPTX
Software Requrement
PPT
SE - Software Requirements
PPT
Requirements Engineering - SRS - IEEE.ppt
PPT
Software engineering lecture 1
PPTX
Requirements engineering
PPT
Requirements Engineering about one of requirement engineering process
PDF
SE UNIT 2.pdf
PPT
CS8494 SOFTWARE ENGINEERING Unit-2
PDF
Software requirements
PPT
best software requirements for the students
PPTX
W4 lecture 7&8 - requirements gathering
PPTX
Lecture-5-Requirements Analysis and Specification.pptx
PPTX
Chap1 RE Introduction
PPT
Requirements Engineering
Se lec-uosl-8
Software Requirements
Software engg unit 2
Requirements engineering
Requirements engineering
Requirement and Specification
Software Requrement
SE - Software Requirements
Requirements Engineering - SRS - IEEE.ppt
Software engineering lecture 1
Requirements engineering
Requirements Engineering about one of requirement engineering process
SE UNIT 2.pdf
CS8494 SOFTWARE ENGINEERING Unit-2
Software requirements
best software requirements for the students
W4 lecture 7&8 - requirements gathering
Lecture-5-Requirements Analysis and Specification.pptx
Chap1 RE Introduction
Requirements Engineering
Ad

More from JavedKhan524377 (8)

PPTX
Deep learning intro and examples and types
PPTX
Linear Search for design and analysis of algorithm
PPTX
Greedy algorithm for design and analysis
PPTX
Binary Search Tree for design and analysis
PDF
Software Engineering Book for beginnerss
PPTX
Software tetsing paper related to industry
PPTX
Week 1 Lecture 1 LAB Weka lecture for machine learning
PPTX
lecture_for programming and computing basics
Deep learning intro and examples and types
Linear Search for design and analysis of algorithm
Greedy algorithm for design and analysis
Binary Search Tree for design and analysis
Software Engineering Book for beginnerss
Software tetsing paper related to industry
Week 1 Lecture 1 LAB Weka lecture for machine learning
lecture_for programming and computing basics

Recently uploaded (20)

PDF
Classroom Observation Tools for Teachers
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Computing-Curriculum for Schools in Ghana
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
Complications of Minimal Access Surgery at WLH
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
Institutional Correction lecture only . . .
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
01-Introduction-to-Information-Management.pdf
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Basic Mud Logging Guide for educational purpose
PDF
Anesthesia in Laparoscopic Surgery in India
PPTX
GDM (1) (1).pptx small presentation for students
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
Cell Structure & Organelles in detailed.
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Classroom Observation Tools for Teachers
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PPH.pptx obstetrics and gynecology in nursing
Computing-Curriculum for Schools in Ghana
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Complications of Minimal Access Surgery at WLH
STATICS OF THE RIGID BODIES Hibbelers.pdf
Institutional Correction lecture only . . .
Abdominal Access Techniques with Prof. Dr. R K Mishra
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
Renaissance Architecture: A Journey from Faith to Humanism
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
01-Introduction-to-Information-Management.pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Basic Mud Logging Guide for educational purpose
Anesthesia in Laparoscopic Surgery in India
GDM (1) (1).pptx small presentation for students
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Cell Structure & Organelles in detailed.
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape

chapter_3_8 of software requirements engineering

  • 1. Software Engineering Software Requirements S.H CSC 342 1 Chapter 3 Software Requirements Software Engineering – CSC 342 King Saud University College of Computer and Information Sciences Department of Computer Science Dr. S. HAMMAMI
  • 2. Software Engineering Software Requirements S.H CSC 342 2 Objectives  To introduce the concepts of user and system requirements  To describe functional and non-functional requirements  To explain how software requirements may be organised in a requirements document
  • 3. Software Engineering Software Requirements S.H CSC 342 3 Outcomes When you have read the chapter, you will  Understand the concepts of user requirements  Understand the concepts of system requirements  Understand why these requirements should be written in different ways  Understand the differences between functional and non-functional software requirements  Understand how requirements may be organized in a software requirements document.
  • 4. Software Engineering Software Requirements S.H CSC 342 4 Requirements engineering  The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed.  The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process.
  • 5. Software Engineering Software Requirements S.H CSC 342 5 What is a requirement?  It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification.  The requirements analysis and definition establish the system's services, constraints and goals by consultation with users. They are then defined in a manner that is understandable by both users and development staff. Requirements define the function of the system FROM THE CLIENT'S VIEWPOINT. Requirements Analysis and Definition
  • 6. Software Engineering Software Requirements S.H CSC 342 6 Types of requirement  User requirements • Statements in natural language plus diagrams of what services the system is expected to provide and its operational constraints. Written for customers.  System requirements • A structured document setting out detailed descriptions of the system’s functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.
  • 7. Software Engineering Software Requirements S.H CSC 342 7 Types of requirement User Requirement: Let us assume that we have a word-processing system that does not have a spell checker. In order to be able to sell the product, it is determined that it must have a spell checker. Hence the business requirement could be stated as:  user will be able to correct spelling errors in a document efficiently.  Hence, the Spell checker will be included as a feature in the product.
  • 8. Software Engineering Software Requirements S.H CSC 342 8 Types of requirement System Requirement:  After documenting the user’s perspective in the form of user requirements, the system’s perspective: what is the functionality provided by the system and how will it help the user to accomplish these tasks. Viewed from this angle, the functional requirement for the same user requirement could be written as follows:  The spell checker will find and highlight misspelled words. Right clicking a misspelled word, will then display a dialog box with suggested replacements. The user will be allowed to select from the list of suggested replacements. Upon selection it will replace the misspelled word with the selected word. It will also allow the user to make global replacements.
  • 9. Software Engineering Software Requirements S.H CSC 342 9 Definitions and specifications - On making a request for a document from LIBSYS, the requestor shall be presented with a form that records details of the user and the request made. - LIBSYS request forms shall be stored on the system for five years from the date of the request. - All LIBSYS request forms must be indexed by user, by the name of the material requested and by the supplier of the request. - LIBSYS shall maintain a log of all requests that have been made to the system. - For material where authors’lending rights apply, loan details shall be sent monthly to copyright agencies that have registered with LIBSYS Library System (LIBSYS) shall keep track of all data required by copyright licensing agencies. User requirement definition System requirements specification
  • 10. Software Engineering Software Requirements S.H CSC 342 10 Functional and non-functional requirements  Functional requirements • Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.  Non-functional requirements (Quality Requirements) • Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. Software system requirements are often classified as functional requirements, non-functional requirements:
  • 11. Software Engineering Software Requirements S.H CSC 342 11 Functional requirements  Describe functionality or system services.  Depend on the type of software, expected users of the software and the general approach taken by the organisation when writing requirements.  Functional user requirements may be high-level statements of what the system should do but functional system requirements should describe the system services in detail.
  • 12. Software Engineering Software Requirements S.H CSC 342 12 Example: The LIBSYS system  A library system that provides a single interface to a number of databases of articles in different libraries.  Users can search for, download and print these articles for personal study.  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. Functional requirements may be expressed in a number of way. Example: LIBSYS used by students and faculty to order books and documents from other libraries.
  • 13. Software Engineering Software Requirements S.H CSC 342 13 Non-functional requirements  These define system properties and constraints e.g. reliability, response time and storage requirements.  They may define constraints on the system such as the capabilities of I/O devices and the data representations used in system interfaces.  Process requirements may also be specified mandating a particular CASE system, programming language or development method.  Non-functional requirements may be more critical than functional requirements. If these are not met, the system is useless.
  • 14. Software Engineering Software Requirements S.H CSC 342 14 Non-functional classifications  Product requirements • Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc.  Organisational requirements • Requirements which are a consequence of organisational policies and procedures e.g. process standards used, implementation requirements, etc.  External requirements • Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.
  • 15. Software Engineering Software Requirements S.H CSC 342 15 User requirements  Should describe functional and non-functional requirements in such a way that they are understandable by system users who don’t have detailed technical knowledge.  User requirements are defined using natural language, tables and diagrams as these can be understood by all users.
  • 16. Software Engineering Software Requirements S.H CSC 342 16 Problems with natural language Various problems can arise when requirements are written in natural language sentences in a text document:  Lack of clarity • Precision is difficult without making the document difficult to read.  Requirements confusion • Functional and non-functional requirements tend to be mixed-up.  Requirements amalgamation • Several different requirements may be expressed together as a single requirement.
  • 17. Software Engineering Software Requirements S.H CSC 342 17 Guidelines for writing requirements To minimise misunderstandings when writing user requirements, It is recommended that you follow some simple guidelines:  Invent a standard format and use it for all requirements.  Use language in a consistent way. You should always distinguish between mandatory and desirable requirements.  Use text highlighting to identify key parts of the requirement.  Avoid the use of computer jargon.
  • 18. Software Engineering Software Requirements S.H CSC 342 18 System requirements  More detailed specifications of system functions, services and constraints than user requirements.  They are intended to be a basis for designing the system.  They add detail and explain how the user requirements should be provided by the system.  The system requirements should simply describe the external behaviour of the system and its operational constraints.  They should not be concerned with how the system should be designed or implemented.
  • 19. Software Engineering Software Requirements S.H CSC 342 19 Requirements and design  In principle, requirements should state what the system should do and the design should describe how it does this.  In practice, requirements and design are inseparable • A system architecture may be designed to structure the requirements; • In most cases, systems must interoperate with other existing systems. These constrain the design, and these constraints impose requirements on the new system;
  • 20. Software Engineering Software Requirements S.H CSC 342 20 Problems with Natural Language (NL) specification  Ambiguity • The readers and writers of the requirement must interpret the same words in the same way. NL is naturally ambiguous so this is very difficult.  Over-flexibility • The same thing may be said in a number of different ways in the specification.  Lack of modularisation • NL structures are inadequate to structure system requirements. Because of these problems, requirements specification written in natural language are prone to misunderstandings.
  • 21. Software Engineering Software Requirements S.H CSC 342 21 Alternatives to NL specification Notation Description Structured natural language This approach depends on defining standard forms or templates to express the requirements specifi cation. Design description language s This approach uses a language like a programmi ng langu age but with more abstract features to specify the requirements by defining anoperational model of the system. This approach is not now widely used although it can be useful for interface specifications. Graphical notations A graphical languag e, supp lemented by text anno tations is used to define the func tional requirements for the system. An earlyexa mple of such a graphical language was SADT. Now, use-case descriptions and sequence d iagrams are commonlyused . Mathematical specifications These are notations based on mathematicalconcep ts such as finite-state machines or sets. These una mbiguous specifications reduce the arguments between customer and contractor about system func tionalit y. Howeve r, most customers don’t unde rstand formal specifications and a re reluctant to accept it as a system contract.
  • 22. Software Engineering Software Requirements S.H CSC 342 22 Structured language specifications  The freedom of the requirements writer is limited by a predefined template for requirements.  All requirements are written in a standard way.  The terminology used in the description may be limited.  The advantage is that the most of the expressiveness of natural language is maintained but a degree of uniformity is imposed on the specification.  Structured language notations limit the terminology that can be used and use templates to specify system requirements.
  • 23. Software Engineering Software Requirements S.H CSC 342 23 Form-based specifications  Definition of the function or entity.  Description of inputs and where they come from.  Description of outputs and where they go to.  Indication of other entities required.  Pre and post conditions (if appropriate).  The side effects (if any) of the function.
  • 24. Software Engineering Software Requirements S.H CSC 342 24 Graphical models  Graphical models are most useful when you need to show how state changes or where you need to describe a sequence of actions.  Different graphical models are explained in next chapters.
  • 25. Software Engineering Software Requirements S.H CSC 342 25 The requirements document  The requirements document is the official statement of what is required of the system developers (SRS).  Should include both a definition of user requirements and a specification of the system requirements.  It is NOT a design document. As far as possible, it should set of WHAT the system should do rather than HOW it should do it
  • 26. Software Engineering Software Requirements S.H CSC 342 26 Key points  Requirements set out what the system should do and define constraints on its operation and implementation.  Functional requirements set out services the system should provide.  Non-functional requirements constrain the system being developed or the development process.  User requirements are high-level statements of what the system should do. User requirements should be written using natural language, tables and diagrams.
  • 27. Software Engineering Software Requirements S.H CSC 342 27 Key points  System requirements are intended to communicate the functions that the system should provide.  A software requirements document is an agreed statement of the system requirements.  The IEEE standard is a useful starting point for defining more detailed specific requirements standards.