SlideShare a Scribd company logo
1 of 9
Download to read offline
CS2 Software Engineering note 2                                     CS2Ah Autumn 2003


                           Software Requirements1
Requirements are descriptions of the services that a software system must pro-
vide and the constraints under which it must operate
Requirements can range from high-level abstract statements of services or sys-
tem 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 pre-
defined. The requirements must be written so that several contractors can bid
for the contract, offering, perhaps, different ways of meeting the client organi-
sation’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 requirements document for the system.”
[A.M. Davis “Software Requirements: Objects, Functions and States”, Englewood
Cliffs, 1993]



2.1 Types of Requirement

User requirements

       




          Statements in natural language plus diagrams of the services that the sys-
          tems provides and its operational contraints.
       




          Written for customers

System requirements

       




          A structured document setting out detailed descriptions of the system ser-
          vices.
  1
    These notes are based on those provided by Ian Sommerville on his “Software Engineering”
text website

                                                 1
CS2 Software Engineering note 2                              CS2Ah Autumn 2003

    




       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 require-
    ments

Functional requirements

    




       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 requirements

    




       Constraints on the services or functions offered by the system such as tim-
       ing constraints, constraints on the development process, standards, etc.

                                         2
CS2 Software Engineering note 2                                CS2Ah Autumn 2003


Domain requirements

    




       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 requirements
    




       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 requirements may be high-level statements of what the sys-
       tem should do; functional system requirements 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 requirements
    




       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 sys-
           tem and its development process, e.g. interoperability requirements,
           legislative requirements etc.

                                          3
CS2 Software Engineering note 2                                                  CS2Ah Autumn 2003


                                      Non−functional
                                       requirements




          Product                     Organistational                    External
       requirements                    requirements                    requirements



                       Portability                        Delivery                        Ethical
                      requirements                      requirements                   requirements



                        Reliability                 Implementation                    Interoperability
                      requirements                   requirements                      requirements



                        Usability                        Standards                      Legislative
                      requirements                      requirements                   requirements



                       Efficiency                                                         Safety
                      requirements                                                     requirements



                         Space                                                            Privacy
                      requirements                                                     requirements



                      Performance
                      requirements


                           Figure 2.1: Non-functional Requirements


Metrics for non-functional requirements
See figure 2.2.


2.2.3 Domain requirements
    




       Describe system characteristics and features that reflect the domain
    




       May be new functional requirements, constraints on existing requirements
       or may define specific computations
    




       If domain requirements are not satisfied, the system may be unworkble


Example: Library system

                                                        4
