Pub Date : 2022-06-13DOI: 10.5753/cibse.2022.20988
Johnatan Oliveira
Both open-source and proprietary software systems have become increasingly complex. Despite their growing complexity and increasing size, software systems must satisfy strict release requirements that impose quality, putting significant pressure on developers. Therefore, the success of software projects is dependent on the identification and hiring of qualified developers to build a solid and cohesive team with different programming skills. Our main goal is to develop and evaluate a method able to compute programming skills from source code analysis. Our method uses software metrics such as Changed Files and Changed Lines of Code, to compute the skills. Our results showed that our method is able of identifying programming skills of the developers about mainly libraries used, programming languages, and profile concerning back-end & front-end and unit test.
{"title":"How to Identify Programming Skills from Source Code?","authors":"Johnatan Oliveira","doi":"10.5753/cibse.2022.20988","DOIUrl":"https://doi.org/10.5753/cibse.2022.20988","url":null,"abstract":"Both open-source and proprietary software systems have become increasingly complex. Despite their growing complexity and increasing size, software systems must satisfy strict release requirements that impose quality, putting significant pressure on developers. Therefore, the success of software projects is dependent on the identification and hiring of qualified developers to build a solid and cohesive team with different programming skills. Our main goal is to develop and evaluate a method able to compute programming skills from source code analysis. Our method uses software metrics such as Changed Files and Changed Lines of Code, to compute the skills. Our results showed that our method is able of identifying programming skills of the developers about mainly libraries used, programming languages, and profile concerning back-end & front-end and unit test.","PeriodicalId":146286,"journal":{"name":"Conferencia Iberoamericana de Software Engineering","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114700506","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-06-13DOI: 10.5753/cibse.2022.20965
Graciela Vidal, Franco Herrera, S. Casas
La evolución de las API web afecta a las aplicaciones consumidoras. Su modificación y/o adaptación para que sea compatible con los cambios de las APIs suele ser crítica, ya que es manual, y requiere mayores costes y esfuerzos. Estudios previos registran tipos y/o patrones de cambios en APIs web. Sin embargo, las propuestas que ayuden a los desarrolladores a identificar automáticamente cambios en sus aplicaciones son insuficientes. Este trabajo propone un enfoque que permite identificar automáticamente un conjunto de tipos de cambios. La estrategia consiste en utilizar un diccionario de APIs consumidas y la verificación automática de inconsistencias con la especificación actual de las APIs incluidas en el diccionario.
web API的发展影响着消费应用程序。修改和/或调整它以与api更改兼容通常是至关重要的,因为它是手动的,需要更高的成本和努力。以前的研究记录了web api的类型和/或更改模式。但是,帮助开发人员自动识别应用程序中的更改的建议是不够的。本文提出了一种自动识别一组变化类型的方法。该策略包括使用已使用api的字典,并自动检查与字典中包含的api的当前规范不一致。
{"title":"Automatic identification of web API change types in consumer applications","authors":"Graciela Vidal, Franco Herrera, S. Casas","doi":"10.5753/cibse.2022.20965","DOIUrl":"https://doi.org/10.5753/cibse.2022.20965","url":null,"abstract":"La evolución de las API web afecta a las aplicaciones consumidoras. Su modificación y/o adaptación para que sea compatible con los cambios de las APIs suele ser crítica, ya que es manual, y requiere mayores costes y esfuerzos. Estudios previos registran tipos y/o patrones de cambios en APIs web. Sin embargo, las propuestas que ayuden a los desarrolladores a identificar automáticamente cambios en sus aplicaciones son insuficientes. Este trabajo propone un enfoque que permite identificar automáticamente un conjunto de tipos de cambios. La estrategia consiste en utilizar un diccionario de APIs consumidas y la verificación automática de inconsistencias con la especificación actual de las APIs incluidas en el diccionario.","PeriodicalId":146286,"journal":{"name":"Conferencia Iberoamericana de Software Engineering","volume":"109 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123847012","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-06-13DOI: 10.5753/cibse.2022.20966
Amanda Chaves, Luís Amorim, M. Marinho, I. Júnior, H. Moura
Distributed teams have become a tendency among software companies. However, companies that apply Distributed Software Development (DSD) suffer from high developer turnover. Research shows that autonomy factors can mitigate or prevent team turnover. In this research, we investigate the role of autonomy on turnover in distributed teams through a Systematic Literature Review (SLR). Our findings revealed a set of autonomy dimensions that influence turnover in DSD projects. Besides, we identified the main factors related to autonomy linked to turnover in DSD projects. These findings provide software companies and organizations with a better understanding of the importance of autonomy factors to battle the DSD projects turnover problem.
{"title":"Autonomy and Turnover in Distributed Software Development Projects: a Systematic Literature Review","authors":"Amanda Chaves, Luís Amorim, M. Marinho, I. Júnior, H. Moura","doi":"10.5753/cibse.2022.20966","DOIUrl":"https://doi.org/10.5753/cibse.2022.20966","url":null,"abstract":"Distributed teams have become a tendency among software companies. However, companies that apply Distributed Software Development (DSD) suffer from high developer turnover. Research shows that autonomy factors can mitigate or prevent team turnover. In this research, we investigate the role of autonomy on turnover in distributed teams through a Systematic Literature Review (SLR). Our findings revealed a set of autonomy dimensions that influence turnover in DSD projects. Besides, we identified the main factors related to autonomy linked to turnover in DSD projects. These findings provide software companies and organizations with a better understanding of the importance of autonomy factors to battle the DSD projects turnover problem.","PeriodicalId":146286,"journal":{"name":"Conferencia Iberoamericana de Software Engineering","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114214648","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-06-13DOI: 10.5753/cibse.2022.20989
Lenin Erazo-Garzón
Hoy en día, uno de los desafíos tecnológicos es el desarrollo de software para sistemas de IoT, ya que operan en escenarios altamente cambiantes, siendo complejo con las metodologías de Ingeniería de Software tradicionales identificar todos los requisitos del sistema en la etapa de desarrollo. Una alternativa es incrementar su autonomía, dotándoles de capacidades de autoconsciencia con el apoyo de los modelos en tiempo de ejecución, a fin de trasladar varias de las funcionalidades que se programan durante el desarrollo al tiempo de ejecución. Este trabajo doctoral propone desarrollar una metodología basada en modelos en tiempo de ejecución para la construcción y operación de sistemas autoconscientes de IoT.
{"title":"Metodología Basada en Modelos en Tiempo de Ejecución para la Construcción y Operación de Sistemas Autoconscientes de Internet de las Cosas","authors":"Lenin Erazo-Garzón","doi":"10.5753/cibse.2022.20989","DOIUrl":"https://doi.org/10.5753/cibse.2022.20989","url":null,"abstract":"Hoy en día, uno de los desafíos tecnológicos es el desarrollo de software para sistemas de IoT, ya que operan en escenarios altamente cambiantes, siendo complejo con las metodologías de Ingeniería de Software tradicionales identificar todos los requisitos del sistema en la etapa de desarrollo. Una alternativa es incrementar su autonomía, dotándoles de capacidades de autoconsciencia con el apoyo de los modelos en tiempo de ejecución, a fin de trasladar varias de las funcionalidades que se programan durante el desarrollo al tiempo de ejecución. Este trabajo doctoral propone desarrollar una metodología basada en modelos en tiempo de ejecución para la construcción y operación de sistemas autoconscientes de IoT.","PeriodicalId":146286,"journal":{"name":"Conferencia Iberoamericana de Software Engineering","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124482766","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-06-13DOI: 10.5753/cibse.2022.20962
E. F. Dornelles, Fernando Parahyba, R. Z. Frantz, Fabricia Roos-Frantz, A. M. R. Quintero, Carlos Molina-Jiménez, J. Bocanegra, S. Sawicki
Several languages have been developed for writing smart contracts for specific domains, such as health, finance, and business processes. However, none of them includes the constructors needed for writing smart contracts used in application integration processes which have their own particularities. Such smart contracts are responsible for monitoring the communication between the process and the applications to guarantee that the rights of the parties involved in the integration process are observed. To cover the gap, this paper discusses a domain-specific language for writing smart contracts in the application integration domain. It provides constructors to write smart contracts with a level of abstraction close to the natural language used in conventional contracts.
{"title":"Advances in a DSL to Specify Smart Contracts for Application Integration Processes","authors":"E. F. Dornelles, Fernando Parahyba, R. Z. Frantz, Fabricia Roos-Frantz, A. M. R. Quintero, Carlos Molina-Jiménez, J. Bocanegra, S. Sawicki","doi":"10.5753/cibse.2022.20962","DOIUrl":"https://doi.org/10.5753/cibse.2022.20962","url":null,"abstract":"Several languages have been developed for writing smart contracts for specific domains, such as health, finance, and business processes. However, none of them includes the constructors needed for writing smart contracts used in application integration processes which have their own particularities. Such smart contracts are responsible for monitoring the communication between the process and the applications to guarantee that the rights of the parties involved in the integration process are observed. To cover the gap, this paper discusses a domain-specific language for writing smart contracts in the application integration domain. It provides constructors to write smart contracts with a level of abstraction close to the natural language used in conventional contracts.","PeriodicalId":146286,"journal":{"name":"Conferencia Iberoamericana de Software Engineering","volume":"308 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114951590","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-06-13DOI: 10.5753/cibse.2022.20982
Aline Brito, André C. Hora, M. T. Valente
Refactoring is a fundamental practice in modern software development. Therefore, it is essential that practitioners have a solid understanding of refactoring, both in theory and in practice. In this paper, we rely on a graph-based abstraction — called refactoring graphs — to visualize and analyze refactorings performed by students in a canonical refactoring application: the Video Store System, proposed by Fowler. We asked 46 students to perform the refactorings included in this example under two scenarios: according to a list of explicit guidelines, where most students performed the tasks successfully; and by using flexible ones, in which a part of the students faced problems identifying the appropriate operations. We conclude by presenting discussions and implications.
{"title":"Understanding Refactoring Tasks over Time: A Study Using Refactoring Graphs","authors":"Aline Brito, André C. Hora, M. T. Valente","doi":"10.5753/cibse.2022.20982","DOIUrl":"https://doi.org/10.5753/cibse.2022.20982","url":null,"abstract":"Refactoring is a fundamental practice in modern software development. Therefore, it is essential that practitioners have a solid understanding of refactoring, both in theory and in practice. In this paper, we rely on a graph-based abstraction — called refactoring graphs — to visualize and analyze refactorings performed by students in a canonical refactoring application: the Video Store System, proposed by Fowler. We asked 46 students to perform the refactorings included in this example under two scenarios: according to a list of explicit guidelines, where most students performed the tasks successfully; and by using flexible ones, in which a part of the students faced problems identifying the appropriate operations. We conclude by presenting discussions and implications.","PeriodicalId":146286,"journal":{"name":"Conferencia Iberoamericana de Software Engineering","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116449399","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-06-13DOI: 10.5753/cibse.2022.20972
Iris Galeano, Mauricio Merín, Magalí González, L. Cernuzzi
The aspects of mobile technology have introduced challenges for developers, raising the need to improve the software development methodologies traditionally used. As a result of the analysis of the state of the art, an agile methodological approach for its development is presented, consisting of 8 phases: negotiation, planning, design, implementation and alpha testing, beta testing and feedback analysis, application publication, release and maintenance, promotion, and a series of steps, good practices, principles and tools, to offer mechanisms to accompany and streamline the development process. Some validations were carried out including a exploratory study, seeking to propose a robust methodology but at the same time easy to apply in a company.
{"title":"MethApp4Mob: A Methodological Approach for Mobile Applications Development","authors":"Iris Galeano, Mauricio Merín, Magalí González, L. Cernuzzi","doi":"10.5753/cibse.2022.20972","DOIUrl":"https://doi.org/10.5753/cibse.2022.20972","url":null,"abstract":"The aspects of mobile technology have introduced challenges for developers, raising the need to improve the software development methodologies traditionally used. As a result of the analysis of the state of the art, an agile methodological approach for its development is presented, consisting of 8 phases: negotiation, planning, design, implementation and alpha testing, beta testing and feedback analysis, application publication, release and maintenance, promotion, and a series of steps, good practices, principles and tools, to offer mechanisms to accompany and streamline the development process. Some validations were carried out including a exploratory study, seeking to propose a robust methodology but at the same time easy to apply in a company.","PeriodicalId":146286,"journal":{"name":"Conferencia Iberoamericana de Software Engineering","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117157322","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-06-13DOI: 10.5753/cibse.2022.20992
J. A. Carruthers
Software projects are common inputs in Empirical Software Engineering (ESE), and they are often selected without following a specific strategy, leading to biased samples. To avoid this problem, researchers choose to use publicly available datasets instead of picking the projects themselves. However, some datasets are not maintained, containing old versions of projects, or even deprecated ones. This may raise some representativeness issues due to major changes in development practices and technologies over time. The main goal of this research is to develop a procedures model to construct and maintain a software project dataset with their product quality metrics, to support the development of ESE studies.
{"title":"Open-Source Software Projects Curating Model for Empirical Software Engineering Studies","authors":"J. A. Carruthers","doi":"10.5753/cibse.2022.20992","DOIUrl":"https://doi.org/10.5753/cibse.2022.20992","url":null,"abstract":"Software projects are common inputs in Empirical Software Engineering (ESE), and they are often selected without following a specific strategy, leading to biased samples. To avoid this problem, researchers choose to use publicly available datasets instead of picking the projects themselves. However, some datasets are not maintained, containing old versions of projects, or even deprecated ones. This may raise some representativeness issues due to major changes in development practices and technologies over time. The main goal of this research is to develop a procedures model to construct and maintain a software project dataset with their product quality metrics, to support the development of ESE studies.","PeriodicalId":146286,"journal":{"name":"Conferencia Iberoamericana de Software Engineering","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115908764","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-06-13DOI: 10.5753/cibse.2022.20959
Vladimir M. Erthal, B. D. Souza, P. Santos, G. Travassos
Continuous Experimentation (CE) has become increasingly popular across industry and academic communities. Given its rapid evolution in software engineering (SE), the lack of a common understanding of CE can jeopardize new implementations and justify research efforts. Therefore, this literature study characterizes CE in SE based on its definitions, processes, and strategies for experimentation available in the technical literature. Seventy-six sources of information provided many different definitions, processes, and experimental procedures used to describe CE in SE. Despite the increasing use of CE in SE, it is impossible to observe a common terminology yet to support its characterization and use.
{"title":"A Literature Study to Characterize Continuous Experimentation in Software Engineering","authors":"Vladimir M. Erthal, B. D. Souza, P. Santos, G. Travassos","doi":"10.5753/cibse.2022.20959","DOIUrl":"https://doi.org/10.5753/cibse.2022.20959","url":null,"abstract":"Continuous Experimentation (CE) has become increasingly popular across industry and academic communities. Given its rapid evolution in software engineering (SE), the lack of a common understanding of CE can jeopardize new implementations and justify research efforts. Therefore, this literature study characterizes CE in SE based on its definitions, processes, and strategies for experimentation available in the technical literature. Seventy-six sources of information provided many different definitions, processes, and experimental procedures used to describe CE in SE. Despite the increasing use of CE in SE, it is impossible to observe a common terminology yet to support its characterization and use.","PeriodicalId":146286,"journal":{"name":"Conferencia Iberoamericana de Software Engineering","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126238554","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-06-13DOI: 10.5753/cibse.2022.20968
Maximiliano Jonathan Toledo, Julián Grigera, Alejandra Garrido
Muchas actividades de nuestra vida cotidiana se encuentran integradas a aplicaciones web, las cuales deben ser accesibles a todos los usuarios. Por esto resulta fundamental incorporar la accesibilidad al proceso de desarrollo. Para facilitar esta integración y la detección de problemas de accesibilidad, en este trabajo se desarrolló una herramienta automática para la detección y reporte de este tipo de problemas denominada ABF (Accessibility BadSmells Finder). La misma busca ayudar a los desarrolladores a proveer sitios web accesibles, gracias a que realiza búsquedas dinámicas de diversos problemas de accesibilidad y que no son detectados por otras herramientas debido a la complejidad de su detección.
{"title":"Detección automática de problemas de accesibilidad a partir de eventos de interacción de usuario","authors":"Maximiliano Jonathan Toledo, Julián Grigera, Alejandra Garrido","doi":"10.5753/cibse.2022.20968","DOIUrl":"https://doi.org/10.5753/cibse.2022.20968","url":null,"abstract":"Muchas actividades de nuestra vida cotidiana se encuentran integradas a aplicaciones web, las cuales deben ser accesibles a todos los usuarios. Por esto resulta fundamental incorporar la accesibilidad al proceso de desarrollo. Para facilitar esta integración y la detección de problemas de accesibilidad, en este trabajo se desarrolló una herramienta automática para la detección y reporte de este tipo de problemas denominada ABF (Accessibility BadSmells Finder). La misma busca ayudar a los desarrolladores a proveer sitios web accesibles, gracias a que realiza búsquedas dinámicas de diversos problemas de accesibilidad y que no son detectados por otras herramientas debido a la complejidad de su detección.","PeriodicalId":146286,"journal":{"name":"Conferencia Iberoamericana de Software Engineering","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128435000","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}