Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.

Slides:



Advertisements
Similar presentations
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Advertisements

1 Disciplined Software Engineering Watts S. Humphrey Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the.
PRO2 - 1 Introduction to the Personal Software Process SWENET PRO2 Module Developed with support from the National Science Foundation.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 7.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Important concepts in software engineering The tools to make it easy to apply common sense!
Metrics Project and Process Metrics. Why do we measure? Assessing project status Allows us to track risks Before they go critical Adjust workflow See.
Personal Software Process
Aplicaciones de Ingeniería de Software
CMM Overview - 1 © Paul Sorenson CMPUT Software Engineering refs. IEEE Software, March 1988, 73-79, and IEEE Software, July 1993, (Capability.
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
Personal software process Mohammed ahmed ali. What is psp The personal software process (psp) is a structured set of process descriptions, measurements.
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Software Testing Life Cycle
1 9/19/2015ã 2007, Spencer Rugaber Personal Software Process (PSP) Application of CMM principles to individuals Developed by Watts Humphrey of the Software.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Chapter 6 : Software Metrics
Disciplined Software Engineering Lecture #4 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #6 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Chapter 2 Process: A Generic View
Lecture 1 Introduction to Software Engineering
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 6.
CS /39 Illinois Institute of Technology CS487 Software Engineering David A. Lash.
Lecture: The Personal Software Process. 2 Overview  Personal Software Process assumptions process stages measures and quality strategy results.
Software process improvement Framework for SPI SPI support groups, maturity and immaturity models Assessment and gap analysis Education and training Selection.
© 1998 Carnegie Mellon UniversityTutorial The Personal Software Process (PSP) The overview of the PSP that follows has been built from material made.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
Software Engineering Prof. Dr. Bertrand Meyer March–June 2007 Chair of Software Engineering Lecture 2: The Personal Software Process.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #4 Software Engineering.
CS 350: Introduction to Software Engineering Slide Set 3 Estimating with Probe I C. M. Overstreet Old Dominion University Fall 2005.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #2 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #2 Software Engineering.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
SOFTWARE METRICS. Software Process Revisited The Software Process has a common process framework containing: u framework activities - for all software.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
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…
CS 350: Introduction to Software Engineering Slide Set 2 Process Measurement C. M. Overstreet Old Dominion University Fall 2005.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Personal Software Process PSP--Personal Software Process.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Introduction to the Personal Software Process. Overview Process Fundamentals PSP Concepts and Structure PSP Planning and Measurement PSP Quality Management.
P ERSONAL & TEAM PROCESS MODELS Lecture 05 Part -2.
CS4311 Spring 2011 Process Improvement Dr
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Why Do We Measure? assess the status of an ongoing project
Estimating with PROBE II
A possible solution: Personal Software Process (PSP)
Personal Software Process Software Estimation
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software metrics.
The role of Planning in the Software Development Process
Chapter 2 Process Models.
Why Do We Measure? assess the status of an ongoing project
Chapter 2 Process Models
Chapter 2 Process Models
Presentation transcript:

Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and lead developer of CMM, PSP, TSP Recipient of national medal of technology “Father of software quality”

Process What to do at each step – Waterfall – Unified Process – Agile (XP, Scrum) How to do it – Capability Maturity Model (CMM) – Personal Software Process (PSP) – Team Software Process (TSP)

Measurement-based learning process of self improvement in developing software customized for personal conditions PSP – individual engineer level TSP – team level CMM – management level Measure the process, not the product

CMM Originally assessment procedure to allow DoD to screen contractors 1980s—1990s: Developed into a general framework for quality certification – Define 5 maturity levels 2000s: evolved into CMMI – General management processes in development, services, and acquisitions – Add people-CMM, later also DMM (data management maturity) – Not only for software but all areas of industry

1.Initial: code and test w/o planning; ad-hoc …Add management control and defined SE processes… 2.Managed: plan with stakeholders, provide resources, monitor execution milestones; no compromising during crisis …Add standards and apply across organization… 3.Defined: common processes tailored for each project’s needs; rigorous definition of processes …Add process measurement and analysis… 4.Quantitatively Managed: based on quantitative process/quality objectives; predictions …Add continuous adjustments across organization… 5.Optimizing: proactively fix performance gaps

Nuances Measurement is not used for ranking – Goal is good data about project/process – Using it for ranking will lead to bad data Discipline, not regimentation – Prescribe procedures for how things are done – Reduce friction and waste – Don’t dictate what to do, don’t reduce creativity – Creativity ≠ anarchy

PSP Personal perspective of improvement a-la CMM – Can be done by individuals – Not dependent on CMM environment Make the routine work more predictable and efficient Customizable per individual Customizable with time as an individual’s capabilities improve Watts S. Humphrey / A Discipline for Software Engineering, Addison-Wesley 1995

PSP0 Use whatever work habits you have Collect data about how you perform “If you don’t know what you are doing, it is hard to improve it” Use detailed predefined forms – Filling form is easier than starting from scratch – Annoying but worth it on the long run – Form structure may be customized later

Side effect: discover how much you are interrupted and the benefits of reducing interruptions Time recording log

Defect recording log

Project plan summary

PSP1 Develop personal planning process Size estimation Test report Required basis: – Coding standard – Precise size measurements Outcomes: – Task planning – Schedule planning Understand relationship between size and required time Make commitments you can meet

Project loop Multi-project self improve- ment loop

Size The basic metric is KLoC But with important consistency constraints – One developer – Same language (or separate counts per language) – Same purpose (or separate counts for project, test, etc.) Well-defined standard of how to count – Braces, empty lines, comments…

PROxy-Based Estimation (PROBE) Identify objects based on conceptual design Find proxies for objects in historical database Estimate total object LoC based on these proxies – Use log-normal object size categories Use linear regression to estimate total program LoC and range based on objects LoC

Improvement Estimates always fluctuate and have errors – Natural variability and lack of information – Builtin bias By independently estimating small components and summing, variability is reduced  Better precision This makes it easier to identify and correct bias  Better accuracy

Schedule Use regression of historical data on estimated size and actual time – This is productivity = LoC / hour – Regression allows for better prediction than average, plus expected range Distinguish productivity on new code, modified code, and reused code Track actual productivity and adjust prediction – Alert management of change

PSP2 Develop personal quality management process Code reviews Design reviews Including personal reviews More effective than testing – When faced with a bug, need to find logical cause – In reviews you start with the logic

PSP3 Previous stages used small programs for learning – Linear waterfall-like phases Not suitable for large programs Final stage is to develop a personal cyclic development process Basic idea: partition into iterations that can be handled using PSP2

TSP PSP is a personal process Maximal project size is limited Need a team process to build larger projects TSP designed for engineers with PSP training Basically an iterative process – Cycle of 3-4 months – Structured launch (re-launch) to plan the cycle – Tracking and monitoring to ensure plan is followed

Summary PSP is hard work – Tedious monitoring and filling forms – Requires significant self-discipline – Takes long time to show returns on investment Provides professional confidence “Takes the creative fun out of software development”???  Humphrey: on the contrary! Makes the routine part efficient leaving more time for creative fun