Figure 3: Extension to model implementation variability.
tion using the correct calling convention, and (3) cor-
rectly interpret and handle all possible errors during
the execution.
Allowing only one action into each simple activ-
ity could seem quite restrictive and inefficient (i.e.
linking activities containing actions from the same
COTS will require unnecessary data conversions).
However, designers are free to use actions as com-
plex as they wish into Activities (i.e. complex algo-
rithms implemented using several functions from a
single COTS). Regarding efficiency, activity models
built using V
3
Studio can be easily optimized using a
simple model transformation which avoids unneces-
sary data type conversions when possible.
4 CONCLUSIONS
In this paper we propose an extension to the V
3
Studio
meta-model, which allows designers to model compo-
nent behaviour variability at early design stages. The
major contribution of this proposal is to enable the
inclusion of variability aspects both into design and
implementation models. Several variants of the same
component can be easily built, while most of the ex-
isting approaches focus on component substitutability
to support product line development.
This approach allows designers to build complete
component definitions (in which both structural and
behavioural characteristics are fixed) and, optionally,
they can define the activities that may change be-
tween different components of the same type, by
means of parameterised state-machines. The ex-
tended V
3
Studio meta-model also considers imple-
mentation variability, that is, how to deal with dif-
ferent implementations of the same functionality pro-
vided, for instance, by different COTS products avail-
able in the marketplace. In this sense, the meta-model
reinforces black-box component reuse.
The work presented in this paper has consider-
ably enriched the previous versions of the V
3
Studio
meta-model. However, there are still some open is-
sues which must be addressed. Currently we are
working in two main directions, namely: (1) defin-
ing structural variability mechanisms, similar to those
defined in this paper regarding component behaviour,
and (2) including some operational semantics in the
meta-model using KerMeta (Muller et al., 2005).
ACKNOWLEDGEMENTS
This research has been partially funded by the Span-
ish CICYT project MEDWSA (TIN2006-15175-C05-
02) and the PMPDI-UPCT-2006 program (Technical
University of Cartagena, Spain).
REFERENCES
Abouzahra, A., B
´
ezivin, J., Didonet, M., and Jouault, F.
(2005). A practical approach to bridging domain spe-
cific languages with uml profiles. In Proceedings of
the OOPSLA 2005.
B
´
ezivin, J. (2005). On the unification power of models.
Journal of SoSyM, 4(2):171–188.
Deelstra, S., Sinnema, M., van Gurp, J., and Bosch, J.
(2003). Model driven architecture as approach to
manage variability in software product families. In
MDAFA 2003, pages 109–114.
Harel, D. (1987). Statecharts: A visual formalism for com-
plex systems. Science of Computer Programming,
8(3):231–274.
Muller, P.-A., Fleurey, F., and J
´
ez
´
equel, J.-M. (2005).
Weaving executability into object-oriented meta-
languages. In Proceedings of UML MoDELs 2005,
volume 3713 of LNCS. Springer.
OMG (2005). Unified modeling language 2.0: Superstruc-
ture specification. Official specification formal/05-07-
04, Object Management Group, Needham, MA, USA.
OMG (2006). Systems modeling language (sysml
T M
) spec-
ification. Final Adopted Specification ptc/06-05-04,
Object Management Group, Needham, MA, USA.
Selic, B. (2003). The pragmatics of model-driven develop-
ment. IEEE Trans. Soft. Eng., 20(5):19–25.
Szyperski, C. (2002). Component Software - Beyond
Object-Oriented Programming. Addison-Wesley.
Ziadi, T., H
´
elou
¨
et, L., and J
´
ez
´
equel, J.-M. (2003). Towards
a UML profile for software product lines. In Soft-
ware Product-Family Engineering, 5th International
Workshop, PFE 2003, Siena, Italy, November 4-6,
2003, Revised Papers, volume 3014 of Lecture Notes
in Computer Science, pages 129–139. Springer.
ICSOFT 2007 - International Conference on Software and Data Technologies
440