|
|||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||
Personnel: | |||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
Research Objective | |||||||||||||||||||||||||||||||
The long term objective of this research is to transform the software development process from its current state of practice into one wherein the entire development process is controlled with the active assistance of Feedback Controllers derived using the theory of Automatic Control. Towards this end, a linear state variable model of the software test process has been developed and studied in a commercial setting. The fundamental assumptions that lie at the heart of this model are derived using an analogy between the System Test phase and a spring-mass-dashpot system. We have temporarilty labelled our approach as the CDM approach.
|
|||||||||||||||||||||||||||||||
Methodology | |||||||||||||||||||||||||||||||
We consider the software development process as a plant that produces software. (See the diagram below.) This plant is comprised of several stages (e.g. Design, Coding, and System Testing) that have forward and feedback connections. Each stage is a plant in itself. For each plant we identify the input, output, and parameters that affect its performance. Given vectors C and O that denote, respectively, control inputs, and plant objective(s), we attempt to answer the following question: "At a given time t what changes are necessary in C such that the product coming out of the plant meets the desired quality and schedule objectives O." The above question has a classical control problem formulation. The plant is modeled using state variables and a suitable controller synthesized. The controller sits in the feedback loop and offers suggestions to the management to improve the production process inside the plant. Note that the controller does not actuate any controllers but offers sound suggestions to humans repsonsible for the management of the plant being controlled. |
|||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||
System Dynamics versus the CDM Approach | |||||||||||||||||||||||||||||||
The systems dynamics (SD) approach to modelling any system was proposed in the 60's by Professor Jay Forrestor. Abdel-Hamid and Madnick were perhaps the first to apply this approach to the modeling of the software process. SD is a simulation-based approach. It answers "What if" questions. For example, "How will the productivity be effected by an increase in the rate of transforming function points to design?" CDM offers quantitative answers to "How to" questions. For example,"What changes made to the software test process will allow the process to be completed within the original schedule and meet the quality objective?" While SD answers such questions using alternate runs of a simulation model, CDM offers the answers by solving a state-variable model of the process. We believe that SD and CDM are complementary approaches; both take a systems view of the software development process but use very different modeling techniques. |
|||||||||||||||||||||||||||||||
Publications: | |||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
Last update: September 30, 2002
|
|||||||||||||||||||||||||||||||