Non functional requirements. do we really care…?
-
Upload
osscube-llc-a-global-open-source-enterprise-for-open-source-solutions -
Category
Technology
-
view
241 -
download
0
Transcript of Non functional requirements. do we really care…?
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 1NFR 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
GoalPerformance 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
GoalSecurity 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
GoalUsability 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
GoalCompatibility 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
GoalAccessibility 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 )