What are the Quality Attributes of Non-Functional Requirements? And How to Maintain the Quality of Non-Functional Requirements
Q1.What are the quality attributes of a non-functional requirement?
Following are the quality attributes of a non-functional requirement:
- Functional Suitability
- Appropriateness
- Completeness
- Correctness
- Reliability
- Availability
- Fault Tolerance
- Recoverability
- Maturity
- Usability
- Accessibility
- Appropriateness
- Learnability
- Operability
- User Error Protection
- User Interface Aesthetics
- Performance Efficiency
- Time Behavior
- Resource Utilization
- Security
- Confidentiality
- Integrity
- Non-Repudiation
- Accountability
- Authenticity
- Compatability
- Co-Existence
- Interoperability
- Maintainability
- Analyzability
- Reusability
- Testability
- Portability
- Adaptability
- Instability
- Replaceability
Q2. How can we maintain the quality of non-functional requirements?
Maintenance of the NFRs requires these being measurable. Following steps are required during the software product lifecycle for ensuring the maintenance of the non-functional requirements:
- Explicitly list the software quality objectives along with their priorities.
- Performing software quality benchmarking.
- Using checklists on software quality.
- Establishing explicit QA (Quality Assurance) activities.
- Using machine-analyzable software specifications (SS).
- Ensuring that the software requirements are testable.
- Using requirements – properties matrix for tracing the non-functional requirement to its specified functional requirement.
- Establishing standards (coding standards), particularly for a structured code.
- Standard compliance checking by using an automated code auditor.
- Performing design inspection and code inspection.
Q3. Are there any tools, techniques or frameworks that help maintain the quality of non-functional requirements?
Various tools, techniques, and frameworks are available that assists in maintaining the quality of not only the NFRs but also help maintain the quality of the functional requirements:
Tool / Technique / Framework
|
Description
|
Quality Function Deployment(QFD)
|
|
Requirement Properties – Matrix
|
The matrix maps the required non-functional requirement against each of the functional requirement along with the expected system activity ensuring the execution of that particular non-functional requirement.
This matrix is used throughout the development lifecycle of the software product.
|
Code Structuredness
|
This technique is most suitable for maintaining the non-functional requirements within a large scale software product. This technique focuses on good programming practices that ensure accurate implementation of the non-functional requirements within a software product.
|
Quality Model using ISO 9000 standards
|
Quality Model consists of all the non-functional requirements along with its sub-characteristics based on the ISO standards. This model can help select a software architecture that supports the desired non-functional requirements of the software system.
|
SAFe Requirements Model
|
According to this model the non-functional requirements may be connected to and thus constraint no, some or many backlog items when considering them in agile software development.
The purpose of this model is to provide the stakeholders with scalable software non–functional requirements.
|
Solution Intent
|
This tool traces the current and evolving non-functional requirements throughout the development lifecycle.
|
References:
- Non – functional Requirements in Systems Analysis and Design, By Kevin Adams.
- http://www.jot.fm/issues/issue_2003_03/article2/
- http://www.scaledagileframework.com/solution-intent/
- http://www.scaledagileframework.com/safe-requirements-model/
- Quantitative Evaluation of Software Quality, By B. W. Boehm, J. R. Brown, M. Lipow
Comments
Post a Comment