1 software requirements engineering-01
TRANSCRIPT
![Page 1: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/1.jpg)
1
Software Requirements Engineering(CSE 708)
Dr. Muhammad Wasif Nisar
![Page 2: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/2.jpg)
2
Introduction
• Requirements form the basis for all software products
• Requirements engineering is the process, which enables us to systematically determine the requirements for a software product
![Page 3: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/3.jpg)
3
Software Requirements
Lecture # 1
![Page 4: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/4.jpg)
4
Requirement
• Something required, something wanted or needed– Webster’s dictionary
• There is a huge difference between wanted and needed and it should be kept in mind all the time
![Page 5: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/5.jpg)
5
Software Requirements - 1
• A complete description of what the software system will do without describing how it will do it is represented by the software requirements
![Page 6: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/6.jpg)
6
Software Requirements - 2
• Software requirements are complete specification of the desired external behavior of the software system to be built
• They also represent External behavior of the system
![Page 7: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/7.jpg)
7
Software Requirements - 3
• Software requirements may be:– Abstract statements of services and/or constraints– Detailed mathematical functions
![Page 8: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/8.jpg)
8
Software Requirements - 4
• Software requirements may be:– Part of the bid of contract– The contract itself– Part of the technical document, which describes a
product
![Page 9: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/9.jpg)
9
IEEE Definition
• A condition or capability that must be met or possessed by a system...to satisfy a contract, standard, specification, or other formally imposed document– IEEE Std 729
![Page 10: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/10.jpg)
10
Sources of Requirements
• Stakeholders– People affected in some way by the system
• Documents• Existing system• Domain/business area
![Page 11: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/11.jpg)
11
Levels of Software Requirements
• Stakeholders describe requirements at different levels of detail– “What versus How”– “One person’s floor is another person’s ceiling”
![Page 12: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/12.jpg)
12
What Versus HowUser needs
Product space
Actual product’s behavior
Architecture/data flow
Module specifications
Algorithms
Code
WhatHow
WhatHow
WhatHow
WhatHow
WhatHow
WhatHow
![Page 13: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/13.jpg)
13
Importance of Software Requirements
• The hardest single part of building a software system is deciding what to build...No other part of the work so cripples the resulting system if done wrong. No other part is difficult to rectify later– Fred Brooks
![Page 14: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/14.jpg)
14
Examples of Requirements - 1
• The system shall maintain records of all payments made to employees on accounts of salaries, bonuses, travel/daily allowances, medical allowances, etc.
![Page 15: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/15.jpg)
15
Examples of Requirements - 2
• The system shall interface with the central computer to send daily sales and inventory data from every retail store
![Page 16: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/16.jpg)
16
Examples of Requirements - 3
• The system shall maintain records of all library materials including books, serials, newspapers and magazines, video and audio tapes, reports, collections of transparencies, CD-ROMs, DVDs, etc.
![Page 17: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/17.jpg)
17
Examples of Requirements - 4
• The system shall allow users to search for an item by title, author, or by International Standard Book Number
• The system’s user interface shall be implemented using a web browser
![Page 18: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/18.jpg)
18
Examples of Requirements - 5
• The system shall support at least twenty transactions per second
• The system facilities which are available to public users shall be demonstrable in ten minutes or less
![Page 19: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/19.jpg)
19
Kinds of Software Requirements
![Page 20: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/20.jpg)
20
Kinds of Software Requirements
• Functional requirements• Non-functional requirements• Domain requirements• Inverse requirements• Design and implementation constraints
![Page 21: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/21.jpg)
21
Functional Requirements
![Page 22: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/22.jpg)
22
Functional Requirements - 1
• Statements describing what the system does
• Functionality of the system
![Page 23: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/23.jpg)
23
Functional Requirements - 2
• Statements of services the system should provide– Reaction to particular inputs– Behavior in particular situations
![Page 24: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/24.jpg)
24
Functional Requirements - 3
• Sequencing and parallelism are also captured by functional requirements
• Abnormal behavior is also documented as functional requirements in the form of exception handling
![Page 25: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/25.jpg)
25
Functional Requirements - 4
• Functional requirements should be complete and consistent
• Customers and developers usually focus all their attention on functional requirements
![Page 26: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/26.jpg)
26
Functional Requirements Example # 1
• The system shall solve a quadratic equation using the following formula
x = (-b+sqrt(b2 – 4*a*c))/2*a
![Page 27: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/27.jpg)
27
Functional Requirements Example # 2
• The user shall be able to search either the entire database of patients or select a subset from it (admitted patients, or patients with asthma, etc.)
![Page 28: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/28.jpg)
28
Functional Requirements Example # 3
• The system shall provide appropriate viewers for the user to read documents in the document store
![Page 29: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/29.jpg)
29
Functional Requirements Example # 4
• Every order shall be allocated a unique identifier (ORDER_ID) which the user shall use to access that order
![Page 30: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/30.jpg)
30
Functional Requirements Example # 5
• The system shall allow customers to return non-perishable items within fifteen days of the purchase. A customer must present the original sale receipt to return an item
![Page 31: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/31.jpg)
31
Comments on Examples
• Notice the level of detail in different requirements described above. Some are very detailed compared to others
![Page 32: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/32.jpg)
32
Comments on Examples
• Notice the ambiguity in the requirement, which uses the term ‘appropriate viewers’
• This requirement does not mention the formats of documents and types of viewers, which can be used
![Page 33: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/33.jpg)
33
Comments on Examples
• Notice the ambiguity in the requirement for solving the quadratic equation. The requirement does not speak about the possibility when the value of ‘a’ is zero
x = (-b+sqrt(b2 – 4*a*c))/2*a
![Page 34: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/34.jpg)
34
Comments on Examples
• Incomplete and ambiguous requirements are open to multiple interpretations and assumptions
• This can lead to the development of poor quality, or faulty, software products
![Page 35: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/35.jpg)
35
Summary
• Requirements form the basis of all software engineering projects
• Functional requirements capture the behavioral aspects/functions of the proposed automated system
• Functional requirements are the backbone of all software products
![Page 36: 1 software requirements engineering-01](https://reader030.vdocument.in/reader030/viewer/2022032505/55c6005abb61eb41568b4746/html5/thumbnails/36.jpg)
36
References
• ‘Requirements Engineering: Processes and Techniques’ by G. Kotonya and I. Sommerville, John Wiley & Sons, 1998
• Software Requirements: Objects, Functions, and States by A. Davis, PH, 1993
• Software Engineering 6th Edition, by I. Sommerville, 2000
• Software Engineering 5th Edition, by R. Pressman