03 Chap 3 - Non Functional Requirements
03 Chap 3 - Non Functional Requirements
ISB16103
Introduction to Software Engineering
What is Non-Functional Requirement?
• A Non-Functional Requirement (NFR) defines the quality
attribute of a software system.
• They judge the software system based on
– Responsiveness,
– Usability,
– Security,
– Portability and
– other non-functional standards that are critical to success of
the software system.
• Example of nonfunctional requirement, how fast does the
website load?
• Failing to meet non-functional requirements can result in
systems that fail to satisfy user needs.
What is Non-Functional Requirement?
• Non-functional Requirements allows you to
impose constraints or restrictions on the
design of the system across the various agile
backlogs. Example, the site should load in 3
seconds when the number of simultaneous
users are > 10000.
• Description of non-functional requirements
is just as critical as a functional requirement.
Types of Non-functional Requirement
• Usability requirement
• Serviceability requirement
• Manageability requirement
• Recoverability requirement
• Security requirement
• Data Integrity requirement
• Capacity requirement
• Availability requirement
• Scalability requirement
• Interoperability requirement
• Reliability requirement
• Maintainability requirement
• Regulatory requirement
• Environmental requirement
Examples of Non-functional
requirements
• Users must change the initially assigned login password
immediately after the first successful login. Moreover, the initial
should never be reused.
• Employees never allowed to update their salary information.
Such attempt should be reported to the security administrator.
• Every unsuccessful attempt by a user to access an item of data
shall be recorded on an audit trail.
• A website should be capable enough to handle 20 million users
with affecting its performance
• The software should be portable. So moving from one OS to
other OS does not create any problem.
• Privacy of information, the export of restricted technologies,
intellectual property rights, etc. should be audited.
Advantages of Non-Functional
Requirement
• The nonfunctional requirements ensure the
software system follow legal and compliance
rules.
• They ensure the reliability, availability, and
performance of the software system
• They ensure good user experience and ease
of operating the software.
• They help in formulating security policy of
the software system.
Disadvantages of Non-functional
requirement
• Non-functional requirement may affect the
various high-level software subsystem
• They require special consideration during
the software architecture/high-level design
phase which increases costs.
• Their implementation does not usually map
to the specific software sub-system,
• It is tough to modify non-functional once
you pass the architecture phase.
KEY LEARNING
• A non-functional requirement defines the performance attribute
of a software system.
• Types of Non-functional requirement are Scalability Capacity,
Availability, Reliability, Recoverability, Data Integrity, etc.
• Example of Non Functional Requirement is Employees never
allowed to update their salary information. Such attempt should
be reported to the security administrator.
• Functional Requirement is a verb while Non-Functional
Requirement is an attribute
• The advantage of Non-functional requirement is that it helps
you to ensure good user experience and ease of operating the
software
• The biggest disadvantage of Non-functional requirement is that
it may affect the various high-level software subsystems.