Chapter 19 품질 개념 Quality Concepts

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

Defining Quality SCM 494 – Managing for Quality Dr. Tibben-Lembke.
Chapter 2 The Software Process
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 6/e (McGraw-Hill 2005). Slides copyright 2005 by Roger Pressman.1.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.1.
Overview Lesson 10,11 - Software Quality Assurance
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
CSEB233 Fundamentals of Software Engineering
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
CSEB233 Fundamentals of Software Engineering Module 7: Software Quality Management Badariah Solemon 2010.
Chapter 9 Introduction to Quality. Management 3620Chapter 9 Introduction to Quality9-2 Different Ways to Define Quality User-based quality –defined by.
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
Developed by Reneta Barneva, SUNY Fredonia Quality Concepts (Chapter 14)
Software Quality SEII-Lecture 15
Software Project Management Lecture # 8. Outline Chapter 25 – Risk Management  What is Risk Management  Risk Management Strategies  Software Risks.
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.
CSEB233: Fundamentals of Software Engineering Software Quality Management.
Software Project Management Lecture # 8. Outline Earned Value Analysis (Chapter 24) Topics from Chapter 25.
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
CS3100 Software Project Management Week 26 - Quality Dr Tracy Hall.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
Teaching material for a course in Software Project Management & Software Engineering – part II.
Quality Control Project Management Unit Credit Value : 4 Essential
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Software Requirements Engineering: What, Why, Who, When, and How
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Software Project Management Lecture # 11. Outline Quality Management (chapter 26 - Pressman)  What is quality?  Meaning of Quality in Various Context.
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering - I
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.
Chapter 4 프로세스 모델 Process Models
1 TenStep Project Management Process ™ PM00.9 PM00.9 Project Management Preparation for Success * Manage Quality *
Chapter 3: Software Project Management Metrics
Testing dan Implementasi
1 Project Management C53PM Session 3 Russell Taylor Staff Work-base – 1 st Floor
Software Project Management Lecture # 9. Outline Chapter 25 – Risk Management  What is Risk Management  Risk Management Strategies  Software Risks.
1 Lecture 12: Chapter 16 Software Quality Assurance Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman Slides.
Software Engineering Lecture 8: Quality Assurance.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Welcome to Software Project Management. CONVENTIONAL SOFTWARE MANAGEMENT The BEST and WORST thing about software is its flexibility. 1.Software development.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
Q uality C oncepts. WHAT IS QUALITY ? ‘Quality’ is now a familiar word.  When most people talk about the quality of an object, or service, they are normally.
Ashima Wadhwa.  Probably the most time-consuming project management activity.  Continuous activity from initial concept through to system delivery.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 8/e (McGraw-Hill, 2014). Slides copyright 2014 by Roger Pressman.1.
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter 14 Quality Concepts
Quality Concepts.
Chapter 19 Quality Concepts
Software Verification and Validation
Chapter 18 Maintaining Information Systems
Quality Quality is “a characteristic or attribute of something.”
Software Quality Engineering CS- 449
Software Quality Engineering CS- 449
Software Testing and Maintenance Maintenance and Evolution Overview
How does the “Iron Triangle” relate to project management?
Chapter 14 Quality Concepts
Chapter 14 Quality Concepts
Chapter # 1 Overview of Software Quality Assurance
QUALITY PART FOUR Chapter Nine Introduction to Quality Chapter Ten
3. Software Quality Management
Presentation transcript:

Chapter 19 품질 개념 Quality Concepts 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s Approach, 8/e”

Software Quality In 2005, ComputerWorld [Hil05] lamented that “bad software plagues nearly every organization that uses computers, causing lost work hours during computer downtime, lost or corrupted data, missed sales opportunities, high IT support and maintenance costs, and low customer satisfaction. A year later, InfoWorld [Fos06] wrote about the “the sorry state of software quality” reporting that the quality problem had not gotten any better. Today, software quality remains an issue, but who is to blame? 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.

Quality—A Pragmatic View The transcendental view argues that quality is something that you immediately recognize, but cannot explicitly define. The user view sees quality in terms of an end user’s specific goals. If a product meets those goals, it exhibits quality. The manufacturer’s view defines quality in terms of the original specification of the product. If the product conforms to the spec, it exhibits quality. The product view suggests that quality can be tied to inherent characteristics (e.g., functions and features) of a product. Finally, the value-based view measures quality based on how much a customer is willing to pay for a product. In reality, quality encompasses all of these views and more.

Software Quality For software, two kinds of quality may be encountered: Quality of design encompasses the degree to which the design meets the functions and features specified in the requirements model. Quality of conformance focuses on the degree to which the implementation follows the design and the resulting system meets its requirements and performance goals. A more intuitive relationship to consider User satisfaction = compliant product + good quality + delivery within budget and schedule

Software Quality Software quality can be defined as: An effective software process applied in a manner that creates a useful product that provides measurable value for those who produce it and those who use it.

Effective Software Process An effective software process establishes the infrastructure that supports any effort at building a high quality software product. The management aspects of process create the checks and balances that help avoid project chaos—a key contributor to poor quality. Software engineering practices allow the developer to analyze the problem and design a solid solution—both critical to building high quality software. Finally, umbrella activities such as change management and technical reviews have as much to do with quality as any other part of software engineering practice.

Useful Product A useful product delivers the content, functions, and features that the end-user desires But as important, it delivers these assets in a reliable, error free way. A useful product always satisfies those requirements that have been explicitly stated by stakeholders. In addition, it satisfies a set of implicit requirements (e.g., ease of use) that are expected of all high quality software.

