estimate benefits. In the post-mortem analysis,
estimated are replaced by actuals, and the
economic merits of individual investment
cycles can be assessed accurately.
3.2 Commonalities and Variabilities
Commonalities among applications of our proposed
domain are well defined. The features discussed in
section 3.1 represent functional commonalities, and
the features discussed in section 1 (how the cost
model is structured as a set of nested investment
cycles, how costs are propagated from one model to
another, etc) represent structural commonalities.
Hence we focus our attention in this section on
dimensions of variability, which are listed below:
• The set of available ROI Functions. The client
organization may choose any subset of the ROI
functions that we have listed in section 1. The
choice of these functions may be dependent on
how the organization makes its investment
decisions. This decision had to be made at
application engineering time, rather than run-
time, because it affects the format of output
screens.
• Database Support. The client organization may
choose any of two candidate database systems,
namely SQL or Oracle. This decision has to be
made at application engineering time rather
than run-time, because it involves different
access routines and data formats, hence
different software packages.
• Reuse Organization. We have identified several
candidate reuse organizations, that may affect
the cost equations and the mechanisms of how
costs are charged or credited in an organization.
These include (Fichman, 2001): the library
model, the curator model, the product centered
model, the expert services model, and the reuse
factory model. The client organization may
select an organizational model among these,
and we adjust the equations accordingly.
• COCOMO Model. The client organization may
choose one of three versions of the COCOMO
model: Basic COCOMO (Boehm, 1981);
Intermediate COCOMO (Boehm, 1981) or
COCOMO II (Boehm
et al, 1995). This
decision has to be made at application
engineering time rather than run-time because it
affects data entry routines, as well as
calculations.
• Parameter Adjustment. The client organization
may decide whether cost estimation constants
are adjusted automatically, in light of archived
cost data, or only manually, from authorized
stakeholders. This decision has to be taken at
application engineering time rather than run-
time because it involves different control
processes within the application.
• Procurement Channels. The client organization
may choose a procurement channel whereby the
application engineering team gets components
only from the domain engineering team, and the
DE team provides components only to the AE
team; alternatively, it may allow external
procurement and external sales. This choice
involves different cost equations, and must be
implemented at application engineering time.
• Access Rights. The client organization may
choose different policies regarding the
management of the parameters of the cost
estimations (such as default values, investment
parameters, incentive structures, etc). One
policy could be that all these are under the
exclusive purview of corporate management; a
more flexible policy could delegate each set of
parameters to the stakeholder that knows best,
or has the greatest stake in each. This involves
complex variability in access rights.
• Optimization Parameters. If the user organiza-
tion chooses to implement the optimization
option, whereby the system can compute values
for the controllable factors that maximize
corporate ROI under constraints, then a number
of non trivial parameters must be fixed, which
pertain to the ROI formulas that have been
selected in the first variability (above) as well
as the controllable factors that have been
selected for the organization.
Some of these dimensions of variability are fairly
straightforward and can easily be supported at
application engineering time; others are fairly
complex
3.3 Reference Architecture
The choice of a reference architecture is perhaps the
most critical decision in the lifecycle of a product
line, as it determines the ease, and the costs of the
application engineering phase, as well as the quality
of produced applications. Decisions taken about
software architectures are usually driven by non
functional attributes, such as required reliability,
security, performance, safety, throughput, response
time, availability, etc.
Because this is reference architecture, another
requirement comes into play that must be added to
these considerations: The architecture must support
A PRODUCT LINE OF SOFTWARE REUSE COST MODELS
267