Software Requirements-Software Engineering-Lecture Slides, Slides of Software Engineering

This lecture is part of lecture series for Software Engineering course. Prof. Prateek Aron delivered this lecture at Allahabad University. Its main points are: Software, Requirements, Development, Specifying, Designing, Implementing, Testing, Services, Constraints

Typology: Slides

2011/2012

Uploaded on 07/16/2012

sanaka
sanaka 🇮🇳

4.6

(21)

71 documents

1 / 28

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Software Requirements
Descriptions and specifications of a system
Objectives:
To introduce the concepts of user and system requirements
To describe functional / non-functional requirements
To explain two techniques for describing system requirements
To explain how software requirements may be organised in a
requirements document
1 COMP201 - Software Engineering
docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Partial preview of the text

Download Software Requirements-Software Engineering-Lecture Slides and more Slides Software Engineering in PDF only on Docsity!

Software Requirements

Descriptions and specifications of a system

Objectives:

 To introduce the concepts of user and system requirements  To describe functional / non-functional requirements  To explain two techniques for describing system requirements  To explain how software requirements may be organised in a requirements document

Topics Covered

 Functional and non-functional requirements

 User requirements

 System requirements

 The software requirements document

Requirements Engineering

Requirements engineering is the process of establishing

 the services that the customer requires from a system

 the constraints under which it operates and is developed

Requirements

The descriptions of the system services and constraints that are generated during the requirements engineering process

Why do we need Requirements?

 To ensure a software solution correctly solves a particular problem, we must initially fully understand the problem that needs to be solved, discover why the problem needs to be solved and determine who should be involved.  Poorly defined requirements can cause major problems to a project in both financial terms as well as added time.  There are specific techniques we may use in the requirements engineering phase which we shall be considering during the next four lectures.

Types of Requirement

User requirements  Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customersSystem requirements  A structured document setting out detailed descriptions of the system services. Written as a contract between client and contractorSoftware specification  A detailed software description which can serve as a basis for a design or implementation. Written for developers

Requirements Readers

Client managers System end-users Client engineers Contractor managers System architects System end-users Client engineers System architects Software developers Client engineers (perhaps) System architects Software developers User requirements System requirements Software design specification

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 system should do BUT functional system requirements should describe the system services in detail

Examples of Functional Requirements

 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.

Requirements Completeness and Consistency

 In principle requirements should be both complete and

consistent:

Complete  They should include descriptions of all facilities required Consistent  There should be no conflicts or contradictions in the descriptions of the system facilities

 In practice, it is very difficult or impossible to produce a

complete and consistent requirements document

Non-Functional Requirements

Define system properties and constraints e.g. reliability, response time and storage requirements. Constraints are I/O device capability, system representations, etc. They are often emergent properties of the system.  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

Non-Functional Requirement Types

Performance requirements Space requir ements Usability requirements Ef ficiency requir ements Reliability requir ements Portability requirements Interoperability requirements Ethical requirements Legislative requirements Implementation requir ements Standards requirements Delivery requirements Safety requirements Privacy requirements Product requir ements Or ganizational requir ements External requirements Non-functional requir ements

Non-Functional Requirements Examples

 Product requirement  4.C.8 It shall be possible for all necessary communication between the APSE and the user to be expressed in the standard Ada character set  Organisational requirement  9.3.2 The system development process and deliverable documents shall conform to the process and deliverables defined in XYZCo-SP-STAN- 95  External requirement  7.6.5 The system shall not disclose any personal information about customers apart from their name and reference number to the operators of the system  Performance requirement  The system should respond to a user’s request for information in less than 3 seconds during “peak-time” and 3 seconds during “normal time”.

Examples

 An example system goal

 The system should be easy to use by experienced

controllers and should be organised in such a way that

user errors are minimised.

 An example verifiable non-functional requirement

 Experienced controllers shall be able to use all the

system functions after a total of two hours training. After

this training, the average number of errors made by

experienced users shall not exceed two per day.

Requirements Measures

Property Measure Speed Processed transactions/second User/Event response time Screen refresh time Size K Bytes 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 Time to restart after failure Percentage of events causing failure Probability of data corruption on failure Portability Percentage of target dependent statements Number of target systems