Software Quality. Software Quality Assurance and Software Reuse. Three Important Points. Quality Factors



Similar documents
Darshan Institute of Engineering & Technology Unit : 7

SOFTWARE ENGINEERING

Software Engineering Compiled By: Roshani Ghimire Page 1

Quality Management. Lecture 12 Software quality management

copyright 1996, 2001, 2005 R.S. Pressman & Associates, Inc.

What do you think? Definitions of Quality

International Journal of Advance Research in Computer Science and Management Studies

Software Quality Assurance. Software Engineering: A Practitionerʼs Approach, 7/e by Roger S. Pressman

Software Engineering: Analysis and Design - CSE3308

Introduction to Software Engineering. 8. Software Quality

Service Delivery Module

Defining Quality Workbook. <Program/Project/Work Name> Quality Definition

Chap 1. Software Quality Management

Chap 1. Software Quality Management

Evaluation of the Iceland State Financial and Human Resource System REPORT OF THE INDIVIDUAL EVALUATOR. Annex 2 SYSTEM AND SOFTWARE QUALITY

Software Quality Management

Implementation of ANSI/AAMI/IEC Medical Device Software Lifecycle Processes.

CSC 408F/CSC2105F Lecture Notes

Software Quality Assurance

Oracle Insurance Policy Administration System Quality Assurance Testing Methodology. An Oracle White Paper August 2008

Software Quality Assurance Plan

Verification and Validation of Software Components and Component Based Software Systems

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

Keywords: SQA,Black Box Testing( BBT), White Box testing(wbt).

Essentials of the Quality Assurance Practice Principles of Testing Test Documentation Techniques. Target Audience: Prerequisites:

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

THE PROJECT MANAGEMENT KNOWLEDGE AREAS

CSTE Mock Test - Part I - Questions Along with Answers

Project Management Step Wise. Sunday, 4 November 12

Software Development: The Waterfall Model

FSW QA Testing Levels Definitions

How To Improve Software Quality

An Introduction to. Metrics. used during. Software Development

The Role of the Software Architect

Kunal Jamsutkar 1, Viki Patil 2, P. M. Chawan 3 (Department of Computer Science, VJTI, MUMBAI, INDIA)

Lecture 1: Introduction to Software Quality Assurance

