Software Quality. A Definition of Quality. Definition of Software Quality. Definition of Implicit Requirements

Similar documents
Software Quality Management

Software Quality Management

Software Quality. Lecture 4 CISC 323. Winter 2006

Software Quality Management

Software Quality Factors

Course 3. Software Quality Assurance & Software Quality Models. S. Motogna - Software Quality

Chapter 6. Software Quality Management & Estimation

Measuring and Assessing Software Quality

Software product quality assurance


Compilation of Software Quality Factors and Criteria along with their Description for a Quality Product

JOURNAL OF OBJECT TECHNOLOGY

Associate Professor, FCA, Manav Rachna International University, Faridabad, Haryana, India

KNOWLEDGE AREA: SOFTWARE QUALITY

Lecture 6: Non-Functional Requirements (NFRs)

Software Quality Models: A Comparative Study

Chapter 5 Software Project Planning

Quality assurance and SAS application development Search And Solve

International Standard ISO/IEC 9126

R.POONKODI, ASSISTANT PROFESSOR, COMPUTER SCIENCE AND ENGINEERING, SRI ESHWAR COLLEGE OF ENGINEERING, COIMBATORE.

Quality Management. Managing the quality of the design process and final

CSC 408F/CSC2105F Lecture Notes. Quality Matters

Software Engineering. What is Software Engineering? What does SE do? CS / COE 1530

QUALITY ASSURANCE PLAN OKLAHOMA DEPARTMENT OF HUMAN SERVICES ENTERPRISE SYSTEM (MOSAIC PROJECT)

Lecture 2: Software Quality Factors, Models and Standards. Software Quality Assurance (INSE 6260/4-UU) Winter 2016

Software Quality Management

Software Quality Management

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Verification of Quality Requirement Method Based on the SQuaRE System Quality Model

GAIA. GAIA Software Product Assurance Requirements for Subcontractors. Name and Function Date Signature 15/09/05 15/09/05 15/09/05 15/09/05 15/09/05

A Cost-effective Methodology for Achieving ISO26262 Software Compliance. Mark Pitchford

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

Software Quality. Unit 6: System Quality Requirements

Non-Functional Requirements (NFRs)

T Software Testing and Quality Assurance Test Planning

T52-Software Engineering

Independent Verification and Validation (IV&V)

Overview of the 2nd Edition of ISO 26262: Functional Safety Road Vehicles

3C05: Software Quality. Unit 8: Software Quality. What is Quality?

Software Quality Assurance

Quality. And Software Product Management. Autumn 2017 CSM14104 Software Product Management 1

Requirements Gathering using Object- Oriented Models

SOFTWARE SYSTEM ENGINEERING: A TUTORIAL

The Need to Evaluate Strategy and Tactics before the Software Development Process Begins

ASSESSING QUALITY IN SOFTWARE ENGINEERING: A PRAGMATIC APPROACH. University of Pretoria

Research on software systems dependability at the OECD Halden Reactor Project

On Some Quality Issues of Component Selection in CBSD

Quality Standards in Open Source Lifecycle

Software Quality Assurance Framework (SQA) Yujuan Dou 窦玉娟 2008/11/28

INTRODUCTION TO QUALITY ASSURANCE

Quality Commitment. Quality Management System Manual

Safety cannot rely on testing

Software Metrics & Software Metrology. Alain Abran. Chapter 10 Analysis of Quality Models and Measures in ISO 9126

Systems Engineering (SE)

Safety assurance for a signalling system based on quality management

Software Quality Assurance: A Practical Perspective. Software Quality Assurance: A Practical Perspective. Software Measurement

Disciplined Software Testing Practices

Identifying Relevant Product Quality Characteristics in the Context of Very Small Organizations

ISO 9001:2015 Expectations

Basics of Software Engineering. Carmen Navarrete

For more Current papers visit Quantitative methods for assessing the quality of proposed architectural designs

Work Plan and IV&V Methodology

The Complete Guide to FDA Design Controls

Verifying and Validating Software in a Regulated Environment

Subject : Computer Science. Paper : Software Quality Management. Module : Quality Management Activities Module No: CS/SQM/15

Software Project Management

ehealth Suisse Checklists Addendum to the guideline for app developers, manufacturers and distributors

PMP Exam Preparation Course Project Scope Management

Test Workflow. Michael Fourman Cs2 Software Engineering

