Non-Functional Requirements

Slides:



Advertisements
Similar presentations
Slide 1 Shall Lists. Slide 2 Shall List Statement Categories  Functional Requirements  Non-Functional Requirements.
Advertisements

System Integration Verification and Validation
Software Testing 3 Damian Gordon.
Design Concepts and Principles
Chapter 17 I.Omaima Al-Matrafi
Risk Analysis for Testing Based on Chapter 9 of Text Based on the article “ A Test Manager’s Guide to Risks Analysis and Management” by Rex Black published.
Soft. Eng. II, Spr. 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Quality Reading: I. Sommerville, Chap: 24.
Software project management (intro) Quality assurance.
The Architecture Design Process
Overview of Software Requirements
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 9 Title : Reliability Reading: I. Sommerville, Chap. 16, 17 and 18.
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
CS 325: Software Engineering March 26, 2015 Software Quality Assurance Software Metrics Defect Injection Software Quality Lifecycle Measuring Progress.
University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution.
Non-functional requirements
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec12 1 Lecture 12: Software Design Quality What is software quality?
Software Quality SEII-Lecture 15
Exam examples Tor Stålhane. The A scenario – 1 We are working in a small software development company – 10 developers plus two persons in administrative.
System Testing There are several steps in testing the system: –Function testing –Performance testing –Acceptance testing –Installation testing.
Software Project Management Fifth Edition
SE-565 Slide 1 SE-565 Software System Requirements Non-functional Requirements.
Managing Software Quality
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Sept - Dec w1d11 Beyond Accuracy: What Data Quality Means to Data Consumers CMPT 455/826 - Week 1, Day 1 (based on R.Y. Wang & D.M. Strong)
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Requirements 101 CS3300 Fall 2015.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Copyright © Jerzy R. Nawrocki ISO 9126 and Non-functional Requirements Requirements.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
This chapter is extracted from Sommerville’s slides. Text book chapter
Other Quality Attributes Other Important Quality attributes Variability: a special form of modifiability. The ability of a system and its supporting artifacts.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Software Quality : The Elusive Target
Lecture 7: Requirements Engineering
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
12.1 Introduction Checklists are used as a technique to give status information in a formalized manner about all aspects of the test process. This chapter.
Software Testing and Quality Assurance Software Quality Assurance 1.
Software Methods Mö/ slide 1 Methods and Techniques of Software Quality Management ICEL Quality Management Systems: Methods and Techniques of Software.
About Quality Pre paired By: Muhammad Azhar. Scope What is Quality Quality Attributes Conclusion on software Quality Quality Concepts Quality Costs.
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
Modelling Support for Quality of Service Eclipse ECESIS Project Modelling Support for Quality of Service Department for Cooperative and Trusted Systems.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Capturing the requirements  Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the.
Systems Development Life Cycle
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
Evaluating Architectures. Quality Control Rarely fun, but always necessary 1.
CSE 303 – Software Design and Architecture
1 Usability evaluation and testing User interfaces Jaana Holvikivi Metropolia.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Non Functional Testing. Contents Introduction – Security Testing Why Security Test ? Security Testing Basic Concepts Security requirements - Top 5 Non-Functional.
 System Requirement Specification and System Planning.
TOTAL QUALITY MANAGEMENT
Software Quality Control and Quality Assurance: Introduction
Classifications of Software Requirements
Non Functional Requirements (NFRs)
Software Requirements
Chapter 5 – Requirements Engineering
UNIT II.
Charakteristiky kvality
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software Quality Assurance Lecture 3
ISO/IEC Systems and software Quality Requirements and Evaluation
Tomaž Špeh SURS TF SERV, Luxembourg,
Presentation transcript:

Non-Functional Requirements Based pn slides from Tor Stålhane, Steve Easterbrook, Nan Niu, John Mylopoulos, Lawrence Chung, and Brian Nixon

Concrete requirements from high level goals Goal categorization: Similar to requirements categorizations: 2

Non-functional requirements (NFR) Non-functional requirements define the overall qualities or attributes of the resulting system Non-functional requirements place restrictions on the product being developed, the development process, and specify external constraints that the product must meet. Examples of NFR safety, security, usability, reliability and performance requirements.

Functional and Non-functional requirements No clear distinction between functional and non-functional requirements. Whether or not a requirement is expressed as a functional or a non-functional requirement may depend: on the level of detail to be included in the requirements document the degree of trust which exists between a system customer and a system developer.

Example The system shall ensure that data is protected from unauthorised access. Conventionally, this would be considered as a non-functional requirement because it does not specify specific system functionality which must be provided. However, it could have been specified in slightly more detail as follows: The system shall include a user authorisation procedure where users must identify themselves using a login name and password. Only users who are authorised in this way may access the system data. In this form, the requirement looks rather more like a functional requirement as it specifies a function (user login) which must be incorporated in the system.

