home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.umcs.maine.edu
/
2015-02-07.ftp.umcs.maine.edu.tar
/
ftp.umcs.maine.edu
/
pub
/
WISR
/
wisr6
/
proceedings
/
ascii
/
abdel-hamid.ascii
next >
Wrap
Text File
|
1993-10-19
|
19KB
|
373 lines
Modeling The Dynamics of Software Reuse: An Integrating System
Dynamics Perspective
Tarek K. Abdel-Hamid
Associate Professor of Information Systems
Naval Postgraduate School
Code AS/AH
Monterey, CA 93943
Tel: (408) 656-2686
Email: 3991p@vm1.cc.nps.navy.mil
Fax: (408) 656-3407
Abstract
An integrating System Dynamics approach for modeling software reuse is proposed. The ap-
proach has three unique features. First, it integrates the multiple functionsof the software reuse
process, includingb oth themanagerial activities (e.g., setting reuse production/consumption
goals, allocating resources, staffing, etc.) as well as the technical activities (reusable component
identification, generation, consumption, etc.). Second, themo del usesthe feedback principles
of system dynamics as a conceptual lens to view and analyze the complex web of dynamically
interacting variables. Third, computer simulation is utilized to handle the dynamic complexity
of the model and to conduct controlled experimentation.
The model serves as a "learning laboratory" to study the software reuse phenomenon and
gain a better understanding of the interactions and trade-offs that characterize reuse policy
decisions, as well as serve as a management support tool to evaluate/design organizational reuse
policies.
Keywords: reuse modeling, reuse management, system dynamics
Workshop Goals: Advancing state of the art in reuse dynamic modeling; Learning.
Working Groups: Reuse management, organization, and economics; reuse process models;
education.
Abdel-Hamid- 1
1 Background
My work on modeling the dynamics of software reuseis an extension of an ongoing research pro-
gram to study, gain insight into, and make predictions about the dynamics of the entire software
development process. This is being accomplished through the development of dynamic pro cess
models using the techniques of System Dynamics. System Dynamics is the application of feedback
control systems principles to model, analyze, and understand the dynamic behavior of complex
systems. Its origins trace back to the pioneering work of Jay W. Forrester [1 ].
To-date, the focus of my work has been on the study ofsoftware project management [2 , 3]. For
example, my colleagues and I have modelled/investigated the dynamics of software project staffing
[4 ]; cost/schedule estimation [5 ]; quality assurance economics [4 ]; and organizational learning [6 ].
The current research effort extends the application of the System Dynamics technique to model
the dynamics of software reuse. In contrast to our project management models which focus on the
individual project lifecycle, the scope here is broadened to capture the operations of a software
development organization as multiple software products are developed, placed into operation, and
maintained over a long period of time.
2 Position
Experience from working with managers in many environments indicates that they are generally
able to specify the detailed relationships and interactions among managerial p olicies, resources, and
performance. However, managers are usually unable to determine accurately the dynamic behavior
implied by these relationships. Human intuition, studies have shown, is ill-suited for calculating
the consequences of a large number of interactionsover time, especially when cause and effect are
distant in time and space [7]. This can, and often does, lead to the adoption of policies that prove
dysfunctional in the long run.
Thus, one motivation for developing computer-based models of complex socio-technical systems
(such as software reuse), is to havea capability to reliably and efficiently trace through time the
implications of a complex web of system interactions. By utilizing computer simulation techniques
we, thus, combine, the strengths of thesoftware manager with the strengths of the computer. The
manager aids by specifying relationships within his/her software reuse environment (e.g., effect of
staff experience on reuse rate), the computer then calculates the long-term dynamic consequences
of these relationships (e.g., on productivity, quality, etc.).
A second reason for constructing computer-based models, is for experimentation. Engineers turn
to laboratory experiments to learn about the behavior of complex engineering systems. Our social
systems are far more complex and harder to understand than our technological systems. Why,
then, do we not use the same approach of making computer models of social systems, such as a
software development organization, and conduct laboratory experiments on these models?
(quote) The answer is often stated that our knowledge of social systems is insufficient
for constructing useful models. But what justification can there be for the apparent
assumption that we do not know enough to construct models but believe we do know
enough to directly design new social systems? ... I am suggesting that we now do
know enough to make useful models of social systems. Conversely, we do not know
Abdel-Hamid- 2
enough to design the most effective social systems directly without first going through
a model-building experimental phase [8 ].
Indeed, over the last three decades the work of Forrester and others in the System Dynamics
field demonstrated both the feasibility and utility of constructing computer-based models to study
complex social systems. More recently, the technique has been successfully applied to the software
project domain [2 ]. Using these tools, the software reuse manager, like the engineer, can have a
laboratory in which he/she can simulate organizational behavior and learn quickly and at low cost
the answers that would seldom be obtainable from trials on real pro jects.
Characteristic features of proposed modeling approach. The proposed approach has three unique
features. First, the model integrates the multiple functions of the software reuse process, includ-
ing both the managerial functions (e.g., setting reuse production/consumption goals, allocating
resources, staffing, etc.) as well as the technical activities of reuse (e.g., reusable component iden-
tification, generation, consumption, etc.). This contrasts with most of the research to-date on
software reuse which tended to emphasize one aspect or problem area in isolation e.g., domain
analysis, organizational rewards, identification/ qualification of reusablecomp onents, economics,
etc. Clearly such micro-oriented research does make a useful contribution to our understanding of
the software reuse phenomenon. However, before we cansay that we have a complete understand-
ing, it is necessary to show that our knowledge of the individual components can be put together
in a total system i.e., an organization can be synthesized, which allows for the interactions of all
the relevant variables and of all the structural components [9 ].
There is a need to learn what the relationships are between the technical and non-
technical aspects, how one influences the other, and what makes a reuse program a
success or a failure. Reuse should be seen as a whole, as an integrated system and
therefore addressed as such. To see reuse as a separate and independent collection of
tools, techniques, or methods will only perpetuate the current status [10 ].
The second unique feature of the proposed modeling approach is the use of the feedback principles
of system dynamics to structure and clarify the complex set of dynamically interacting variables.
Feedback is the process in which an action taken by a person or thing will eventually affect that
person or thing. A feedback loop is the closed sequence of causes and effects, from an initial cause,
its series of ripples through an entire chain of causes and effects, until the initial cause eventually
becomes an indirect effect of itself. Circular feedback processes are universal in social systems, the
software engineering domain being no exception [2].
The third feature, is the reliance on computer simulation to handle the dynamic complexity of such
a model, and to serve as a "laboratory" for controlled experimentation.
By using a (simulation) model of a complex system, more can be learned about internal
interactions than would ever be possible through manipulation of the real system. In-
ternally, the model provides complete control of the system's organizational structure,
its policies, and its sensitivities to various events [1].
Overview of model structure and behavior. The model is quite detailed, containing more than 200
difference equations. Providing a full description of the model's structure is, thus, beyond the scop e
of this paper. Instead, I provide an overview of the model's five ma jor sectors, which are shown
Abdel-Hamid- 3
in Figure 1. At the top of the figure is the software development and maintenance sector. The
function of this sector is to provide the overall organizational setting within which software reuse
is conducted and managed. It provides a characterization of the mo deledorganization's unique
software development environment (e.g., size of project portfolio, average size of projects, type of
software, maintenance backlog, etc.).
Having defined a particular organizational setting, we can next model the specific software reuse
activities of interest. These are captured in two highly interdependent sectors, a reusable compo-
nents production sector, and a reusable components consumption sector. The production sector
models the reusable components repository and the production process that populates it. Factors
affecting the reusable component deposition rate include the degree of functionaloverlap between
applications in the domain, organizational reuse support, learning, schedule pressures, perceived
costs, and organizational goals. Two things to note here. First, that most of these factors are
dynamic, that is, they can change overtime. And second, the distinction between reality and the
perception of reality (e.g., as in "perceived" costs).
Similarly, the reuse consumptionsector captures the reuse consumption rate and its determinants.
These include: perceived benefits of reuse, repository size, reuse support, learning, overlap between
applications, and schedule pressure.
The software production, maintenance, and reuse activities are all very much affected, and they
themselves affect, the size and characteristics of the organization's human resource. The human
resource sector captures the hiring and firing of staff, staff resourceallo cation, training, turnover,
etc.
Finally, the management policy sector provides the leverage p oints in the model through which
management can affect the software reuse pro cess. Possible managerialinterventions include setting
reuse goals, allocating resources, organization, etc.
As suggested above, the software reuse process, like mostorganizational systems, is characterized
by a complex network of interconnected feedback loops. As an example, two simple feedback loops
are depicted in Figure 2. The lower loop is a positive self-reinforcing feedback loop. It shows
how reuse can increase an organization's software development productivity, which would increase
the organization's software delivery rate, this inturn can lead to the generation of more reusable
components, which ultimately can lead to even higher reuse rates.
This self-reinforcing loop is counterbalanced by the negative feedback loop that is also shown.
This second loop shows that a high level of reuse would decrease the amount of new/original
software components developed, which, in turn, decreases the opportunities for developing reusable
components. A reduction in the production of reusable components could then slow down or even
decrease reuse.
Which of the two loops is dominant? To answer this question, we rely on the simulation capability
of the model. A simulation run is shown in Figure 3. It shows that the two feedback lo ops of
Figure 2 interact in a non-linear fashion. A linear-typ e interaction would have led to constantly
increasing or decreasing reuse consumption and production rates (depending on which of the two
loops is more dominant). Instead, the simulation shows that initially the p ositive feedback loop
dominates. That is, in the early phases of a software reuse effort, when the reuse rate is relatively
low, the reuse process "feeds on itself" to produce a period of accelerating growth.
Eventually, however, growth slows down. In this simulation run, this happens way before the
organization reaches its theoretical reuse potential (which in this particular case is 60the balancing
Abdel-Hamid- 4
influence of the negative feedback loop. For as the reuse rate goes higher and higher, the amount
of new/original code being developed decreases. This leads to smaller and smaller depositions to
the repository. And because older reusable components are continuously being retired from the
repository, the repository's size levels off, and even starts decreasing slightly (as shown in the
figure). As this happens, the reuse rate follows.
Model Utility. The mo del willserve as a "learning laboratory" to study the software reuse phe-
nomenon and gain a better understanding of the interactions and trade-offs that characterize reuse
policy decisions, as well as servs as a management support tool to evaluate/design organizational
reuse policies.
3 Comparison
Most of the research to-date on software reuse has tended to emphasize one aspect or problem area
e.g., domain analysis [11 ], incentives [12, 13 ], identification/qualification of reusable components
[14 ], economics [15 ], etc. In this research effort I build upon and extend what has been learned
about the "pieces" of the software reuse phenomenon to construct a holistic dynamic model of the
software reuse process that would allowus to study the complex set of interactions and trade-offs
that characterize the process.
References
[1] J. Forrester, Industrial Dynamics. The MIT Press, Cambridge, Mass, 1961.
[2] T. Abdel-Hamid and Madnick, SoftwareProject Dynamics: An Integrated Approach. Prentice-
Hall, Inc., Englewood Cliffs, New Jersey, 1991.
[3] T. Abdel-Hamid and S. Madnick, "Lessons learned from modeling the dynamics of software
development," Communications of theACM, 1989.
[4] T. Abdel-Hamid, "The dynamics of software project staffing: A system dynamics based sim-
ulation approach.," IEEE Transactions on Software Engineering, Feb. 1989.
[5] T. Abdel-Hamid, "Adapting, correcting, and perfecting software estimates: A maintenance
metaphor," IEEE Computer, Mar. 1993.
[6] T. Abdel-Hamid and S. Madnick, "The elusive silver lining: How we fail to learn from software
development failures," Communications of the ACM, 1990.
[7] G. Richardson and G. I. Pugh, Introduction to System Dynamics Modeling with Dynamo. The
MIT Press, Cambridge, Mass., 1981.
[8] J. Forrester, "Counterintuitive behavior of social systems," Technology Review, vol. 73, Jan.
1971.
[9] M. L. Griss, "A multi-disciplinary software reuse research program," in Proceedings of the 5th
Annual Workshop on Software Reuse, Palo Alto, CA., 1992 (M. Griss and L. Latour, eds.),
pp. Griss-1:8, Department of Computer Science, University of Maine, Nov. 1992.
[10] R. Prieto-Diaz, "Making software reuse work: An implementation model," Software Engineer-
ing Notes, vol. 16, July 1991.
Abdel-Hamid- 5
[11] R. Prieto-Diaz, "Domain analysis: An introduction," Software Engineering Notes, vol. 15,
no. 2, pp. 47-54, 1990.
[12] W. Tracz, "Software reuse: Motivators and inhibitors," in COMPCON87, San Francisco, CA,
Feb. 1987.
[13] R. Holibaugh and J. Morin, "A reuse incentive model," in The 5th Annual Software Technology
Conference, HQ USAF/SC-USAF STSC, Apr. 1993.
[14] G. Caldiera and V. Basili, "Identifying and qualifying reusable software components," IEEE
Computer, Feb. 1991.
[15] J. Gaffney and R. Cruickshank, "A general model of software reuse," in Proceedings of The
1992 International Conference on Software Engineering, Melbourne, Australia, May 1992.
4 Biography
Dr. Tarek K.Ab del-Hamid is an Associate Professor of Information Systems at the Naval Post-
graduate School. Before joining NPS, he spent two and a half years at the Stanford Research
Institute. He is an advisor to NASA's Jet Propulsion Laboratory (since 1988) on the development
of computer-based tools for software project management. He received the B.S. degree in aero-
nautical engineering from Cairo University, Cairo, Egypt, in 1972, and the Ph.D. in management
information systems from MIT in 1984. Hisresearch interests focus on software project manage-
ment, software reuse, and system dynamics. He has authored or coauthored more than 30 papers on
these topics and is the coauthor of Software Project Dynamics: An Integrated Approach (Prentice-
Hall, 1991). Dr. Abdel-Hamid is a member of the ACM, SIM, IEEE-CS, and the System Dynamics
Society.
Abdel-Hamid- 6