Reuse+MinCoordinate (Pt1). This pattern con-
siders accessing the required functionalities across
domain legacy systems by direct invocation through
the native APIs of these systems. On the other hand,
each BP implements locally the activities that have
no corresponding functionality in these systems.
Reuse+Automate+MinCoordinate (Pt2). This pat-
tern considers accessing the required functionalities
across enterprise systems by direct invocation through
their native APIs. It also considers implementing all
activities of BPs that have no corresponding imple-
mentation in any of the existing systems as shared
e-services with advertised service-based interfaces.
Reuse+Wrap+Automate+MinCoordinate (Pt3).
This pattern considers providing unified e-services
to all functionalities embedded in legacy systems by
developing wrappers. It also considers implementing
all activities of BPs that have no corresponding
implementation in any of the existing systems as
shared e-services.
Reuse+Wrap+MinCoordinate(Pt4). This pattern
considers providing unified e-services to every
functionality across all legacy systems by developing
wrappers. On the other hand, each BP implements
locally the activities that have no corresponding
functionality in any of the existing systems.
Migrate+MinCoordinate (Pt5). This pattern con-
siders replacing existing systems with new ones. This
involves migrating the implementation of required
functionalities into unified e-services. To minimize
redundancy, each group of equivalent functionalities
is replaced with a single program code that as an e-
service. For more details on the identification process
of these patterns and their detailed architectural
descriptions, see (Dabous, 2005).
3 CONSEQUENCES MODELS
Patterns consequences are typically discussed in
terms of a number of quality attributes. In this paper,
we only consider two quality models that estimate the
patterns consequences. These qualities are develop-
ment effort (devE) and maintenance effort (maintE).
Each model can be applied to any of the identified pat-
terns whose solution is formalised using the shared
architectural description. The quantitative estimates
generated by these models are for the purpose of com-
parison between the different patterns. Therefore,
quality factors that are shared among all patterns and
not affected by the architecture of any particular pat-
tern are negligible and not being considered.
The two consequences models presented in this
section utilise the following input values:
1. An estimate of the devE for each f ∈ F
all
that is
denoted by the functions F devE(f ) : f ∈ F
all
. This
estimation corresponds to the effort of developing
the code for a functionality as if it is built from
the scratch regardless of being a functionality in a
legacy system. We consider Person Months (PM)
as a measurement for this estimation.
2. An estimate of the devE for each access method
ac ∈ AC that is denoted by the functions
AcDevE(ac). This estimation corresponds to the ef-
fort of developing a code to access a component
that has an ac access method. We also consider
PM as a measurement for this estimation.
3. The probability for initiating a code maintenance
request. There are two parts for such probability
denoted by the function modP rob(X
i
, C(f)) : C(f ) ∈
tasks(X
i
). The first one is for the code of a func-
tionality that is in a legacy system (i.e. X
i
∈ XLG).
The latter one is for the code of a new functional-
ity (i.e. X
i
/∈ XLG). Associated with each proba-
bility is the percentage of the code to be modified
denoted by the function modP erc(X
i
, C(f)). In the
first case, when X
i
∈ XLG, this percentage is equal
to 100%. This is based on an assumption made in
the problem context that the development team for
the BPs do not have rights to access permission to
the legacy code.
Methods for obtaining such values from the domain
problem context are discussed in (Dabous, 2005).
3.1 Development effort
The overall development effort (devE) for any pattern
solution encompasses the development effort associ-
ated with all tasks in all components of the resulting
architecture. Considering the three types of tasks that
can appear in any of the Comp components, we can
identify a generic development effort model as fol-
lows:
dev E(Comp) =
X
i
∈Comp
t∈tasks(X
i
)
XdevE(X
i
, t) (1)
In the above model, XdevE(X
i
, t) corresponds to the
development effort for a task t that is in the compo-
nent X
i
(i.e. t ∈ tasks(X
i
)). Each of the three task
types is estimated differently as follows:
XDevE(X
i
, C(f)) is nil when C(f ) is a task within a
component that corresponds to a legacy system (i.e.
X
i
∈ XLG). This is logically consequence of the
fact that f ∈ F
au
is a functionality that is already
encapsulated within a legacy system that is accessed
through its advertised API. Otherwise, when C(f ) is a
task within a component that does not correspond to a
legacy system (i.e. X
i
/∈ XLG)), the XDevE(X
i
, C(f)) is
estimated by considering the value of the input func-
tion F devE(f) that uses known cost estimation mod-
els such as COCOMO or experience as discussed later
ICEIS 2005 - DATABASES AND INFORMATION SYSTEMS INTEGRATION
250