Non-Functional Requirement - ISO 9126 ISO 9126 - non-functional requirements linked to “quality in use”. Quality in use - users experience when using the system. Since the users’ experience is subjective, many of the quality factors will also be subjective. Not an ideal situation, but a situation that we must live with.

ISO 9126 Quality in use

Concrete requirements from high level goals Goal refinement tree: Refinement links are two way links: One showing goal decomposition, other showing goal contribution 8

Software Qualities  Think of an everyday object  e.g. a chair  How would you measure it’s “quality”?  construction quality? (e.g. strength of the joints,…)  aesthetic value? (e.g. elegance,…)  fit for purpose? (e.g. comfortable,…)  All quality measures are relative  there is no absolute scale  we can sometimes say A is better than B…  … but it is usually hard to say how much better!  For software:  construction quality?  software is not manufactured  aesthetic value?  but most of the software is invisible  aesthetic value matters for the user interface, but is only a marginal concern  fit for purpose?  what’s the purpose? what’s fit? 10

Fitness  Software quality is all about fitness to purpose Source: Budgen, 1994, pp58-9  Software quality is all about fitness to purpose  does it do what is needed?  does it do it in the way that its users need it to?  does it do it reliably enough? fast enough? safely enough? securely enough?  will it be affordable? will it be ready when its users need it?  can it be changed as the needs change?  Quality is not a measure of software in isolation  it measures the relationship between software and its application domain  cannot measure this until you place the software into its environment…  …and the quality will be different in different environments!  during design, we need to predict how well the software will fit its purpose  we need good quality predictors (design analysis)  Lulu’s work on Measuring Maintainability  during requirements analysis, we need to understand how fitness-for- purpose will be measured  What is the intended purpose?  What quality factors will matter to the stakeholders?  How should those factors be operationalized? 11

Factors vs. Criteria  Quality Factors  Design Criteria  These are customer-related concerns  Examples: efficiency, integrity, reliability, correctness, survivability, usability,...  Design Criteria  These are technical (development-oriented) concerns such as anomaly management, completeness, consistency, traceability, visibility,...  Quality Factors and Design Criteria are related:  Each factor depends on a number of associated criteria:  E.g. correctness depends on completeness, consistency, traceability,...  E.g. verifiability depends on modularity, self-descriptiveness and simplicity  There are some standard mappings to help you…  During Analysis:  Identify the relative importance of each quality factor  From the customer’s point of view!  Identify the design criteria on which these factors depend  Make the requirements measurable 12

Functionality – Factor The capability of the software to provide functions which meet stated and implied needs when the software is used under specified conditions.

Functionality – Criteria Suitability: Capability of the software to provide an appropriate set of functions for specified tasks and user objectives. Accuracy: Capability of the software to provide the right or agreed. Interoperability: Capability of the software to interact with one or more specified systems. Compliance: Capability of the software to adhere to application related standards, conventions or regulations in laws and similar prescriptions. Security: Capability of the software to prevent unintended access and resist deliberate attacks intended to gain unauthorised access to confidential information, or to make unauthorised modifications to information or to the program so as to provide the attacker with some advantage or so as to deny service to legitimate users.

Reliability – Factor The capability of the software to maintain the level of performance of the system when used under specified conditions Wear or aging does not occur in software. Limitations in reliability are due to faults in requirements, design, and implementation. Failures due to these faults depend on the way the software product is used and the program options selected rather than on elapsed time.

Reliability – Criteria Maturity: Capability of the software to avoid failure as a result of faults in the software. Fault tolerance: Capability of the software to maintain a specified level of performance in cases of software faults or of infringement of its specified interface. Recoverability: Capability of the software to re-establish its level of performance and recover the data directly affected in the case of a failure. Availability: Capability of the software to be in a state to perform a required function at a given point in time, under stated conditions of use.

Usability – Factor Capability of the software to be understood, learned, used and liked by the user, when used under specified conditions. Some aspects of functionality, reliability and efficiency will also affect usability, but for the purposes of this International Standard are not classified as usability.

Usability – Criteria Understandability: Capability of the software product to enable the user to understand whether the software is suitable, and how it can be used for particular tasks and conditions of use. Learnability: Capability of the software product to enable the user to learn its application Operability: Capability of the software product to enable the user to operate and control it. Likeability: Capability of the software product to be liked by the user.

Efficiency – Factor The capability of the software to provide the required performance relative to the amount of resources used, under stated conditions Resources may include other software products, hardware facilities, materials, (e.g. print paper, diskettes).

Efficiency – Criteria Time behavior: Capability of the software to provide appropriate response and processing times and throughput rates when performing its function, under stated conditions. Resource utilisation: Capability of the software to use appropriate resources in an appropriate time when the software performs its function under stated conditions.

Maintainability – Factor The capability of the software to be modified. Modifications may include corrections, improvements or adaptation of the software to changes in environment, and in requirements, and functional specifications.

