Software Quality Management Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process.

Slides:



Advertisements
Similar presentations
Requirements Engineering Processes – 2
Advertisements

© Copyright 2006 FPT Software 1 © FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 How to work in Fsoft project Authors: KienNT.
1  1 =.
IntroductionIntroduction Copyright, 2000 © Jerzy R. Nawrocki Models and Analysis.
Extreme Programming Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture.
Effort and Schedule Estimation Copyright, 1999 © Jerzy R. Nawrocki Personal Software.
Introduction to PSP Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture.
S-Curves & the Zero Bug Bounce:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management.
Number bonds to 10,
Planning at CMM level 2 Copyright, 2000 © Jerzy R. Nawrocki Requirements Engineering.
Software Reviews Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Personal Software Process
Software Quality Metrics
CS 350: Introduction to Software Engineering Slide Set 5 Software Quality C. M. Overstreet Old Dominion University Spring 2006.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
Personal Software Process Software Quality CIS 376 Bruce R. Maxim UM-Dearborn.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
Copyright Course Technology 1999
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
The Planning Process Copyright, 2006 © L. Ouyang Liubo Ouyang Personal Software Process Lecture 11.
Planning and Tracking Software Quality.  What Is Software Quality?  Causes of Software Defects  What is Quality Assurance?  Improving the Software.
S oftware Q uality A ssurance Part One Reviews and Inspections.
Software Quality Assurance Activities
Disciplined Software Engineering Lecture #8 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Unit 8 Syllabus Quality Management : Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality.
1 9/19/2015ã 2007, Spencer Rugaber Personal Software Process (PSP) Application of CMM principles to individuals Developed by Watts Humphrey of the Software.
SE513 Software Quality Control Lecture01: Introduction to Software Quality Assurance Galin, SQA from Theory to Education Limited.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Chapter 6 : Software Metrics
Quality Control Project Management Unit Credit Value : 4 Essential
CS 350, slide set 6 M. Overstreet Old Dominion University Spring 2005.
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
© 1998 Carnegie Mellon UniversityTutorial The Personal Software Process (PSP) The overview of the PSP that follows has been built from material made.
CMM Level 2: Repeatable Copyright, 2000 © Jerzy R. Nawrocki Quality Management.
Software Project Management Lecture # 11. Outline Quality Management (chapter 26 - Pressman)  What is quality?  Meaning of Quality in Various Context.
Lecture 4 Software Metrics
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #8 Software Engineering.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 9 – Quality Management 1INFO636 Week 9.
1 The Personal Software Process Estimation Based on Real Data* * Would Martin Fowler approve? “I want you to take this personally…”
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
SE-280 Dr. Mark L. Hornick 1 Design and Code Reviews Review Checklists.
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
INFO 637Lecture #71 Software Engineering Process II Product Implementation INFO 637 Glenn Booker.
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
1 Software Quality Engineering. 2 Quality Management Models –Tools for helping to monitor and manage the quality of software when it is under development.
Introduction to Quality Management Copyright, 2000 © Jerzy R. Nawrocki Quality.
Introduction to the Personal Software Process. Overview Process Fundamentals PSP Concepts and Structure PSP Planning and Measurement PSP Quality Management.
Software Engineering Lecture 8: Quality Assurance.
Project Management Quality Management. Introduction Project planning Gantt chart and WBS Project planning Network analysis I Project planning Network.
Requirements Engineering Lecture 13
Requirements Engineering Lecture 4
Software Verification and Validation
Personal Software Process Team Software Process
Software Economics Phase Yield
Quality Quality is “a characteristic or attribute of something.”
Software Inspections and Testing
SQA for Individuals based on
Quality Measurable characteristic Cyclomatic complexity Cohesion
Chapter # 1 Overview of Software Quality Assurance
Presentation transcript:

Software Quality Management Copyright, 1999 © Jerzy R. Nawrocki Personal Software Process Lecture 12

J. Nawrocki, PSP, Lecture 12 From the previous lecture 1 Introduction 2 Management plan 3 Quality plan 4 Purchasing plan 5 Development plan 6 Test plan 7 Installation and delivery 8 Product management 9 Maintenance 10 The project plan

J. Nawrocki, PSP, Lecture 12 From the previous lecture A good plan should be: complete (forms)complete (forms) accessible (a proper place & format)accessible (a proper place & format) clear (readable)clear (readable) specific (what, when, by whom, at what costs)specific (what, when, by whom, at what costs) precise (unit of time)precise (unit of time) accurate (random errors - no problem)accurate (random errors - no problem)

J. Nawrocki, PSP, Lecture 12 Introduction What is software quality ? Is quality an important issue ? How to improve quality ?

