CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

39
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 1 of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP Vasudeva Varma [email protected] Spring 2002 International Institute of Information Technology, Hyderabad

description

CS3600: Software Engineering: Standards in Process Modeling CMM and PSP. Vasudeva Varma [email protected] Spring 2002 International Institute of Information Technology, Hyderabad. Quick Review. Discuss Product and Process concepts Look at various software Process models Discuss CMM and PSP. - PowerPoint PPT Presentation

Transcript of CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Page 1: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 1 of 39

CS3600: Software Engineering:Standards in Process Modeling

CMM and PSP

Vasudeva [email protected] 2002

International Institute of Information Technology, Hyderabad

Page 2: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 2 of 39

Quick Review

• Discuss Product and Process concepts

• Look at various software Process models

• Discuss CMM and PSP

Page 3: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 3 of 39

What Makes You Better?

• Why are you a better programmer than a first-year student?

Page 4: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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!

Page 5: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 6: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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?

Page 7: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 7 of 39

Some Answers...

• Great people

• Smart management

• Better tools

• Good processes, standards and policies that all team members know and follow

Page 8: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 9: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 10: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 11: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 11 of 39

CMM Components

• Maturity levels

• Process capabilities

• Key process areas

• Goals and common features

• Key practices

Page 12: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 12 of 39

CMM

Components

Page 13: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 13 of 39

CMM

Maturity

Levels

Page 14: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 15: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 16: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 17: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 18: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 19: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 20: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 20 of 39

Key Process Areas (KPA)

• Issues to address to reach each maturity level

• Related activities for achieving goals

Page 21: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

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

Page 22: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 23: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 24: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 24 of 39

Key Process Areas—Managed (4)

• Quantitative process management

• Software quality management

Page 25: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 25 of 39

Key Process Areas—Optimized(5)

• Defect prevention

• Technology change management

• Process change management

Page 26: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 26 of 39

CMM outcomes

• Fewer project overruns

• Better cost prediction (dollars, time)

• Predicted performance improvements

Page 27: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 27 of 39

The SEI ProcessMaturity Model ...

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

Page 28: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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%

Page 29: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 29 of 39

The Personal Software Process or PSP…

a self improvement process designed to

help you be a better software engineer help you control, manage and improve the way you

work

requires research and study of your work needs personal motivation to pay off

Page 30: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 30 of 39

The Personal Software Process

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

Page 31: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 32: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 32 of 39

The Personal Software Process

Baseline Process - PSP0– includes some basic measurements and a reporting

format

– the process you currently use to write software but enhanced to provide measurements

PSP0.1 - PSP0 enhanced by adding: » a coding standard

» size measurement and size counting standard

» process improvement proposal (PIP)

Page 33: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 33 of 39

The Personal Software Process

The Personal Planning Process (PSP1)– adds planning steps to PSP0

» test report» size and resource estimation

PSP1.1– establishes a performance rate for planning– PSP1 enhanced by adding

» task planning» schedule planning

Page 34: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 34 of 39

The Personal Software Process The Personal Quality Management Process

(PSP2)– adds review techniques to PSP1 to help you

find defects early» design reviews

» code reviews

PSP2.1– establishes design completeness criteria

» design templates

Page 35: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 35 of 39

The Personal Software Process

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

Page 36: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 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

Page 37: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 37 of 39

The Personal Software Process 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

Page 38: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 38 of 39

The Personal Software Process

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

Page 39: CS3600: Software Engineering: Standards in Process Modeling CMM and PSP

Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH Class 04 - 39 of 39

Summary

The CMM sets out the principal practices for managing the processes in large-scale software development

The PSP sets out the principal practices for defining, measuring and analyzing an individual’s own processes