Software Process Improvement Course Code – CS-724 Course Instructor
Total Page:16
File Type:pdf, Size:1020Kb
Software process Improvement Course Code – CS-724 Course Instructor Dr. Ghulam Ahmad Farrukh Ph.D Software Engineering George Mason University, USA Reference Books: 1. Software Quality: Analysis and Guidelines for Success by Capers Jones 2. Software Assessments, Benchmarks, and Best Practices by Capers Jones 3. Customer-oriented Software Quality Assurance by Frank P. Ginac 4. Software Engineering by Sommerville 5. Software Egieerig: A Pratitioer’s Approah y Roger S. Pressa 6. Requirements Engineering: Processes and Techniques by Kotonya and Sommerville 7. Inroads to Software Quality by Alka Jarvis and Vern Crandell 8. Software Requirements: Objects, States, and Functions by Alan M. Davis 9. Software Engineering Quality Practices by Ronald K. Kandt 10. High Quality Low Cost Software Inspections by Ronald A. Radice Video Links: http://www.vumultan.com/CS724Video.aspx Published By: www.vumultan.com Chapter Table of Contents Page No 01 Software Process Improvement 001 02 Software Quality Assurance 006 03 Configuration Management 012 04 Introduction to Project Planning 019 05 Process Models 023 06 ETVX: Process Modeling Technique 028 07 Application of ETVX 032 08 IDEF0: Process Modeling Technique 038 09 Intro to Process Management 044 10 Introduction to CMM – I 051 11 Introduction to CMM – II 065 12 Introduction to CMM – II 073 13 Introduction to CMMI – I 082 14 Introduction to CMMI – II 091 15 Introduction to CMMI – III 098 16 Introduction to CMMI – IV 108 17 Introduction to CMMI – V 114 18 Introduction to CMMI – VI 123 19 Introduction to CMMI – VII 133 20 Personal Software Process – I 143 21 Personal Software Process – II 147 22 Review Up To Mid-Term 154 23 Introduction to TSP – I 164 24 Introduction to TSP – II 169 25 Introduction to TSP – III 175 26 Introduction to TSP – IV 180 27 Software Process Improvement Using PDCA 187 28 Softare Process Iproeet Usig SEI’s IDEAL Model 195 29 Software Process Assessments 201 30 Software Process Benchmarks 207 31 Agile Software Process 213 32 Process Patterns 219 33 ISO/IEC 12207:2008 229 34 SPICE – ISO/IEC 15504 236 35 Process Assurance 241 36 People Capability Maturity Model – I 249 37 People Capability Maturity Model – II 255 38 Introduction to Measurements – I 264 39 Introduction to Measurements – II 271 40 Introduction to Measurements – III 279 41 Goal-Question-Metric (GQM) 290 42 Software-Metrics Data Collection 296 43 Process Metrics 302 44 Software Process Improvement: Your Mileage May Vary 308 45 Review from Mid-Term to Final 313 1 CS724 Software Process Improvement – Lecture 1 Software Process Improvement Agenda • Objectives of this course • What is a process? • What is a software process? Why we need them • Process models • Process improvement Objectives of This Course • To introduce students to the basics of software process and process improvement • To teach students about the activities and issues software process engineering • To teach students different software process improvement approaches • To teach students concept of measurements and how it applies to software processes • To introduce students advance and potential research topics in software process engineering • Provide an academic/theoretical background in the class room about an interesting area of research and practice • Let students explore the local industry and understand their processes and suggest an improvement strategy Processes • Processes are part of all aspects of life and are an essential mechanism for coping with complexity in the world • Description of processes are very important because they allow knowledge to be reused What is a 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 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 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 Dr. Ghulam Ahmad Farrukh | Virtual University of Pakistan 2 CS724 Software Process Improvement – Software Processes Software Problems • Technical Need a technical solution Easy to understand and solve • Systemic Difficult to understand and solve Need a process/management solution 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 • 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 • Whee ae the people? Aet the the ost ipotat pat of a ogaizatio? Characteristics of Software Processes • Requires creativity • Interactions between a wide range of different people • Engineering judgment • Background knowledge • Experience Examples of Software Processes • Software engineering development process (SDLC) • Requirements engineering process • Quality assurance process • Change management process • Design process. Dr. Ghulam Ahmad Farrukh | Virtual University of Pakistan 3 CS724 Software Process Improvement – Process Management Basic Concepts • The objectives of software process management are produce products according to plan while siultaeousl ipoig the ogaizatios apailit to podue ette poduts • The basic principles are those of statistical process control, which have been used successfully in many fields • A process is said to be stable or under statistical control if its future performance is predictable within established statistical limits • When a process is under statistical control, repeating the work in roughly the same way will produce roughly the same result • To obtain consistently better results, it is thus necessary to improve the process • If the process is not under statistical control, sustained progress is not possible until it is • The basic principle behind statistical control is measurement • Lord Kelvin Said: When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind; it may be the beginning of the knowledge, but you have scarcely in your thoughts advanced to the stage of science • You cannot just start to use numbers to control things • The numbers must properly represent the process being controlled, and they must be sufficiently well defined and verified to provide a reliable basis for action • While process measurements are essential for orderly improvement, careful planning and preparation are required or the results are likely to be disappointing • The mere act of measuring human processes changes them • “ie peoples feas ad otiatios ae ioled, the esults ust e ieed i a diffeet light from data on natural phenomenon. It is thus essential to limit the measurements to those with predefined use • Measurements are both expensive and disruptive; overzealous measuring can degrade the process we are trying to improve Process Models Process Models • A process model is a simplified description of a process presented from a particular perspective • There may be several different models of the same process • No single model gives a complete understanding of the process being modeled Variations in Process Models • A process model is produced on the anticipated need for that model • A model to help explain how process information has been organized • A model to help understand and improve a process • A model to satisfy some quality management standard Dr. Ghulam Ahmad Farrukh | Virtual University of Pakistan 4 CS724 Software Process Improvement – Types of Process Model • Coarse-grain activity models This type of model provides an overall picture of the process Describes the context of different activities in the process It doest douet ho to eat a poess • Fine-grain activity models These are more detailed models of a specific process, which are used for understanding and improving existing processes Enactment of Processes • Different people usually enact the process in different ways • Sometimes the same person will enact the same process in different ways at different times • Different people have different backgrounds Process Enactment • People with experience may change the order of stages in a process or combine stages because they understand the consequences of what they are doing. However, inexperienced people follow the stages as described because they dont hae this akgoud koledge • Different software support in different environments Process Improvement Process Improvement Objectives • Quality improvement • Schedule reduction • Resource reduction Process Improvements Planning • What are the improvement goals? • How can we introduce process improvements