Lecture Software process improvement: Lesson 22 provide students with knowledge about: review up to mid-term; software process; characteristics of software processes; requires creativity; interactions between a wide range of different people; engineering judgment; background knowledge; experience;... Please refer to the detailed content of the lecture!
Review Up To MidTerm Lecture #22 Process Process • Once someone has worked out how to solve a problem, they can document the way in which that solution was derived as a process • This then helps other people faced with similar problems to get started on their own solutions Examples of Processes 1 • An instruction manual for a kitchen dishwasher describes the process of using that machine to clean dishes • A cookery book describes a set of processes to prepare and cook various different types of meals Examples of Processes 2 • A procedures manual in a bank describes the ways in which different banking processes such as agreeing a personal loan, correcting errors, etc. should be carried out • A quality manual for software development describes the processes which should be used to assure the quality of the software. It may include descriptions of standards which are basis for the quality checking Software Process Software Problems • Technical – Need a technical solution – Easy to understand and solve • Systemic – Need a process/management solution – Difficult to understand and solve Solution to Software Problems • Treat the software task as a process that can be controlled, measured, and improved • Relate the required tasks, tools, methods with skill, training, and motivation of people involved Software Processes • Software engineering, as a discipline, has many processes • These processes help in performing different software engineering activities in an organized manner Software Process • The software process is the set of tools, methods, and practices that people use to produce (develop and maintain) software and associated products , e.g., project plans, design documents, code, test cases, and user manuals • Where are the people? Aren’t they the most important part of an organization? 10 CMMI Structure: One Model, Two Representations Appendixes Appendixes Maturity Level 5 OID, CAR Maturity Level 4 OPP, QPM Maturity Level 3 REQD, TS, PI, VER, VAL, OPF, OPD, OT, IPM, RSKM, DAR Maturity Level 2 REQM, PP, PMC, SAM, MA, PPQA, CM Overview Introduction Structure of the Model Model Terminology Maturity Levels, Common Features, and Generic Practices Understanding the Model Using the Model CMMISE/SW Staged Support CM, PPQA, MA, CAR, DAR Engineering REQM, REQD, TS, PI, VER, VAL Project Management PP, PMC, SAM IPM, RSKM, QPM Process Management OPF, OPD, OT, OPP, OID Overview Process Management Introduction PAs Structure of the Model Goals Model Terminology Practices Capability Levels and Generic Model Components Understanding the Model Using the Model CMMISE/SW Continuous 56 56 CMMI Model Structure • Maturity Levels (staged representation) or Capability Levels (continuous representation) • Process Areas • Goals – Generic and Specific • Practices – Generic and Specific 57 • The CMMI product suite is at the forefront of process improvement because it provide the latest best practices for product and service development and maintenance • The CMMI models improve the best practices of previous models in many important ways 58 Benefits of CMMI 1 • CMMI best practices enable organizations to do the following – More explicitly link management and engineering activities to their business objectives – Expand the scope of and visibility into the product lifecycle and engineering activities to ensure that the product or service meets customer expectations 59 Benefits of CMMI 2 – Incorporate lessons learned from additional areas of best practices (e.g., measurement, risk management, and supplier management) – Implement more robust highmaturity practices – Address additional organizational functions critical to their products and services – More fully comply with relevant ISO standards 60 • Use CMMI in process improvement activities as a – Collection of best practices – Framework for organizing and prioritizing activities – Support for the coordination of multidisciplined activities that might be required to successfully build a product – Means to emphasize the alignment of the process improvement objectives with organization business 61 objectives Personal Software Process 62 What is PSP? • The PSP is a defined and measured software process designed to be used by an individual software engineer • The PSP was developed by Watts Humphrey • Its intended use is to guide the planning and development of software modules or small programs, but it is adaptable to other 63 personal tasks • Like the SEI Capability Maturity Model for Software, the PSP is based on process improvement principles • While the CMMSW was focused on improving organizational capability, the focus of the PSP is the individual engineer 64 Key Process Areas for PSP 1 • • • • • • • Software project planning Software project tracking/oversight Software process focus Software process definition Integrated software management Software product engineering Peer reviews 65 Key Process Areas for PSP 2 • • • • • Quantitative process management Quality management Defect prevention Technology change management Process change management 66 PSP in a Nutshell 1 • Baselining your existing personal software process • Developing a planning process for your software development • Measuring software size as part of the planning process • Estimating software size in advance 67 PSP in a Nutshell 2 • Estimating the required schedule and resources for software • Conducting appropriate measures of one’s process • Conducting meaningful design and code reviews • Performing software quality management 68 PSP in a Nutshell 3 • Perform software design in a more formal fashion • Verifying the design, using methods using methods such as object state machines, program tracing, etc • Scaling up the PSP to larger problems 69 Implementing PSP 70 ... Project Planning 21 Process? ?Modeling 22 Levels of? ?Software? ?Process? ? Models • Universal or U? ?Process? ?Models • Worldly or W? ?Process? ?Models • Atomic or A? ?Process? ?Models 23 Universal or U? ?Process? ?Models • U? ?process? ?models provide highlevel ... Examples of? ?Software? ?Processes • Software? ?engineering development? ?process? ? (SDLC) • Requirements engineering? ?process • Design? ?process • Quality assurance? ?process • Change management? ?process 13 Process? ?Improvement 14 Process? ?Improvement Objectives... people involved Software? ?Processes • Software? ?engineering, as a discipline, has many processes • These processes help in performing different? ?software? ?engineering activities in an organized manner Software? ?Process