Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Niš, University

  • View
    225

  • Download
    3

Embed Size (px)

Transcript

  • Slide 1

Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of Ni, University of Kragujevac DAAD Project Joint Course on Software Engineering Version: Apr. 01, 2005 Topic X Personal software process (PSP) Parts of this topic use material from the textbook W. S. Humphrey, A Discipline for Software Engineering, Addison-Wesley, 1995 Slide 2 2 DAAD project Joint Course on Software Engineering Literature Watts S. Humphrey A Discipline for Software Engineering: The Complete PSP Book Addison Wesley, 1995. Watts S. Humphrey Introduction to the Personal Software Process Addison Wesley, 1997. Slide 3 3 DAAD project Joint Course on Software Engineering PSP: A Self-Improvement Process for Software Engineers published Watts S. Humphrey PSP: A Self- Improvement Process for Software Engineers Addison Wesley Professional, 2005. Slide 4 4 DAAD project Joint Course on Software Engineering X. Personal software process (PSP) a)PSP overview b)PSP0 PSP0.0 & PSP0.1 c)PSP1 PSP1.0 & PSP1.1 d)PSP2 PSP2.0 & PSP2.1 e)PSP3 f)PSP usage and results Slide 5 5 DAAD project Joint Course on Software Engineering What makes you better? Why are you a better programmer than a first year student? Why are some organizations better than others? (deliver software on time; deliver with high quality and few defects) Do some of the same things for a personal level scale up to organizations? Slide 6 6 DAAD project Joint Course on Software Engineering PSP - Personal software process Software improvement must begin at the individual level. Watts S. Humphrey Awareness Best practices Commitment Slide 7 7 DAAD project Joint Course on Software Engineering Software Engineering Institute (SEI) An applied research laboratory situated as a college-level unit at Carnegie Mellon University. Supported by industry and the US government. Established in 1984. Offices in Arlington, Virginia (USA), Pittsburgh, Pennsylvania (USA), and Frankfurt (Germany). Mission is to foster improvement of software processes. www.sei.cmu.edu Slide 8 8 DAAD project Joint Course on Software Engineering Watts S. Humphrey A fellow at the SEI of Carnegie Mellon University, which he joined in 1986. Established the Process Program, led initial development of the CMM, introduced the concepts of Software Process Assessment and Software Capability Evaluation, and most recently, the PSP and TSP. From 1959 to 1986 he was associated with IBM Corporation where he was director of programming quality and process. Holds a bachelor's degree in physics from the University of Chicago, a master's degree in physics from the Illinois Institute of Technology, and a master's degree in business administration from the University of Chicago. Was awarded an honorary Ph.D. degree in software engineering by Embry Riddle Aeronautical University in 1998. Humphreys lecture Slide 9 9 DAAD project Joint Course on Software Engineering Watts Humphrey awarded prestigious National Medal of Technology Watts S. Humphrey has been awarded the prestigious 2003 National Medal of Technology for his contributions to the software engineering community. The National Medal of Technology is the highest honor awarded by the President of the United States to America's leading innovators. A formal ceremony took place March 14, 2005, at the White House. Slide 10 10 DAAD project Joint Course on Software Engineering The software problem Poor software quality in delivered systems is expensive expensive service and enhancement potential for accident or loss of life. Organizational progress with process improvement is limited because process improvement takes time / is hard to sell. The PSP addresses these problems by providing convincing evidence of the benefits of process improvement exposing the engineers to the benefits of using effective processes in their work teaching the engineers effective process improvement methods providing the historical data to better manage cost, schedule, and quality. Slide 11 11 DAAD project Joint Course on Software Engineering Objectives for process improvement schedule (delivery date) functionality (features) quality (defects) Slide 12 12 DAAD project Joint Course on Software Engineering History of process models 1980s DoD Std 2167, AQAP 13 (NATO), industry standards (nuclear) 1983 IEEE 730 (software quality assurance plans) 1987 ISO 9000 1988 TickIT (ISO 9001) 1990 ISO 9000-3 (guideline for software) 1991 Capability Maturity Model (CMM) 1992 SPICE (ISO 15540) Slide 13 13 DAAD project Joint Course on Software Engineering Models for software process improvement (c) 1998 Software Productivity Consortium MFP, Inc. CMM U.S. DoD ISO Industry, professional Slide 14 14 DAAD project Joint Course on Software Engineering Quality umbrella CMM/CMMI - for organizational capability TSP - for quality products on cost and schedule PSP - for individual skill and discipline Adapted From Three Dimensions of Process Improvement, Watts Humphrey, CROSSTALK, February 1998 Slide 15 15 DAAD project Joint Course on Software Engineering PSP background From 1970s, W. Edwards Deming and J. M. Juran convinced U.S. industry to focus on improving the way people did their jobs. Principal quality management & improvement methods: Most software communities rely on test-and-fix. Michael Fagan introduced software inspection (1976). Capability Maturity Model (1987): focuses on the management for the software organizations. Personal Software Process: individual engineers. Slide 16 16 DAAD project Joint Course on Software Engineering What is PSP? (1) PSP is a framework of techniques to help software engineers improve their performance. PSP is a self-improvement process designed to help control, manage, and improve the way you work. It is a structured framework of forms, guidelines, and procedures for developing software. (PSP as introduced in 1995 by its author, Watts S. Humphrey, SEI) PSP takes those large scale project methods and practices which can be used by individuals, structures them so that they can be introduced gradually, and provides a framework for teaching them. Slide 17 17 DAAD project Joint Course on Software Engineering What is PSP? (2) Provides engineers with a disciplined personal framework for doing software work. Provides a set of methods, forms, and scripts that show how to plan, measure, and manage the work. Emphasizes effort estimation & software quality. Designed for use with any programming language or design methodology. Can be used for any aspect of software development. Provides a rapid way to infuse each engineer with software engineering skill and experience. Goal produce zero defect products on schedule and within planned costs. Key ability to recognize and handle undue pressures. Slide 18 18 DAAD project Joint Course on Software Engineering How was the PSP developed? How to apply CMM to small software teams or individuals? --- personally use CMM principle Humphrey developed 62 programs and defined 15 PSP process versions, proved 12 KPAs of CMM were applicable to individuals. Humphrey wrote the manuscript. Howie Dow taught the first PSP course to graduates in 1993 (University of Massachusetts). Humphrey taught PSP at CMU from 1993-1994. Humphrey published the PSP textbook in later 1994. How to apply the same principles to engineering teams? --- Team Software Process (TSP) The First course to train instructors to teach PSP in industry (Jim Over & Neil Reizer) Slide 19 19 DAAD project Joint Course on Software Engineering Planning and quality principles of PSP (1) PSP principles: System quality depends on the quality of its worst components. Component quality depends on individual developers. Every engineer is different; to be most effective, engineers must plan their work and they must base their plans on their own personal data. To consistently improve their performance, engineers must personally use well-defined and measured processes. To produce quality products, engineers must feel personally responsible for the quality of their products. Superior products are not produced by mistake; engineers must strive to do quality work. Slide 20 20 DAAD project Joint Course on Software Engineering Planning and quality principles of PSP (2) It costs less to find and fix defects earlier in a process than later. It is more efficient to prevent defects than to find and fix them. The right way is always the fastest and cheapest way to do a job. PSP applies a CMM-like assessment for individual work Measurement & analysis framework to help you characterize your process. -Self-assessment and self-monitoring. Prescribes defined programming steps, data collection forms and standards. Assumes individual scale & complexity. -Well-defined individual tasks of short duration. Slide 21 21 DAAD project Joint Course on Software Engineering CMM and the PSP Level 2 Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight* Software project planning* Requirements management *PSP key practices Level 3 Peer reviews* Intergroup coordination Software product engineering* Integrated software management* Training program Organization process definition* Organization process focus* Level 4 Quality management* Process measurement and analysis* Level 5 Process change management* Technology innovation* Defect prevention* Level 1 W. S. Humphrey, A Discipline for Software Engineering, 1995 Slide 22 22 DAAD project Joint Course on Software Engineering What is TSP? A measurement driven framework that helps engineering teams more effectively develop software-intensive products. Provides structure, organization and discipline to running a team-based project. TSP is built upon PSP. TSP is an instance of a CMMI level 5 process for software teams. Slide 23 23 DA