J. Nawrocki, PSP, Lecture 12 Software quality American Heritage Dictionary: a characteristic or attribute of something Słownik języka polskiego: właściwość, rodzaj, gatunek, wartość

J. Nawrocki, PSP, Lecture 12 Software quality Philip Crosby83: conformance to requirements

J. Nawrocki, PSP, Lecture 12 Software quality Quality of design Quality of conformance

J. Nawrocki, PSP, Lecture 12 Software quality Quality control product-oriented a part of the manufacturing process passive inspections, reviews, tests

J. Nawrocki, PSP, Lecture 12 Software quality Quality assurance process-oriented a part of the management process active audits and reports

J. Nawrocki, PSP, Lecture 12 Software quality Quality management What level of quality do we need ? How quality is important for our business ? How much is it going to cost ?

J. Nawrocki, PSP, Lecture 12 Software quality Product quality Process qualityProduct quality Process quality The user of the PSP is the programmerThe user of the PSP is the programmer The main requirement: to produce a quality softwareThe main requirement: to produce a quality software Other requirements: efficiency, ease of learning,..Other requirements: efficiency, ease of learning,.. I like that process..

J. Nawrocki, PSP, Lecture 12 Finding and fixing defects The cost elements: Determining that there is a problemDetermining that there is a problem Isolating the source of the problemIsolating the source of the problem Determining exactly what is wrongDetermining exactly what is wrong Fixing the requirements as neededFixing the requirements as needed Fixing the design as neededFixing the design as needed Fixing the implementation as neededFixing the implementation as needed

J. Nawrocki, PSP, Lecture 12 Finding and fixing defects The cost elements (contd.): Inspecting the fixInspecting the fix Testing the fix to ensure it fixes the identified problemTesting the fix to ensure it fixes the identified problem Testing the fix to ensure it doesnt case other problemsTesting the fix to ensure it doesnt case other problems Changing the documentation as need to reflect the fixChanging the documentation as need to reflect the fix

J. Nawrocki, PSP, Lecture 12 Some fix time data The relative times to identify the defects (TRW): during requirements: 1 during design: during coding: 10 in development test: in acceptance test: during operation:

J. Nawrocki, PSP, Lecture 12 Some fix time data The relative time to identify defects (IBM): during design reviews: 1during design reviews: 1 during code inspections: 20during code inspections: 20 during machine test: 82during machine test: 82

J. Nawrocki, PSP, Lecture 12 Some fix cost data Relative costs to identify software defects (IBM): during design: 1.5during design: 1.5 prior to coding: 1prior to coding: 1 during coding: 1.5during coding: 1.5 prior to test: 10prior to test: 10 during test: 60during test: 60 in field use: 100in field use: 100

J. Nawrocki, PSP, Lecture 12 Some fix cost data JPL, average cost per defect: inspections: $90 - $120inspections: $90 - $120 tests: $10 000tests: $10 000Conclusions: Remove most of the defects before testing

J. Nawrocki, PSP, Lecture 12 A case study - problem 5-person team5-person team Estimated size: LOC in C++Estimated size: LOC in C++ Requirements + prototyping: 10 monthsRequirements + prototyping: 10 months High level design: 3 monthsHigh level design: 3 months Estimated completion time: 21 monthsEstimated completion time: 21 months Integration and system tests: to start in 5 monthsIntegration and system tests: to start in 5 months Testing should take 3 monthsTesting should take 3 months Inspections would cost another 3 monthsInspections would cost another 3 months Can we afford to inspect specification before starting implementation ?Can we afford to inspect specification before starting implementation ?

J. Nawrocki, PSP, Lecture 12 A case study - problem How did we get the 3-month testing estimate ? Brooks72: large software projects are about half done when integration starts. More realistic schedule: 2 x 18 = 36 months 2 x 18 = 36 months

J. Nawrocki, PSP, Lecture 12 A case study - testing An experienced software engineer injects ~ 100 defects per KLOCAn experienced software engineer injects ~ 100 defects per KLOC Half these defects are found by the compilerHalf these defects are found by the compiler 50 KLOC x 50 defects / KLOC = defects50 KLOC x 50 defects / KLOC = defects Hours to find a defect (industry data): Hours to find a defect (industry data): defects x 8 hours/defect = hours2 500 defects x 8 hours/defect = hours 360 days x 11 hours/day = ~ hours360 days x 11 hours/day = ~ hours To test the system 5 programmers would have to work 360 days, 11 hours per dayTo test the system 5 programmers would have to work 360 days, 11 hours per day

