Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 1 of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.

Similar presentations


Presentation on theme: "Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 1 of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP."— Presentation transcript:

1 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 1 of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP Vasudeva Varma vasu@iiit.net Spring 2002 International Institute of Information Technology, Hyderabad

2 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 2 of 39 Quick Review Discuss Product and Process concepts Look at various software Process models Discuss CMM and PSP

3 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 3 of 39 What Makes You Better? Why are you a better programmer than a first-year student?

4 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 4 of 39 Some Answers... More training –Know how to use tools –Have seen some problems before –Know how things fit together Familiar with language –Object, semaphore, recursion, etc Better process!

5 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 5 of 39 Examples of Better Processes Incremental coding –Code a little, test a little –Compare to writing entire program and testing Error prevention versus debugging –Cheaper and easier to prevent than to find bugs

6 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 6 of 39 What Makes Organizations Better? 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? Assume two groups are doing same project, why would one be better than another?

7 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 7 of 39 Some Answers... Great people Smart management Better tools Good processes, standards and policies that all team members know and follow

8 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 8 of 39 What is the Point of Processes? Basically, so we don’t reinvent the wheel! Learn from mistakes –Never make the same mistake twice! Incorporate best practices –Something works better than another Routinization of standard tasks –Do it right once and then reuse it Predictability

9 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 9 of 39 SEI-CMM Software Engineering Institute Capability Maturity Model (SEI-CMM, or CMM) CMM was developed by SEI at the request of the DoD in 1987 Based on –Statistical quality control (Deming’s TQM, Juran) –Quality management (Crosby) –Feedback from industry and government projects

10 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 10 of 39 CMM Organization Evolutionary path to increase software process maturity –Guide organizations in selecting improvement strategies –Small but continuous improvements Descriptive, not prescriptive –Describes goals but not how to achieve them Maturity characterized in five levels

11 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 11 of 39 CMM Components Maturity levels Process capabilities Key process areas Goals and common features Key practices

12 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 12 of 39 CMM Components

13 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 13 of 39 CMM Maturity Levels

14 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 14 of 39 Level 1 - Initial Process is ad hoc, occasionally chaotic Few and informally defined processes No mechanism to ensure they are used consistently Ineffective planning Reaction-driven management Unpredictable Success due to heroic efforts ~80% of software organizations worldwide

15 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 15 of 39 Level 2 - Repeatable Basic management processes, quality assurance and configuration control procedures in place Can repeat earlier successes Realistic project commitments based on results of previous projects Still has frequent quality problems Stable planning and tracking ~15% of software organizations worldwide

16 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 16 of 39 Level 3 - Defined Documented, standardized, and integrated management and engineering processes Procedures are in place to insure they are followed Projects tailor organization’s standard to develop own process Software Engineering Process Group (SEPG) Stable foundation for software engineering and management ~5% of software organizations worldwide

17 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 17 of 39 Level 4 - Managed Quality and performance is measured using metrics and can be predicted Quality and productivity quantitative goals are established Exceptional cases are identified and addressed Challenge of new domains can be managed Process is measured and operates within limits < 1% of software organizations worldwide

18 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 18 of 39 Level 5 - Optimizing Organization focuses on continuous process improvement Goal is to address and prevent problems by analyzing their cause in the process Process improvement is budgeted, planned, and part of the organization’s process Identify and quickly transfer best practices Only a handful of organizations worldwide

19 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 19 of 39 Why Five Levels? Reasonably represents historical phases in actual software organizations Reasonable measure of improvement from previous level Suggests interim goals and measures Prioritize improvements

20 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 20 of 39 Key Process Areas (KPA) Issues to address to reach each maturity level Related activities for achieving goals

21 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 21 of 39

22 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 22 of 39 Key Process Areas—Repeatable(2) Requirements management Software project planning Software project tracking and oversight Software quality assurance Software configuration management Software subcontract management

