USC CS599 Term Report Xerox SPI Model Study Jason C. Ho 214-41-9077 12/20/1999Introduction USC CS599 course As a continuous effort of offering best study topics for graduate students. The University of Southern California’s (USC) Center for Software Engineering has created a new course, CS599: Software Process Modeling, for the semester of Fall 1999. Dr. Ray Madachy is responsible for the course, with support from Dr. Barry Boehm, Director of Center for Software Engineering. The course overviewed the field of software process modeling, and address current research issues with student simulation projects. Process modeling techniques for both continuous systems and discrete systems were covered, with a concentration in system dynamics modeling (continuous systems). The course is designed for students and software engineering professionals who are interested in understanding the dynamics of software development and assessing process strategies. Examples of process and project dynamics covered are Rapid Application Development (RAD), the effects of schedule pressure, experience, work methods such as reviews and quality assurance activities, task underestimation, bureaucratic delays, demotivating events, process concurrence, other socio-technical phenomena and the feedback therein. These complexes and interacting process effects are modeled with system dynamics using continuous quantities interconnected in loops of information feedback and circular causality. Knowledge of the interrelated technical and social factors coupled with simulation tools can provide a means for software process improvement. The objectives of the course are to: n Review the field of software process modeling. n Develop simulation term projects that address critical software issues. n Describe the systems thinking paradigm for developing increasingly deep understandings of software process structures. n Show basic building blocks and model infrastructures for software development processes. n Provide sufficient introductory material including exercises and executable models on the Internet. n Describe the modeling process, including calibration of models to software metrics data. Chapter 12 n Show recent developments on how others have used the principles of system dynamics to analyze and improve their processes. n Provide detail of critical implementation issues and future research motivations. The course project for the semester is a simulation study. Each student needs to define his/her research topic to be addressed by software process simulation. Problem statement / Purpose of study Since the author is a full time employee of Xerox Corporation with a software development group, Common Client & Server Development (CCSD), working on its Software Process Improvement based on SEI’s Software CMM model. The course project picked is to research and produce a system dynamics model for Software Process Improvement based on the CMM model. With a system boundary based on the scenario of a Xerox S/W development group working from just assessed as a Level 2 organization moving towards achieving Level 3 under CMM model. Purpose of model building Reuse or build a model to help provides insights into complex process behavior. And support planning, tracking and prediction of software process improvement activities for the Xerox group. n Help evaluate different approachesBackground About System Dynamics System dynamics was originally created to help better understand and control industrial systems. System dynamics is used to model problems, to address problems being experienced by any system that changes over time. The "iThink Analyst" product by High Performance Systems was chosen as the tool to use for crating system dynamic models for the class. The following quote from “Radical Improvements Require Radical Actions: Simulating a High-Maturity Software Organization” by Steven Burke, published in June 1997. Further explain Systems Dynamics and iThink: The following description of Systems Dynamics and iThink is taken from the iThink reference manuals (HPS 1994). Systems Dynamics and iThink (the Systems Dynamics tool used in this study) are concerned with the dynamics, or the change of state over time, of closed loop processes. Systems Dynamics and iThink base their fundamental, process-simulation building blocks on the following definition of process: “A process is a sequence of activities through which material flows for purposes of undergoing some sort of transformation which adds value.” The essence of a process is flow. Therefore, a key question when creating an accurate simulation is, “What is flowing?” Over time, it has been observed that material does not flow much of the time. It is often waiting for some activity to be performed on it. Systems Dynamics and iThink, therefore, make a distinction between stocks (amount of resources) and flows (the rate of change of the stock). Flows directly control the transfer, consumption, and transformation of stocks and, therefore, directly affect the level or amount, of stock. Stocks and flows are two of the three building blocks used by iThink to represent processes. The third building block, information feedback links, provides indirect control of the stocks and flows over time. Feedback is information, not the actual flow of resources, that is provided to the decision rules that control the amount of flow over time. To illustrate this concept, take cutting a bagel as an example. The bagel is the stock being transformed. Cutting the bagel with a knife at a certain rate (e.g., one inch per second) is the flow. Feedback is the form of information from your eyes to your brain that the bagel is cut in two. This information is used to affect the decision rule that controls the cutting rate. Without this feedback, you may cut off your finger. People try to improve processes by using a static process map or diagram to analyze the resources (stocks) and activities (flows) in isolation. Their goal is to see which ones can be removed or rearranged to speed up the flows. Removing stocks and flows that do not add value is a typical example of such a process improvement methodology. Systems Dynamics and iThink help improve this methodology and help prevent tampering with a process by giving proper focus to the feedback and decision rules elements of a process. It has been found that people are able to analyze the static structure of a process fairly
View Full Document