Software Engineering. So(ware Evolu1on

System Specification. Objectives

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

Software Engineering 9.1. Quality Control

International Software Test Institute

Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE

CS 6290 I/O and Storage. Milos Prvulovic

How To Develop Software

Software Project Management Matrics. Complied by Heng Sovannarith

Software Testing Interview Questions

Chapter 9 Software Evolution

Process Models and Metrics

Peer Review Process Description

Manufacturing View. User View. Product View. User View Models. Product View Models

Knowledge Infrastructure for Project Management 1

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management

I. TABLE OF CONTENTS... 1

Software Engineering Question Bank

PROJECT SCOPE MANAGEMENT

SOFTWARE QUALITY MODELS: A COMPARATIVE STUDY

Camber Quality Assurance (QA) Approach

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

CDC UNIFIED PROCESS PRACTICES GUIDE

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Nova Software Quality Assurance Process

SOFTWARE PROJECT MANAGEMENT

Project Management Guidelines

Total Quality Management (TQM) Quality, Success and Failure. Total Quality Management (TQM) vs. Process Reengineering (BPR)

Peer Review Process Description

Surveying and evaluating tools for managing processes for software intensive systems

Project Risk Management: Independent Software QA Ensures Success

PROJECT QUALITY MANAGEMENT

Project Risks. Risk Management. Characteristics of Risks. Why Software Development has Risks? Uncertainty Loss

Systems Development Life Cycle (SDLC)

5.1 Project Control Overview

Software Engineering UNIT -1 OVERVIEW

General Problem Solving Model. Software Development Methodology. Chapter 2A

Solving Data Loss in Massive Storage Systems Jason Resch Cleversafe

CHAPTER 7 Software Configuration Management

STELLAR PHOENIX for Novell NetWare Data Recovery Software User Manual

The Role of Information Technology Studies in Software Product Quality Improvement

Standard Glossary of Terms Used in Software Testing. Version 3.01

Testing Process Models

Overview of STS Consulting s IV&V Methodology

Lecture 8 About Quality and Quality Management Systems

Minimizing code defects to improve software quality and lower development costs.

Certification Authorities Software Team (CAST) Position Paper CAST-26

Fundamentals of Measurements

Software Quality Assurance Plan. Introduction

Non-Functional Requirements

Software Requirements

Software Engineering. What is SE, Anyway? Based on Software Engineering, 7 th Edition by Ian Sommerville

MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

Example Software Development Process.

COMMONWEALTH OF PENNSYLVANIA DEPARTMENT S OF PUBLIC WELFARE, INSURANCE, AND AGING

Quality in Use: Meeting User Needs for Quality

Software Quality Assurance Plan

Quality Management. Managing the quality of the software process and products

ROEVER ENGINEERING COLLEGE Elambalur,Perambalur DEPARTMENT OF CSE SOFTWARE QUALITY MANAGEMENT

1. Introduction. Annex 7 Software Project Audit Process

Noorul Islam College of Engineering M. Sc. Software Engineering (5 yrs) IX Semester XCS592- Software Project Management

Software Project Audit Process

Software Engineering. What is a system?

Page 1 of 7 Effective Date: 12/18/03 Software Supplier Process Requirements

Transcription:

Software Quality Software Quality Assurance and Software Reuse Peter Lo Conformance to explicitly-stated functional and performance requirements, explicitly-documented development standards, and implicit characteristics that are expected of all professionally developed software. CS213 Peter Lo 2005 1 CS213 Peter Lo 2005 2 Three Important Points Quality will be measured with Software Requirements Specified standards define a set of development criteria that guide the manner in which software is engineered. The set of implicit requirements, such as good maintainability, must still be followed. Quality Factors Product Operations: A software product's operational characteristics Product Revision: Its ability to undergo change Produced Transition: Its adaptability to new environments CS213 Peter Lo 2005 3 CS213 Peter Lo 2005 4

Product Operations Correctness The extent to which a program satisfies its specification and fulfils the mission objectives. : Does it do what I want? Product Operations Reliability The extent to which a program can be expected to perform its intended function with required precision. : Does it do it accurately all the time? CS213 Peter Lo 2005 5 CS213 Peter Lo 2005 6 Product Operations Efficiency The amount of computing resources and code required by a program to perform a function. : Will it run on my hardware as well as it can? Product Operations Integrity The extent to which access to software or data by unauthorized persons can be controlled. Is it secure? CS213 Peter Lo 2005 7 CS213 Peter Lo 2005 8

Product Operations Usability The effort required to learn, operate, prepare input, and interpret output of a program. Is it designed for the user? Product Revision Maintainability The effort required to locate and fix an error in a program. Can I fix it? CS213 Peter Lo 2005 9 CS213 Peter Lo 2005 10 Product Revision Flexibility The effort required to modify an operational program. Can I change it? Product Revision Testability The effort required to test a program to ensure that it performs its intended function. Can I test it? CS213 Peter Lo 2005 11 CS213 Peter Lo 2005 12

Product Transition Portability The effort to transfer the program from one hardware and/or software system environment to another. Will I be able to use it on another machine? Product Transition Reusability The extent to which a program (or parts of a program) can be reused in other applicationsrelated to the packaging and scope of the functions that the program performs. : Will I be able to reuse some of the software? CS213 Peter Lo 2005 13 CS213 Peter Lo 2005 14 Product Transition Interoperability The effort required to couple one system to another. Will I be able to interface it with another system? Software Quality Assurance Software Quality Assurance (SQA) is a planned and systematic pattern of actions that are required to ensure quality in software. CS213 Peter Lo 2005 15 CS213 Peter Lo 2005 16

SQA Activities Application of Technical Methods Software Quality Assurance begins with a set of technical methods and tools that help the analyst to achieve a high-quality specification and the designer to develop a high-quality design. SQA Activities Conduct of Formal Technical Review Activity that accomplishes quality assessment for the specification and the design. The Formal Technical Review is a stylized meeting conducted by technical staff with the sole purpose of uncovering quality problems. CS213 Peter Lo 2005 17 CS213 Peter Lo 2005 18 SQA Activities Testing of Software Combines a multi-step strategy with a series of test case design methods that help ensure effective error detection. SQA Activities Enforcement of standards Degree in which this is applied varies from company to company. In many cases, standards are dictated by customers or regulatory mandates. In other situations, standards are self-imposed. CS213 Peter Lo 2005 19 CS213 Peter Lo 2005 20

SQA Activities Control of Change Every change to software has the potential of introducing errors or creating side effects that propagate errors. The change control process thus contributes directly to software quality by formalizing requests for change, evaluating the nature of change, and controlling the impact of change. SQA Activities Measurement Track software quality and assess the impact of methodological and procedural changes on improved software quality. CS213 Peter Lo 2005 21 CS213 Peter Lo 2005 22 SQA Activities Record keeping and recording Collection and dissemination of SQA information. The results of reviews, audits, change control, testing, and other SQA activities must become part of a historical record for a project and should be disseminated to the development staff on a need-to-know basis. Formal Technical Reviews Reviews are applied at various points during software development and serve to uncover errors that can then be removed. Formal technical review is a class of reviews that include walkthroughs, inspections, round-robin reviews, and other small group technical assessments of software. It is a planned and controlled meeting attended by a group of diversified people. CS213 Peter Lo 2005 23 CS213 Peter Lo 2005 24

Purposes of Reviews Point out need improvements in the product of a single person or team. Confirm those parts of a product in which improvement is either not desired or not needed. Achieve technical work of more uniform, or at least more predictable, quality than can be achieved without reviews, in order to make technical work more manageable. Objectives of Formal Technical Review (FTR) To uncover errors in function, logic, or implementation for any representation of the software To verify that the software under review meets its requirements To ensure that the software has been represented according to predefined standards To achieve software that is developed in a uniform manner To make projects more manageable CS213 Peter Lo 2005 25 CS213 Peter Lo 2005 26 Guidelines for the Organization and Preparation of FTR Should involve between three and five people Advance preparation should occur but should not require more than 2 hours of work for each person The duration of the review meeting should be less than 2 hours Focus on a components of the software e.g. a portion of requirements specification, a detailed module design, a source code listing for a module Producer should report his/her progress Guidelines for the Organization and Preparation of FTR A recorder should actively record all issues as What was reviewed? Who reviewed it? What were the findings and conclusions? The attendees must make a decision at the end of the session as to Accept the product Reject the product Accept the product provisionally, subject to further modification CS213 Peter Lo 2005 27 CS213 Peter Lo 2005 28

Review Guidelines during the FTR Review the product, not the producer Set an agenda and maintain it Limit debate and rebuttal Enunciate problem areas, but don't attempt to solve every problem noted Take written notes Limit the number of participants and insist upon advance preparation Review Guidelines during the FTR Develop a checklist for each product that is likely to be reviewed Allocate resources and time schedule for Formal Technical Reviews Conduct meaningful training for all reviewers Review your early reviews CS213 Peter Lo 2005 29 CS213 Peter Lo 2005 30 Software Reliability Software Reliability is the probability of failure free operation of a computer program in a specified environment for a specified time. Software Availability is the probability that a program is operating according to requirements at a given point in time. Types of Failure Transient Occasional, or only with certain inputs. Permanent Occurs with all inputs. Recoverable Allows system to continue operation without operator intervention. CS213 Peter Lo 2005 31 CS213 Peter Lo 2005 32

Types of Failure Tradeoff between Cost and Reliability Unrecoverable Forces system to halt operation. Non-corrupting Doesn't destroy data. Corrupting Does destroy data. It demands more time and resources for testing and debugging. It requires more internal safety checks, and this makes programs larger and slower. CS213 Peter Lo 2005 33 CS213 Peter Lo 2005 34 Reliability Metric Mean Time Between Failure (MTBF) Reliability metric is an indicator of how broken a program is. Metrics are best weighted by the by severity of errors. A minor error every hour is better than a catastrophe every month. These metrics are not the same as counting bugs, but indicate different probabilities of happening. MTBF = MTTF + MTTR Measures how long a program is likely to run before it does something bad like crash. MTTF is the mean time to failure. MTTR is the mean time to repair. CS213 Peter Lo 2005 35 CS213 Peter Lo 2005 36

Availability Availability = MTTF/ (MTTF + MTTR) * 100% MTTF is the mean time to failure. MTTR is the mean time to repair. Probability of Failure on Demand Common for safety-critical systems e.g. a specification may be that there not exceed 1 chance in 10 10 that a missile gets through. CS213 Peter Lo 2005 37 CS213 Peter Lo 2005 38 Rate of Failure Occurrence Software Quality Assurance Approach This tells how many may occur in a given period e.g. 2 errors per 100 minutes. This is considered one of the best metrics At the low end of the scale, quality is the sole responsibility of the individual who may engineer, review, and test at any comfort level. At the high end of the scale, an SQA group is charged with the responsibility standards and procedures for achieving software quality and ensuring that each is followed. CS213 Peter Lo 2005 39 CS213 Peter Lo 2005 40

Benefits of Software Quality Assurance Software will have fewer latent defects, resulting in reduced effort and time spent during testing and maintenance Higher reliability will result in greater customer satisfaction Maintenance costs Overall life cycle cost of software is reduced Constraints of Software Quality Assurance Difficult to institute in small organizations, where available resources to perform the necessary activities are not available Software Quality Assurance represents cultural change - and change is never easy Software Quality Assurance required the expenditure of dollars that would not otherwise be explicitly budgeted to software engineering or quality assurance CS213 Peter Lo 2005 41 CS213 Peter Lo 2005 42 Software Reuse Modern, complex, high-quality computer-based systems must be built in very short time periods, and this demands a more organized approach to software reuse. Management Issues in Software Reuse Few companies and organizations have anything that even slightly resembles a comprehensive software reusability plan. Relatively little training is available to help software engineers and managers understand and apply reuse. Many software practitioners continue to believe that reuse is more trouble than it is worth. Many companies continue to encourage the use of methodologies that do not facilitate reuse Few companies provide incentives to produce reusable program components. CS213 Peter Lo 2005 43 CS213 Peter Lo 2005 44

Reusable Artifacts Project Plans Cost estimates Requirements models and specifications Source code User and technical documentation Human interfaces Data: e.g. tables, lists, record structures Test cases Impact of Reuse on Quality Software component that is developed for reuse would contain defects. These defects like these can be found and eliminated, and the reused component quality improves. Over time, the component becomes virtually defect free. CS213 Peter Lo 2005 45 CS213 Peter Lo 2005 46 Impact of Reuse on Productivity When reusable artifacts are applied throughout the software process, less time is spent creating the plans, models, documents, code and data that are normally required to create a deliverable system. The same level of functionality can be delivered to the customer with less input effort. Impact of Reuse on Cost The net savings for reuse can be estimated by the following: Net Savings = (Cost of the project developed from scratch) (sum of costs associated with reuse) (Actual cost of the software as delivered) CS213 Peter Lo 2005 47 CS213 Peter Lo 2005 48