Criando uma Linguagem Específica de Domínio usando o Xtext: Uma Opção Open Source para Implementar a Canopus

  • Aníbal Neto UNIPAMPA
  • Luiz Paulo Franz UNIPAMPA
  • Jonnathan Lopes UNIPAMPA
  • Elder Rodrigues UNIPAMPA
  • Maicon Bernardino UNIPAMPA

Resumo


Linguagem Específica de Domínio (Domain-Specific Language- DSL) é o nome dado a linguagens utilizadas em aspectos específicos de um sistema. O desenvolvimento de uma DSL não é tarefa trivial, pois são linguagens de programação e possuem uma sintaxe que é definida por uma gramática. Desta forma, faz-se necessário a utilização de ferramentas que suportem a definição dos conceitos para a nova linguagem. Ferramentas com essa capacidade são popularmente conhecidas como Language Workbenches. Este artigo apresenta um guia para auxiliar o desenvolvimento de uma DSL utilizando o framework Eclipse Xtext e tem como objetivo apresentar uma alternativa para a definição da notação textual e desenvolvimento da DSL Canopus.

Referências

Ammann, P. and Offutt, J. (2008). Introduction to Software Testing. Cambridge Press.

Arkin, E. and Tekinerdogan, B. (2014). Domain specific language for deployment of parallel applications on parallel computing platforms. Vienna, Austria.

Bernardino, M., Rodrigues, E. M., and Zorzo, A. F. (2016a). Performance Testing Modeling: An Empirical Evaluation of DSL and UML-based Approaches. In 31st Annual ACM Symposium on Applied Computing, pages 1660–1665, New York, USA. ACM.

Bernardino, M., Zorzo, A. F., and Rodrigues, E. M. (2016b). Canopus: A domain-specific language for modeling performance testing. In Int. Conf. on Software Testing, Verification and Validation, pages 157–167.

Bettini, L. (2016). Implementing domain-specific languages with Xtext and Xtend. Packt Publishing Ltd.

Cunha, M., Mendonca, N., and Sampaio, A. (2013). A declarative environment for automatic performance evaluation in iaas clouds. In 6th Int. Conf. on Cloud Computing, pages 285–292. IEEE.

Demirkol, S., Challenger, M., Getir, S., Kosar, T., Kardas, G., and Mernik, M. (2013). A DSL for the Development of Software Agents working within a Semantic Web Environment. Computer Science and Information Systems, 10(4):1525–1556.

Eysholdt, M. and Behrens, H. (2010). Xtext: Implement your language faster than the quick and dirty way. In Int. Conf. Companion on Object Oriented Programming Systems Languages and Applications Companion, pages 307–309, New York, USA. ACM.

Fowler, M. (2010). Domain-specific languages. Pearson Education.

GatlingCorp (2017). Gatling. http://gatling.io/.

Heyman, J., Byström, C., and Hamrén, J. (2017). Locust. http://locust.io/.

Jayasinghe, D., Swint, G., Malkowski, S., Li, J., Wang, Q., Park, J., and Pu, C. (2012).

Expertus: A generator approach to automate performance testing in iaas clouds. In 5th Int. Conf. on Cloud Computing, pages 115–122. IEEE.

JetBrains (2017). MPS - Create your own domain-specific language. https://www.jetbrains.com/mps/.

Kramer, A. and Legeard, B. (2016). Model-Based Testing Essentials - Guide to the ISTQB Certified Model-Based Tester: Foundation Level. Wiley.

Marand, E. A., Marand, E. A., and Challenger, M. (2015). DSML4CP: a domain-specific modeling language for concurrent programming. Computer Languages, Systems & Structures, 44:319–341.

MetaCase (2017). MetaEdit+ Modeler – Supports your modeling language. http://www.metacase.com/mep/.

Nakamura, H., Nagano, R., Hisazumi, K., Kamei, Y., Ubayashi, N., and Fukuda, A.(2012). QORAL: An External Domain-Specific Language for Mining Software Repositories. In 4th Int. Workshop on Empirical Software Engineering in Practice, pages 23–29.

Russell, S. and Norvig, P. (2004). Inteligência artificial. CAMPUS - RJ.

Scheuner, J., Leitner, P., Cito, J., and Gall, H. (2014). Cloud Work Bench–Infrastructure-as-Code Based Cloud Benchmarking. In 6th Int. Conf. on Cloud Computing Technology and Science, pages 246–253. IEEE.

Silva, M., Hines, M. R., Gallo, D., Liu, Q., Ryu, K. D., and Da Silva, D. (2013). Cloudbench: Experiment automation for cloud environments. In Int. Conf. on Cloud Engineering, pages 302–311. IEEE.

Solmi, R. (2017). Whole. https://whole.sourceforge.io/.

Wende, C., Seifert, M., Heidenreich, F., Karol, S., and Johannes, J. (2017). EMFText. http://www.emftext.org.
Publicado
18/10/2017
Como Citar

Selecione um Formato
NETO, Aníbal; FRANZ, Luiz Paulo; LOPES, Jonnathan; RODRIGUES, Elder; BERNARDINO, Maicon. Criando uma Linguagem Específica de Domínio usando o Xtext: Uma Opção Open Source para Implementar a Canopus. In: ESCOLA REGIONAL DE ENGENHARIA DE SOFTWARE (ERES), 1. , 2017, Alegrete. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2017 . p. 57-64.