4 A GENERIC EVOLUTIONARY
MODEL
4.1 A Research Plan
In this section we discuss our plan to combine the
three specific evolutionary models to derive a
generic model that can be applied to any software
technology. To this effect, we proceed as follows:
1. We define a set of generic intrinsic factors,
that are trend independent, i.e. applicable to
any software product/ technology.
Whereas attributes such as genericity,
strong typing, and expressiveness apply
only to programming languages; whereas
attributes such as CPU management, I/O
management, Deadlock management apply
only to operating systems; and whereas
attributes such as interoperability,
scalability, and range of supported
languages apply only to middleware
systems; the attributes we choose for the
generic model apply to all software
technologies/ products. These include:
operational usefulness, functional
usefulness, usability, versatility, and cost.
Of course, these are not as meaningful as
the trend-specific factors, but for the sake
of broad applicability we trade significance
for generality.
2. We map all trend specific factors onto
trend-independent factors for any software
technology; these have been defined in
such a way as to encompass all trend
specific factors.
3. From the mapping, of trend-specific factors
to trend-independent factors, we infer
normalized values for the generic intrinsic
factors of all the products we have studied,
whether they are programming languages,
operating systems, or middleware systems.
4. For extrinsic factors, we determine the
periodicity of historical data, and we record
the values of all historical data on a
common periodicity, by appropriate
interpolations and extrapolations. We have
chosen the periodicity to be two years;
hence for each product we record extrinsic
factor values for the present, two years ago,
four years ago and six years ago. We build
a data table with all the individual products,
along with numeric values for all their
intrinsic and extrinsic factors (which are
identical for all studies, including the
generic study).
5. We derive quantitative statistical models
that relate the current or future values of
extrinsic factors as a function of the
intrinsic factors and the history of extrinsic
factors.
6. To validate the generic predictive model
that we obtain, we are currently conducting
an independent empirical study on two
technologies, data bases and web browsers,
using the generic intrinsic factors, the
common extrinsic factors, and the
periodicity determined in step 4; and we
use the results of this data to validate the
model derived in step 6.
At the time of this writing, step 7 is under way,
steps 1 through 6 are completed. The data table
alluded to in step 6 is available online at
http://web.njit.edu/~mili/tecgeneric.xls.
4.2 Regression Model for Historical
Trends
We model the state of success of a trend by a vector
of extrinsic factors that reflect its popularity with
different quarters of the technology scene:
government agencies, industrial organizations,
academic institutions, professional bodies, and end
users (grassroots). We anticipate that these factors
influence each other over time: a trend that is
widely followed in academia one year may spread to
industry several years later when students graduate
and work in industry; conversely, a trend that is
widely followed in industry one year may find its
way in academic programs years later due to
pressure from recruiters or from shifting job
markets; a trend that is widely popular with
grassroots practitioners one year may gain industrial
support later through market pressure; etc. To model
all these complex interactions, we consider the
intrinsic factors of each trend, along with the history
of its extrinsic factors, and we build a regression
model that derives the values of the extrinsic factors
of a trend at year Y as a function of the intrinsic
factors of the trend as well as the history of the
extrinsic factors of that trend in past years. We
build a linear regression equation for each extrinsic
factor; the dependent variable of each regression is
the relevant extrinsic factor, and the independent
variables are the intrinsic factors, as well as the
history of past extrinsic factors, of the trend.
We build this model by feeding it past and
present extrinsic data, and we use it as a predictive
MODELING THE EVOLUTION OF SOFTWARE ENGINEERING TRENDS - A Bottom Up Approach
51