Feedback Control of Software Processes Aditya P. Mathur Department of Computer Sciences João Cangussu Department of Computer Sciences Raymond A. DeCarlo School of Electrical and Computer Engineering Tuesday May 1, 2001 2001 SPRING SABA INDUCTION MEETING 1 Software Development Process: Definitions A Software Development Process (SDP) is a sequence of well defined activities used in the production of software. An SDP usually consists of several sub-processes that may or may not operate in a sequence. The Design Process, the Software Test Process, and the Configuration Management Process are examples of sub-processes of the SDP. 2 Current State of Software Process Control 1. Often chaotic. 2. Several recommended procedures are available. None is based on formal models. There is a lack of control algorithms. 3. COCOMO: For cost and effort estimation; no feedback loop. 4. Reliability models: For the estimation of software reliability; once again, no feedback loop. So what do Level 5 companies/groups do? 3 Research Question Can we control the SDP in a manner similar to how physical systems and processes are controlled? Sample Physical Systems: Cruise control Flatness control for a rolling mill pH control in wastewater treatment 4 Physical and Software Systems: An Analogy External force Dashpot To err is Human. Spring Block Rigid surface Software Xequilibrium Xcurrent X: Position Number of remaining errors Spring Force Effective Test Effort Mass of the block Software complexity Viscosity Quality of the test process 5 Example of Software Process Control Software Test Process (STP): System test phase Objective: Control the STP so that the quality of the tested software is achieved by the deadline. Quantification of quality of software: • Number of remaining errors • Reliability 6 Problem Scenario r0 observed r - number of remaining errors cpi = check point i approximation schedule set by the manager rf cp1 cp2 cp3 cp4 cp5 cp6 cp7 cp8 cp9 t- time t0 deadline 7 Our Approach sc r 0 + Initial Settings (wf,) wf+wf + Actual STP ’ Controller Test Manager wf + wf+wf + robserved(t) rerror(t) w’f STP State Model sc r 0 rexpected(t) 8 Postulate I The magnitude of the rate of decrease of the remaining errors is directly proportional to the net applied effort and inversely proportional to the complexity of the program under test. e n r en scr sc Two more postulates…These postulates form the basis of our model. 9 Case Study Objective: To understand the applicability and performance of our approach in a development environment. Environment: Razorfish Company; system test phase. Project: Test SAP/R3 code generated by translating automatically 4 Million lines of COBOL code. 10 Lessons from the Razorfish Study Lesson 1: Feedback control is a feasible and accurate mechanism to control the STP. In the case study: Quality objective and deadline: ~85% reduction in errors in 25 weeks. Objective met in: 37 weeks. Predicted time: 35 weeks !! 11 Lessons from the Razorfish Study Lesson 2: The model must be able to adapt to the needs of a Test Manager. Lesson 3: A control methodology based on feedback control must account for delays in the process due to unforeseen disturbances. 12 Ongoing Research Development of a model for feedback control using reliability. Expansion of the model to include the entire SDP. Encapsulation of the model(s) into a friendly tool. Additional case studies (With Motorola?) Thank You! Any questions please ? 13 Postulate II The magnitude of the effective test effort is proportional to the product of the applied work force and number of remaining errors. for an appropriate . 14 Postulate III The error reduction resistance is proportional to the error reduction velocity and inversely proportional to the overall quality of the test phase. er 1 r for an appropriate . These postulates also apply to software reliability. 15