Por favor, use este identificador para citar o enlazar este ítem: https://repositorio.unipampa.edu.br/jspui/handle/riu/9184
Tipo: Dissertação
Título : OpenMLPerf - graphical domain-specific modeling language for performance testing in web systems
Autor(es): Carbonell, João Batista Pedroso
Primeiro Orientador: Rodrigues, Élder de Macedo
Coorientador: Silveira, Maicon Bernardino da
Resumo: Testing system performance is one of the most crucial tasks in the software development process and its evolution. Most of the current performance tests focus on evaluating an already implemented system, making it difficult to predict issues such as load capacities and bottlenecks. Therefore, it is recommended to employ mechanisms for modeling and specifying system information before implementation. One potential solution is the utilization of models that represent unchangeable aspects of the system domain, such as infrastructure features or user behavior. Using models to abstract, define, and model domain aspects has become the most commonly adopted approach for addressing problems within specific contexts, aligning with the principles of Model-Driven Engineering (MDE), which advocate for using models throughout the software lifecycle. Domain-Specific Languages (DSLs) are one way to specify and model a domain. DSLs are compact languages with limited expressiveness designed for specific domains. Unlike general-purpose languages like Python and Java, DSLs are not intended for implementing systems across all domains; they are restricted to their original purpose. In this study, we propose the reimplementation of a graphical DSL called Canopus for modeling performance tests in web systems. As part of this reimplementation, we have developed a code generator within the DSL. The code generator is specifically designed to generate SCALA code that can be used in conjunction with the JMeter tool. The previous implementation of Canopus utilized commercial licensed technologies, which limited its distribution and evolution. Hence, we present a new version of this DSL, named OpenMLPerf, which will be released under an open-source license, enabling its use, improvement, and evolution. With the addition of the code generator, OpenMLPerf empowers users to automatically generate SCALA code for their performance test scenarios, facilitating the integration with the widely-used JMeter tool. For the selection of a DSL development tool, we conducted a Systematic Literature Mapping, identifying fifty-three (53) available DSL support tools. We chose to use Ecore from the Eclipse Modeling Framework (EMF) and the Sirius framework to implement the language metamodel and the language itself. In addition to these two frameworks, we also utilized the Acceleo framework for template modeling and Scala code generation for performance testing tools. We conducted an empirical evaluation to measure the effort required by users when modeling a performance test scenario using the OpenMLPerf approach, compared to using a UML profile for performance testing. Although the results indicated that both approaches require similar efforts from participants, the OpenMLPerf approach proved to be highly scalable, comprehensive, and intuitive. A crucial factor for adopting the OpenMLPerf approach is its development within an open-source platform, allowing for replication, customization, and community-driven improvements. As a point of consideration, it is worth noting that the adoption of this approach may be influenced by performance and usability issues related to the Eclipse platform.
Resumen : Testar o desempenho de um sistema é uma das tarefas mais cruciais no processo de desenvolvimento de software e sua evolução. A maioria dos testes de desempenho atuais concentra-se em avaliar um sistema já implementado, tornando difícil prever problemas como capacidades de carga e gargalos. Portanto, é recomendado utilizar mecanismos para modelar e especificar informações do sistema antes da implementação. Uma solução potencial é a utilização de modelos que representem aspectos imutáveis do domínio do sistema, como características de infraestrutura ou comportamento do usuário. O uso de modelos para abstrair, definir e modelar aspectos do domínio tornou-se a abordagem mais comumente adotada para resolver problemas em contextos específicos, alinhando-se aos princípios da Engenharia Orientada a Modelos (MDE), que defendem o uso de modelos ao longo do ciclo de vida do software. Linguagens Específicas de Domínio (DSLs) são uma maneira de especificar e modelar um domínio. As DSLs são linguagens compactas com expressividade limitada projetadas para domínios específicos. Ao contrário de linguagens de propósito geral como Python e Java, as DSLs não se destinam a implementar sistemas em todos os domínios; elas são restritas ao seu propósito original. Neste estudo, propomos a reimplementação de uma DSL gráfica chamada Canopus para modelar testes de desempenho em sistemas web. Como parte dessa reimplementação, desenvolvemos um gerador de código dentro da DSL. O gerador de código foi especialmente projetado para gerar código SCALA que pode ser usado em conjunto com a ferramenta JMeter. A implementação anterior do Canopus utilizava tecnologias licenciadas comercialmente, o que limitava sua distribuição e evolução. Portanto, apresentamos uma nova versão desta DSL, chamada OpenMLPerf, que será disponibilizada sob licença de código aberto, permitindo seu uso, aprimoramento e evolução. Com a adição do gerador de código, o OpenMLPerf capacita os usuários a gerar automaticamente código SCALA para seus cenários de teste de desempenho, facilitando a integração com a amplamente utilizada ferramenta JMeter. Para a seleção de uma ferramenta de desenvolvimento de DSL, conduzimos um Mapeamento Sistemático da Literatura, identificando cinquenta e três (53) ferramentas de apoio a DSL disponíveis. Optamos por utilizar o Ecore, do Eclipse Modeling Framework (EMF), e o framework Sirius para implementar o metamodelo da linguagem e a própria linguagem de modelagem. Além desses dois frameworks, também utilizamos o framework Acceleo para a modelagem de templates e a geração de código Scala destinado a ferramentas de teste de desempenho. Realizamos uma avaliação empírica para medir o esforço exigido dos usuários ao modelar um cenário de teste de desempenho usando a abordagem OpenMLPerf, em comparação com o uso de um perfil UML para testes de desempenho. Embora os resultados tenham indicado que ambas as abordagens requerem esforços semelhantes por parte dos participantes, a abordagem OpenMLPerf demonstrou ser altamente escalável, completa e intuitiva. Um fator determinante para a adoção da abordagem OpenMLPerf é o seu desenvolvimento em uma plataforma de código aberto, o que permite sua replicação, customização e aprimoramento pela comunidade. Como ponto de atenção, vale ressaltar que a adoção dessa abordagem pode ser afetada por questões de desempenho e usabilidade relacionadas à plataforma Eclipse.
Palabras clave : Software engineering
Software - Development
Performance test
Domain-specific programming language
Engenharia de software
Software - Desenvolvimento
Teste de desempenho
Linguagem de programação de domínio específico (Computadores)
CNPQ: CNPQ::CIENCIAS EXATAS E DA TERRA
Idioma: por
metadata.dc.publisher.country: Brasil
Editorial : Universidade Federal do Pampa
Sigla da Instituição: UNIPAMPA
Campus: Campus Alegrete
Curso: Mestrado Profissional em Engenharia de Software
Citación : CARBONELL, João Batista Pedroso. OpenMLPerf - graphical domain-specific modeling language for performance testing in web systems. Orientador: Élder de Macedo Rodrigues. 2023. 105p. Dissertação (Mestrado Profissional em Engenharia de Software) – Universidade Federal do Pampa, Campus Alegrete, 2023.
Tipo de acesso: Acesso Aberto
URI : https://repositorio.unipampa.edu.br/jspui/handle/riu/9184
Fecha de publicación : 11-oct-2023
Aparece en las colecciones: Mestrado Profissional em Engenharia de Software

Ficheros en este ítem:
Fichero Descripción Tamaño Formato  
Dissertação - João Batista Carbonell - 2023.pdf5.85 MBAdobe PDFVisualizar/Abrir


Los ítems de DSpace están protegidos por copyright, con todos los derechos reservados, a menos que se indique lo contrario.