Software Quality Engineering CS- 449

Slides:



Advertisements
Similar presentations
1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Advertisements

These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 6/e (McGraw-Hill 2005). Slides copyright 2005 by Roger Pressman.1.
Overview Lesson 10,11 - Software Quality Assurance
R&D SDM 1 Metrics How to measure and assess software engineering? 2009 Theo Schouten.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
Software Process and Product Metrics
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
DATE: 28/11/2012 INSTRUCTOR: HANIF ULLAH Tutorial 7.
CSEB233 Fundamentals of Software Engineering Module 7: Software Quality Management Badariah Solemon 2010.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Developed by Reneta Barneva, SUNY Fredonia Quality Concepts (Chapter 14)
Software Quality SEII-Lecture 15
Managing Software Quality
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
CS3100 Software Project Management Week 26 - Quality Dr Tracy Hall.
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.
Quality Control Project Management Unit Credit Value : 4 Essential
1 Software quality - Definition IEEE 1. The degree to which a system, component, or process meets specified requirements. 2. The degree to which a system,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
Slide 1V&V 10/2002 Software Quality Assurance Dr. Linda H. Rosenberg Assistant Director For Information Sciences Goddard Space Flight Center, NASA
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
Software Project Management Lecture # 11. Outline Quality Management (chapter 26 - Pressman)  What is quality?  Meaning of Quality in Various Context.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Testing and Quality Assurance Software Quality Assurance 1.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
About Quality Pre paired By: Muhammad Azhar. Scope What is Quality Quality Attributes Conclusion on software Quality Quality Concepts Quality Costs.
Chapter : 14 Quality Concepts
1 Lecture 11: Chapter 14 Quality Concepts Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides copyright.
Software quality factors
Quality Models in Software Engineering Literature: An Analytical and Comparative Study Rafa E. Al-Qutaish, PhD Al Ain University of Science and Technology.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CSE 303 – Software Design and Architecture
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Quality assurance SQA – SWE 333
Software Quality Prepared By: Rooshabh Kothari Assistant Professor T & P Co-ordinator CSE/IT Department 1.
Project Management Quality Management. Introduction Project planning Gantt chart and WBS Project planning Network analysis I Project planning Network.
SOFTWARE QUALITY ASSURANCE LECTURE # 2 SOFTWARE QUALITY.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
 System Requirement Specification and System Planning.
TOTAL QUALITY MANAGEMENT
Software Quality Control and Quality Assurance: Introduction
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
SEVERITY & PRIORITY RELATIONSHIP
Source & Courtesy: Doc. S. Dapkūnas
Software Quality Assurance Software Quality Factor
Chapter 18 Maintaining Information Systems
McCall’s Quality Factors
Lecture 15: Technical Metrics
Software Quality Assurance
Software Testing and Quality Assurance
Quality Quality is “a characteristic or attribute of something.”
Software engineering.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
مقدمه اي بر مهندسي نيازمنديها
Rekayasa Perangkat Lunak
Introduction to Software Testing
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software life cycle models
Software Quality Assurance Lecture 3
How does the “Iron Triangle” relate to project management?
Chapter # 1 Overview of Software Quality Assurance
ISO/IEC Systems and software Quality Requirements and Evaluation
Presentation transcript:

Software Quality Engineering CS- 449 Lecture # 3

Software quality dilemma Customers blame developers, arguing that sloppy practices lead to low-quality software. Developers blame customers (and other stakeholders), arguing that irrational delivery dates and a continuing stream of changes force them to deliver software before it has been fully validated.

Good enough Software ?

Quality Dimensions David Garvin [Gar87]: Performance Quality. Does the software deliver all content, functions, and features that are specified as part of the requirements model in a way that provides value to the end-user? Feature quality. Does the software provide features that surprise and delight first-time end- users? Reliability. Does the software deliver all features and capability without failure? Is it available when it is needed? Does it deliver functionality that is error free? Conformance. Does the software conform to local and external software standards that are relevant to the application? Does it conform to de facto design and coding conventions? For example, does the user interface conform to accepted design rules for menu selection or data input?

Quality Dimensions Durability. Can the software be maintained (changed) or corrected (debugged) without the inadvertent generation of unintended side effects? Will changes cause the error rate or reliability to degrade with time? Serviceability. Can the software be maintained (changed) or corrected (debugged) in an acceptably short time period. Can support staff acquire all information they need to make changes or correct defects? Aesthetics. Most of us would agree that an aesthetic entity has a certain elegance, a unique flow, and an obvious “presence” that are hard to quantify but evident nonetheless. Perception. In some situations, you have a set of prejudices that will influence your perception of quality.

Quality Models A Quality Model is defined as, “ the set of characteristics and the relationships between them which provides the basis for specifying quality requirements and evaluating quality” Standard quality models McCall ISO/IEC9126 IEEE Application or company specific quality models FURPS GQM Approach CUPRIMDSO