Adding Value By adding value for both the producer and user of a software product, high quality software provides benefits for the software organization and the end-user community. The software organization gains added value because high quality software requires less maintenance effort, fewer bug fixes, and reduced customer support. The user community gains added value because the application provides a useful capability in a way that expedites some business process. The end result is: (1) greater software product revenue, (2) better profitability when an application supports a business process, and/or (3) improved availability of information that is crucial for the business.

Quality Dimensions (1/2) David Garvin [Gar87] suggests: 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? 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?

Quality Dimensions (2/2) 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.

The Software Quality Dilemma If you produce a software system that has terrible quality, you lose because no one will want to buy it. If on the other hand you spend infinite time, extremely large effort, and huge sums of money to build the absolutely perfect piece of software, then it's going to take so long to complete and it will be so expensive to produce that you'll be out of business anyway. Either you missed the market window, or you simply exhausted all your resources. So people in industry try to get to that magical middle ground where the product is good enough not to be rejected right away, such as during evaluation, but also not the object of so much perfectionism and so much work that it would take too long or cost too much to complete. [Bertrand Meyer, the creator of Eiffel object-oriented programming language]

“Good Enough” Software Good enough software delivers high quality functions and features that end users desire, but at the same time it delivers other more obscure or specialized functions and features that contain known bugs. Arguments against “good enough.” It is true that “good enough” may work in some application domains and for a few major software companies. After all, if a company has a large marketing budget and can convince enough people to buy version 1.0, it has succeeded in locking them in. If you work for a small company be wary of this philosophy. If you deliver a “good enough” (buggy) product, you risk permanent damage to your company’s reputation. You may never get a chance to deliver version 2.0 because bad buzz may cause your sales to plummet and your company to fold. If you work in certain application domains (e.g., real time embedded software), or build application software that is integrated with hardware, delivering software with known bugs can be negligent and open your company to expensive litigation.

Cost of Quality Prevention costs include the cost of (1) quality planning, (2) added technical activities to develop complete requirements and design models, (3) test planning, and (4) training associated with these activities. Internal failure costs are incurred when you detect an error in a product prior to shipment, and include: (1) rework, (2) repair (due to inadvertent errors generated during rework), (3) failure mode analysis External failure costs are associated with defects found after the product has been shipped to the customer. (1) complaint resolution, (2) product return and replacement, (3) help line support, and (4) warranty work

Relative Cost of Finding and Correcting Errors and Defects

Impact of Management Decisions Estimation decisions – irrational delivery date estimates cause teams to take short-cuts that can lead to reduced product quality Scheduling decisions – failing to pay attention to task dependencies when creating the project schedule can lead to reduced product quality Risk-oriented decisions – reacting to each crisis as it arises rather than building in mechanisms to monitor risks may result in products having reduced quality

Achieving Software Quality (I) Software quality is the result of good project management and solid engineering practice that are applied within the context of four broad activities: Software engineering methods – To build high quality software you must understand the problem to be solved and be capable of creating a quality design that conforms to the problem requirements Eliminating architectural flaws during design can improve quality

Achieving Software Quality (II) Project management – project plan includes explicit techniques for quality and change management Quality control - series of inspections, reviews, and tests used to ensure conformance of a work product to its specifications Quality assurance – the infrastructure that supports the aforementioned three actions. It consists of the auditing and reporting procedures that assess the effectiveness of quality control actions. It is to provide management and technical staff with the data about product quality, thereby gaining insight and confidence that actions to achieve product quality are working.

Backup Slides

Quality—A Philosophical View Robert Persig [Per74] commented on quality: Quality . . . you know what it is, yet you don't know what it is. But that's self-contradictory. But some things are better than others, that is, they have more quality. But when you try to say what the quality is, apart from the things that have it, it all goes poof! There's nothing to talk about. But if you can't say what Quality is, how do you know what it is, or how do you know that it even exists? If no one knows what it is, then for all practical purposes it doesn't exist at all. But for all practical purposes it really does exist. What else are the grades based on? Why else would people pay fortunes for some things and throw others in the trash pile? Obviously some things are better than others . . . but what's the betterness? . . . So round and round you go, spinning mental wheels and nowhere finding anyplace to get traction. What the hell is Quality? What is it?

Measuring Quality General quality dimensions and factors are not adequate for assessing the quality of an application in concrete terms Project teams need to develop a set of targeted questions to assess the degree to which each application quality factor has been satisfied Subjective measures of software quality may be viewed as little more than personal opinion Software metrics (cf. Chapter 30) represent indirect measures of some manifestation of quality and attempt to quantify the assessment of software quality

Quality and Risk “People bet their jobs, their comforts, their safety, their entertainment, their decisions, and their very lives on computer software. It better be right.” SEPA Chapter 1 Example: Throughout the month of November, 2000 at a hospital in Panama, 28 patients received massive overdoses of gamma rays during treatment for a variety of cancers. In the months that followed, five of these patients died from radiation poisoning and 15 others developed serious complications. What caused this tragedy? A software package, developed by a U.S. company, was modified by hospital technicians to compute modified doses of radiation for each patient.

Negligence and Liability The story is all too common. A governmental or corporate entity hires a major software developer or consulting company to analyze requirements and then design and construct a software-based “system” to support some major activity. The system might support a major corporate function (e.g., pension management) or some governmental function (e.g., healthcare administration or homeland security). Work begins with the best of intentions on both sides, but by the time the system is delivered, things have gone bad. The system is late, fails to deliver desired features and functions, is error-prone, and does not meet with customer approval. Litigation ensues.

Low Quality Software Low quality software increases risks for both developers and end users When systems are delivered late, fail to deliver functionality, and does not meet customer expectations, litigation ensues Low quality software is easier to hack and can increase the security risks for the application once deployed A secure system cannot be built without focusing on quality (security, reliability, dependability) during the design phase Low quality software is liable to contain architectural flaws as well as implementation problems (bugs)