University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec21 1 Lecture 21: Process Improvement Basics of Process Modeling.

Slides:



Advertisements
Similar presentations
Principles of Information Systems, Tenth Edition
Advertisements

More CMM Part Two : Details.
©2006 OLC 1 Process Management: The Foundation for Achieving Organizational Excellence Process Management Implementation Worldwide.
CPIS 357 Software Quality & Testing I.Rehab Bahaaddin Ashary Faculty of Computing and Information Technology Information Systems Department Fall 2010.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 28 Slide 1 Process Improvement.
Software Quality Metrics
Planning a measurement program What is a metrics plan? A metrics plan must describe the who, what, where, when, how, and why of metrics. It begins with.
SE 470 Software Development Processes James Nowotarski 12 May 2003.
SE 450 Software Processes & Product Metrics 1 Quality Systems Frameworks.
Capability Maturity Model (CMM) in SW design
1 R&D SDM 1 Software Project Management Capability Maturity Model 2009 Theo Schouten.
CMM Overview - 1 © Paul Sorenson CMPUT Software Engineering refs. IEEE Software, March 1988, 73-79, and IEEE Software, July 1993, (Capability.
Chapter 3 The Structure of the CMM
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Capability Maturity Model
Six Sigma Black Belt Project Information Prepared: July 20, 2004.
University of Toronto Department of Computer Science CSC444 Lec04- 1 Lecture 4: Software Lifecycles The Software Process Waterfall model Rapid Prototyping.
Managing Project Quality
© 2008 Prentice Hall8-1 Introduction to Project Management Chapter 8 Managing Project Quality Information Systems Project Management: A Process and Team.
Chapter : Software Process
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
1 European Conference on Training Strategies Kieran Cox -NSAI Education & Promotion-
S T A M © 2000, KPA Ltd. Software Trouble Assessment Matrix Software Trouble Assessment Matrix *This presentation is extracted from SOFTWARE PROCESS QUALITY:
Integrated Capability Maturity Model (CMMI)
Lecture 18: Specifications
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
N By: Md Rezaul Huda Reza n
J. R. Burns, Texas Tech University Capability Maturity Model -- CMM n Developed by the Software Engineering Institute (SEI) in 1989 –SEI is a spinoff.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 31 Slide 1 Process Improvement u Understanding, Modelling and Improving the Software Process.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Chapter 2 Process: A Generic View
Lecture 1 Introduction to Software Engineering
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
University of Toronto Department of Computer Science CSC444 Lec05- 1 Lecture 5: Decomposition and Abstraction Decomposition When to decompose Identifying.
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Software Measurement & Metrics
Software Engineering Saeed Akhtar The University of Lahore Lecture 8 Originally shared for: mashhoood.webs.com.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec23 1 Lecture 23: Course Summary Course Goals Summary of what we.
University of Sunderland CIFM03Lecture 2 1 Quality Management of IT CIFM03 Lecture 2.
Quality Concepts within CMM and PMI G.C.Reddy
Lecture Topics covered CMMI- - Continuous model -Staged model PROCESS PATTERNS- -Generic Process pattern elements.
Georgia Institute of Technology CS 4320 Fall 2003.
Software Requirements: Overview and Motivation Gruia-Catalin Roman and Christopher Gill CSE 436 January 2007 Department of Computer Science and Engineering.
CS Process Improvement CMM Hans Van Vliet, Software Engineering, Principles and Practice, 3 rd edition, John Wiley & Sons, Chapter 6. W. Humphrey,
©Ian Sommerville 2004 Software Engineering. Chapter 28Slide 1 Chapter 28 Process Improvement.
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming Both change and stability are fundamental to process.
Ch-1 Introduction The processes used for executing a software project have major effect on quality of s/w produced and productivity achieved in project…
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming.
COMP 6710 Course NotesSlide 3-0 Auburn University Computer Science and Software Engineering Course Notes Set 3: Software Process Maturity Computer Science.
Software Quality Assurance SOFTWARE DEFECT. Defect Repair Defect Repair is a process of repairing the defective part or replacing it, as needed. For example,
Carnegie Mellon Software Engineering Institute © 2006 by Carnegie Mellon University Software Process Performance Measures James Over Software Engineering.
Project Management Training
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 PROCESS IMPROVEMENT
~ pertemuan 4 ~ Oleh: Ir. Abdul Hayat, MTI 20-Mar-2009 [Abdul Hayat, [4]Project Integration Management, Semester Genap 2008/2009] 1 PROJECT INTEGRATION.
UNIT 5.
BSBPMG501A Manage Project Integrative Processes Manage Project Integrative Processes Project Integration Processes – Part 2 Diploma of Project Management.
IM111 – Lecture 111 Industrial & Management Engineering Department Industrial Relations IM 111 Dr Yehia Youssef.
Software Engineering Process - II 7.1 Unit 7: Quality Management Software Engineering Process - II.
Software Quality Control and Quality Assurance: Introduction
CS4311 Spring 2011 Process Improvement Dr
A possible solution: Personal Software Process (PSP)
Quality Systems Frameworks
Project Management Process Groups
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec21 1 Lecture 21: Process Improvement Basics of Process Modeling background in industrial process improvement and statistical control definitions Managing Process Change The quest for continuous process improvement Humphrey’s Capability Maturity Model (CMM) Towards Zero-Defect Software lessons from NASA’s Software Engineering Lab

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec21 2 Basics of process modeling Software Process “the collection of related activities, events, mechanisms, tasks, and procedures seen as a coherent process for production of a software system to meet a given need” “Software processes are software too!” Benefits of explicitly modeling the process: improved communication among team process reuse: successes can be repeated process improvement: can ensure lessons learnt are incorporated after each project A software development project has two main outputs: a product and some experience The experience is often thrown away Individuals may remember and apply the lessons (but individuals move on, or don’t have the authority to change things) Underlying principle Fix the process not the product

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec21 3 Background Industrial Engineering Product Inspection (1920s) examine intermediate and final products to detect defects Process Control (1960s) monitor defect rates to identify defective process elements & control the process Design Improvement (1980s) engineering the process and the product to minimize the potential for defects Deming and TQM Use statistical methods to analyze industrial production processes Identify causes of defects and eliminate them Basic principles are counter-intuitive: in the event of a defect (sample product out of bounds)… …don’t adjust the controller or you’ll make things worse. Instead, analyze the process and improve it Adapted to Software No variability among individual product instances All defects are design errors (no manufacturing errors) Process improvement principles still apply (to the design process!) Source: Adapted from Blum, 1992, p See also van Vliet, 1999, sections 6.3 and 6.6

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec21 4 company process database Process Modeling & improvement Process Description understand and describe current practices Process Definition Prescribe a process that reflects the organization’s goals Process customization adapt the prescribed process model for each individual project Process enactment Carry out the process I.e. develop the software! collect process data Process improvement use lessons learnt from each project to improve the prescriptive model e.g. analyze defects to eliminate causes process description process definition process custom- ization process enactment current model observations quality goals prescriptive process model prescriptive process model software product lessons learnt customized process model project goals process improvement PROJECT X improved process model

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec21 5 Managing Process Change Humphrey’s principles: Major changes to software processes must start at the top … with senior management leadership Ultimately everyone must be involved Effective change requires a goal and knowledge of the current process you need a map you need to know where you are on the map! Change is continuous process improvement is not a one-shot effort Software process change will not be retained without conscious effort and periodic reinforcement Software process improvement requires investment Software Engineering Process Groups (SEPGs) Team of people within a company responsible for process improvement identifies key problems, establishes priorities, assigns resources, tracks progress, etc. Needs senior management support Source: Adapted from Humphrey, 1989, chapter 1.

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec21 6 Capability Maturity Model Source: Adapted from Humphrey, 1989, chapter 1. See also van Vliet, 1999, section 6.6.

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec21 7 Towards Zero Defect Software Cannot test-in software quality testing or inspection cannot improve the quality of a software product (by that stage it is too late) Defect removal Two ways to remove defects: fix the defects in each product (i.e patch the product) fix the process that leads to defects (i.e. prevent them occurring) The latter is cost effective as it affects all subsequent projects Defect prevention (from Humphrey) Programmers must evaluate their own errors feedback is essential for defect prevention there is no single cure-all for defects (must eliminate causes one by one) process improvement must be an integral part of the process process improvement takes time to learn

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec21 8 SEL Experience Factory NASA Goddard’s Software Engineering Lab (SEL) 20 years of measurement and evaluation of software processes Large baseline of experience accumulated Card’s conclusions: Software engineering without measurement is not engineering A software enterprise can collect too much data data collection is expensive (e.g. 5%-10% of development cost) need to know why you’re collecting data before you collect it Software science models do not appear to have practical usefulness Halstead’s, McCabe’s complexity models based on theory, not practical utility Standards that arbitrarily limit module size seem to be ill-advised Information hiding is more important than reducing ‘bad’ forms of coupling Productivity numbers are often crude and may be misleading because they don’t distinguish between necessary and unnecessary code Delivered source lines of code is not a good measure of work output Standards are often too comprehensive Unique projects can still be measured against themselves measurement is for controlling and improving, not for comparing projects Test coverage is a vital but seldom used measure Unreferenced variables are a good indicator of trouble Measurement makes productivity and quality improvement meaningful Source: Adapted from Blum, 1992, p

University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec21 9 References van Vliet, H. “Software Engineering: Principles and Practice (2nd Edition)” Wiley, van Vliet gives an overview of quality management practices in chapter 6. He covers ISO 9001 as well as CMM, and has a brief comparison with other international standards including IEEE Std 730, BOOTSTRAP, and SPICE. He also does a nice summary of quality, quoting appropriately from “Zen and the Art of Motorcycle Maintenance” (see lecture 12!). van Vliet also then segues into software measurement issues, including a cute analogy on the uses of measurement, in which we observe that black cows produce more milk than white cows, and use this to conclude that we should paint all the cows black. This summarizes very nicely what quality process management ends up doing when applied blindly! Humphrey, W. S. “Managing the Software Process”. Addison-Wesley, This book set out many of the central ideas of process management and process improvement. Humphrey describes the capability maturity model (CMM) in detail. Chapter 1 of this book (in which the CMM is first introduced) is included in the course readings. Of course, Humphrey was one of the main inventors of CMM, and hence he doesn’t cover any of it’s weaknesses, but van Vliet gives a more balanced coverage. Blum, B. “Software Engineering: A Holistic View”. Oxford University Press, Section is a very sensible overview of process improvement. Since Blum’s book was written, the CMM and its variants have been widely adopted across the industry, promoted by the US DoD-sponsored Software Engineering Institute (SEI). The CMM has been elaborated with detailed “key process areas” (KPAs), which have come to be seen as attainment targets by companies, and the CMM has been used as a way of assessing a company’s software quality. Unfortunately, along the way, much of the important insights have been lost; very few authors understand what is important about process improvement as well as Blum does.