architecture evolution. Section 4 describes our formal
model ASCM to represent the common concepts de-
fined in the major ADLs. Section 5 proposes a typol-
ogy of formalized change operations applied on soft-
ware architecture and permitting the change impact
analysis. Section 6 defines a formal process to deal
with the change propagation process for distributed
software. Section 7 presents our integrated platform
that implements the formal models and a knowledge-
based system to support the change propagation pro-
cess. Section 8 gives a scenario of a change impact
analysis performed on a distributed software architec-
ture. Finally, section 9 provides some conclusions and
perspectives.
3 DISTRIBUTED SOFTWARE
ARCHITECTURE EVOLUTION:
RELATED WORKS
Software architecture has emerged as an area of in-
tense research over the last decade. Many approaches
have been proposed to deal with architectural speci-
fication and analysis (Medvidovic and Taylor, 2000;
Bass et al., 1998; Clements and Shaw, 2009). In these
approaches, a large number of ADLs have been de-
veloped to represent different aspects of distributed
software architectures based on the middlewares. The
ADLs do not provide features to deal with the evolu-
tion management of architecture description in a dis-
tributed environment.
Many works have been done for studying the evolu-
tion mechanism in the ADLs. We note that the spec-
ification of the evolution is realized by the ADL that
serves for the architecture description. Therefore, the
evolution management is included in the architectural
specification, and so it will be difficult to be distin-
guished. Moreover, it is almost impossible to iden-
tify all possible evolutions operations that may occur
when specifying architecture.
It is hard to deal with the non planned evolution,
considering the difficulty to study and analyze au-
tomatically the changes impact without incoherence.
The number of propositions dealing with architecture
change impact analysis is very restricted.
4 DISTRIBUTED SOFTWARE
ARCHITECTURE MODELING:
ASCM
Many resarch works have been done to provide archi-
tectural modeling (Garlan et al., 1997), in which the
following common high-level:
1. The Components are units of computation or a
data stores. For example, a component can be a
Thread, a Procedure or a whole application. An
instance of a component may be distributed on
many sites and may interoperate with other dis-
tributed components.
2. The Connectors are architectural building blocks
used to represent the interactions between lo-
cal and distributed components. For example, a
T hread deployed on one site can be connected to
another T hread deployed on another site to send
messages. The second component may treat mes-
sages using local components.
3. The Configurations are connected graphs of local
and distributed components and connectors that
describe the structure of the distributed architec-
ture.
Although these concepts define a high-level common
structure for the distributed software architecture, we
need to refine them in a more accurate model to de-
scribe more precisely the structure of a distributed ar-
chitecture.
The model ASCM leads to represent the dis-
tributed software architecture, based on architecture
specifications described using different ADLs. Our
work consists to represent in a model the common
high-level concepts defined in the major ADLs. This
allows us to analyze various architectural description
documents, which specify distributed software archi-
tectures, in order to extract the elements and to repre-
sent them using ASCM.
By comparing in more detail the definition of the
ADLs, we can refine these elements to provide a more
precise model. Let us describe the ASCM model pre-
sented in figure 1:
• The interface defines the services that other com-
ponents wants to invoke. An interface may define
ports used by a connection. A port can be used by
several connectors. In the ADLs, an interface is
mandatory to describe a distributed component in
the architecture.
• The implementation reflects the source codes of
the services defined in the interface. For exam-
ple, the implementation can describe how a com-
ponent calls sub-programs to realize the services.
• The connection provides a link mechanism be-
tween distributed components to exchange infor-
mation. The link is usually managed using a mid-
dleware that allows a component deployed on one
system to access programs and data on another
one.
A CHANGE PROPAGATION PROCESS FOR DISTRIBUTED SOFTWARE ARCHITECTURE
79