Our second objective is patterns expression at the
instantiation level. In fact, when several patterns are
instantiated to design an application, our profile
identifies clearly the elements belonging to each
design pattern in order to ensure the traceability.
Moreover, it avoids ambiguity when composing
patterns by showing the role played by each pattern
element.
The remainder of this paper is organized as
follows. Section 2 overviews currently proposed
design languages and their extensions. Section 3
presents our proposition to represent an UML profile
for domain specific design patterns. Section 4
illustrates the design language through the definition
of the acquisition data pattern for the process control
system. Section 5 concludes the paper and outlines
future work.
2 RELATED WORK
Design patterns have mostly been described using
natural language, complex mathematical or logic
based formalisms (Eden et al., 1999) (Mikkonen,
1998) which are not easily understood by an
inexperienced designer. This leads to complications
in incorporating design patterns effectively into the
modelling of a new system. To remediate to this
difficulty, the solution is using an expressive visual
notation based on UML to specify patterns. This
improves the pattern specification quality because
UML allows to easily visualise, define and
document the artefacts of the system under
development.
Several works for pattern representation based on
UML have been proposed.
Kim et al., (Kim et al., 2004) propose a Role
Based Modeling Language (RBML). This language
is interested only on representing patterns at the
specification level. It specifies patterns using a
structure of roles. Each role is associated with a
UML metaclass that is called its base. The properties
expressed in a role define a subset of the base
metaclass instances. For example, a role whose base
is the Classifier metaclass expresses properties that
define a subset of UML classifiers (instances of
Classifier). Properties in a classifier role can be
expressed in structural feature roles or behavioral
feature roles specifying respectively the attributes
and operations of conforming classifiers.
This approach treats domain patterns as
templates where the parameters are roles. The
constraint templates are used to specify semantic
properties associated with features that conform to
structural and behavioral feature roles. The RBML
defines well the properties that must be instantiated
by each application in the pattern domain, but it does
not focus on expressing variability. Moreover,
RBML does not offer mechanisms for patterns
composition in a domain.
Unlike the previous work, the UML profile
proposed by Arnaud (Arnaud et al., 2007) focuses
on the variability expression in the functional,
dynamic and static views. The functional model
fragment (use case diagram) is the entrance point for
the instantiation process, where the application
designer selects a functionality variant. However,
the use case diagram is too abstract and can not be
used as an input model for the patterns instantiation.
In fact, the use case diagram is at a high level of
abstraction and thus the designer cannot identify, for
example, the optional attributes or methods
according to its needs. Thereby, this profile is not
very expressive and it makes the patterns
composition more difficult since the static view of a
pattern is decomposed into very elementary
separated packages which contain one or two
classes. Each package is relative to one use case of
the functional diagram.
Overall, currently proposed UML based design
languages for patterns are more interested in the
patterns specification level than in the instantiation
one. Moreover, they do not express variability nor
composition aspects. Thus, they do not offer an
expressive notation guiding the designer in pattern
instantiation.
3 DOMAIN-SPECIFIC DESIGN
PATTERNS PROFILE
In the present work, we offer UML extensions
(OMG (b), 2007) distinguishing between domain-
specific design patterns representation at the
specification and instantiation levels. At the
specification level, our profile facilitates the pattern
instantiation through the expression of pattern
variability and the definition of the constraints to be
fulfilled when the designer adapts the patterns
according to its needs. At the instantiation level, our
profile offers extensions for comprehension,
traceability and composition purposes through the
identification of the roles played by each pattern
element in the application instantiating it.
In the following, we present some UML 2.1.2
(OMG, 2007) basic concepts expressing the
variability in the static and behavioral views. Then,
SPECIFICATION AND INSTANTIATION OF DOMAIN SPECIFIC PATTERNS BASED ON UML
231