What are Non-functional Requirements (NFRs)? - Department of Computer ...
Lecture 9, Part 2: Non-functional Requirements
Jennifer Campbell CSC340 - Winter 2007
Importance of NFRs
? Product A
? Product B
=
=
CSC340
University of Toronto
3
Product-Oriented NFRs
? Usability:
? ease of use
? Reliability
? Mean time to failure ? data integrity
? Capacity
? Volume of users
CSC340
? Availability
? Extent to which system is available to users
University of Toronto
5
What are Non-functional
Requirements (NFRs)?
? Functional requirements describe what the system should do
? things that can be captured in use cases ? things that can be analyzed by drawing sequence diagrams,
statecharts, etc. ? Functional requirements will probably trace to individual chunks
of a program
? Non-functional requirements are global constraints on a software system
? e.g. development costs, operational costs, performance, reliability, maintainability, portability, robustness etc.
? Often known as the "ilities" ? Usually cannot be implemented in a single module of a program
CSC340
University of Toronto
2
Categories of NFRs
? Product-oriented Approach
? Focus on system (or software) quality ? Aim is to have a way of measuring the product once it's built
? Quantitative metrics (also sometimes qualitative approaches) are used to determine the degree to which a system meets the nonfunctional requirements.
? Process-oriented Approach
? Focus on how NFRs can be used in the design process ? Aim is to have a way of making appropriate design decisions
? Qualitative measures used to study relationship between goals and to reason about trade-offs.
? These approaches are considered complementary.
CSC340
University of Toronto
[CNYM99]
4
Product-Oriented NFRs [2]
? Security
? Time/space bounds
? E.g. permissible information flows, or who can do what
? workloads, response time, throughput and available storage space
? e.g. "the system must handle 1,000 transactions per second"
? Survivability
? Robustness
? E.g. system will need to survive fire, natural catastrophes, etc
? time to restart after failure
? percentage of events causing failure
CSC340
University of Toronto
6
Process-Oriented NFRs
? Modifiability
? easily extended with new features
? Testability
? easy to verify
? Maintainability
? easily modified (fixes, extensions)
? Portability
? able to work on different platforms
CSC340
University of Toronto
7
Fitness
? 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?
CSC340
University of Toronto
9
Measuring Quality
? For a chair:
? 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!
CSC340
University of Toronto
11
The challenge of NFRs
? Hard to model
? They can't be modelled using the notations we've seen so far!
? Usually stated informally, and so are:
? often contradictory, ? difficult to enforce during development ? difficult to evaluate for the customer prior to delivery
? Hard to make them measurable requirements
? We'd like to state them in a way that we can measure how well they've been met.
CSC340
University of Toronto
8
Measuring Software Quality
? Measure 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
? 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?
CSC340
University of Toronto
10
Measuring Quality [2]
? 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?
? Need to understand the purpose
CSC340
University of Toronto
12
Qualitative Measures
? Using goal-modelling, examine softgoals and their interdependencies
? A non-functional requirement is a softgoal.
? NFRs may interact
? Achieving one NFR may cause/prevent another NFR to/from being met.
? Evaluation of goals
? Satisficed
? Denied
? Conflicting
? Undetermined
[CNYM99]
CSC340
University of Toronto
13
Making Requirements Measurable
? Define `fit criteria' for each requirement
? Give the `fit criteria' alongside the requirement
? E.g. for new ATM software
? Requirement: "The software shall be intuitive and self-explanatory"
? Fit Criteria: "95% of existing bank customers shall be able to withdraw money and deposit cheques within two minutes of encountering the product for the first time"
CSC340
University of Toronto
15
Qualitative Measures: Example
user-friendly
performance
easy access
intuitive interface
space
time
+
-
Graphics rich
responsive
CSC340
University of Toronto
[Chu98]
14
Choosing good fit criteria
? Stakeholders are rarely this specific
? The right criteria might not be obvious:
? Things that are easy to measure aren't necessarily what the stakeholders want
? Standard metrics aren't necessary what stakeholders want
? Stakeholders need to construct their own mappings from requirements to fit criteria
CSC340
University of Toronto
16
Quantitative Metrics
Turning vague ideas about quality into measurables.
The Quality Concepts (abstract notions of quality properties)
examples...
rerelilaiabbiliiltiyty
ccoommpplelexxitiyty
uussaabbiliiltiyty
Measurable Quantities (define some metrics)
mmeeaanntitmimee totofafailiulurere??
ininfoformrmaatitoionn flfolowwbbeetwtweeeenn
mmoodduuleless??
titmimeetatakkeenn totoleleaarnrnhhooww
totouussee??
Counts taken from Design Representations (realization of the metrics)
CSC340
rurunnititaanndd ccoouunnt tccrarasshheess ppeerrhhoouur?r????? University of Toronto
ccoouunnt t pprorocceedduurere ccaalllsls??????
mmininuutetess tatakkeennfoforr ssoommeeuusseerr tatasskk?????1?7
Quantitative Metrics: Examples
Quality
Metric
Performance
Size Usability Reliability
Robustness Portability
transactions/sec response time screen refresh time
Kbytes number of RAM chips
training time number of help frames
mean-time-to-failure, probability of unavailability rate of failure, availability
time to restart after failure percentage of events causing failure
percentage of target-dependent statements number of target systems
CSC340
University of Toronto
18
Example: Measuring Reliability
? Definition of reliability:
? the ability of the system to behave consistently in a user-acceptable manner when operating within the environment for which it was intended.
? Different meaning for different applications:
? Telephone network: the entire network can fail no more than, on average, 1hr per year, but failures of individual switches can occur much more frequently
? Patient monitoring system: the system may fail for up to 1hr/year, but in those cases doctors/nurses should be alerted of the failure. More frequent failure of individual components is not acceptable.
CSC340
University of Toronto
19
Example: Measuring Reliability [2]
? Problems with this approach:
? Not all bugs are equal
? Some are more difficult to find than others
? Difficult of seeded bugs to detect (relative to the unseeded bugs) can cause underestimate or overestimate of bugs
? Some have greater negative impact than others
? Fixing bugs will create more bugs
CSC340
University of Toronto
21
References
[DWT05] [CNYM99] [Chu98]
Dennis A., Wixom B. H., and Tegarden D. Systems Analysis and Design with UML Version 2.0. USA: Wiley.
Chung L., Nixon B.A., Yu E., and Mylopoulos, J. 2000. Non-functional Requirements in Software Engineering. Boston, MA: Kluwer Academic Publishers.
L. Chung. 1998. Architecting Quality Using Quality Requirements. Proc., 1998 KUST, Oct. 22-24, Vienna, Virginia, 1998.
CSC340
University of Toronto
23
Example: Measuring Reliability [2]
? Example reliability requirement: ? "The software shall have no more than X bugs per thousand lines of code" ? ...But is it possible to measure bugs at delivery time?
? Use Monte Carlo techniques: ? Estimate an unknown quantity using a known quantity ? a number of seeded bugs are introduced to the software system
? then testing is done and bugs are uncovered (seeded or otherwise)
# unseeded bugs = # detected unseeded bugs
# seeded bugs
# detected seeded bugs
Number of bugs = # seeded bugs x # detected unseeded bugs
in system
# detected seeded bugs
CSC340
University of Toronto
20
Dealing with conflicts
? NFRs are often 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, simplicity
? During Analysis:
? Identify the relative importance of each NFR
? From the customer's point of view!
? Rank the requirements by priority
(Next week's lecture)
CSC340
University of Toronto
22
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- xiii non functional requirements or quality factors
- seg3101 ch3 4 non functional requirements qualities
- functional and non functional requirements north west university
- non functional requirements university of babylon
- what are non functional requirements nfrs department of computer
- on non functional requirements in software engineering researchgate
- non functional requirements oak ridge national laboratory
- defining non functional requirements bredemeyer
- non functional requirements grades usage guide description manual
- non functional requirements sample
Related searches
- what are non living things
- what are examples of non living things
- what are functional health patterns
- non functional requirements list
- non functional requirements software examples
- non functional requirements document
- writing non functional requirements examples
- functional and non functional requirements
- non functional requirements example
- non functional requirements framework
- non functional requirements questions
- functional and non functional requirement