Mario Piattini - Academia.edu (original) (raw)

Papers by Mario Piattini

Research paper thumbnail of A Data Quality Model for Master Data Repositories

Informatica

Master data has been revealed as one of the most potent instruments to guarantee adequate levels ... more Master data has been revealed as one of the most potent instruments to guarantee adequate levels of data quality. The main contribution of this paper is a data quality model to guide repeatable and homogeneous evaluations of the level of data quality of master data repositories. This data quality model follows several international open standards: ISO/IEC 25012, ISO/IEC 25024, and ISO 8000-1000, enabling compliance certification. A case study of applying the data quality model to an organizational master data repository has been carried out to demonstrate the applicability of the data quality model.

Research paper thumbnail of Developing the Skills Needed for Requirement Elicitation in Global Software Development

The requirement elicitation stage is that which is most critical in the development of a software... more The requirement elicitation stage is that which is most critical in the development of a software product. However, this stage is not covered on teaching courses with the required depth, nor is invested the necessary time in training students and practitioners in these tasks. There is currently a trend towards global software development (GSD) which complicates the process of elicitation requirements since, for instance, communication is more difficult because stakeholders are geographically distributed. Moreover, the elicitation in GSD involves a variety of characteristics that are not often taught in software engineering courses. This paper presents some of the most important factors which may affect elicitation in GSD. Furthermore, we propose techniques with which to help students and software engineers to develop some of the skills needed to carry out the elicitation

Research paper thumbnail of The Talavera Manifesto for Quantum Software Engineering and Programming

