through the use of a formal architecture-centric
approach. This formal architecture-centric method
enables the support of critical correctness
requirements and provides tools to guarantee system
properties. ArchWare provides a set of formal
languages to enable reliable design, amongst them:
(1) the ArchWare Architecture Description
Language ADL (Oquendo et al, 2002), defined as a
layered language for supporting both structural and
behavioural descriptions as well as property
definitions. This language is based on the π-calculus
(Milner, 1999) and µ-calculus (Kozen, 1983), (2)
the ArchWare Architecture Refinement Language
ARL (Oquendo et al, 2004), used to describe
software architectures (based on the Component and
Connector architectural style) and to refine them
accordingly to transformation rules.
These languages used together constitute the
ArchWare environment framework. As mentioned
in section 2, there are noticeable conceptual
similarities between some of the gMDE model
transformations and software architecture
refinement operations. From our point of view,
refinement is considered as an architecture-level
transformation. Thus, the rest of this paper
investigates the ArchWare refinement process
,which is, we believe, essential to the enactment of
our formal architecture-centric MDE approach.
4.2 The ArchWare Refinement
Concept
Complex systems cannot be designed in one single
step. In a stepwise architecture refinement, a
sequence of modifications is applied on a system
abstract model, which leads to a concrete,
implementation-centred model of the architecture.
These refinement steps can be carried out along two
directions: “vertical” and “horizontal”. The concrete
architecture of a large software system is often
developed through a “vertical” hierarchy of related
architectures. An architecture hierarchy is a linear
sequence of two or more architectures that may
differ with respect to a variety of aspects. In general,
an abstract architecture is simpler and easier to
understand, while a concrete architecture reflects
more implementation concerns. “Vertical”
refinement steps add more and more details to
abstract models until the concrete architectural
model has been described. A refinement step
typically leads to a more detailed architectural model
that increases the determinism while implying
properties of the abstract model. “Horizontal”
refinement concerns the application of different
refinement actions on different parts of the same
abstract architecture, for instance, by partitioning an
abstract component into different pieces at the same
abstraction level. The ArchWare ARL language is
the formal expression of these refinement
operations, which aims at preserving upper abstract
architecture properties while modifying it. The
ArchWare environment supports at each level of the
design process the re-use of existing architectural
models and, at the concrete level, architecture-based
code generation. As is demonstrated in [24], the
ArchWare approach handles an exhaustive set of
refinement actions. The semantics of such actions
are expressed as follows:
refDefinition::=on a : architecture action actionName is refinement (
actionParameter
0
, actionParameter
n
)
{
[ pre is { condition } ]
[ post is { condition } ]
[ transformation is { refExpression } ]
} [ assuming { property } ]
Each refinement action, hereinbefore referred to as
actionName, specifies a refinement action to apply
on an architecture “a”, as well as pre- and post-
conditions.
4.3 A Refinement Process for gMDE
The gMDE approach focuses on both directions of
refinement i.e. the “vertical” and the “horizontal”.
The intention is not only to refine an architecture to
a concrete and “close to final” code form, but also to
adapt it according to constraints. This paper
proposes two ways of using the model
transformations. One consists of optimizing a given
system abstract architecture according to expressed
developers’ requirements in terms of QoS. The
second consists of adapting an architecture
according to a Grid middleware. Respectively:
- Each QoS property is represented by a design
pattern. This representation is then adapted to the
current software architecture by refinement.
- Each platform is represented by a design pattern
and corresponding architectural properties. The
system software architecture is then adapted to this
platform by refinement as well.
To do so, the ARL expressiveness had to be
extended with respect to the Grid domain. The next
sections details our complementary semantic and its
usage.
4.4 Grid Domain Specific Language
Enabling the gMDE requires the expression and
consideration of new semantics. Indeed, as
mentioned in section 3.1, the “Platform Independent
ICEIS 2006 - INFORMATION SYSTEMS ANALYSIS AND SPECIFICATION
326