390 likes | 547 Views
CS3600: Software Engineering: Standards in Process Modeling CMM and PSP. Vasudeva Varma vasu@iiit.net 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.
E N D
CS3600: Software Engineering:Standards in Process ModelingCMM and PSP Vasudeva Varma vasu@iiit.net Spring 2002 International Institute of Information Technology, Hyderabad Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
Quick Review • Discuss Product and Process concepts • Look at various software Process models • Discuss CMM and PSP Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
What Makes You Better? • Why are you a better programmer than a first-year student? Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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! Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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? Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
Some Answers... • Great people • Smart management • Better tools • Good processes, standards and policies that all team members know and follow Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
CMM Components • Maturity levels • Process capabilities • Key process areas • Goals and common features • Key practices Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
CMM Components Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
CMM Maturity Levels Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
Key Process Areas (KPA) • Issues to address to reach each maturity level • Related activities for achieving goals Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
Key Process Areas—Repeatable(2) • Requirements management • Software project planning • Software project tracking and oversight • Software quality assurance • Software configuration management • Software subcontract management Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
Key Process Areas—Defined (3) • Organization process focus • Organization process definition • Training program • Integrated software management • Software product engineering • Intergroup coordination • Peer reviews Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
Key Process Areas—Managed (4) • Quantitative process management • Software quality management Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
Key Process Areas—Optimized(5) • Defect prevention • Technology change management • Process change management Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
CMM outcomes • Fewer project overruns • Better cost prediction (dollars, time) • Predicted performance improvements Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
The SEI Process Maturity 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 thePSP i.e. the Personal Software Process Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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% Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
The Personal Software Process • PSPhelps 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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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) Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH
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 Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITH