Saturday, 6 January 2018

SRE Lec # 13 - Non-Functional Requirements

>>>> Download Link Here <<<<<



In this slide
_______________________________________________________

SRE – 
 
Non-Functional Requirements
BSEF15 (V)
Abdul Razaq Ali
Objectives
● To introduce non-functional requirements
● To explain the schemes used to classify non-functional requirements
● To illustrate various derivation techniques for non-functional requirements
● To demonstrate the importance of non-functional requirements in critical systems
Non-Functional Requirements (NFRs)
Non-functional requirements:
● Define the overall qualities or attributes of the resulting system
● Place restrictions on the product being developed & its development process
● Specify external constraints that the product must meet.
Types of NFRs
The ‘IEEE-Std 830 - 1993’ lists 13, non-functional requirements to be included in a Software Requirements Document.
● Performance requirements
● Interface requirements
● Verification requirements
● Documentation requirements
● Security requirements
● Quality requirements
● Reliability requirements
● Maintainability requirements
Classification of NFRs
● NFRs may be classified n terms of qualities that a software must exhibit (Boehm)
● A more general classification distinguishes between product, process and external requirements
Product Requirements
● Specify the desired characteristics that a system or subsystem must possess.
● Most NFRs are concerned with specifying constraints on the behaviour of the executing system.
● The System service X shall have an availability of 999/1000 or 99%. This is a reliability requirement which means that out of every 1000 requests for this service, 999 must be satisfied.
● System Y shall process a minimum of 8 transactions per second. This is a performance requirement.
● The executable code of System Z shall be limited to 512Kbytes. This is a space requirement which specifies the maximum memory size of the system.
Source-code requirements
There are product requirements which relate to the source code of the system
Examples:
The system shall be developed for PC and Macintosh platforms. This is a portability requirement which affects the way in which the system may be designed
The system must encrypt all external communications using the RSA algorithm. This is a security requirement which specifies that a specific algorithm must be used in the product
Process Requirements
Process requirements are constraints placed upon the development process of the system
Process requirements include:
● Requirements on development standards and methods which must be followed
● CASE tools which should be used
● The management reports which must be provided
● Examples:
The development process to be used must be explicitly defined and must be conformance with ISO 9000 standards
● The system must be developed using the XYZ suite of CASE tools
Management reports setting out the effort expanded on each identified system component must be produced every two weeks
● A disaster recovery plan for the system development must be specified
External Requirements
● May be placed on both the product and the process
● Derived from the environment in which the system is developed
● External requirements are based on:
● Application domain information
● Organisational considerations
● The need for the system to work with other systems
● Health and safety or data protection regulations
● OR even basic natural laws such as the laws of physics
Relationship between User needs, concerns and NFRs
Goal-based Derivation
● Relates non-functional requirements to the goals of the enterprise
● Goal converted into a NFR:
● Goal (unverifiable)
● The system should be easy to use by experienced controllers and should be organized in such a way that user errors are minimized
● Non-functional requirement (verifiable)
● 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
Testable NFRs
● Stakeholders may have vague goals which cannot be expressed precisely
● Vague and imprecise ‘requirements’ are problematic
● NFRs should satisfy two attributes for being Testable:
● Make it objective
● Use measurable metrics
Objective NFR is based on facts, can be measured and can be verified.
Subjective NFR is based on personal choices and desires
** It is not always possible to express NFRs objectively
Examples of measurable metrics for NFRs
Reliability
● Describe the run-time behaviour of the system
● Can be considered under two separate headings:
● Availability - is the system available for service when requested by end-users.
● Failure rate - how often does the system fail to deliver the service expected by end-users.
Performance
● Describe the speed of operation of a system
● Types of performance requirements:
● Response requirements
Security
● Security requirements are included in a system to ensure:
● Unauthorised access to the system and its data is not allowed
● Ensure the integrity of the system from accidental or malicious damage
● Examples of security requirements are:
● The access permissions for system data may only be changed by the system’s data administrator
● All system data must be backed up every 24 hours and the backup copies stored in a secure location which is not in the same building as the system
● All external communications between the system’s data server and clients must be encrypted
Usability
Concerned with specifying the user interface and end-user interactions with the system.
Well structured user manuals, informative error messages, help facilities and consistent interfaces enhance usability
Questions ?

No comments :

Post a Comment