CS2 Software Engineering note 2                                    CS2Ah Autumn 2003


                      Property    Measure
                      Speed       Processed transactions/s
                                  User/Event response time
                                  Screen refresh time
                      Size        Kbytes
                                  Number of RAM chips
                      Ease of Use Training time
                                  Number of help frames
                      Reliability Mean time to failure
                                  Probability of unavailability
                                  Rate of failure occurrence
                                  Availability
                      Robustness % events causing failure
                                  Time to restart after failure
                                  Probability of data corruption
                                  on failure
                      Portability % target system dependent
                                  statements
                                  Number of target systems

                Figure 2.2: Metrics for non-functional requirements


    




       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
             21¤(¦0¦¨¢ 
             ¡© §¥£% is 9.81 ms * compensated gradient/alpha and where the
                                  3
       values of 9.81 ms /alpha are known for different types of train
                          3

Domain requirement issues

Understandability

    




       Requirements are expresed in the language of the application domain

         – this is often not understood by software engineers developing the sys-
           tem

Implicitness

                                             5
CS2 Software Engineering note 2                              CS2Ah Autumn 2003

    




       Domain specialists understand the area so well that they do not think of
       making the domain requirements explicit



2.3 User requirements
    




       Should describe functional and non-functional requirements so that they
       are understandable by system users who don’t have detailed technical knowl-
       edge
    




       User requirements 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 requirements may be expressed together; functional
           and non-functional requirements may be mixed together
    




       Lack of modularisation

         – NL structures are inadequate to structure system requirements


Example
The requirements 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
CS2 Software Engineering note 2                               CS2Ah Autumn 2003


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 require-
ment, 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 require-
           ments 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 requirements (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
CS2 Software Engineering note 2                                 CS2Ah Autumn 2003


2.4 The Requirements Document
    




       Official statement of what is required of the system developers

    




       Should include both a definition and a specification of requirements

    




       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 requirements definition

    




       System architecture

    




       System requirements specification

    




       System models

    




       System evolution

    




       Appendices

    




       Index

                                          8
CS2 Software Engineering note 2                             CS2Ah Autumn 2003


2.4.2 Requirements document users

System customers
Specify the requirements and read them back to check that they meet their
needs; specify changes to the requirements
Development Managers
Use the requirements document to plan a bid for the system and to plan the
system development process
Implementation Programmers
Use the requirements to understand what system is to be developed
Test programmers
Use the requirements to develop validation tests for the system
Maintenance programmers
Use the requirements to help understand the system and the relationships be-
tween its parts



2.5 Summary
    




       Requirements set out what the system should do and define constraints on
       its operation and implementaion
    




       Functional requirements set out services that 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
    




       System requirements are intended to communicate the functions that the
       system should provide
    




       System requirements may be written in structured natural language, a PDL
       or in a formal language
    




       A software requirements document is an agreed statement of the system
       requirements




                                        9

More Related Content

What's hot

Ch19-Software Engineering 9
Ch19-Software Engineering 9Ch19-Software Engineering 9
Ch19-Software Engineering 9Ian Sommerville
 
Got Personally-Owned Devices? Manage Them with System Center
Got Personally-Owned Devices? Manage Them with System CenterGot Personally-Owned Devices? Manage Them with System Center
Got Personally-Owned Devices? Manage Them with System CenterC/D/H Technology Consultants
 
Water management portal
Water management portalWater management portal
Water management portalPradeep Kiran
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9Ian Sommerville
 
Soa test methodology
Soa test methodologySoa test methodology
Soa test methodologyInfosys
 
Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributesFrank Gielen
 
SOFTWRE REQUIREMNETS SE
 SOFTWRE REQUIREMNETS SE SOFTWRE REQUIREMNETS SE
SOFTWRE REQUIREMNETS SEAbrar ali
 
Validation Item – Stating Requirements at the Adequate Level of Detail
Validation Item – Stating Requirements at the Adequate Level of DetailValidation Item – Stating Requirements at the Adequate Level of Detail
Validation Item – Stating Requirements at the Adequate Level of DetailEdwagney Luz
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareengPINKU29
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiabilityFrank Gielen
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
Flevy.com - Feasibility Study Template for Electronic Software Distribution
Flevy.com - Feasibility Study Template for Electronic Software DistributionFlevy.com - Feasibility Study Template for Electronic Software Distribution
Flevy.com - Feasibility Study Template for Electronic Software DistributionDavid Tracy
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4Mohammed Romi
 

What's hot (16)

Ch19-Software Engineering 9
Ch19-Software Engineering 9Ch19-Software Engineering 9
Ch19-Software Engineering 9
 
Got Personally-Owned Devices? Manage Them with System Center
Got Personally-Owned Devices? Manage Them with System CenterGot Personally-Owned Devices? Manage Them with System Center
Got Personally-Owned Devices? Manage Them with System Center
 
1
11
1
 
Water management portal
Water management portalWater management portal
Water management portal
 
www.ijerd.com
www.ijerd.comwww.ijerd.com
www.ijerd.com
 
Ch2-Software Engineering 9
Ch2-Software Engineering 9Ch2-Software Engineering 9
Ch2-Software Engineering 9
 
Soa test methodology
Soa test methodologySoa test methodology
Soa test methodology
 
Sa 004 quality_attributes
Sa 004 quality_attributesSa 004 quality_attributes
Sa 004 quality_attributes
 
SOFTWRE REQUIREMNETS SE
 SOFTWRE REQUIREMNETS SE SOFTWRE REQUIREMNETS SE
SOFTWRE REQUIREMNETS SE
 
If2036 sw requirement
If2036 sw requirementIf2036 sw requirement
If2036 sw requirement
 
Validation Item – Stating Requirements at the Adequate Level of Detail
Validation Item – Stating Requirements at the Adequate Level of DetailValidation Item – Stating Requirements at the Adequate Level of Detail
Validation Item – Stating Requirements at the Adequate Level of Detail
 
Intro softwareeng
Intro softwareengIntro softwareeng
Intro softwareeng
 
Sa 006 modifiability
Sa 006 modifiabilitySa 006 modifiability
Sa 006 modifiability
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
Flevy.com - Feasibility Study Template for Electronic Software Distribution
Flevy.com - Feasibility Study Template for Electronic Software DistributionFlevy.com - Feasibility Study Template for Electronic Software Distribution
Flevy.com - Feasibility Study Template for Electronic Software Distribution
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4
 

Viewers also liked

Math solvers week 1
Math solvers week 1Math solvers week 1
Math solvers week 1sinclair4
 
De vry math 221 all ilabs latest 2016 november
De vry math 221 all ilabs latest 2016 novemberDe vry math 221 all ilabs latest 2016 november
De vry math 221 all ilabs latest 2016 novemberlenasour
 
OXUS20 JAVA Programming Questions and Answers PART I
OXUS20 JAVA Programming Questions and Answers PART IOXUS20 JAVA Programming Questions and Answers PART I
OXUS20 JAVA Programming Questions and Answers PART IAbdul Rahman Sherzad
 
Logic Model and Education
Logic Model and EducationLogic Model and Education
Logic Model and Educationdledingham
 
Hsv 405 midterm exam answers
Hsv 405 midterm exam answersHsv 405 midterm exam answers
Hsv 405 midterm exam answersDennisHine
 
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSoftware Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSvetlin Nakov
 
Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Ahmed Alageed
 
S S Structured Essay Booklet
S S  Structured  Essay BookletS S  Structured  Essay Booklet
S S Structured Essay Bookletvikhist
 
Introduction to computer hardware
Introduction to computer hardwareIntroduction to computer hardware
Introduction to computer hardwareMirea Mizushima
 
Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Neelamani Samal
 
Logical reasoning questions and answers
Logical reasoning questions and answersLogical reasoning questions and answers
Logical reasoning questions and answersMydear student
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and AnswersBala Ganesh
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...op205
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semesterrajesh199155
 

Viewers also liked (14)

Math solvers week 1
Math solvers week 1Math solvers week 1
Math solvers week 1
 
De vry math 221 all ilabs latest 2016 november
De vry math 221 all ilabs latest 2016 novemberDe vry math 221 all ilabs latest 2016 november
De vry math 221 all ilabs latest 2016 november
 
OXUS20 JAVA Programming Questions and Answers PART I
OXUS20 JAVA Programming Questions and Answers PART IOXUS20 JAVA Programming Questions and Answers PART I
OXUS20 JAVA Programming Questions and Answers PART I
 
Logic Model and Education
Logic Model and EducationLogic Model and Education
Logic Model and Education
 
Hsv 405 midterm exam answers
Hsv 405 midterm exam answersHsv 405 midterm exam answers
Hsv 405 midterm exam answers
 
Software Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin NakovSoftware Engineering Fundamentals - Svetlin Nakov
Software Engineering Fundamentals - Svetlin Nakov
 
Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3Requirement Engineering Lec.1 & 2 & 3
Requirement Engineering Lec.1 & 2 & 3
 
S S Structured Essay Booklet
S S  Structured  Essay BookletS S  Structured  Essay Booklet
S S Structured Essay Booklet
 
Introduction to computer hardware
Introduction to computer hardwareIntroduction to computer hardware
Introduction to computer hardware
 
Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012Software Engineering Sample Question paper for 2012
Software Engineering Sample Question paper for 2012
 
Logical reasoning questions and answers
Logical reasoning questions and answersLogical reasoning questions and answers
Logical reasoning questions and answers
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
 
software engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semestersoftware engineering notes for cse/it fifth semester
software engineering notes for cse/it fifth semester
 

Similar to Cs2 ah0405 softwarerequirements

Cs2 ah0405 softwarerequirements
Cs2 ah0405 softwarerequirementsCs2 ah0405 softwarerequirements
Cs2 ah0405 softwarerequirementsMISHAQ6
 
Software Requirements
Software RequirementsSoftware Requirements
Software RequirementsBala Ganesh
 
Lecture-5-Requirements Analysis and Specification.pptx
Lecture-5-Requirements Analysis and Specification.pptxLecture-5-Requirements Analysis and Specification.pptx
Lecture-5-Requirements Analysis and Specification.pptxYaseenNazir3
 
Software Requrement
Software RequrementSoftware Requrement
Software RequrementSeif Shaame
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineeringJennifer Polack
 
Software engineering lecture 1
Software engineering  lecture 1Software engineering  lecture 1
Software engineering lecture 1JusperKato
 
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdfJayanthi Kannan MK
 
SE - Software Requirements
SE - Software RequirementsSE - Software Requirements
SE - Software RequirementsJomel Penalba
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5koolkampus
 
CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2SIMONTHOMAS S
 
Software requirement specification
Software requirement specificationSoftware requirement specification
Software requirement specificationshiprashakya2
 
Sw Requirements Engineering
Sw Requirements EngineeringSw Requirements Engineering
Sw Requirements Engineeringjonathan077070
 
Ch 1-Introduction.ppt
Ch 1-Introduction.pptCh 1-Introduction.ppt
Ch 1-Introduction.pptbalewayalew
 
W4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gatheringW4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gatheringFareeha Iftikhar
 
1 Software Requirements Descriptions and specification.docx
1 Software Requirements Descriptions and specification.docx1 Software Requirements Descriptions and specification.docx
1 Software Requirements Descriptions and specification.docxjeremylockett77
 
Business requirement analysis session 5
Business requirement analysis   session 5Business requirement analysis   session 5
Business requirement analysis session 5sampad_senapati
 
Se lect9 btech
Se lect9 btechSe lect9 btech
Se lect9 btechIIITA
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGRaj Kumar
 
Railway Reservation System - Software Engineering
Railway Reservation System - Software EngineeringRailway Reservation System - Software Engineering
Railway Reservation System - Software EngineeringLalit Pal
 

Similar to Cs2 ah0405 softwarerequirements (20)

Cs2 ah0405 softwarerequirements
Cs2 ah0405 softwarerequirementsCs2 ah0405 softwarerequirements
Cs2 ah0405 softwarerequirements
 
Software Requirements
Software RequirementsSoftware Requirements
Software Requirements
 
Lecture-5-Requirements Analysis and Specification.pptx
Lecture-5-Requirements Analysis and Specification.pptxLecture-5-Requirements Analysis and Specification.pptx
Lecture-5-Requirements Analysis and Specification.pptx
 
Software Requrement
Software RequrementSoftware Requrement
Software Requrement
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
Software engineering lecture 1
Software engineering  lecture 1Software engineering  lecture 1
Software engineering lecture 1
 
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf2nd MODULE  Software Requirements   _ SW ENGG  22CSE141.pdf
2nd MODULE Software Requirements _ SW ENGG 22CSE141.pdf
 
SE - Software Requirements
SE - Software RequirementsSE - Software Requirements
SE - Software Requirements
 
Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5Software Requirements in Software Engineering SE5
Software Requirements in Software Engineering SE5
 
SE UNIT 2.pdf
SE UNIT 2.pdfSE UNIT 2.pdf
SE UNIT 2.pdf
 
CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2
 
Software requirement specification
Software requirement specificationSoftware requirement specification
Software requirement specification
 
Sw Requirements Engineering
Sw Requirements EngineeringSw Requirements Engineering
Sw Requirements Engineering
 
Ch 1-Introduction.ppt
Ch 1-Introduction.pptCh 1-Introduction.ppt
Ch 1-Introduction.ppt
 
W4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gatheringW4 lecture 7&8 - requirements gathering
W4 lecture 7&8 - requirements gathering
 
1 Software Requirements Descriptions and specification.docx
1 Software Requirements Descriptions and specification.docx1 Software Requirements Descriptions and specification.docx
1 Software Requirements Descriptions and specification.docx
 
Business requirement analysis session 5
Business requirement analysis   session 5Business requirement analysis   session 5
Business requirement analysis session 5
 
Se lect9 btech
Se lect9 btechSe lect9 btech
Se lect9 btech
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Railway Reservation System - Software Engineering
Railway Reservation System - Software EngineeringRailway Reservation System - Software Engineering
Railway Reservation System - Software Engineering
 

Cs2 ah0405 softwarerequirements

  • 1. CS2 Software Engineering note 2 CS2Ah Autumn 2003 Software Requirements1 Requirements are descriptions of the services that a software system must pro- vide and the constraints under which it must operate Requirements can range from high-level abstract statements of services or sys- tem 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 pre- defined. The requirements must be written so that several contractors can bid for the contract, offering, perhaps, different ways of meeting the client organi- sation’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 requirements document for the system.” [A.M. Davis “Software Requirements: Objects, Functions and States”, Englewood Cliffs, 1993] 2.1 Types of Requirement User requirements   Statements in natural language plus diagrams of the services that the sys- tems provides and its operational contraints.   Written for customers System requirements   A structured document setting out detailed descriptions of the system ser- vices. 1 These notes are based on those provided by Ian Sommerville on his “Software Engineering” text website 1
  • 2. CS2 Software Engineering note 2 CS2Ah Autumn 2003   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 require- ments Functional requirements   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 requirements   Constraints on the services or functions offered by the system such as tim- ing constraints, constraints on the development process, standards, etc. 2
  • 3. CS2 Software Engineering note 2 CS2Ah Autumn 2003 Domain requirements   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 requirements   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 requirements may be high-level statements of what the sys- tem should do; functional system requirements 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 requirements   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 sys- tem and its development process, e.g. interoperability requirements, legislative requirements etc. 3
  • 4. CS2 Software Engineering note 2 CS2Ah Autumn 2003 Non−functional requirements Product Organistational External requirements requirements requirements Portability Delivery Ethical requirements requirements requirements Reliability Implementation Interoperability requirements requirements requirements Usability Standards Legislative requirements requirements requirements Efficiency Safety requirements requirements Space Privacy requirements requirements Performance requirements Figure 2.1: Non-functional Requirements Metrics for non-functional requirements See figure 2.2. 2.2.3 Domain requirements   Describe system characteristics and features that reflect the domain   May be new functional requirements, constraints on existing requirements or may define specific computations   If domain requirements are not satisfied, the system may be unworkble Example: Library system 4
  • 5. CS2 Software Engineering note 2 CS2Ah Autumn 2003 Property Measure Speed Processed transactions/s User/Event response time Screen refresh time Size Kbytes Number of RAM chips Ease of Use Training time Number of help frames Reliability Mean time to failure Probability of unavailability Rate of failure occurrence Availability Robustness % events causing failure Time to restart after failure Probability of data corruption on failure Portability % target system dependent statements Number of target systems Figure 2.2: Metrics for non-functional requirements   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 21¤(¦0¦¨¢  ¡© §¥£% is 9.81 ms * compensated gradient/alpha and where the 3 values of 9.81 ms /alpha are known for different types of train 3 Domain requirement issues Understandability   Requirements are expresed in the language of the application domain – this is often not understood by software engineers developing the sys- tem Implicitness 5
  • 6. CS2 Software Engineering note 2 CS2Ah Autumn 2003   Domain specialists understand the area so well that they do not think of making the domain requirements explicit 2.3 User requirements   Should describe functional and non-functional requirements so that they are understandable by system users who don’t have detailed technical knowl- edge   User requirements 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 requirements may be expressed together; functional and non-functional requirements may be mixed together   Lack of modularisation – NL structures are inadequate to structure system requirements Example The requirements 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
  • 7. CS2 Software Engineering note 2 CS2Ah Autumn 2003 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 require- ment, 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 require- ments 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 requirements (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
  • 8. CS2 Software Engineering note 2 CS2Ah Autumn 2003 2.4 The Requirements Document   Official statement of what is required of the system developers   Should include both a definition and a specification of requirements   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 requirements definition   System architecture   System requirements specification   System models   System evolution   Appendices   Index 8
  • 9. CS2 Software Engineering note 2 CS2Ah Autumn 2003 2.4.2 Requirements document users System customers Specify the requirements and read them back to check that they meet their needs; specify changes to the requirements Development Managers Use the requirements document to plan a bid for the system and to plan the system development process Implementation Programmers Use the requirements to understand what system is to be developed Test programmers Use the requirements to develop validation tests for the system Maintenance programmers Use the requirements to help understand the system and the relationships be- tween its parts 2.5 Summary   Requirements set out what the system should do and define constraints on its operation and implementaion   Functional requirements set out services that 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   System requirements are intended to communicate the functions that the system should provide   System requirements may be written in structured natural language, a PDL or in a formal language   A software requirements document is an agreed statement of the system requirements 9