This paper presents the Talavera Manifesto for quantum software engineering and programming. This... more This paper presents the Talavera Manifesto for quantum software engineering and programming. This manifesto collects some principles and commitments about the quantum software engineering and programming field, as well as some calls for action. This is the result of the discussion and different viewpoints of academia and industry practitioners who joined at the first International Workshop on QuANtum SoftWare Engineering & pRogramming (QANSWER

Research paper thumbnail of A Serious Game to Improve Students’ Skills in Global Software Development

Proceedings of the 8th International Conference on Computer Supported Education, 2016

In recent years, companies have been forced to change their business model, due to the phenomenon... more In recent years, companies have been forced to change their business model, due to the phenomenon of globalization. Software development companies are no exception, and have attempted to join the global market so as to be able to hire labor in other countries, seeking to reduce costs, increase productivity and gain competitive advantages. This is known as Global Software Development (GSD). To perform this practice, companies require developers who possess knowledge and skills for solving problems that arise due to geographical, temporal and cultural distance. Traditional methods for teaching students or employees how to work in GSD environments are usually expensive, and require much effort. This is where serious games can play a key role, as they are educational games that allow for the acquisition of knowledge and skills at a low cost. This article presents a serious game with which some of the competencies needed in GSD can be acquired. The game simulates scenarios that usually occur in the overall development of a software project, so that the user can become aware of the problems concerning GSD and gain some experience in solving these problems.

Research paper thumbnail of Fostering Knowledge Reuse in Communities of Practice by Using a Trust Model and Agents

International Journal of Information Technology & Decision Making, 2017

Currently, knowledge management is a key issue for companies as it gives them a competitive advan... more Currently, knowledge management is a key issue for companies as it gives them a competitive advantage. A Community of Practice (CoP) is a means to encourage employees to manage knowledge and enables them to exchange knowledge and experience. Members of these communities, however, are often geographically distributed. This hinders the development of feelings of trust between their members, which limits knowledge reuse. Our proposal seeks to minimize the effect of lack of trust between CoP members, thereby fostering the exchange of knowledge. To achieve this goal, we propose a trust model to calculate trust among CoP members, along with a multi-agent architecture to automatically manage the trust model in a CoP. The agents calculate a trust value in each situation, taking the user’s profile into account. We also present a tool that recommends sources of knowledge and documents that are trustworthy.

Research paper thumbnail of Visión General del Desarrollo Global de Software

RESUMEN. Este artículo presenta una panorámica general del estado del arte y de la práctica del D... more RESUMEN. Este artículo presenta una panorámica general del estado del arte y de la práctica del Desarrollo Global de Software (DGS), analizando las principales revisiones sistemáticas de la literatura e identificando un conjunto de áreas de gran interés en la actualidad. El cual muestra que el DGS es un campo que empieza a alcanzar cierta madurez: cuya evolución ya no se encuentra limitada por factores críticos como las diferencias lingüísticas y culturales, sino que ésta depende más de factores como la motivación personal y las habilidades de los recursos humanos, y de la disponibilidad de funciones y responsabilidades bien definidas; y, al mismo tiempo, presenta nuevos desafíos centrados en importantes líneas de interés como: los Procesos para desarrollo y gestión, la Gestión de Proyectos DGS y los Equipos de Trabajo. ABSTRACT. This paper presents an overview of the state of the art and the practical of Global Software Development (DGS), analyzing the main systematic reviews of the literature and identifying a set of areas of great interest today. Which shows that the DGS is a field that begins to reach a certain maturity: whose evolution is no longer limited by critical factors such as language and cultural differences, but it depends more on factors such as personal motivation and skills of resources human, and the availability of clearly defined roles and responsibilities; and at the same time, presents new challenges focused on important areas of interest include: Processes for development and management, DGS Project Management and Task Forces.

Research paper thumbnail of Improving OO design process using rules, patterns and refactoring

In recent years different areas of knowledge related to the construction of object-oriented (OO) ... more In recent years different areas of knowledge related to the construction of object-oriented (OO) designs such as principles, heuristics, patterns, and refactoring techniques have been consolidated, but there is a lot of work still to be done in order to systematize and offer this knowledge to OO designers in such a way that it can be easily used in practical cases. In order to clarify this, we have defined an ontology of OO Micro Architectural Design Knowledge and the foundations of an OO design method based in the knowledge.

Research paper thumbnail of Helping to Develop Knowledge Management Systems by Using a Multi-Agent Approach

Global Approaches and Advancements

Efforts to develop Knowledge Management have increased in recent years. However, many of the syst... more Efforts to develop Knowledge Management have increased in recent years. However, many of the systems implanted in companies are still not greatly used by the employees because the knowledge that these systems have is often not valuable or on other occasions, is useful but employees do not know how to search for that which is most suitable. Moreover, employees often receive too many answers when they consult this kind of systems and they need to waste time evaluating all of them in order to find that which is most suitable for their necessities. On the other hand, many technical aspects should also be considered when developing a multi-agent system such as what knowledge representation or retrieval technique is going to be used. To find a balance between both aspects is important if we want to develop a successful system. However, developers often focus on technical aspects giving less importance to knowledge issues. In order to avoid this, we have developed a model to help computer science engi

Research paper thumbnail of Healthcare Process Development with BPMN

Research paper thumbnail of A Requirement Elicitation Methodology for Global Software Development Teams

Concepts, Methodologies, Tools, and Applications

Research paper thumbnail of Identifying Knowledge Flows in Communities of Practice

Encyclopedia of Communities of Practice in Information and Knowledge Management

Knowledge sharing is a collective process where the people involved collaborate with others in or... more Knowledge sharing is a collective process where the people involved collaborate with others in order to learn from them (Huysman & de Wit, 2000). This kind of collaboration creates groups of people with common interest called communities of practice where each member contributes knowledge about a common domain (Wenger, 1998). Communities of practice enable its members to benefit from the knowledge of each other (Fontaine & Millen, 2004). To achieve this, different techniques and technologies can be used, such as shared documentation, groupware tools, lessons learned systems, and so forth. Therefore, to increase and improve knowledge sharing in communities of practice, it is important to study the mechanisms used by a particular community and understand how the knowledge flows through its members (Guizzardi, Perini & Dignum, 2003). This article presents a qualitative approach for studying and understanding how knowledge flows in communities of practice within organizations. The goal ...

Research paper thumbnail of Homogenization, Comparison and Integration: A Harmonizing Strategy for the Unification of Multi-models in the Banking Sector

Lecture Notes in Computer Science, 2011

Research paper thumbnail of Environment for Managing Software Maintenance Projects

Technologies and Solutions

Research paper thumbnail of Assessment process for a simulation-based training environment in global software development

Proceedings of the 2014 conference on Innovation & technology in computer science education - ITiCSE '14, 2014

Simulation has been applied in several Software Engineering fields, and is shown to be a useful m... more Simulation has been applied in several Software Engineering fields, and is shown to be a useful method in industrial training. As part of our research work, we have used simulation to provide training in Global Software Development (GSD). We have developed a platform to strengthen GSD skills by simulating realistic settings in which learners interact with Virtual Agents of differing cultures. Thus, learners will experience multi-cultural problems and will develop specific GSD communication skills. The development of these skills must, however, be accurately assessed, bearing in mind that the training is aimed at learners with different characteristics and skills. In this paper we present an assessment process based on educational theory adapted to our simulation-based training environment. Methods to minimize the instructors' effort and tailor the assessment to specific training needs are proposed. The assessment process has been evaluated by 34 potential users. Results indicate that the assessment method yields meaningful results and proof of learning. Also that automated assessment can be achieved with minimal intervention from the instructor. Though tailored for GSD, this method could be applied to other domains, in both industry and academia.

Research paper thumbnail of Evaluation measures for business process models

Proceedings of the 2006 ACM symposium on Applied computing, 2006

The UML 2 Activity Diagram is designed for modelling business processes, but does not yet include... more The UML 2 Activity Diagram is designed for modelling business processes, but does not yet include any concepts for modelling process goals and their measures. We extend the UML 2 Activity Diagram with process goals and performance measures to make them conceptually visible. Additionally, we provide a mapping to BPEL to make the measures available for execution and monitoring. This profile and its mapping are tested with an example business process.

Research paper thumbnail of A Systematic Review of Distributed Software Development

Concepts, Methodologies, Tools, and Applications

In last years, software development activity tends to be decentralized, thus expanding greater de... more In last years, software development activity tends to be decentralized, thus expanding greater development efforts towards more attractive zones for organizations. The type of development in which the team members are distributed in remote sites is called distributed software development (DSD). The main advantage of this practice is mainly that of having a greater availability of human resources in decentralized zones with less cost. On the other hand, organizations must face some disadvantages due to the distance that separates the development teams related to project organization, project control and product quality. Coordination becomes more difficult as the software components are sourced from different places, and new processes and tools are needed. This chapter presents a systematic review of the literature related to the problems of DSD with the purpose of obtaining a vision about the solutions proposed up to the present day.

Research paper thumbnail of Evaluating advantages of test driven development

Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, 2006

Test driven development (TDD) is gaining interest among practitioners and researchers: it promise... more Test driven development (TDD) is gaining interest among practitioners and researchers: it promises to increase the quality of the code. Even if TDD is considered a development practice, it relies on the use of unit testing. For this reason, it could be an alternative to the testing after coding (TAC), which is the usual approach to run and execute unit tests after having written the code. We wondered which are the differences between the two practices, from the standpoint of quality and productivity. In order to answer our research question, we carried out an experiment in a Spanish Software House. The results suggest that TDD improves the unit testing but slows down the overall process.

Research paper thumbnail of Integrating techniques and tools for testing automation

Software Testing, Verification and Reliability, 2007

This article presents two tools to generate test cases, one for Java programs and one for .NET pr... more This article presents two tools to generate test cases, one for Java programs and one for .NET programs, as well as a structured testing process whereby such tools can be used in order to help in process automation. The main innovation in this work is the joint use of diverse techniques and technologies, which have been separately applied to test automation: reflection to extract the class structure; regular expressions to describe test templates and test cases; JUnit and NUnit as test case execution frameworks; mutation and MuJava as test case quality measurers; serialization to deal with the parameters of complex data types; and once more, reflection, to facilitate the test engineer in the task of writing the oracle. Finally, the article presents an experiment carried out to validate the work.

Research paper thumbnail of Docencia en desarrollo global de software: una revisió sistemática

En este articulo presentamos los resultados de una Revision Sistematica de la Literatura en el ca... more En este articulo presentamos los resultados de una Revision Sistematica de la Literatura en el campo de la educacion y el entrenamiento de habilidades convenientes para el Desarrollo Global de Software (DGS). Nuestro objetivo consiste en recopilar y estudiar las diferentes propuestas y estrategias empleadas en este campo que sean de utilidad tanto para profesionales como para investigadores y que permitan identificar las mejores practicas que se deben cubrir para afrontar los problemas que conlleva el DGS.

Research paper thumbnail of What Makes Agile Software Development Agile?

IEEE Transactions on Software Engineering, 2021

Together with many success stories, promises such as the increase in production speed and the imp... more Together with many success stories, promises such as the increase in production speed and the improvement in stakeholders' collaboration have contributed to making agile a transformation in the software industry in which many companies want to take part. However, driven either by a natural and expected evolution or by contextual factors that challenge the adoption of agile methods as prescribed by their creator(s), software processes in practice mutate into hybrids over time. Are these still agile? In this article, we investigate the question: what makes a software development method agile? We present an empirical study grounded in a large-scale international survey that aims to identify software development methods and practices that improve or tame agility. Based on 556 data points, we analyze the perceived degree of agility in the implementation of standard project disciplines and its relation to used development methods and practices. Our findings suggest that only a small number of participants operate their projects in a purely traditional or agile manner (under 15%). That said, most project disciplines and most practices show a clear trend towards increasing degrees of agility. Compared to the methods used to develop software, the selection of practices has a stronger effect on the degree of agility of a given discipline. Finally, there are no methods or practices that explicitly guarantee or prevent agility. We conclude that agility cannot be defined solely at the process level. Additional factors need to be taken into account when trying to implement or improve agility in a software company. Finally, we discuss the field of software process-related research in the light of our findings and present a roadmap for future research.

Research paper thumbnail of A Data Quality Model for Master Data Repositories

Informatica

Master data has been revealed as one of the most potent instruments to guarantee adequate levels ... more Master data has been revealed as one of the most potent instruments to guarantee adequate levels of data quality. The main contribution of this paper is a data quality model to guide repeatable and homogeneous evaluations of the level of data quality of master data repositories. This data quality model follows several international open standards: ISO/IEC 25012, ISO/IEC 25024, and ISO 8000-1000, enabling compliance certification. A case study of applying the data quality model to an organizational master data repository has been carried out to demonstrate the applicability of the data quality model.

Research paper thumbnail of Developing the Skills Needed for Requirement Elicitation in Global Software Development

The requirement elicitation stage is that which is most critical in the development of a software... more The requirement elicitation stage is that which is most critical in the development of a software product. However, this stage is not covered on teaching courses with the required depth, nor is invested the necessary time in training students and practitioners in these tasks. There is currently a trend towards global software development (GSD) which complicates the process of elicitation requirements since, for instance, communication is more difficult because stakeholders are geographically distributed. Moreover, the elicitation in GSD involves a variety of characteristics that are not often taught in software engineering courses. This paper presents some of the most important factors which may affect elicitation in GSD. Furthermore, we propose techniques with which to help students and software engineers to develop some of the skills needed to carry out the elicitation

Research paper thumbnail of The Talavera Manifesto for Quantum Software Engineering and Programming

This paper presents the Talavera Manifesto for quantum software engineering and programming. This... more This paper presents the Talavera Manifesto for quantum software engineering and programming. This manifesto collects some principles and commitments about the quantum software engineering and programming field, as well as some calls for action. This is the result of the discussion and different viewpoints of academia and industry practitioners who joined at the first International Workshop on QuANtum SoftWare Engineering & pRogramming (QANSWER

Research paper thumbnail of A Serious Game to Improve Students’ Skills in Global Software Development

Proceedings of the 8th International Conference on Computer Supported Education, 2016

In recent years, companies have been forced to change their business model, due to the phenomenon... more In recent years, companies have been forced to change their business model, due to the phenomenon of globalization. Software development companies are no exception, and have attempted to join the global market so as to be able to hire labor in other countries, seeking to reduce costs, increase productivity and gain competitive advantages. This is known as Global Software Development (GSD). To perform this practice, companies require developers who possess knowledge and skills for solving problems that arise due to geographical, temporal and cultural distance. Traditional methods for teaching students or employees how to work in GSD environments are usually expensive, and require much effort. This is where serious games can play a key role, as they are educational games that allow for the acquisition of knowledge and skills at a low cost. This article presents a serious game with which some of the competencies needed in GSD can be acquired. The game simulates scenarios that usually occur in the overall development of a software project, so that the user can become aware of the problems concerning GSD and gain some experience in solving these problems.

Research paper thumbnail of Fostering Knowledge Reuse in Communities of Practice by Using a Trust Model and Agents

International Journal of Information Technology & Decision Making, 2017

Currently, knowledge management is a key issue for companies as it gives them a competitive advan... more Currently, knowledge management is a key issue for companies as it gives them a competitive advantage. A Community of Practice (CoP) is a means to encourage employees to manage knowledge and enables them to exchange knowledge and experience. Members of these communities, however, are often geographically distributed. This hinders the development of feelings of trust between their members, which limits knowledge reuse. Our proposal seeks to minimize the effect of lack of trust between CoP members, thereby fostering the exchange of knowledge. To achieve this goal, we propose a trust model to calculate trust among CoP members, along with a multi-agent architecture to automatically manage the trust model in a CoP. The agents calculate a trust value in each situation, taking the user’s profile into account. We also present a tool that recommends sources of knowledge and documents that are trustworthy.

Research paper thumbnail of Visión General del Desarrollo Global de Software

RESUMEN. Este artículo presenta una panorámica general del estado del arte y de la práctica del D... more RESUMEN. Este artículo presenta una panorámica general del estado del arte y de la práctica del Desarrollo Global de Software (DGS), analizando las principales revisiones sistemáticas de la literatura e identificando un conjunto de áreas de gran interés en la actualidad. El cual muestra que el DGS es un campo que empieza a alcanzar cierta madurez: cuya evolución ya no se encuentra limitada por factores críticos como las diferencias lingüísticas y culturales, sino que ésta depende más de factores como la motivación personal y las habilidades de los recursos humanos, y de la disponibilidad de funciones y responsabilidades bien definidas; y, al mismo tiempo, presenta nuevos desafíos centrados en importantes líneas de interés como: los Procesos para desarrollo y gestión, la Gestión de Proyectos DGS y los Equipos de Trabajo. ABSTRACT. This paper presents an overview of the state of the art and the practical of Global Software Development (DGS), analyzing the main systematic reviews of the literature and identifying a set of areas of great interest today. Which shows that the DGS is a field that begins to reach a certain maturity: whose evolution is no longer limited by critical factors such as language and cultural differences, but it depends more on factors such as personal motivation and skills of resources human, and the availability of clearly defined roles and responsibilities; and at the same time, presents new challenges focused on important areas of interest include: Processes for development and management, DGS Project Management and Task Forces.

Research paper thumbnail of Improving OO design process using rules, patterns and refactoring

In recent years different areas of knowledge related to the construction of object-oriented (OO) ... more In recent years different areas of knowledge related to the construction of object-oriented (OO) designs such as principles, heuristics, patterns, and refactoring techniques have been consolidated, but there is a lot of work still to be done in order to systematize and offer this knowledge to OO designers in such a way that it can be easily used in practical cases. In order to clarify this, we have defined an ontology of OO Micro Architectural Design Knowledge and the foundations of an OO design method based in the knowledge.

Research paper thumbnail of Helping to Develop Knowledge Management Systems by Using a Multi-Agent Approach

Global Approaches and Advancements

Efforts to develop Knowledge Management have increased in recent years. However, many of the syst... more Efforts to develop Knowledge Management have increased in recent years. However, many of the systems implanted in companies are still not greatly used by the employees because the knowledge that these systems have is often not valuable or on other occasions, is useful but employees do not know how to search for that which is most suitable. Moreover, employees often receive too many answers when they consult this kind of systems and they need to waste time evaluating all of them in order to find that which is most suitable for their necessities. On the other hand, many technical aspects should also be considered when developing a multi-agent system such as what knowledge representation or retrieval technique is going to be used. To find a balance between both aspects is important if we want to develop a successful system. However, developers often focus on technical aspects giving less importance to knowledge issues. In order to avoid this, we have developed a model to help computer science engi

Research paper thumbnail of Healthcare Process Development with BPMN

Research paper thumbnail of A Requirement Elicitation Methodology for Global Software Development Teams

Concepts, Methodologies, Tools, and Applications

Research paper thumbnail of Identifying Knowledge Flows in Communities of Practice

Encyclopedia of Communities of Practice in Information and Knowledge Management

Knowledge sharing is a collective process where the people involved collaborate with others in or... more Knowledge sharing is a collective process where the people involved collaborate with others in order to learn from them (Huysman & de Wit, 2000). This kind of collaboration creates groups of people with common interest called communities of practice where each member contributes knowledge about a common domain (Wenger, 1998). Communities of practice enable its members to benefit from the knowledge of each other (Fontaine & Millen, 2004). To achieve this, different techniques and technologies can be used, such as shared documentation, groupware tools, lessons learned systems, and so forth. Therefore, to increase and improve knowledge sharing in communities of practice, it is important to study the mechanisms used by a particular community and understand how the knowledge flows through its members (Guizzardi, Perini & Dignum, 2003). This article presents a qualitative approach for studying and understanding how knowledge flows in communities of practice within organizations. The goal ...

Research paper thumbnail of Homogenization, Comparison and Integration: A Harmonizing Strategy for the Unification of Multi-models in the Banking Sector

Lecture Notes in Computer Science, 2011

Research paper thumbnail of Environment for Managing Software Maintenance Projects

Technologies and Solutions

Research paper thumbnail of Assessment process for a simulation-based training environment in global software development

Proceedings of the 2014 conference on Innovation & technology in computer science education - ITiCSE '14, 2014

Simulation has been applied in several Software Engineering fields, and is shown to be a useful m... more Simulation has been applied in several Software Engineering fields, and is shown to be a useful method in industrial training. As part of our research work, we have used simulation to provide training in Global Software Development (GSD). We have developed a platform to strengthen GSD skills by simulating realistic settings in which learners interact with Virtual Agents of differing cultures. Thus, learners will experience multi-cultural problems and will develop specific GSD communication skills. The development of these skills must, however, be accurately assessed, bearing in mind that the training is aimed at learners with different characteristics and skills. In this paper we present an assessment process based on educational theory adapted to our simulation-based training environment. Methods to minimize the instructors' effort and tailor the assessment to specific training needs are proposed. The assessment process has been evaluated by 34 potential users. Results indicate that the assessment method yields meaningful results and proof of learning. Also that automated assessment can be achieved with minimal intervention from the instructor. Though tailored for GSD, this method could be applied to other domains, in both industry and academia.

Research paper thumbnail of Evaluation measures for business process models

Proceedings of the 2006 ACM symposium on Applied computing, 2006

The UML 2 Activity Diagram is designed for modelling business processes, but does not yet include... more The UML 2 Activity Diagram is designed for modelling business processes, but does not yet include any concepts for modelling process goals and their measures. We extend the UML 2 Activity Diagram with process goals and performance measures to make them conceptually visible. Additionally, we provide a mapping to BPEL to make the measures available for execution and monitoring. This profile and its mapping are tested with an example business process.

Research paper thumbnail of A Systematic Review of Distributed Software Development

Concepts, Methodologies, Tools, and Applications

In last years, software development activity tends to be decentralized, thus expanding greater de... more In last years, software development activity tends to be decentralized, thus expanding greater development efforts towards more attractive zones for organizations. The type of development in which the team members are distributed in remote sites is called distributed software development (DSD). The main advantage of this practice is mainly that of having a greater availability of human resources in decentralized zones with less cost. On the other hand, organizations must face some disadvantages due to the distance that separates the development teams related to project organization, project control and product quality. Coordination becomes more difficult as the software components are sourced from different places, and new processes and tools are needed. This chapter presents a systematic review of the literature related to the problems of DSD with the purpose of obtaining a vision about the solutions proposed up to the present day.

Research paper thumbnail of Evaluating advantages of test driven development

Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering, 2006

Test driven development (TDD) is gaining interest among practitioners and researchers: it promise... more Test driven development (TDD) is gaining interest among practitioners and researchers: it promises to increase the quality of the code. Even if TDD is considered a development practice, it relies on the use of unit testing. For this reason, it could be an alternative to the testing after coding (TAC), which is the usual approach to run and execute unit tests after having written the code. We wondered which are the differences between the two practices, from the standpoint of quality and productivity. In order to answer our research question, we carried out an experiment in a Spanish Software House. The results suggest that TDD improves the unit testing but slows down the overall process.

Research paper thumbnail of Integrating techniques and tools for testing automation

Software Testing, Verification and Reliability, 2007

This article presents two tools to generate test cases, one for Java programs and one for .NET pr... more This article presents two tools to generate test cases, one for Java programs and one for .NET programs, as well as a structured testing process whereby such tools can be used in order to help in process automation. The main innovation in this work is the joint use of diverse techniques and technologies, which have been separately applied to test automation: reflection to extract the class structure; regular expressions to describe test templates and test cases; JUnit and NUnit as test case execution frameworks; mutation and MuJava as test case quality measurers; serialization to deal with the parameters of complex data types; and once more, reflection, to facilitate the test engineer in the task of writing the oracle. Finally, the article presents an experiment carried out to validate the work.

Research paper thumbnail of Docencia en desarrollo global de software: una revisió sistemática

En este articulo presentamos los resultados de una Revision Sistematica de la Literatura en el ca... more En este articulo presentamos los resultados de una Revision Sistematica de la Literatura en el campo de la educacion y el entrenamiento de habilidades convenientes para el Desarrollo Global de Software (DGS). Nuestro objetivo consiste en recopilar y estudiar las diferentes propuestas y estrategias empleadas en este campo que sean de utilidad tanto para profesionales como para investigadores y que permitan identificar las mejores practicas que se deben cubrir para afrontar los problemas que conlleva el DGS.

Research paper thumbnail of What Makes Agile Software Development Agile?

IEEE Transactions on Software Engineering, 2021

Together with many success stories, promises such as the increase in production speed and the imp... more Together with many success stories, promises such as the increase in production speed and the improvement in stakeholders' collaboration have contributed to making agile a transformation in the software industry in which many companies want to take part. However, driven either by a natural and expected evolution or by contextual factors that challenge the adoption of agile methods as prescribed by their creator(s), software processes in practice mutate into hybrids over time. Are these still agile? In this article, we investigate the question: what makes a software development method agile? We present an empirical study grounded in a large-scale international survey that aims to identify software development methods and practices that improve or tame agility. Based on 556 data points, we analyze the perceived degree of agility in the implementation of standard project disciplines and its relation to used development methods and practices. Our findings suggest that only a small number of participants operate their projects in a purely traditional or agile manner (under 15%). That said, most project disciplines and most practices show a clear trend towards increasing degrees of agility. Compared to the methods used to develop software, the selection of practices has a stronger effect on the degree of agility of a given discipline. Finally, there are no methods or practices that explicitly guarantee or prevent agility. We conclude that agility cannot be defined solely at the process level. Additional factors need to be taken into account when trying to implement or improve agility in a software company. Finally, we discuss the field of software process-related research in the light of our findings and present a roadmap for future research.