Published Jun 20, 2016


Google Scholar
Search GoogleScholar

José Bocanegra-García, MSc

Jaime Pavlich-Mariscal, PhD

Angela Carrillo-Ramos, PhD



An adaptive software has the ability to modify its own behavior at runtime due to changes in the users and their context in the system, requirements, or environment in which the system is deployed, and thus, give the users a better experience. However, the development of this kind of systems is not a simple task. There are two main issues: (1) there is a lack of languages to specify, unambiguously, the elements related to the design phase. As a consequence, these systems are often developed in an ad-hoc manner, without the required formalism, augmenting the complexity in the process of derivation of design models to the next phases in the development cycle. (2) Design decisions and the adaptation model tend to be directly implemented into the source code and not thoroughly specified at the design level. Since the adaptation models become tangled with the code, system evolution becomes more difficult. To address the above issues, this paper proposes DMLAS, a Domain-Specific Language (DSL) to design adaptive systems. As proof of concept, this paper also provides a functional prototype based on the Sirius plugin for Eclipse. This prototype is a tool to model, in several layers of abstraction, the main components of an adaptive system. The notation used both in the models and the tool was validated against the nine principles for designing cognitively effective visual notations presented by Moody.


Adaptation, adaptive software, context, design, domainspecific language, model-driven engineering, notationadaptación, contexto, ingeniería dirigida por modelos, lenguages específicos de dominio, notación, software adaptativo

[1] K. Geihs and C. Evers, “User intervention in self-adaptive context-aware applications,”
in Proc. Australasian Computer Science Week Multiconference, 2016.
[2] C. Krupitzer, G. Schiele, S. VanSyckel, F. M. Roth. and C. Becker, “A survey on engineering
approaches for self-adaptive systems,” Pervasive Mob. Comput., vol. 17, pp. 184-206, 2015.
[3] C. Bauer and A. K. Dey, “Considering context in the design of intelligent systems: Current
practices and suggestions for improvement,” J. Syst Soft., vol. 112, pp. 26-47, 2016.
[4] R. de Lemos, H. Giese, H. A. Müller, M. Shaw, J. Andersson, M. Litoiu, B. Schmerl, G.
Tamura, N. M. Villegas, T. Vogel, and others, “Software engineering for self-adaptive
systems: A second research roadmap,” in Software Engineering for Self-Adaptive Systems II.
Berlin: Springer, 2013, pp. 1-32.
[5] T. Kosar, S. Bohram and M. Mernik, “Domain-Specific Languages: A systematic mapping
study,” Inform Software Tech., vol. 71, pp. 77-91, 2016.
[6] J. Bocanegra, J. Pavlich-Mariscal, and A. Carrillo-Ramos, “DMLAS: A domain-specific
language to specify the design of adaptive systems,” in 10CCC, 2015.
[7] Institute for Software Integrated Systems (ISIS), “Generic Modeling Environment – GME,”
[Online]. Available: [Accessed March 2016].
[8] H. Wei, S. Zuckerman, X. Li and G. Gao, “A dataflow programming language and its
compiler for streaming systems,” in Inte. Conf. Computational Sci., vol. 29, pp. 1289-1298,
[9] Eclipse Foundation, “Sirius,” [Online]. Available: [Accessed
March 2016].
[10] Y. Brun, R. Desmarais, K. Geihs, M. Litoiu, A. Lopes, M. Shaw, and M. Smit, “A design
space for self-adaptive systems,” in Software Engineering for Self-Adaptive Systems. Berlin:
Springer, 2013, pp. 33-50.
[11] F. Baude, L. Henrio, and C. Ruz, “A component-based programming model for autonomic
applications,” Programming Distributed and Adaptable Autonomous Components—the GCM/
ProActive Framework, vol. 45, no. 9, pp. 1189-1227, 2015.
[12] N. Gamez, L. Fuentes, and J. M. Troya, “Creating self-adapting mobile systems with
dynamic software product lines,” IEEE Software, vol. 32, no. 2, pp. 105-112, 2015.
[13] M. Berkane, L. Seinturier and M. Boufaida, “Using variability modelling and design
patterns for self-adaptive system engineering: Application to smart-home,” Int. J. Web
Eng. Technol., vol. 10, no. 1, pp. 65-93, 2015.
[14] X. Mao, M. Dong, L. Liu, and H. Wang, “An integrated approach to developing self-adaptive
software,” J. Inform. Sci. Eng., vol. 30, no. 4, pp. 1071-1085, 2014.
[15] T. Vogel and H. Giese, “Model-driven engineering of self-adaptive software with eurema,”
ACM TAAS, vol. 8, no. 4, p. 18, 2014.
[16] Y. E. Gelogo and H. Kim, “LotG: A Design of Adaptive u-learning System,” Asia-pacific
Journal of. Multimedia Services Convergent with Art, Humanities, and Sociology, vol. 5, no. 3,
pp. 239-249, 2014.
[17] P. J. Muñoz-Merino, C. D. Kloos, M. Muñoz-Organero, and A. Pardo, “A software engineeringmodel for the development of adaptation rules and its application in a hintingadaptive e-learning system,” Comput. Sci. Inform. Syst., vol. 12, no. 1, pp. 203-231, 2015.
[18] P. A. Akiki, A. K. Bandara, and Y. Yu, “Adaptive model-driven user interface development
systems,” ACM Comput. Surveys, vol. 47, no. 1, 2015.
[19] D. L. Moody, “The ‘physics’ of notations: toward a scientific basis for constructing visual
notations in software engineering,” IEEE Trans. Softw. Eng., , vol. 35, no. 6, pp. 756-779,
How to Cite
Bocanegra-García, J., Pavlich-Mariscal, J., & Carrillo-Ramos, A. (2016). Towards a Domain-Specific Language to Design Adaptive Software: the DMLAS Approach. Ingenieria Y Universidad, 20(2), 335–354.
Industrial and systems engineering