23 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 23 of 39 Key Process Areas—Defined (3) Organization process focus Organization process definition Training program Integrated software management Software product engineering Intergroup coordination Peer reviews

24 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 24 of 39 Key Process Areas—Managed (4) Quantitative process management Software quality management

25 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 25 of 39 Key Process Areas—Optimized(5) Defect prevention Technology change management Process change management

26 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 26 of 39 CMM outcomes Fewer project overruns Better cost prediction (dollars, time) Predicted performance improvements

27 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 27 of 39 The SEI Process Maturity Model... u or Capability Maturity Model (CMM) –is the best available description of the goals, methods and practices needed for the industrial practice of software engineering But how do we do this in the classroom? –this is the role of the PSP i.e. the Personal Software Process

28 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 28 of 39 The Personal Software Process or PSP PSP Objectives: –To introduce individuals to a process-based approach to developing software –To show individuals how to measure, estimate, schedule, and track their work –To show individuals how to improve the quality of their programs –In general PSP improves quality and productivity The time saved in testing because of better quality reduces time across the project by 20-40%

29 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 29 of 39 The Personal Software Process or PSP… u a self improvement process u designed to u help you be a better software engineer u help you control, manage and improve the way you work u requires research and study of your work u needs personal motivation to pay off

30 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 30 of 39 The Personal Software Process u PSP helps you to: »manage your work & assess/build your talents/skills »plan better »track your performance precisely »measure the quality of your software products - as a framework for determining: »why you make errors and how you find them »the quality of your reviews »the types of errors you make

31 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 31 of 39 The Personal Software Process PSP has a maturity framework like CMM - some KPAs are removed e.g.. training program Structure: PSP0: establish a measured performance baseline PSP1: make size, resource and schedule plans PSP2: learn defect and yield management PSP3: scale up PSP methods to larger projects

32 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 32 of 39 The Personal Software Process u Baseline Process - PSP0 –includes some basic measurements and a reporting format –the process you currently use to write software but enhanced to provide measurements u PSP0.1 - PSP0 enhanced by adding: »a coding standard »size measurement and size counting standard »process improvement proposal (PIP)

33 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 33 of 39 The Personal Software Process u The Personal Planning Process (PSP1) –adds planning steps to PSP0 »test report »size and resource estimation u PSP1.1 –establishes a performance rate for planning –PSP1 enhanced by adding »task planning »schedule planning

34 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 34 of 39 The Personal Software Process u The Personal Quality Management Process (PSP2) –adds review techniques to PSP1 to help you find defects early »design reviews »code reviews u PSP2.1 –establishes design completeness criteria »design templates

35 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 35 of 39 The Personal Software Process u A Cyclic Personal Process (PSP3) –for large programs e.g. 10,000 LOC –subdivide into PSP2-sized modules –enhance the base module in iterative cycles –in each iteration do a complete PSP2 including design, code, compile, test –effective scale up from base module to large program if each increment is of a high quality

36 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 36 of 39 The Personal Software Process The PSP uses 3 types of measures: –Effort, Size and Defects Effort measurement Measured in minutes Individuals keep records of time spent on tasks Interruption time is recorded and subtracted Size measurement Size will be measured in number of lines of code and FP Defect measurement Students record changes to correct an error Fix time and defect type is recorded

37 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 37 of 39 The Personal Software Process u PSP Logic - based on the Principles: Measured historical data is needed for effective planning A defined and structured process can improve working efficiency Defined personal processes should fit the individual skills of the software engineer Continuous process improvement is enhanced by rapid and explicit feedback

38 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 38 of 39 The Personal Software Process u Summary –Society is demanding more and better quality software faster and cheaper –Competent work is possible when professionals know the basic methods of their field and practice them with discipline

39 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 39 of 39 Summary u The CMM sets out the principal practices for managing the processes in large-scale software development u The PSP sets out the principal practices for defining, measuring and analyzing an individual’s own processes


Download ppt "Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass 04 - 1 of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP."

Similar presentations


Ads by Google