OSSCube
Non-Functional Requirements.
Do we really care…?
9 Apr 2015
Deepak Dua
s
A Presentation on OSSCube’s
Corporate Capabilities
Introducing OSSCube
• Global Solutions 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
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
Integrated Business Solutions
OSSCube
Non-Functional Requirements.
Do we really care…?
2
Objective
• UNDERSTAND WHAT IS 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
Few Definitions...
“In software system 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
Basic Differences in Functional 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
Importance of Non Functional
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
Challenges for Non Functional
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
Type of NFRs
Important To Users
• Performance
• Security
• Usability
• Compatibility
• Accessibility
• Reliability
• Flexibility
• Interoperability
Important To Developers
• Maintainability
• Portability
• Reusability
• Testability
Requirement Elicitation
Identification of Non 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
Identification of Non Functional
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
Identification of Non Functional
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
Identification of Non Functional
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
Measurement of NFRs
Measurement of 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?
Measurement of NFRs
Based on 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
Measurement of NFRs
Identify
Quality
Factors
Define
Measurable
Criteria
Define
Acceptance
Criteria
NFR 1
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.
Arranging NFRs
Arrangement of NFR 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
Addressing Right Set of 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?
Addressing Right Set of 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
Addressing Right Set of 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?
Addressing Right Set of 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?
Addressing Right Set of 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?
Verification of NFR
Verification of 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
Thank You!
We love to connect with you.
Twitter (@OSSCubeIndia)
Facebook (www.facebook.com/osscubeindia)
LinkedIn (www.linkedin.com/company/osscube)
Google+ (plus.google.com/u/0/+OSSCubeIndia/posts )

Non functional requirements. do we really care…?

  • 1.
    OSSCube Non-Functional Requirements. Do wereally care…? 9 Apr 2015 Deepak Dua
  • 2.
    s A Presentation onOSSCube’s Corporate Capabilities
  • 3.
    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
  • 5.
  • 6.
  • 7.
    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 )