Maintainability – Criteria Changeability: Capability of the software product to enable a specified modification to be implemented. Stability: Capability of the software to minimise unexpected effects from modifications of the software Testability: Capability of the software product to enable modified software to be validated.

Portability – Factor The capability of software to be transferred from one environment to another. The environment may include organizational, hardware or software environment.

Portability – Criteria Adaptability: Capability of the software to be modified for different specified environments without applying actions or means other than those provided for this purpose for the software considered. Installability: Capability of the software to be installed in a specified environment. Co-existence: Capability of the software to co-exist with other independent software in a common environment sharing common resources Conformance: Capability of the software to adhere to standards or conventions relating to portability. Replaceability: Capability of the software to be used in place of other specified software in the environment of that software.

Setting Requirements – 1 Can set non-functional requirements in at least three ways – to The way the system behaves – user level The way the product is developed – process level The way the software is – product or metrics level

Setting Requirements – 2 If we will state requirements that are testable, we at least need to go to the criteria level. In order to demonstrate how this can be done we will look at two important factors – maintainability and reliability. What follows is only an example. There are several other ways to set reliability and maintainability requirements.

Setting Requirements – 3 The method used in the example is based on T. Gilb’s ideas of MbO – Management by Objectives. We start with the requirement – e.g. the system shall be easy to maintain. We then follow up with “what do you mean by…” until we reach something that is observable and thus testable.

Setting Requirements – 4 When we use MbO or other related techniques for setting requirements we will in most cases have a situation where: The user will have to participate in the tests in one way or another. There will be a strong link between requirement and test. In many cases the requirement will be the test.

The MbO – Customer View Requirement: “The system shall be easy to maintain” What do you mean by “easy to maintain” No error identification and correction shall need more than two person-days. Note – other changes are not mentioned. For the customer, these requirements are OK.

The MbO – Developer View Next step - ask the developers how they will achieve this requirement. For maintainability this can be requirements on Maximum class size Coupling and cohesion Self-documenting names for all entities Etc.

Maintainability Requirements - 1 Changeability: No error shall need more than one person-days to identify and fix Stability: Not more than 10% of the corrections shall have side-effects Testability: The correction shall need no more than one person-day of testing. This includes all necessary regression testing

Reliability Requirements Maturity: MTTF = TTT / n. MTTF > 500 hrs. Fault tolerance: Under no circumstances shall the system crash. Recoverability: In case of an error, the time needed to get the system up and running again shall not exceed one hour (MTTR). Availability: MTTF /(MTTF + MTTR) > 0.998

Reliability Tests – 1 MTTF = TTT / n. MTTF > 500 hrs. Use 10 PCs. Test for two weeks => TTT = 800. Not more than one error. Under no circumstances shall the system crash. Generate random input sets. No check for result is necessary – only crash / no crash, In case of an error, the time needed to get the system up and running again shall not exceed one hour (MTTR).

Reliability Tests – 2 We need to consider three data: The total testing time – TTT. For how long have we tested the system? The usage frequency – UF. How often is the system used at the users’ site? Number of users each time the system is used We need to distinguish between test time – TTT – and usage time.

Reliability Tests – 3 Simple Example: Have TTT = 400 hrs. The system will be used one hour once a week e.g. for accounting purposes – at 10 sites. We then have 10 hrs. of use per week. Under the assumption that all 10 sites use the system the way it is tested, our test is equivalent to 40 weeks of real use.

More Non-functional Requirements Relatively simple to make requirement and tests for reliability, maintainability and other “objective” non-functional factors. Subjective factors (e.g. usability) are more difficult. Will use usability as an example to show the couplings between

Usability requirements – 1 Understandability: The capability of the software product to enable the user to understand whether the software is suitable, and how it can be used for particular tasks and conditions of use. Learnability: The capability of the software product to enable the user to learn its application Operability: The capability of the software product to enable the user to operate and control it. Likeability: The capability of the software product to be liked by the user.

Usability Requirements – 2 All the usability criteria are subjective. As a result, tests will also have a strong component of subjectivism. Understand Whether the software is suitable for a particular task How it can be used for particular tasks Under which conditions it can be used Learn its application Operate and control it (the software) Is the software product liked by the user?

Requirements – First Step First step - apply the MbO for each criteria. Look at two of the requirements: Learn its application What does it mean to “learn application” Is the software product liked by the user What do you mean by “liked”?

Requirements – Second Step Learn application: Can use the system after a one week course. Use the system for two weeks and then solve a set of standardized problems. Like application: Score high on a likeability scale – e.g. 90 % score 7 or higher on a scale from 1 to 10 – after a one week course and two weeks of real use.

Requirements – to Remember The test says much more about the requirement than the requirement itself does. We need to Develop a course, a set of standardized problems and a likeability questionnaire. Include the customer’s participation in the test into the contract. Who will pay for this?