Skip to main content
The reuse life-cycle is mainly divided into development with reuse and development for reuse [10]. In the object-oriented scope, when developing with reuse, the first step is al-ways to find, in libraries and/or repositories, the set of... more
The reuse life-cycle is mainly divided into development with reuse and development for reuse [10]. In the object-oriented scope, when developing with reuse, the first step is al-ways to find, in libraries and/or repositories, the set of candidate classes that will probably be ...
Technical Debt management is an important aspect in the training of Software Engineering students. In this paper we study the effect of two assessment strategies in an educational context: One based on penalisation, the other based on... more
Technical Debt management is an important aspect in the training of Software Engineering students. In this paper we study the effect of two assessment strategies in an educational context: One based on penalisation, the other based on rewards. Both are applied to assignments where the students develop a project focusing on keeping a low technical debt level, and obtaining a high quality code. We describe the design, tools and context of the strategies applied. SonarQube, a tool commonly used in production environments, is used for measuring the metrics. The penalisation strategy is based on a SonarQube quality gate. The reward strategy is based on a contest, where an automatic judge tool is devised to provide an online leaderboard with a classification based on the SonarQube metrics. An empirical study is conducted to determine which of the strategies works better to help the students/trainees keep the Technical Debt low. Statistically significant results are obtained in 5 of the 8 analysed metrics, showing that the reward strategy works much better. The effect size of the executed statistical tests is analysed, resulting in medium and large effect size in the majority of the analysed metrics.
En modelado conceptual los conceptos generalización y especialización tienen una estrecha relación con la noción de herencia ofrecida en los lenguajes de programación orientados a objetos. Sin embargo, la herencia como mecanismo de... more
En modelado conceptual los conceptos generalización y especialización tienen una estrecha relación con la noción de herencia ofrecida en los lenguajes de programación orientados a objetos. Sin embargo, la herencia como mecanismo de programación tiene ...
La Reingenieria de Bases de Datos consiste, en primer lugar, en recuperar toda la informacion posible sobre la estructura de datos (conceptual, logica y fisica) presente en una Base de Datos Legada (LDB) y en uno (o varios) Sistema... more
La Reingenieria de Bases de Datos consiste, en primer lugar, en recuperar toda la informacion posible sobre la estructura de datos (conceptual, logica y fisica) presente en una Base de Datos Legada (LDB) y en uno (o varios) Sistema Software Legado (LSS) para, posteriormente, redisenar el esquema conceptual, transformar la LDB en la Base de datos Nueva (NDB) y el LSS en el Sistema Software Nuevo (NSS) y acometer la migracion de los datos de la LDB a la NDB. La primera fase de este proceso se denomina Ingenieria Inversa de Bases de Datos y esta formada por dos actividades principales que se pueden denominar Analisis de Datos y Abstraccion Conceptual [6]. La actividad del Analisis de Datos intenta recuperar un esquema de datos logico actualizado que este completo estructuralmente y con su semantica bien identificada y documentada [5]. Este esquema logico enriquecido es la entrada para la segunda actividad, la Abstraccion Conceptual. La Abstraccion Conceptual intenta transformar este esquema logico a un esquema conceptual equivalente. Las representaciones habituales de este esquema se hacen en terminos del Modelo Entidad-Relacion o del Modelo Orientado a Objetos. Ambos proporcionan el nivel de abstraccion suficiente para acometer las posteriores actividades de Reingenieria. El proceso de la Reingenieria de Bases de Datos no se ajusta a un modelo en cascada, en el que la actividad de Abstraccion Conceptual no se habria de comenzar hasta que no se hubiera terminado la de Analisis de Datos [5]. Los ingenieros comienzan con las actividades propias de la Ingenieria cuando el esquema logico aun esta incompleto o es inconsistente. Segun vayan acumulando mas conocimiento sobre la estructura de la LDB volveran atras en el proceso e iran completando el esquema logico inicial. Por esta razon se hace imprescindible definir un proceso para la obtencion y transformacion de estos esquemas que pueda ser automatizado, interactivo e iterativo, hasta conseguir obtener el esquema conceptual mas conveniente y, ademas, un metodo que soporte la migracion automatica de los datos de la LDB a la base de datos que finalmente se construya.
International Workshop on Requirements Reuse in System Family Engineering………………………………………………………….1 Program committee…………………………………………………………………………………………………………………………………..2 Programme……………………………………………………………………………………………………………………………………………..3
Abstract: One of the most important factors of success in the development of a software product line is the elicitation, management, and representation of the variability. In this context, this article explores the advantages of adopting... more
Abstract: One of the most important factors of success in the development of a software product line is the elicitation, management, and representation of the variability. In this context, this article explores the advantages of adopting the Model Driven Development (MDD) paradigm in the variability management, including the transformation of feature graphs into UML models. The global picture involves a sequence of models from requirements to features and from both to the architecture (a UML model). The conclusion is positive as the introduction of MDD ideas raises the abstraction level in the instantiation process of the product line. More effort is needed to further evaluate some of the ideas related to MDD transformations: in particular, traceability register is essential if we want to exploit their benefits. 1
Abstract. Traditional PL requirements approaches present several problems in requirements analysis, mainly in variants analysis and selection. The main handicap is dealing with non-functional requirements. These problems can be solved... more
Abstract. Traditional PL requirements approaches present several problems in requirements analysis, mainly in variants analysis and selection. The main handicap is dealing with non-functional requirements. These problems can be solved with the introduction of the goal/softgoal paradigm. This paradigm introduces intentionality (“whys”) and allows relating functional and nonfunctional requirements, the basis of the variant analysis. This proposal improves the PL requirements introducing the goal/softgoal paradigm and relating it with well-known techniques as feature and use case modeling. 1
La actividad de refactorizar el código es hoy en día una de las tareas de la mayoría de procesos de desarrollo del software, especialmente relevante en metodologías ágiles. Sin embargo, la definición de dichas refactorizaciones, su... more
La actividad de refactorizar el código es hoy en día una de las tareas de la mayoría de procesos de desarrollo del software, especialmente relevante en metodologías ágiles. Sin embargo, la definición de dichas refactorizaciones, su construcción e integración en herramientas software, no han sido abordadas desde un punto de vista de proceso, en particular en relación a la preservación del comportamiento. En este trabajo se presenta una aproximación a este tema, desde un enfoque con y para reutilización, aplicable sobre una familia amplia de lenguajes orientados a objetos.
Resumen En este trabajo se presenta el estudio de un conjunto de refactorizaciones desde el punto de vista de un lenguaje modelo. El objetivo es validar la factibilidad de llevar a cabo, sobre un framework que conceptualice las... more
Resumen En este trabajo se presenta el estudio de un conjunto de refactorizaciones desde el punto de vista de un lenguaje modelo. El objetivo es validar la factibilidad de llevar a cabo, sobre un framework que conceptualice las abstracciones del lenguaje modelo, las operaciones de refactorizacion definidas en base a dichas abstracciones. De esta manera se avanza hacia una solucion al desarrollo de herramientas de refactorizacion con independencia del lenguaje. El trabajo tambien presenta el estudio de un lenguaje (GJ, Generic Java) como instancia del lenguaje modelo, de manera que se avanza tambien en la validacion del modelo desde el punto de vista de la factibilidad de instanciar el framework para diferentes lenguajes.
This work deals with the development of a classification algorithm that will improve the usefulness of design smell detection tools for its adoption in industry in order to increase software quality (maintainability, understandability,... more
This work deals with the development of a classification algorithm that will improve the usefulness of design smell detection tools for its adoption in industry in order to increase software quality (maintainability, understandability, etc.). The current knowledge of Design Smell Detection (types of smells, approaches, strategies, algorithms, tools, etc.) will be identified. After that, a dataset that allow the comparison of different machine learning techniques will be developed. Analysis of possible improvements derived of the introduction of subjectivity, adaptability and gray scale are also an objective of the work.
Resumen: Para la detección de defectos, errores, etc. se utilizan en muchas ocasiones métodos cuantitativos: métricas. El empleo de umbrales (thresholds) para determinar la corrección de los valores obtenidos está ampliamente difundido.... more
Resumen: Para la detección de defectos, errores, etc. se utilizan en muchas ocasiones métodos cuantitativos: métricas. El empleo de umbrales (thresholds) para determinar la corrección de los valores obtenidos está ampliamente difundido. Sin embargo, existe una ...
Resumen La creación y posterior evolución de frameworks es un proceso dif́ıcil. Esta dificultad es mayor en los frameworks de dominio, que deben adaptarse rápidamente a los cambiantes requisitos de las áreas de negocio. En este trabajo... more
Resumen La creación y posterior evolución de frameworks es un proceso dif́ıcil. Esta dificultad es mayor en los frameworks de dominio, que deben adaptarse rápidamente a los cambiantes requisitos de las áreas de negocio. En este trabajo mostraremos cómo el concepto de mecano puede constituir un soporte adecuado para facilitar las tareas de creación, evolución e instanciación de frameworks. Para ello presentaremos una arquitectura inicial de mecano “bien formado como framework” que deberá ser refinada hasta obtener una gramática detallada. También mostraremos cómo las técnicas del Análisis de Conceptos Formales pueden orientar estos procesos, detectando generalizaciones y sugiriendo reorganizaciones de clases que pueden favorecer su reutilización. Basándonos en esto proponemos un proceso para asistir a la construcción evolutiva de frameworks. En este contexto el concepto de mecano nos proporciona el soporte para propagar las modificaciones necesarias desde el nivel de abstracción en q...
We expose a case study of a bad smell detection through metrics. In practice, bad smell detection emerges from human observations. Metrics allow to obtain an objective view of the software, so they must be used as instruments to detect... more
We expose a case study of a bad smell detection through metrics. In practice, bad smell detection emerges from human observations. Metrics allow to obtain an objective view of the software, so they must be used as instruments to detect bad smells. Concretely, we focus in the bad smell: Parallel Inheritance Hierarchy, using a metric subset. Although it is not a serious bad smell, however its detection is difficult in large and medium size systems. Besides, it is usually necessary to have several versions of the system to detect its presence. We define a process to manage the big amount of data extracted from a system to determine where exists this bad smell, only with an available version. The saving of time and effort in this process is showed as an advantage opposite to other solutions.
Por último, los objetos del documento XML (elementos Object) contienen información necesaria para la gestión del protocolo, como un identificador específico para poder establecer referencias a ellos. Las asociaciones (elementos... more
Por último, los objetos del documento XML (elementos Object) contienen información necesaria para la gestión del protocolo, como un identificador específico para poder establecer referencias a ellos. Las asociaciones (elementos Association), contienen las referencias a los objetos origen y destino de las mismas. Para poder incluir las relaciones en el documento, manteniendo la semántica del modelo, se declaran bajo Association todos los posibles orígenes de asociación como: as cFrom_ClassName, que actuará como contenedor de las relaciones. En cada uno de estos elementos se incluyen las clases de destino de la relación y se les añade la cardinalidad que establece el modelo de reutilización. <!ATTLIST Ob jec t ob j ID ID #REQUIRED > <!ATTLIST A s s o c i a t i o n sObjL ink CDATA #REQUIRED tOb jL ink CDATA #REQUIRED > <!ELEMENT asocFrom_Asset ( asocTo_Author ∗ , a s o c T o _ R e p r e s e n t a t i o n ∗ , . . . ) > <!ELEMENT asocTo_Author EMPTY> 3.3. Solicitu...
Uno de los problemas actuales a la hora de refactorizar el código radica en cuándo refactorizar. Hasta el momento, la mayoría de propuestas establecen que el proceso de refactorización nace de la intuición y experiencia del programador.... more
Uno de los problemas actuales a la hora de refactorizar el código radica en cuándo refactorizar. Hasta el momento, la mayoría de propuestas establecen que el proceso de refactorización nace de la intuición y experiencia del programador. Partiendo del concepto de “Bad Smell” y a través de métricas, existe la posibilidad de plantear su existencia, no desde un punto de vista subjetivo donde la opinión del programador prima, sino desde un punto objetivo a partir de medidas comparables. El siguiente trabajo presenta la definición de un soporte al cálculo de métricas para la detección de oportunidades de refactorización. El trabajo se realiza partiendo de una cierta independencia de las métricas respecto del lenguaje concreto, de forma que se puede reutilizar dicho enfoque sobre una familia amplia de lenguajes. En este punto particular, se soluciona el problema de la pérdida de reutilización en la implementación del cálculo de las métricas mediante una solución basada en frameworks.
One of the problems of documenting software evolution arises with the extensive use of refactorings. Finding and documenting refactorings is usually harder than other changes performed to an evolving system. We introduce a tool prototype,... more
One of the problems of documenting software evolution arises with the extensive use of refactorings. Finding and documenting refactorings is usually harder than other changes performed to an evolving system. We introduce a tool prototype, based on graph transformation, to discover refactoring sequences between two versions of a software system. When a refactoring sequence exists, our tool can also help reveal the functional equivalence between the two versions of the system, at least, as far as refactorings can assure behaviour preservation.
One of the current trends in refactoring is when and where we should refactor. Until now, most of the proposals establish that the refactoring process starts from the programmer intuition and experience. From the bad smell concept, and... more
One of the current trends in refactoring is when and where we should refactor. Until now, most of the proposals establish that the refactoring process starts from the programmer intuition and experience. From the bad smell concept, and using metrics, it is possible to discover refactoring opportunities, not only from a subjective point of view but also from an objective point of view. The following work presents an exploratory case study on the use of metrics in the detection of bad smells.This leads to related refactorings in order to improve underlying design. The process is achieved in a language independent manner. In this sense, it is briefly described a framework support for collecting metrics that allows to reuse the effort on a wide family of object-oriented languages. Framework solution is based on the use of metamodels describing family of languages. In addition to this, it is also described how to use the approach and its support, with other metamodels.
In this paper we brie y present some solution strategies for situations in which it is necessary to transform multiple inheritance schemes into single inheritance or non-inheritance equivalent schemes. The strategies are divided into... more
In this paper we brie y present some solution strategies for situations in which it is necessary to transform multiple inheritance schemes into single inheritance or non-inheritance equivalent schemes. The strategies are divided into basic strategies and combined strategies. The mechanisms presented are comparatively analyzed in the light of some ideal characteristics to be accomplished by hierarchy transformation strategies.
Acceso de usuarios registrados. Acceso de usuarios registrados Usuario Contraseña. ...
Page 1. Exploring a Method to Detect Behaviour-Preserving Evolution Using Graph Transformation Javier Pérez, Yania Crespo {jperez,yania}@infor.uva.es Universidad de Valladolid Third International ERCIM Symposium on Software Evolution... more
Page 1. Exploring a Method to Detect Behaviour-Preserving Evolution Using Graph Transformation Javier Pérez, Yania Crespo {jperez,yania}@infor.uva.es Universidad de Valladolid Third International ERCIM Symposium on Software Evolution (co-located with ICSM 2007) ...
Resumen En el presente trabajo se expone una visión global de los avances realizados en la definición de un modelo de reutilización soportado por unas estructuras complejas de reutilización denominadas Mecanos, de forma que facilite la... more
Resumen En el presente trabajo se expone una visión global de los avances realizados en la definición de un modelo de reutilización soportado por unas estructuras complejas de reutilización denominadas Mecanos, de forma que facilite la inclusión de dichas ...
Research Interests:

And 73 more