To get the most out of this tutorial, it is good to have a basic understanding of the Software Development Life Cycle (SDLC).

Space Product Assurance

Quality Manual. This manual complies with the requirements of the ISO 9001:2015 International Standard. AW2 Logistics, Inc Ace Industrial Dr.

Evaluating Software Evolvability Ivica Crnkovic Mälardalen University Västerås, Sweden

Elements of a Good Information System. Kyle Duarte Antalya, Turkey December 2013

SE Notes Mr. D. K. Bhawnani, Lect (CSE) BIT

PMP Practice Questions

Exam questions- examples

International Journal of Industrial Engineering Research and Development (IJIERD), ISSN 0976 INTERNATIONAL JOURNAL OF INDUSTRIAL ENGINEERING

ISO/IEC TR Software engineering Product quality Part 3: Internal metrics. Génie du logiciel Qualité des produits Partie 3: Métrologie interne

Overview of the 2nd Edition of ISO 26262: Functional Safety Road Vehicles

1. Quality Right First Time for product and services will ensure fulfillment of external and internal Customers satisfaction. 2. It is a coordinated a

Exploring the Impact of Systems Architecture and Systems Requirements on Systems Integration Complexity

Chapter 24 - Quality Management. Chapter 24 Quality management

Requirements Analysis and Design Definition. Chapter Study Group Learning Materials

A Vision of an ISO Compliant Company by Bruce Hawkins, MRG, Inc.

B.H. Far

A Review Paper on Software Testing

Assistant Professor, Integral University, Lucknow, India. Quality Parameters. Correctness. Efficiency. Portability. Usability.

SQA CONCEPT and DEFINITION. 12/08/2006 SE7161 Software Quality Assurance - HLZ 1

Software Engineering

Capability Maturity Model for Software (SW-CMM )

SOFTWARE QUALITY ASSURANCE (SQA) Chapter 1

Introduction to Software Engineering

Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling, tracking, and monitoring a comple

A Guide to the Business Analysis Body of Knowledge (BABOK Guide), Version 2.0 Skillport

FUNDAMENTALS OF ENGINEERING DESIGN

REQUIREMENTS FOR SAFETY RELATED SOFTWARE IN DEFENCE EQUIPMENT PART 1: REQUIREMENTS

On various testing topics: Integration, large systems, shifting to left, current test ideas, DevOps

Quality Assurance. QA Programs for Local Health Departments

A SOFTWARE MAINTAINABILITY ATTRIBUTES MODEL

Transcription:

Definition of Software Quality Software Quality The Ultimate Goal of Software Engineering Software must conformance to explicit and implicit requirements if it is to be considered to be of good quality. Explicit requirements come in the form of documented functional and performance requirements documented development standards Definition of Implicit Requirements Those characteristics of software that everyone expects of all professionally developed software. These expectations are rarely, if ever, formally documented. Testing for these requirements will be difficult because it is necessary to search for something that might not be there and nobody has documented that it must be there! A Definition of Quality A definition of quality should emphasize three important points. 1

Quality Definition #1 Software requirements are the foundation for everything else in the development process. Without a stated goal state, one can never evaluate how closely the finished product complies with the expected product. Verification and Validation Verification is the activity of evaluating whether the system is correctly built, i.e. that it fulfills its stated requirements. Validation is the activity of evaluating whether the right system has been built, i.e. that it fulfills the user's needs. Quality Definition #2 Specified standards define a set of development criteria that guide the manner in which software is developed. If standards are used then they must be followed. Quality Definition #3 There is always a set of implicit requirements that clients/users expect but can rarely articulate during the requirements phase of development. If software conforms to its explicit requirements but fails to meet implicit requirements, then it often fails to be successful in the long term (and sometimes even in the short term!). 2

Software Quality Models and Factors ISO 9126 Quality Model A standard for evaluating software quality. Based on McCall s model of software quality. McCall s Software Quality Model McCall s decompositional approach to modeling software quality was developed in 1977. McCall, J.A., Richards, P.K., and Walters, G.F., Factors in Software Quality, RADC TR-77-369, 1977, Vols I, II, III, US Rome Air Development Center Reports. The McCall model is an example of a fixed model approach to software quality. Fixed Model Approach Assumption Published model describes all quality factors needed to monitor a project and we accept the associated criteria and metrics. Process Collect appropriate data and apply the model to determine the quality of the product....the other type of approach is... 3