J. Nawrocki, PSP, Lecture 12 A case study - inspections The yield of the review or inspection: ~ 70%The yield of the review or inspection: ~ 70% Average cost of inspections: 0.5 hours/defectAverage cost of inspections: 0.5 hours/defect 70% of defects = defects70% of defects = defects Inspection time: defects x 0.5 hours/defect = 875 hoursInspection time: defects x 0.5 hours/defect = 875 hours Testing time: 750 defects x 8 hours/defect = hoursTesting time: 750 defects x 8 hours/defect = hours Total time: hours ~ 1/3 x hoursTotal time: hours ~ 1/3 x hours Reviews and inspections would save us 8 months out of 36 monthsReviews and inspections would save us 8 months out of 36 months

J. Nawrocki, PSP, Lecture 12 Cost-of-quality components Failure costs (diagnosing a failure, repairs)Failure costs (diagnosing a failure, repairs) Appraisal costs (evaluating the product to determine its quality)Appraisal costs (evaluating the product to determine its quality) Prevention costs (identifying the causes of defects; preventing them in the future)Prevention costs (identifying the causes of defects; preventing them in the future)

J. Nawrocki, PSP, Lecture 12 PSP COQ components Failure costs: the total time spent in compile and testFailure costs: the total time spent in compile and test Appraisal costs: the time spent in design and code reviews + any inspection timesAppraisal costs: the time spent in design and code reviews + any inspection times

J. Nawrocki, PSP, Lecture 12 PSP COQ measures Failure COQ = 100 * (compile time + test time) / total development timeFailure COQ = 100 * (compile time + test time) / total development time Appraisal COQ = 100 * (design review time + code review time) / total development timeAppraisal COQ = 100 * (design review time + code review time) / total development time Total COQ = Appraisal COQ + Failure COQTotal COQ = Appraisal COQ + Failure COQ Appraisal as a % of Total Quality Costs = 100 * Appraisal COQ / Total COQAppraisal as a % of Total Quality Costs = 100 * Appraisal COQ / Total COQ A/FR ratio = Appraisal to failure cost ratio = Appraisal COQ / Failure COQA/FR ratio = Appraisal to failure cost ratio = Appraisal COQ / Failure COQ

J. Nawrocki, PSP, Lecture 12 Developing a Quality Strategy Decide how to measure your processDecide how to measure your process Determine the quality methods that are most effective for youDetermine the quality methods that are most effective for you Periodically re-evaluate your strategy and set new goalsPeriodically re-evaluate your strategy and set new goals

J. Nawrocki, PSP, Lecture 12 Measuring the process Yield (step n) = 100 * r / (r + e) r - defects removed in step n e - defects escaping from step n Yield (overall) = 100 * R / I R - defects removed before compile I - defects injected before compile entry

J. Nawrocki, PSP, Lecture 12 Basic defect causes Education: dont understand how to do somethingEducation: dont understand how to do something Communication: not properly informed about somethingCommunication: not properly informed about something Oversight: omitted doing somethingOversight: omitted doing something Transcription: knew what to do but made a mistakeTranscription: knew what to do but made a mistake Process: the process somehow misdirected the actionsProcess: the process somehow misdirected the actions

J. Nawrocki, PSP, Lecture 12 Defect prevention Select a specific defect typeSelect a specific defect type What are the causes of the defect ?What are the causes of the defect ? Why it has been made ? (education, communication, oversight,..)Why it has been made ? (education, communication, oversight,..) How to prevent the problem in the future ?How to prevent the problem in the future ? Repeat the above steps a few timesRepeat the above steps a few times What are the trends or patterns in the data that might suggest larger problems ?What are the trends or patterns in the data that might suggest larger problems ? What are the actions that had worked in the past ?What are the actions that had worked in the past ? Test your defect prevention ideasTest your defect prevention ideas

J. Nawrocki, PSP, Lecture 12 Defect prevention Exemplary defect types: most frequentmost frequent most difficult to find and fixmost difficult to find and fix easiest to find and fixeasiest to find and fix......

J. Nawrocki, PSP, Lecture 12 Quality assurance techniques Inspections and reviewsInspections and reviews Software configuration managementSoftware configuration management

J. Nawrocki, PSP, Lecture 12 Summary Software quality is not only a technical issue but also an economical one. Cost-of-quality measures allow us to observe our process and to identify the prospective improvements

J. Nawrocki, PSP, Lecture 12 Further readings W.S. Humphrey, A discipline for software engineering, Addison- Wesley, Reading MA, 1995.

J. Nawrocki, PSP, Lecture 12 Quality assessment 1. What is your general impression ? (1 - 6) 2. Was it too slow or too fast ? 3. Did you learn something important to you ? 4. What to improve and how ?