software engineering
play

Software Engineering Prof. Dr. Bertrand Meyer MarchJune 2007 - PowerPoint PPT Presentation

Chair of Softw are Engineering Software Engineering Prof. Dr. Bertrand Meyer MarchJune 2007 Lecture 2: The Personal Software Process PSP: the background CMMI: Capability Maturity Model Integration (originally: CMM) From late 1980s,


  1. Chair of Softw are Engineering Software Engineering Prof. Dr. Bertrand Meyer March–June 2007 Lecture 2: The Personal Software Process

  2. PSP: the background CMMI: Capability Maturity Model Integration (originally: CMM) From late 1980s, Software Engineering Institute (At Carnegie-Mellon University, funded by the US Department of Defense) Goal: assess the maturity of the software process of an organization, especially its reproducibility Five levels of maturity: � Initial � Managed � Defined � Quantitatively managed � Optimizing 2 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 2

  3. CMMI: management visibility Process Characteristics Level Management Visibility In Out Focus is on continuous Optimizing quantitative improvement Process is measured Quantitatively In Out and controlled Managed Process is characterized for the organization and Defined In Out is proactive Process is characterized Managed In Out for projects and is often reactive Process is unpredictable, Initial poorly controlled, and Out In reactive 3 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 3

  4. TSP, PSP Team Software Process Personal Software Process Outgrowth of CMMI work Directs work of teams and individuals for higher quality PSP is part of TSP 4 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 4

  5. About this presentation This lecture describes the PSP as seen by its authors It does not necessarily imply endorsement of every idea The symbol indicates points that seem arguable 5 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 5

  6. Management support The initial TSP objective is to convince management to let the team be self-directed, meaning that it: � Sets its own goals � Establishes its own roles � Decides on its development strategy � Defines its processes � Develops its plans � Measures, manages, and controls its work 6 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 6

  7. Management support Management will support you as long as you: � Strive to meet their needs � Provide regular reports on your work � Convince them that your plans are sound � Do quality work � Respond to changing needs � Come to them for help when you have problems 7 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 7

  8. Management support Management will agree to your managing your own work as long as they believe that you are doing a superior job. To convince them of this, you must: � Maintain and publish precise, accurate plans � Measure and track your work � Regularly show that you are doing superior work The PSP helps you do this 8 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 8

  9. PSP principles The quality of a software system is determined by the quality of its worst component The quality of a component is governed by the individual who developed it, and especially by the quality of the process he or she used to develop it Every software professional is responsible for his or her personal process. Key to quality is each individual developer’s skill, commitment, and personal process discipline 9 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 9

  10. PSP essential practices � Measure, track, and analyze your work � Learn from your performance variations � Incorporate lessons learned into your personal practices 10 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 10

  11. What does a PSP provide? A stable, mature PSP allows you to � Estimate and plan your work � Meet your commitments � Resist unreasonable commitment pressures You will also � Understand your current performance � Improve your expertise as a professional 11 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 11

  12. PSP fundamentals As a personal process, PSP includes: � Defined steps � Forms � Standards � A measurement and analysis framework for characterizing and managing your personal work � A defined procedure to help improve your personal performance 12 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 12

  13. The PSP process flow Requirements Requirements Planning Planning Design Design Code Code guide guide Scripts Scripts Logs Logs Logs Compile Compile Test Test Project Project summary summary Postmortem PM Project and process Project and process Finished product Finished product data summary report data summary report 13 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 13

  14. A progressive approach PSP is introduced in six upward-compatible steps At each step: � Write one or more modules � Gather and analyze data on your work � Use results to improve your personal performance 14 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 14

  15. The steps TSP Team development PSP2.1 PSP2 Design templates Code reviews Design reviews PSP1.1 PSP1 Task planning Size estimating Schedule planning Test report PSP0 PSP0.1 Current process Time recording Coding standard Defect recording Size measurement Defect type standard Process improvement proposal (PIP) 15 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 15

  16. Goals at each level PSP0: Establish a measured performance baseline PSP1: Make size, resource, and schedule plans PSP2: Practice defect and yield management 16 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 16

  17. PSP0 Objective: PSP2.1 PSP2 � Demonstrate use of defined Design templates Code reviews Design reviews process for small programs � Incorporate basic PSP1.1 PSP1 Task planning measurements in process Size estimating Schedule planning Test report � Minimize changes to your PSP0 personal practices PSP0.1 Current process Time recording Coding standard Defect recording Size measurement Defect type standard Process improvement proposal (PIP) 17 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 17

  18. PSP0 setup PSP0 is a simple, defined, personal process: � Make a plan � Use your current design and development methods to produce a small program � Gather time and defect data on your work � Prepare a summary report 18 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 18

  19. The six phases of PSP0 1 4 Produce plan for Translate into Compile Plan developing program executable code from requirements 2 5 Produce design Verify that code specification for the Design satisfies Test program. requirements Turn design into executable code 6 3 Summarize & (In Eiffel, 2 & 3 analyze project are one step) Code Postmortem data 19 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 19

  20. Phase order PSP looks like waterfall but is not Phase order is determined by dependencies: Plan � Can’t test code before it’s Design compiled � Can’t compile before it’s written Code � Can’t use design if produced Compile after code is written � No reason to make a plan Test after you’re done Postmortem Conclusion: start here with a plan 20 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 20

  21. Cyclic process flow Programs that are large programs or not well understood may require an Requirements Plan iterative approach Design Module A Module B In this example, each module is separately coded, Code Code compiled, and tested Compile Compile The example uses PSP0 phases and 2 code-compile- Test Test test cycles Program and Postmortem Project data 21 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 21

  22. Cyclic process flow There can be more than 2 cycles Requirements Plan Part size is key factor for Module B Module A Module C determining cycles: Design Design Design � Line of code: too small Code Code Code � Program: usually too large Compile Compile Compile Typical: one or more classes or features Test Test Test Program and Postmortem Project data Determine what works for you 22 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 22

  23. PSP0.1 Objective: help you to PSP2.1 PSP2 � Measure size of programs Design templates Code reviews Design reviews that you produce � Perform size accounting for PSP1.1 PSP1 these programs Task planning Size estimating Schedule planning Test report � Make accurate and precise PSP0 size measurements PSP0.1 Current process Time recording Coding standard Defect recording Size measurement Defect type standard Process improvement proposal (PIP) 23 Software Engineering, lecture 1: Personal Software Process for Engineers: I ntroduction to PSP 23

Recommend


More recommend