NonFunctional Requirement Analysis
“The Nonfunctional requirement is a specification describing how well a software system must function”
It essentially specifies how the system should behave. Nonfunctional requirements are constraints upon the system behavior. It can also be said as a “Quality Attributes” for a system.
They are not directly concerned with any specific function of system, but works as a deciding factor of the survival of the system.
Ø Quality factors of any system can be categorized in two categories:-
Execution Qualities:- These can be observed at run time (as-security and usability).
Evolution Qualities:- These qualities embodied in the static structure of the software system (as- testability, maintainability, extensibility and scalability).
Ø Nonfunctional Requirements can be classified into three classes:-
- Product Requirements : – Efficiency, Reliability, Portability, Usability, Performance, Space
- Organizational Requirement: –Delivery, Implementation, Standards
- External Requirements: –Interoperability, Ethics, Legislative, Privacy, Safety
Availability:- It denotes the amount of time that is operational and available for use as system also needs time for activities like database upgrades and backups.
Efficiency:- It specifies how well system utilizes the resources and how well system responds (as- CPU, Disk space, Bandwidth, Memory)
Flexibility:- If organization intends to increase or extend the functionality of the software after it is deployed, that should be planned from beginning, it influences choices made during the design, development, testing and development of the system.
Portability: – It specifies the ease with which the software can be installed on all necessary platforms and the platforms at which it is expected to run.
Integrity:- It ensures the privacy of the data entered onto the software.
Reliability: – Reliability ensures that software should work for a long period of time. It should not fail because of restarting or due to not run at a certain time etc.
Reusability: – It denotes that how easy the software is to convert for use in another system.
Robustness: – The Robust system is able to handle error condition gracefully without failure, this includes a tolerance of invalid data, software defects and unexpected operating conditions.
Scalability: – It shows that how easy to expand or upgrade the software if there is any configuration changes.
Access security:- It guards against unauthorized access.
Usability: – Its simply means ease- to-use. How easy to learn and operate the system.
Maintainability: – It denotes how easy to upkeep & repair the software.
Verifiability: – It shows how easy it is in performing its functions.
Interoperability: – It shows how comfortable software is in interface with another system.
Each of the above Nonfunctional requirements has 6 subcategories with its elicitation questions-
If NFRs are not properly addressed, undesirable results may occur such as-
o Unsatisfied users, developers and clients
o Schedule & Budget overruns
Functional Requirement- The devise shall reduce background noise by 24 decibels
Nonfunctional Requirements (Constraints on Functional Req.)-
- Devise battery shall last 12 hrs of continuous use
- Devise shall be powered by ordinary available AAA batteries
- Devise shall weigh less than 10 oz/284 gms
Nonfunctional Requirement Analysis:
Purpose: -Purpose of NFRs analysis is to describe the required qualities of the system such as its usability & performance characteristics. These NFRs supplement the documentation of functional requirements which describes the behavior of the system.
Description: – There are many methods for Nonfunctional requirement analysis and they have its own strengths and weaknesses but here we discussed about method which is generalized and based on stakeholders (stakeholder is used to refer to any person or group who will be affected by the system directly or indirectly) view because single view forces us to look at the requirements only from a particular perspective. In order to elicit and analyze requirements completely multiple views needs to be considered to meet all stakeholder expectations.
In this method we first identify goals then sub goals and then finally nonfunctional requirement. In this approach we identify the all nonfunctional requirements from multiple views of different stakeholder. It uses four layered analysis.
- Identify Key Stakeholders
- Identify Goals
- Decompose The Goals into Subgoals
- Identify Contraints Over The Subgoal
Step 1: Identify all the stakeholders of the system.
Step 2: Try to identify what all services system will provide to these stakeholders which is said as goals.
Step 3: Decompose the goal into sub goals.
Step 4: At last identify the all constraints in achieving these goals. These constraints said as non-functional requirements for each sub goal.
Finding critical NFR: –
The traceability matrix is used to find critical Nonfunctional requirement. NFR that is required by maximum number of goals is said critical NFR.
Advantages : –
Scalability: – This approach provide better scalability in compare of other methods.
Cost Effective: – : This is the most economical way of developing and implementing
any system. In this context developing a system means, identifying non-functional requirements
for the software development depends on whether requirements are identified well or not.
Task segmentation: Breaking large complex systems into manageable subcomponents allows for easier development and implementation of any system.
Enhanced Understanding: Layering allows for examination in isolation of subcomponents (processes/procedures) applicable for each layer and as well the whole.
Rapid Application Development: – With the help of this method requirements can be identified in less amount of time which leads fast application development.
|System||Library management system|
|Stakeholders||Member, System Administrator and Librarian.|
|All Goals||Login, view catalog ,Search book, Reserve Book Barrow book, Return book, pay fine Add item, update database, Register Member, Check Reports, Issue Book.|
|All Sub goals||Student login ,Employee login, Publisher login , view by subject, view by course, view by publisher , Search book by author , Search book by title ,Search book by ISBN, Request for book, Add book, Add journal, Add Cd’s, Register student, Register Faculty, Register Publisher, Update books’ information, update borrowers’ information, view the report, Edit report, Get book.|
|All Nonfunctional requirements||Usability, Performance, Reliability, Security, Safety, Flexibility.|
Metrics for Non-Functional Requirements Specification
This metrics is given by Davis to identify and measure the quality in software requirements specification. To determine completeness of overall requirements the metric used is:
MCR = nc / [nc + nnv]
Where nc= number of requirements has been validated as correct
nnv = number of requirements that have not yet been validated.
This equation is used only for finding the completeness of the non-functional requirements