McCall’s Quality Factors Product Revision Maintainability -Can I fix it? Flexibility -Can I change it? Testability -Can I test it? Product Transition Portability -Will I be able to use on another machine? Reusability -Will I be able to reuse some of the software? Interoperability -Will I be able to interface it with another application? Product Operation Correctness -Does it do what I want? Reliability -Does it do it accurately all the time? Efficiency -Will it run on my machine as well as it can? Integrity -Is it secure? Usability -Can I run it?

McCall’s quality factor and quality criteria McCall, Richards, and Walters studied the concept of software quality in terms of two key concepts as follows: Quality factors, and Quality criteria A quality factor represents the behavioral characteristic of a system. Examples: correctness, reliability, efficiency, testability, portability, maintainability etc. A quality criterion is an attribute of a quality factor that is related to software development. Example: Modularity is an attribute of the architecture of a software system. A highly modular software allows designers to put cohesive components in one module, there by increasing the maintainability of the system.

Quality Criteria Some Quality Criteria from McCall’s Model are listed below: Accuracy: The precisions of computations and outputs Completeness: The degree to which the full implementation of the required functionalities has been achieved. Error Tolerance: The degree to which the continuity of operations is ensured under adverse conditions. Expandability: The degree to which software functions can be expanded. Hardware Independence: The degree to which the software is dependent on the underlying hardware Modularity: The provision of highly independent modules. Simplicity: The ease with which the software can be understood.

Quality Criteria Relationship Between Quality Factors and Quality Criteria Each quality factor is positively influenced by a set of quality criteria, and the same quality criterion impacts a number of quality factors. Example: Simplicity impacts reliability, usability, and testability. If an effort is made to improve one quality factor, another quality factor may be degraded. Example: Portable code may be less efficient. Some quality factors positively impact others. Example: An effort to improve the correctness of a system will increase its reliability.

Relationship between quality factors

Relationship between quality factors Examples of the relationships between quality factors Integrity vs. efficiency (inverse) The control access to data or software requires additional code and processing leading to a longer runtime and additional storage requirements. Usability vs. efficiency (inverse) Improvements in the human/computer interface may significantly increase the amount of code required. Maintainability vs. flexibility (direct) Maintainable code arises from code that is well structured. This will also assist any modifications or alterations that are required. Thus a direct relationship exists between these properties.

ISO 9126

F.U.R.P.S Robert Grady at Hewlett Packard proposed a model called as FURPS Model in 1987 and later extended by IBM as FURPS+ Functionality: represents all the system-wide functional requirements that we would expect to see described Usability: aesthetics, consistency, documentation Reliability: Availability, Accuracy, Recoverability Performance: response time, resource consumption, start up time, recovery time Supportability: can it be extended, adapted, corrected?

F.U.R.P.S Design Requirements E.g. a relational database is required Implementation requirement Constrains the coding or construction e.g. required standards, platform or implementation language Interface requirement A requirement to interact with an external item Physical requirement A physical constraint imposed on the hardware

Cost of Quality Cost of quality includes all costs incurred in the pursuit of quality or perform quality related work The "cost of quality" isn't just the price of creating a quality product or service. It's also the cost of NOT creating a quality product or service. Every time work is redone, the cost of quality increases. Obvious examples include: The reworking of a manufactured item. The retesting of a component.

Cost of Quality

Prevention cost Generally the most effective way to manage quality costs is to avoid having defects in the first place. It is much less costly to prevent a problem from ever happening than it is to find and correct the problem after it has occurred. Prevention costs support activities whose purpose is to reduce the number of defects from occurring. Examples are the costs of: quality planning testing equipment Staff training

Appraisal cost The costs associated with measuring, evaluating or auditing products or services to assure conformance to quality standards and performance requirements. Any defective parts and products should be caught as early as possible in the production process. Appraisal costs, which are sometimes called inspection costs, are incurred to identify defective products before the products are shipped to customers. These include the costs of: Inspections Testing Maintenance of test equipment Supervision of testing and inspection activities

Failure cost The costs resulting from products or services not conforming to requirements/design specifications or customer/user needs. Failure costs are divided into two categories. Internal Failure Costs External Failure Costs

Internal Failure Cost Internal failure costs result from identification of defects before they are shipped to customers. The more effective a company's appraisal activities the greater the chance of catching defects internally and the greater the level of internal failure costs. This is the price that is paid to avoid incurring external failure costs, which can be devastating. These include the costs of: Rework Repair Re-testing Rejected products

External Failure Cost Failure costs occurring after delivery or shipment of the product and during or after furnishing of a service to the customer. These include the costs of: Warranty Product return and replacement Lost sales arising from a reputation for poor quality

1-10-100 Rule for Cost of Quality 1-10-100 rule shows that one dollar spent on prevention will save 10 dollars on correction and 100 dollar on failure costs.

References Software engineering: A practitioner’s approach by Roger S. Pressman 8th edition Metrics and models in software quality engineering by Stephen H. Kan 2nd edition