Define your own Model Approach Assumption The general philosophy that software quality can be decomposed into factors is accepted but no one model is adopted or followed completely. Process Meet with users/clients and reach a consensus on those quality factors that are important for your particular project and on the criteria and metrics and their relationship to quality. McCall s Software Quality Model There were three levels of decomposition in McCall s model: 1) Use 2) Factor factors that can be directly measured factors that can be measured only indirectly (e.g. usability and maintainability) 3) Criteria All criteria have a corresponding metric(s). The Top Level Use focused on three important aspects a) Product operation b) Product revision c) Product transition Product Operation Usability Integrity Efficiency Correctness Reliability 4

Product Revision Maintainability Testability Flexibility Product Transition Reusability Portability Interoperability ISO 9126 McCall model was used in 1992 as the basis for an international standard. ISO 9126 (ISO 1991) is called Software Product Evaluation: Quality Characteristics and Guidelines for their Use. Software Quality Definition In this standard, software quality is defined to be the totality of features and characteristics of a software product that bear on its ability to satisfy stated or implied needs. 5

ISO 9126 Software Quality Factors Quality is decomposed into six factors 1. Functionality 2. Reliability 3. Efficiency 4. Usability 5. Maintainability 6. Portability Functionality The software performs as per the requirements and specifications. Testing is used to verify that the requirements are met. Obviously this is the most basic of quality factors but can be problematic for large, complex software. Reliability Reliability is the capability of software to maintain its level of performance under stated conditions for a stated period of time. It is also defined as the probability of failure-free operation. Criteria include Accuracy Error tolerance Consistency Simplicity Efficiency We can measure efficiency indirectly by measuring the amount of time (execution efficiency) or storage (storage efficiency) needed when running the software through a particular compiler, under a specific OS, on a designated hardware architecture. Efficiency can be better understood by abstracting the software and subjecting it to measurement studies in a formal sense. 6

Usability Maintainability Usability is an attempt to define user friendliness. It can be measured in terms of: physical and intellectual skill required to learn the system time required to become moderately efficient in the use of the system the net increase in productivity over the system it replaces a subjective assessment of users' attitudes towards the system Software has a high degree of maintainability if it is easy to understand, enhance, and correct. Criteria include consistency, simplicity, conciseness, self-descriptiveness, and modularity. Maintainability cannot be measured directly. MTTC (mean time to change) is the time it takes to analyze, design, and implement the change. Maintainable programs have a lower MTTC. Portability Portability is a set of attributes that bear on the capability of software to be transferred from one environment to another. Criteria Self-descriptiveness Modularity Machine independence Software system independence What was left out? The factors in the McCall model that are not part of the basic set in ISO 9126 are: Integrity Correctness Testability Flexibility Reusability Interoperability 7

Integrity Integrity is the ability of a system to withstand attacks to its security. Criteria include access control and access audit. To measure integrity one must define: a) Threat: the probability that an attack will occur within a given time. b) Security: the probability that the attack of a specific type will be repelled. Correctness Correctness is the degree to which software performs its desired function. A common measure of correctness is defects per KLOC. Defects are caught: during regression testing reported by the user during beta testing or in regular use of the product Testability Testability can be defined as the probability that software will fail if it is faulty Criteria Simplicity Instrumentation Important testing measurements include Minimum number of test cases Test effectiveness ratio Flexibility Flexibility describes the ease with which the software can be used in various situations and environments. Criteria Expandability Generality Self-descriptiveness Modularity 8

Reusability Reusability is the ability of components of the software to be used in other applications. Criteria Generality Self-descriptiveness Modularity Machine independence Software system independence Interoperability Interoperability is the ability of the software to work with other software systems or to coexist without causing difficulties. Criteria Modularity Communications commonality Data commonality ISO 9126 as a Standard ISO 9126 claims that these are comprehensive and each can be refined through multiple levels of subcharacteristics. The standard does not, however, define attributes at the second level of refinement. This has lead to criticism of the standard as a useful mechanism for monitoring quality but ISO 9126 is an important milestone in quality measurement. ISO 9126 Evaluation Process Model Quality Requirement Definition Stated or implied needs Software Development ISO 9126 & other technical info Quality requirement specification Metric Selection Products Measurement Rating Level Definition Measured value Rating Rated value Managerial requirement Assessment Criteria Definition Result (acceptable or unacceptable) Assessment 9