28
OSSCube Non-Functional Requirements. Do we really care…? 9 Apr 2015 Deepak Dua

Non functional requirements. do we really care…?

Embed Size (px)

Citation preview

Page 1: Non functional requirements. do we really care…?

OSSCube

Non-Functional Requirements.

Do we really care…?

9 Apr 2015

Deepak Dua

Page 2: Non functional requirements. do we really care…?

s

A Presentation on OSSCube’s

Corporate Capabilities

Page 3: Non functional requirements. do we really care…?

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

Page 4: Non functional requirements. do we really care…?

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

Page 5: Non functional requirements. do we really care…?

Integrated Business Solutions

Page 6: Non functional requirements. do we really care…?

OSSCube

Non-Functional Requirements.

Do we really care…?

Page 7: 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

Page 8: Non functional requirements. do we really care…?

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

Page 9: Non functional requirements. do we really care…?

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

Page 10: Non functional requirements. do we really care…?

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

Page 11: Non functional requirements. do we really care…?

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

Page 12: Non functional requirements. do we really care…?

Type of NFRs

Important To Users • Performance • Security • Usability • Compatibility • Accessibility• Reliability• Flexibility• Interoperability

Important To Developers• Maintainability• Portability• Reusability• Testability

Page 13: Non functional requirements. do we really care…?

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

Page 14: Non functional requirements. do we really care…?

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

Page 15: Non functional requirements. do we really care…?

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

Page 16: Non functional requirements. do we really care…?

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

Page 17: Non functional requirements. do we really care…?

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?

Page 18: Non functional requirements. do we really care…?

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

Page 19: Non functional requirements. do we really care…?

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.

Page 20: Non functional requirements. do we really care…?

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

Page 21: Non functional requirements. do we really care…?

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?

Page 22: Non functional requirements. do we really care…?

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

Page 23: Non functional requirements. do we really care…?

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?

Page 24: Non functional requirements. do we really care…?

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?

Page 25: Non functional requirements. do we really care…?

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?

Page 26: Non functional requirements. do we really care…?

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

Page 27: Non functional requirements. do we really care…?
Page 28: Non functional requirements. do we really care…?

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 )