[en] Software quality has become essential in Software Engineering so that development processes have increasingly more resources to ensure it. A frequently used procedure to determine software quality is by using metrics. Applied to software resources throughout their life cycle, they can produce evaluations as a starting point to further evaluation procedures of quality properties. In this project, we develop a DSL (Domain Specific Language) to provide operations to define metrics on models. Domain Specific Languages are smaller languages focused on solving a specific task in a software system. This language, called MyMtr offers the option to define desirable metrics on different meta-models. From telling the number of times a specific kind of object occurs or the number of attributes of that kind of object (with an unlimited depth in attributes recursion parameters) to conditionate the operation mentioned above. It is also possible to define metrics from the result of other unary metric operations (average, to calculate different elements) or binary metric operation (addition, subtraction, division…), and it is also possible to define threshold values for each one of them that is essential to obtain a more expressive and meaningful result as we can mark those metrics which do not verify predefined limits. Apart from defining metrics, MyMtr generates a plugin that provides a view for Eclipse whose functionality is to calculate defined metrics over desirable models and also provide the possibility to export the results in a .csv. format file.

[es] La calidad del software se ha vuelto fundamental para la Ingeniería de Software, de forma que la calidad en los procesos de desarrollo tiene cada vez más recursos para su aseguramiento. Una forma de determinar la calidad del software utilizada con frecuencia es con el uso de métricas. Aplicado a los recursos software durante el ciclo de vida, pueden producir evaluaciones como base para la posterior evaluación de las propiedades de calidad. En este proyecto se desarrolla un DSL (Domain-Specific Language) que proporciona operaciones para la definición de métricas sobre modelos. Los lenguajes de dominio específico son lenguajes más pequeños y enfocados a resolver una tarea específica de un sistema software. Este lenguaje, denominado MyMtr, ofrece la posibilidad de definir las métricas deseadas sobre distintos meta-modelos. Desde contar el número de cierto tipo objetos o el número de atributos de ese tipo de objetos (con una profundidad ilimitada en la recursión sobre los atributos), hasta condicionar las cuentas mencionadas. También se pueden definir métricas que sean resultado de operaciones de otras métricas, ya sean unarias (media, calcular los elementos diferentes, suma de elementos) o binarias (suma, resta, división…), y se pueden definir umbrales para cada una de ellas, lo cual hace más expresivo el resultado obtenido al poder marcar las métricas que no se cumplen con los limites definidos. Aparte de definir las métricas, MyMtr genera un plugin que proporciona una vista para Eclipse cuya funcionalidad es realizar el cálculo de las métricas definidas sobre los modelos deseados, y además la posibilidad de exportar los resultados a un fichero .csv