Lecture Software process improvement: Lesson 1 provide students with knowledge about: introduce students to the basics of software process and process improvement; teach students about the activities and issues software process engineering; teach students different software process improvement approaches;... Please refer to the detailed content of the lecture!
Software Process Improvement CS7xx Dr. Ghulam Ahmad Farrukh 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 1 • 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 Objectives of This Course 2 • 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 Objectives of This Course 3 • 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? 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 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 10 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 28 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 29 Types of Process Model • Coarsegrain activity models • Finegrain activity models 30 Coarsegrain Activity Model • This type of model provides an overall picture of the process • Describes the context of different activities in the process • It doesn’t document how to enact a process 31 Finegrain Activity Models • These are more detailed models of a specific process, which are used for understanding and improving existing processes 32 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 33 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 don’t have this background knowledge • Different software support in different environments 34 Process Improvement 35 Process Improvement Objectives • Quality improvement • Schedule reduction • Resource reduction 36 Process Improvements Planning • What are the improvement goals? • How can we introduce process improvements to achieve these goals? • How should improvements be controlled and managed? 37 Six Steps to Software Improvements 1 • Understand the current status of development processes • Develop a vision for the desired process • Establish a list of required process improvement actions in order of priority 38 Six Steps to Software Improvements 2 • Produce a plan to accomplish the required actions • Commit the resources to execute the plan • Start over at step 1 39 Process Maturity Levels • • • • • Initial Repeatable Defined Managed Optimizing 40 Recap 41 References • Managing the Software Process, Chapter 1, by Watts Humphrey • Requirements Engineering, Chapter 2 [2.0, 2.1, 2.4], by Gerald Kotonya and Ian Sommerville 42 ... Examples of? ?Software? ?Processes • Software? ?engineering development? ?process? ? (SDLC) • Requirements engineering? ?process • Quality assurance? ?process • Change management? ?process • Design? ?process 17 Process? ?Management... 13 Software? ?Processes • Software? ?engineering, as a discipline, has many processes • These processes help in performing different? ?software? ?engineering activities in an organized manner 14 Software? ?Process. .. What is a? ?process? • What is a? ?software? ?process? Why we need them • Process? ?models • Process? ?improvement Objectives of This Course ? ?1 • To introduce students to the basics of software? ?process? ?and? ?process? ?improvement