Download presentation
Presentation is loading. Please wait.
1
Non Functional Requirements (NFRs)
Muzaffar Iqbal Farooqi
2
Requirement Engineering: Muzaffar Iqbal Farooqi
Software Qualities Think of an everyday object, e.g. a chair How would you measure it’s “quality”? construction quality? (e.g. material, 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! Requirement Engineering: Muzaffar Iqbal Farooqi
3
Requirement Engineering: Muzaffar Iqbal Farooqi
Software Quality 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? Requirement Engineering: Muzaffar Iqbal Farooqi
4
Requirement Engineering: Muzaffar Iqbal Farooqi
Software Quality... Quality is not a measure of software in isolation 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 Requirement Engineering: Muzaffar Iqbal Farooqi
5
Non Functional Requirements
Broadly, functional requirements define what a system is supposed to do and non-functional requirements define how a system should behave. Functional requirements are usually in the form of "system shall do <requirement>", an individual action of part of the system. In contrast, non-functional requirements are in the form of "system shall be <requirement>", an overall property of the system as a whole or of a particular aspect and not a specific function. The system's overall properties commonly mark the difference between whether the development project has succeeded or failed. Requirement Engineering: Muzaffar Iqbal Farooqi
6
Non Functional Requirements...
Non-functional requirements are often called qualities of a system. Other terms for non-functional requirements are "constraints", "quality attributes", "quality goals", "quality of service requirements" and Project management issues (costs, time, schedule) are also considered as non-functional requirements. Requirement Engineering: Muzaffar Iqbal Farooqi
7
Requirement Engineering: Muzaffar Iqbal Farooqi
An Example A system may be required to display the number of records in a database. This is a functional requirement. How fast the records are displayed is a non-functional requirement. Sufficient network bandwidth may be a non-functional requirement of a system. Requirement Engineering: Muzaffar Iqbal Farooqi
8
Functional vs. Non-functional requirements
Sometimes it is hard to make clear distinction between FR & NFR. 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 comprehension of application domain and the desired system experience of developers Requirement Engineering: Muzaffar Iqbal Farooqi
9
Functional vs. Non-functional requirements
Some properties of a system may be expressed either as a functional or non-functional property. Example. The system shall ensure that data is protected from unauthorised access. Conventionally a non-functional requirement (security) because it does not specify specific system functionality Expressed as functional requirement: 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. Non-functional requirements may result in new functional requirements statements Requirement Engineering: Muzaffar Iqbal Farooqi
10
Requirement Engineering: Muzaffar Iqbal Farooqi
Common NFRs Accessibility Availability Performance Portability Quality Response time Reusability Safety Security Usability Maintainability Requirement Engineering: Muzaffar Iqbal Farooqi
11
Requirement Engineering: Muzaffar Iqbal Farooqi
Accessibility Accessibility is the degree to which a product, device, service, or environment is available to as many people as possible. Accessibility can be viewed as the "ability to access" and benefit from some system or entity. 11 Requirement Engineering: Muzaffar Iqbal Farooqi
12
Requirement Engineering: Muzaffar Iqbal Farooqi
Availablity Availabilty means "is the system available for service when requested by end-users" For example, a unit of a system that is required to be used 7 days a week (24 hours a day) should have an availability of 24/7. Availability of a system is typically measured as a factor of its reliability - as reliability increases, so does availability. How long the system can be down for maintenance can affect the availability of the system. Requirement Engineering: Muzaffar Iqbal Farooqi
13
Requirement Engineering: Muzaffar Iqbal Farooqi
EXAMPLE The System service X should have an availability of 999/1000 or 99%. This is an availability requirement which means that out of every 1000 requests for this service, 999 must be satisfied. Requirement Engineering: Muzaffar Iqbal Farooqi
14
Requirement Engineering: Muzaffar Iqbal Farooqi
Performance Computer performance is characterized by the amount of useful work accomplished by a computer system or computer network compared to the time and resources used. Depending on the context, good computer performance may involve one or more of the following: Short response time for a given piece of work High throughput (rate of processing work) Low utilization of computing resource(s) Fast (or highly compact) data compression and decompression High bandwidth / short data transmission time Requirement Engineering: Muzaffar Iqbal Farooqi
15
Requirement Engineering: Muzaffar Iqbal Farooqi
Performance... Performance requirements are mainly concerned with the speed of operation of a system. Typical performance requirements are... Response requirements (how quickly the system reacts to a user input) Throughput requirements (how much the system can accomplish within a specified amount of time) Availability requirements (is the system available for service when requested by end-users) EXAMPLE: System Y should process a minimum of 8 transactions per second. This is a performance requirement. Requirement Engineering: Muzaffar Iqbal Farooqi
16
Requirement Engineering: Muzaffar Iqbal Farooqi
Usability Usability is the ease of use and learnability of a human-made developed object/system. Usability is the ease with which a user can learn to operate, prepare inputs for, and interpret outputs of system. Usability requirements include: Well-structured user manuals Informative error messages Help facilities Well-formed graphical user interfaces Usability includes considerations such as: Who are the users, what do they know, and what can they learn? What do users want or need to do? What is the general background of the users? What is the context in which the user is working? What has to be left to the machine, What to the user? Requirement Engineering: Muzaffar Iqbal Farooqi
17
Requirement Engineering: Muzaffar Iqbal Farooqi
Usability... Answers to these questions can be obtained by the following considerations... Can users easily accomplish their intended tasks? For example, can users accomplish intended tasks at their intended speed? How much training do users need? What documentation or other supporting materials are available to help the user? Can users find the solutions they seek in these materials? What and how many errors do users make when interacting with the product? Can the user recover from errors? What do users have to do to recover from errors? Does the product help users recover from errors; for example, does the software present informative, non-threatening error messages? Requirement Engineering: Muzaffar Iqbal Farooqi
18
Requirement Engineering: Muzaffar Iqbal Farooqi
Usability... In addition to these considerations, specific usability quality requirements can be documented in terms of the following factors: What a general screen should look like (may include templates of screens) Special requirements regarding the ’look and feel’ of the system How users expect to navigate between screens (may depend on the current organizational standards in order to reduce the learning curve) Level of help required (at function level, screen level, field level etc.) How exceptions, errors and alerts should be shown to the user; What kind of help the user expects, when exceptions occur during user interaction Consistency of the user interface (to be provided both within the system and across different subsystems) Requirement Engineering: Muzaffar Iqbal Farooqi
19
Requirement Engineering: Muzaffar Iqbal Farooqi
Usability Metrics 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. Requirement Engineering: Muzaffar Iqbal Farooqi
20
Requirement Engineering: Muzaffar Iqbal Farooqi
Portability The capability of software to be transferred from one environment to another. The environment may include: organizational, hardware or software environment. EXAMPLE: The system should run on Windows and Unix platforms. This is a portability requirement which affects the way in which the system may be designed. Requirement Engineering: Muzaffar Iqbal Farooqi
21
Requirement Engineering: Muzaffar Iqbal Farooqi
Robustness Robustness is the ability to handle error while running the system. We have to provide quality parameters for the Robustness requirements in terms of the following factors: Define how the errors must be handled when failures occur At a lower level of abstraction, define the kind of errors (including boundary conditions) that are implicitly taken care of (e.g. date validations, numeric validations, currency validations, etc.) Requirement Engineering: Muzaffar Iqbal Farooqi
22
Requirement Engineering: Muzaffar Iqbal Farooqi
Extensibility Extensibility is the ability of the solution to handle the growth of functionality. Requirements for extensibility can be captured in terms of the following factors: Identification of the impact of increase in the number of end users growth of an organization increase in the functionality of the application Identification of the impact of an increase in data future enhancements to different areas in the system should not result in major architecture/design changes Requirement Engineering: Muzaffar Iqbal Farooqi
23
Requirement Engineering: Muzaffar Iqbal Farooqi
Maintainability Maintainability is the ease with which a software system or component can be modified to correct faults, improve performance or other attributes, or adapt to a changed environment. Maintainability relates to ease with which system can be repaired and components can be replaced In some cases, maintainability involves a process of continuous improvement Requirement Engineering: Muzaffar Iqbal Farooqi
24
Requirement Engineering: Muzaffar Iqbal Farooqi
Maintainability... In requirement engineering, maintainability is the ease with which a product can be maintained in order to... correct defects or their cause, repair or replace faulty components without having to replace still-working parts, prevent unexpected breakdowns, maximize a product's useful life, maximize efficiency, reliability, and safety, meet new requirements, make future maintenance easier, or cope with a changed environment. Requirement Engineering: Muzaffar Iqbal Farooqi
25
Requirement Engineering: Muzaffar Iqbal Farooqi
Security Security requirements deal with the ability of the system to: prevent intrusion, allow access to the right users, and protect data integrity (while stored and during transmission). Security requirements can be captured in terms of the following factors: Authentication: requirements for users or other systems to identify their credentials in order to access services for the system Authorization: roles different users play and the access levels that the system provides for each of these roles Analysis of existing mechanisms for security policies Data exchange: kind of protection needed for data during transmission; critical data that needs to be protected when it is exchanged across the network Data Storage: kind of protection needed for data that is stored; critical data that needs to be stored in encrypted form Requirement Engineering: Muzaffar Iqbal Farooqi
26
Non-Functional Requirement - ISO 9126
ISO non-functional requirements linked to “quality in use”. Quality in use - users experience when using the system. Requirement Engineering: Muzaffar Iqbal Farooqi
27
Requirement Engineering: Muzaffar Iqbal Farooqi
ISO 9126 Quality in use Requirement Engineering: Muzaffar Iqbal Farooqi
28
Classification of Non-functional requirements (Sommerville)
Requirement Engineering: Muzaffar Iqbal Farooqi
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.