The document discusses the importance of non-functional requirements (NFRs) in software engineering, emphasizing their role in defining how a system performs rather than what it does. It outlines methods for identifying, measuring, and verifying NFRs, as well as the challenges associated with them, while highlighting key types essential to users and developers. Additionally, it provides insights into elicitation techniques, the differences between functional and non-functional requirements, and the negative impacts of inadequate NFR management.
Introducing OSSCube
• GlobalSolutions Provider
• Consulting, Development, Integration, Support
• Develop Integrated Enterprise Business Solutions
• Open Source
• CMMI Level 3 accredited
• Continuous Delivery for fast, predictable projects
• Flexible Delivery Model
• Support Projects or Staff Augmentation
• Scale up or down as required
4.
OSSCube Practice Areas
•PHP - Only Zend Center of Excellence
• CRM - SugarCRM
• Marketing Automation – Act-On
• Content Management System – Drupal
• Product Information Management - Pimcore
• Enterprise Mobile and Web applications
• E-Commerce – Magento
• BPM and Workflow – BonitaSoft and ProcessMaker
• Enterprise Architecture and Consulting
• BI and Data Integration – Pentaho and Talend
• Big Data – Hadoop, Cloudera, Spark
• Database – MySQL, MariaDB
• Cloud based large computing capacity - AWS
2
Objective
• UNDERSTAND WHATIS NFR
• HOW DIFFERENT NFRS FROM FRS
• WHY NFRS ARE IMPORTANT
• HOW NFR CAN BE IDENTIFIED OUT OF SYSTEM REQUIREMENTS
• MEASUREMENT OF NFRS
• ARRANGING NFRS
• ADDRESSING RIGHT SET OF QUESTIONS
• VERIFICATION OF NFR
8.
Few Definitions...
“In softwaresystem engineering, a software requirement that describes not what the software will do, but how
the software will do it, for example, software performance requirements, software external interface
requirements, software design constraints, and software quality attributes. Nonfunctional requirements are
difficult to test; therefore, they are usually evaluated subjectively.”
Richard H. Thayer. IEEE
“Non Functional Requirements are constraints on the services or functions offered by the system. They include
timing constraints, constraints on the development process and standards. Non-functional requirements often
apply to the system as a whole. They do not usually just apply to individual system features or services.”
Ian Sommerville, Software Engineering, 7th edition
“A property, or quality, that the product must have, such as an appearance, or a speed, security or accuracy
property”
James Robertson, Mastering the Requirements Process: Getting Requirements Right
“Users have implicit expectations about how well the software will work. These characteristics include how easy
the software is to use, how quickly it executes, how reliable it is, and how well it behaves when unexpected
conditions arise. The non functional requirements define these aspects about the system.”
Andrew Stellman, Applied Software Project Management
9.
Basic Differences inFunctional and
Nonfunctional Requirements
Functional Requirements Non Functional Requirements
• Product features • Product property
• Describe the actions with which the
user work is concerned
• Describe the experience of the user
while doing the work
• A functions that can be captured in use
cases
• Non-functional requirements are
global constraints on a software
system that results in development
costs, operational costs
• A behaviors that can be analyzed by
drawing sequence diagrams, state
charts, etc
• Often known as software qualities
• Can be traced to individual set of a
program
• Usually cannot be implemented in a
single module of a program
10.
Importance of NonFunctional
Requirements
May be all functional requirements are working fine.
If Non Functional requirements are not handled well, the whole
system may fail and that may lead to..
• Loss of Business
• Loss of User Interest
• Loss of Credibility
11.
Challenges for NonFunctional
Requirements
• Implicit requirements
• No formal agreement
• Lack of awareness
• Incomplete Elicitation
• Different Terminologies across the industry
• Most of the contradictory
• Difficult to enforce during development
• Difficult to setup acceptance criteria
12.
Type of NFRs
ImportantTo Users
• Performance
• Security
• Usability
• Compatibility
• Accessibility
• Reliability
• Flexibility
• Interoperability
Important To Developers
• Maintainability
• Portability
• Reusability
• Testability
13.
Requirement Elicitation
Identification ofNon Functional Requirement starts with Requirement Elicitation.
Requirements Elicitation is the practice of collecting the requirements of a system from users,
customers and other stakeholders.
Requirement Elicitation Methods:
• Interviews
• Questionnaires
• User observation
• Workshops
• Brainstorming
• Use Cases
• Prototyping
Requirements elicitation is a part of the requirements engineering process, usually followed by analysis
and specification of the requirements.
During the requirement analysis the Non Functional Requirement can be fetched out and documented
14.
Identification of NonFunctional
Requirements
Non Functional Requirement can be identified by breaking the requirement in Tasks and Sub Tasks
Funct 1
Req 1
Req 2
Task 1
Tasks 2
NFR 1
NFR 2
NFR 1
NFR 2
NFR 3
Tasks 1
NFR 1
NFR 2
NFR 3
15.
Identification of NonFunctional
Requirements
Example E-Commerce Website
Consumer
Add Product to
Cart
Checkout
Without Login
With Login
Usability
Performance
Security
Usability
Performance
Check Out Using
Credit Card
Security
PCI Compliances
Performance
Usability
16.
Identification of NonFunctional
Requirements
• Identify NFR for each Task
• Establish the Goal
• Continue until you cannot decompose
further
Here we are taking the example of Security
Security
SSL
Implementation
Password Policy
Role Based
Authorization
PCI Compliances
Integrity of
Accounts
Data
Confidentiality
SSL
Implementation
Decomposition of Each NFR to meet the Goal
17.
Measurement of NFRs
Measurementof NFRs are in very subjective in nature. There is no absolute scale of
all type of NFRs.
Sometime it is hard to measure quality of software in isolation until it is not into
correct environment. Software may behave differently in different environments.
Here is the solution…
We can identify good quality predictor by analyzing NFR during Design Analysis based
on:
• What is he purpose of NFR?
• What quality factor will impact the stakeholders?
• How these factors will be met?
18.
Measurement of NFRs
Basedon the Design Analysis, we can identify the Measurable Units for each NFR separately.
Identify
Quality
Factors
Define
Measurable
Criteria
Define
Acceptance
Criteria
NFR 1
NFR 2
NFR 3
NFR 4
19.
Measurement of NFRs
Identify
Quality
Factors
Define
Measurable
Criteria
Define
Acceptance
Criteria
NFR1
Performance
Quality Factors
• Response Time
during peak load.
• Response Time
during normal
load.
Measurable Criteria
• Concurrent Users
during peak load =
1000
• Concurrent Users
during normal
hours = 500
Acceptance Criteria
• The system should
meet load of
1000 concurrent
users.
• The system should
meet load of 500
concurrent users.
20.
Arranging NFRs
Arrangement ofNFR can be done in a way, so that each NFR is traceable against each
Functionality. We are again taking example of Security
Role Functionality Sub Functionality NFR
Consumer Add Product to Cart Without Login Performance
Consumer Add Product to Cart Without Login Usability
Consumer Add Product to Cart With Login Performance
Consumer Add Product to Cart With Login Compatibility
Consumer Add Product to Cart With Login Security
Consumer Add Product to Cart With Login Usability
Consumer Add Product to Cart With Login Compatibility
Admin Add Product to Catalog - Performance
Admin Add Product to Catalog - Security
Admin Add Product to Catalog - Usability
Consumer Logout - Performance
Consumer Logout - Usability
Admin Logout - Performance
Admin Logout - Usability
21.
Addressing Right Setof Questions -
Performance
Goal
Performance requirements concern the speed of operation of a system. Majorly Performance Testing
deals with:
• Response Time
• Throughput
• Resource utilization
• Workload
Impacts
• Loss of User Transaction
• Loss of User Interest
• High Response Time
Questionnaire
• Performance Test Scope? Any subsystem, interface, components etc.
• Number of concurrent users? (Normal and Peak Hours)
• What is hardware specification?
• Baseline Results if available?
• What are new Performance Goals?
22.
Addressing Right Setof Questions -
Security
Goal
Security Requirement is one of the essential and sensitive components of requirement engineering, security
requirements may include specific elements:
• Confidentiality
• Integrity
• Authentication
• Authorization
• Availability
• Non-repudiation
Impacts
• Loss of financial data
• Loss of confidential data
• Loss of information packets
Questionnaire
• Access Management – Integration with other systems, Password Policy, role based authorization
• Audit Capabilities – capturing user access activities, audit log data security
• Data Export Capability - data encryption
• SSL Implementation
• Data Privacy – Data Encryption
23.
Addressing Right Setof Questions -
Usability
Goal
Usability is a quality attribute that assesses how easy user interfaces are to use. Usability based on below
components
• Learnability
• Efficiency
• Memorability
• Errors
• Satisfaction
Impacts
• Loss of User Interest
• Loss of Business
Questionnaire/Checklist
• Are all user transactions able to complete in 3 steps?
• The critical path (e.g. purchase, subscription) is clear, with no distractions on route.
• User instructions/Help notes are clearly mentioned where applicable?
• The site requires minimal scrolling and clicking.
• Users can complete common tasks quickly.
• Does application support responsive design?
24.
Addressing Right Setof Questions -
Compatibility
Goal
Compatibility requirements ensures that application or system is able to perform well on different set of
platforms and software. The key compatibility areas are:
• Platforms
• APIs and drivers
• Web browser
• Mobile Devices
Impacts
• Loss of Interactive Design
• Loss of Functionalities
Questionnaire/Checklist
• What all platforms are supported?
• What all Web Browser are supported
• What are the different resolution requirements?
• Does application support responsive design?
• What all mobile platform/devices are supported?
25.
Addressing Right Setof Questions -
Accessibility
Goal
Accessibility refers to the inclusive practice of removing barriers that prevent interaction
with, or access to software, by people with disabilities. The accessibility addresses different
areas:
• Visual
• Motor/Mobility
• Auditory
• Cognitive/Intellectual
Impacts
• Loss of users with disability
• Loss of Business
Questionnaire/Checklist
• Are all accessibility standard covered based on Priority 1,2 and 3?
• Are all type of target audience covered?
• Are all WCAG Standard finalized?
26.
Verification of NFR
Verificationof NFRs are as important as correct implementation. Verification of NFR
can be done:
• Identify/Execute NFR specific Test Scenarios.
• Verify NFR acceptance criteria for Each NFR
• Perform verification in different environments
• Involve different type of user groups
• Share/Measure learnings for Continuous Improvement
28.
Thank You!
We loveto connect with you.
Twitter (@OSSCubeIndia)
Facebook (www.facebook.com/osscubeindia)
LinkedIn (www.linkedin.com/company/osscube)
Google+ (plus.google.com/u/0/+OSSCubeIndia/posts )