University of Toronto Department of Computer Science © 2004-5 Steve Easterbrook. This presentation is available free for non-commercial use with attribution.

Slides:



Advertisements
Similar presentations
Design Concepts and Principles
Advertisements

CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
Software project management (intro) Quality assurance.
The Architecture Design Process
R&D SDM 1 Metrics How to measure and assess software engineering? 2009 Theo Schouten.
Software Requirements
1 SOFTWARE QUALITY ASSURANCE Basic Principles. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance SW Quality:
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
Non-Functional Requirements
Evaluating Architectures Quality control: rarely fun, but always necessary
Software Process and Product Metrics
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?
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
Requirements Engineering
Software Project Management Fifth Edition
Managing Software Quality
1 ICS 122: Software Specification and Quality Engineering Spring 2002Lecturers: H. Muccini and D. J. Richardson Lecture 13: Summary The three aspects:
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Principles of User Centred Design Howell Istance.
Transaction Processing System
Business Analysis and Essential Competencies
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Chapter 6 : Software Metrics
Chapter 4 Requirements engineering Chapter 4 – Requirements Engineering Lecture 1 1.
Software Requirements Presented By Dr. Shazzad Hosain.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Requirements Lecture # 3. 2 Kinds of Software Requirements Functional requirements Non-functional requirements Domain requirements Inverse requirements.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
CSE 303 – Software Design and Architecture LECTURE 4.
Quality of System requirements 1 Performance The performance of a Web service and therefore Solution 2 involves the speed that a request can be processed.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
IS550: Software requirements engineering Dr. Azeddine Chikh 2. Functional and non-functional requirements.
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.
Quality Factors Chapter Three. Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
The Software Development Process
Nonbehavioral Specifications Non-behavioral Characteristics Portability Portability Reliability Reliability Efficiency Efficiency Human Engineering.
1 Quality Attributes of Requirements Documents Lecture # 25.
CSE 303 – Software Design and Architecture
Metrics "A science is as mature as its measurement tools."
CS223: Software Engineering Lecture 6: Requirement Engineering.
Chapter 4 Requirements Engineering (1/3) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
 System Requirement Specification and System Planning.
