In previous work, we detailed our contribution re-
garding the design support and model versioning, but
we did not demonstrate how our architecture frame-
work may help architects for analysis and flexible
component compositions. In the present work, we ex-
plained how components may be substituted by other
ones having compatible external definitions using a
special kind of inheritance mechanism inspired from
the object-oriented duck-typing concept. We also pro-
vided a taxonomy of link types between components
for both provide-require contracts as well as for del-
egation ones. We introduced a clear separation be-
tween topological configurations of components, sup-
ported by the aforementioned taxonomy, and the be-
havioral or Quality of Service properties whose re-
sponsibility is transfered in a dedicated protocol mod-
eling construct.
The overall framework has been subject to an em-
pirical validation, even if its size was rather small and
the participants were master students (Gilson, 2015).
However, despite its limitations, the case study high-
lighted some advantages in terms of model complete-
ness and in terms of expressiveness regarding model-
ing communication facilities.
Tool support is provided for the overall frame-
work, as an Eclipse plugin, enabling designers to
write and transform models in order to refine, up-
date or modify them in a structured and fully traceable
way. The validation of composition and substitutions
presented in this paper are fully part of that tool.
Still, the mechanism provided to write user-
defined properties has been thought in an automat-
able way, validation of properties is, at present time,
a manual task. When the size of model increases,
such an automated validation is particularly needed,
especially when model elements may be substituted
easily (by model transformations in our case). How-
ever, this validation feature can be added in the tool
support with reasonable effort, especially because we
already provided a theoretical ground regarding con-
sistency verifications between properties. Combined
to the user-defined properties, other behavioral speci-
fications could be envisioned.
At present time, only static relations between
properties are defined, but the property mechanism
could be extended to specify relations between prop-
erties of different constructs. For example, some kind
of relation could be expressed between the response
time of a server, the data transmission rate of its con-
nected communication medium and its CPU capac-
ity. Such complex relations would help the aforemen-
tioned validation feature to higpossible problems in
architecture models for correlated properties, without
requiring to specify each time the mapping between
those properties.
Last, no inheritance exists for data types (e.g. in-
terfaces, parameter types or data structures). Such
inheritance would raise the flexibility for component
composition and substitution, but would require to
enhance our compatibility verifications to handle co-
and contravariance of data types.
REFERENCES
Beugnard, A., J
´
ez
´
equel, J.-M., Plouzeau, N., and Watkins,
D. (1999). Making components contract aware. Com-
puter, 32(7):38–45.
Dashofy, E. M., Hoek, A. v. d., and Taylor, R. N. (2005). A
comprehensive approach for the development of mod-
ular software architecture description languages. ACM
Trans. Softw. Eng. Methodol., 14(2):199–245.
de Jonge, M. (2003). To Reuse or to be Reused - Techniques
for Component Composition and Construction. PhD
thesis, Universiteit van Amsterdam.
Garlan, D., Monroe, R. T., and Wile, D. (1997). Acme:
An architecture description interchange language. In
Conference of the Centre for Advanced Studies on
Collaborative research (CASCON 97), pages 169–
183, Toronto, Ontario.
Gilson, F. (2015). Transformation-Wise Software Architec-
ture Framework. Presse Universitaire de Namur, Na-
mur (Belgium). Ph.D. Thesis.
G
¨
ossler, G. and Sifakis, J. (2005). Composition for
component-based modeling. Science of Computer
Programming, 55(1–3):161 – 183. Formal Methods
for Components and Objects: Pragmatic aspects and
applications.
Grinkrug, E. (2014). Dynamic component composition. In-
ternational Journal of Software Engineering & Appli-
cations, 5(4).
Malavolta, I., Lago, P., Muccini, H., Pelliccione, P., and
Tang, A. (2013). What industry needs from architec-
tural languages: A survey. IEEE Trans. Softw. Eng.,
39(6):869–891.
Object Management Group (2011). OMG Unified Model-
ing Language (OMG UML), Superstructure, version
2.4.1, chapter 8, pages 161–182. Object Management
Group. OMG document formal/2011-08-06.
Object Management Group (2012). OMG Systems Model-
ing Language (OMG SysML™), version 1.3. OMG
document formal/2012-06-01.
Open Group (2013). Open Group Standard ArchiMate®2.1
Specification. Document Number: C13L.
Oquendo, F. (2004). π-adl: an architecture description
language based on the higher-order typed π-calculus
for specifying dynamic and mobile software archi-
tectures. SIGSOFT Software Engineering Notes,
29(3):1–14.
Society of Automotive Engineers (2012). Architecture
Analysis & Design Language (AADL). Standard
number AS5506 Revision: B.
Szyperski, C. (2002). Component Software: Beyond
Object-Oriented Programming. Addison-Wesley
Longman Publishing Co., Inc., Boston, MA, USA,
2nd edition.
Flexible Component Composition through Communication Abstraction
449