Non Functional Requirements (NFRs)

Slides:



Advertisements
Similar presentations
Chapter 19: Network Management Business Data Communications, 5e.
Advertisements

Software Quality Assurance Plan
Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.
Chapter 19: Network Management Business Data Communications, 4e.
The Architecture Design Process
1 ITC242 – Introduction to Data Communications Week 12 Topic 18 Chapter 19 Network Management.
Software Requirements
Non-Functional Requirements
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
Non-functional requirements
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
Other Quality Attributes Other Important Quality attributes Variability: a special form of modifiability. The ability of a system and its supporting artifacts.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Chapter 1 Introduction to Databases. 1-2 Chapter Outline   Common uses of database systems   Meaning of basic terms   Database Applications  
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
IS550: Software requirements engineering Dr. Azeddine Chikh 2. Functional and non-functional requirements.
CSE 303 – Software Design and Architecture
Software Requirements Specification Document (SRS)
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.
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.
MANAGEMENT INFORMATION SYSTEM
TOTAL QUALITY MANAGEMENT
Chapter 19: Network Management
7. Modular and structured design
Software Project Configuration Management
EKT 421 SOFTWARE ENGINEERING
Classifications of Software Requirements
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Rekayasa Perangkat Lunak Part-10
Rekayasa Perangkat Lunak
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Chapter 4 – Requirements Engineering
Presentation on Software Requirements Submitted by
Chapter 4 Requirements Engineering (1/3)
Chapter 4 – Requirements Engineering
Chapter 5 – Requirements Engineering
The Development Process of Web Applications
System Design Ashima Wadhwa.
Usability engineering
APARTMENT MAINTENANCE SYSTEM
Usability engineering
Software Design and Architecture
Developing Information Systems
The Client/Server Database Environment
Introduction to Operating System (OS)
SNS College of Engineering Coimbatore
CSC480 Software Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Rekayasa Perangkat Lunak
UNIT II.
Charakteristiky kvality
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Computer Fundamentals
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Chapter 2: Operating-System Structures
Software Requirements Specification (SRS) Template.
Chapter 2: Operating-System Structures
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
ISO/IEC Systems and software Quality Requirements and Evaluation
Presentation transcript:

Non Functional Requirements (NFRs) Muzaffar Iqbal Farooqi

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

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

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

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

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

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

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

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

Requirement Engineering: Muzaffar Iqbal Farooqi Common NFRs Accessibility Availability Performance Portability Quality Response time Reusability Safety Security Usability Maintainability Requirement Engineering: Muzaffar Iqbal Farooqi

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Non-Functional Requirement - ISO 9126 ISO 9126 - non-functional requirements linked to “quality in use”. Quality in use - users experience when using the system. Requirement Engineering: Muzaffar Iqbal Farooqi

Requirement Engineering: Muzaffar Iqbal Farooqi ISO 9126 Quality in use Requirement Engineering: Muzaffar Iqbal Farooqi

Classification of Non-functional requirements (Sommerville) Requirement Engineering: Muzaffar Iqbal Farooqi