TOTAL QUALITY MANAGEMENT
Classifications of Software Requirements
Rekayasa Perangkat Lunak Part-10
Non Functional Requirements (NFRs)
Rekayasa Perangkat Lunak
Hardware & Software Reliability
Chapter 4 Requirements Engineering (1/3)
McCall’s Quality Factors
Lecture 15: Technical Metrics
Software Reliability Definition: The probability of failure-free operation of the software for a specified period of time in a specified environment.
Usability engineering
Software engineering.
مقدمه اي بر مهندسي نيازمنديها
Rekayasa Perangkat Lunak
Software Requirements
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software Design Quality
Lecture # 7 System Requirements
Presentation transcript:

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 1 Lecture 18: Non-Functional Requirements (NFRs) Ü Definitions  Quality criteria; metrics  Example NFRs Ü Product-oriented Software Qualities  Making quality criteria specific  Catalogues of NFRs  Example: Reliability Ü Process-oriented Software Qualities  Softgoal analysis for design tradeoffs

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 2 What are Non-functional Requirements? Ü Functional vs. Non-Functional  Functional requirements describe what the system should do  functions that can be captured in use cases  behaviours that can be analyzed by drawing sequence diagrams, statecharts, etc.  … and 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 software qualities, or just the “ilities”  Usually cannot be implemented in a single module of a program Ü The challenge of NFRs  Hard to model  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

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 3 Example NFRs Ü Interface requirements  how will the new system interface with its environment?  User interfaces and “user-friendliness”  Interfaces with other systems Ü Performance requirements  time/space bounds  workloads, response time, throughput and available storage space  e.g. ”the system must handle 1,000 transactions per second"  reliability  the availability of components  integrity of information maintained and supplied to the system  e.g. "system must have less than 1hr downtime per three months"  security  E.g. permissible information flows, or who can do what  survivability  E.g. system will need to survive fire, natural catastrophes, etc Ü Operating requirements  physical constraints (size, weight),  personnel availability & skill level  accessibility for maintenance  environmental conditions  etc Ü Lifecycle requirements  “Future-proofing”  Maintainability  Enhanceability  Portability  expected market or product lifespan  limits on development  E.g development time limitations,  resource availability  methodological standards  etc. Ü Economic requirements  e.g. restrictions on immediate and/or long-term costs.

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 4 Approaches to NFRs Ü Product vs. Process?  Product-oriented Approaches  Focus on system (or software) quality  Capture operational criteria for each requirement  … so that we can measure it once the product is built  Process-oriented Approaches  Focus on how NFRs can be used in the design process  Analyze the interactions between NFRs and design choices  … so that we can make appropriate design decisions Ü Quantitative vs. Qualitative?  Quantitative Approaches  Find measurable scales for the quality attributes  Calculate degree to which a design meets the quality targets  Qualitative Approaches  Study various relationships between quality goals  Reason about trade-offs etc.

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 5 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 is a marginal concern  fit for purpose?  Need to understand the purpose

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 6 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? Ü 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)  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? Source: Budgen, 1994, pp58-9

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 7 Factors vs. Criteria Ü Quality Factors  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

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 8 Boehm’s NFR list General utility portability As-is utility Maintainability reliability efficiency usability testability understandability modifiability device-independence self-containedness accuracy completeness robustness/integrity consistency accountability device efficiency accessibility communicativeness self-descriptiveness structuredness conciseness legibility augmentability Source: See Blum, 1992, p176

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 9 McCall’s NFR list Product operation usability Product revision Product transition integrity maintainability testability reusability portability interoperability operability training I/O volume Access control Access audit Storage efficiency consistency instrumentation expandability generality Self-descriptiveness modularity machine independence s/w system independence comms. commonality efficiency correctness reliability flexibility communicatativeness I/O rate execution efficiency Source: See van Vliet 2000, pp111-3 traceability completeness accuracy error tolerance simplicity conciseness data commonality

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 10 Making Requirements Measurable Ü We have to turn our vague ideas about quality into measurables The Quality Concepts (abstract notions of quality properties) Measurable Quantities (define some metrics) Counts taken from Design Representations (realization of the metrics) usability minutes taken for some user task??? time taken to learn how to use? complexity count procedure calls??? information flow between modules? reliability run it and count crashes per hour??? mean time to failure? examples... Source: Budgen, 1994, pp60-1

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 11 Example Metrics QualityMetric Speedtransactions/sec response time screen refresh time SizeKbytes number of RAM chips Ease of Use training time number of help frames Reliabilitymean-time-to-failure, probability of unavailability rate of failure, availability Robustnesstime to restart after failure percentage of events causing failure Portability percentage of target-dependent statements number of target systems

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 12 Example: Measuring Reliability Ü Definition  the ability of the system to behave consistently in a user-acceptable manner when operating within the environment for which it was intended. Ü Comments:  Reliability can be defined in terms of a percentage (say, %)  This may have 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.  Best we can do may be something like:  "...No more than X bugs per 10KLOC may be detected during integration and testing; no more than Y bugs per 10KLOC may remain in the system after delivery, as calculated by the Monte Carlo seeding technique of appendix Z; the system must be 100% operational 99.9% of the calendar year during its first year of operation..."

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 13 Measuring Reliability… Ü 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 bebugging  Measures the effectiveness of the testing process  a number of seeded bugs are introduced to the software system  then testing is done and bugs are uncovered (seeded or otherwise) Number of bugs = # of seeded bugs x # of detected bugs in system # of detected seeded bugs ...BUT, not all bugs are equally important!

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 14 Example model: Reliability growth Ü Motorola’s Zero-failure testing model  Predicts how much more testing is needed to establish a given reliability goal  basic model: failures = ae -b(t) Ü Reliability estimation process  Inputs needed:  fd = target failure density (e.g failures per 1000 LOC)  tf = total test failures observed so far  th = total testing hours up to the last failure  Calculate number of further test hours needed using: ln(fd/(0.5 + fd)) x th ln((0.5 + fd)/(tf + fd))  Result gives the number of further failure free hours of testing needed to establish the desired failure density  if a failure is detected in this time, you stop the clock and recalculate  Note: this model ignores operational profiles! empirical constants testing time Source: Adapted from Pfleeger 1998, p359 test time failures

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 15 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” Ü 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  Work with stakeholders to find good fit criteria Ü Proxies  Sometimes the quality is not directly measurable. Seek indicators instead:  E.g. “Few data entry errors” as proxy for Usability  E.g. “Loose coupling” as a proxy for Maintainability

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 16 Using softgoal analysis Ü Goal types:  Non-functional Requirement  Satisficing Technique  e.g. a design choice  Claim  supporting/explaining a choice Ü Contribution Types:  AND links (decomposition)  OR links (alternatives)  Sup links (supports)  Sub links (necessary subgoal) Ü Evaluation of goals  Satisficed  Denied  Conflicting  Undetermined Source: Chung, Nixon, Yu & Mylopoulos, 1999

University of Toronto Department of Computer Science © Steve Easterbrook. This presentation is available free for non-commercial use with attribution under a creative commons license. 17 NFR Catalogues Source: Cysneiros & Yu, 2004 Ü Predefined catalogues of NFR decomposition  Provides a knowledge base to check coverage of an NFR  Provides a tool for elicitation of NFRs  Example: