Proyectos
Evaluación empírica de una metodología para la automatización de la medición del tamaño funcional del software.
Procedimiento automatizado de medición de contribuciones a partir de repositorios de proyectos de desarrollo de software
Publicaciones
Measuring Students’ Source Code Quality in Software Development Projects Through Commit-Impact Analysis
Descripción:
Evaluating the quality of software engineering projects in university courses is challenging because it evolves over time and is a time consuming task. Students applying software quality principles need early and constant feedback on their projects to improve their technical competence as software developers. We conducted a case study to explore whether student’ changes have an impact on the project quality by mining a Git repository. We analyzed a total of 2253 changes (commits) from an undergraduate software engineering project to understand the impact on quality of each change measuring metrics (complexity, duplication, maintainability, and security) mined from the repository. This analysis allowed us to identify from students’ contributions challenges and improvement opportunities in engineering practices. As future work, we plan to analyze more projects and extend our analysis with more software metrics.
Tipo de publicación: Book Chapter
Publicado en: Advances in Intelligent Systems and Computing
Measuring students' contributions in software development projects using Git metrics
Descripción:
Many courses in the software engineering area are centered around team-based project development. Evaluating these projects is a challenge due to the difficulty of measuring individual student contributions versus team contributions. The adoption of distributed version control systems like Git enables the measurement of students' and teams' contributions to the project. In this work, we analyze the contributions within five software development projects from undergraduate courses that used project-based learning. For this, we generate visualizations of aggregated Git metrics using inequality indexes and inter-decile ratios, which offer insights into the practices and processes followed by students and teams throughout the project development. This approach allowed us to identify both inequality among students' contributions and development processes with a non-steady pace, rendering a useful feedback tool for instructors and students during the development of the project. Further studies can be conducted to assess the complexity and value of students' contributions by analyzing their source code commits and other software artifacts.
Tipo de publicación: Conference Paper
Publicado en: 2020 XLVI Latin American Computing Conference (CLEI)
Automatically recovering students' missing trace links between commits and user stories
Tipo de publicación: Conference Paper
Publicado en: XXIII Ibero-American Conference on Software Engineering (CibSE 2021)
Using git metrics to measure students' and teams' code contributions in software development projects
Descripción:
Many software engineering courses are centered around team-based project development. Analyzing the source code contributions during the projects’ development could provide both instructors and students with constant feedback to identify common trends and behaviors that can be improved during the courses. Evaluating course projects is a challenge due to the difficulty of measuring individual student contributions versus team contributions during the development. The adoption of distributed version control sys-tems like git enable the measurement of students’ and teams’ contributions to the project.In this work, we analyze the contributions within eight software development projects,with 150 students in total, from undergraduate courses that used project-based learning.We generate visualizations of aggregated git metrics using inequality measures and the contribution per module, which offer insights into the practices and processes followed by students and teams throughout the project development. This approach allowed us to identify inequality among students’ contributions, the modules where students con-tributed, development processes with a non-steady pace, and integration practices render-ing a useful feedback tool for instructors and students during the project’s development.Further studies can be conducted to assess the quality, complexity, and ownership of the contributions by analyzing software artifacts.
Tipo de publicación: Journal Article
Publicado en: CLEI Electronic Journal
Students Projects' Source Code Changes Impact on Software Quality Through Static Analysis
Descripción:
Monitoring and examining source code and quality metrics is an essential task in software development projects. Still, it is challenging to evaluate for educational projects due to the time and effort required by instructors, and constant change during the software project evolution. In this paper, we used an automated approach to analyze source code and quality metrics’ evolution and impact in software engineering projects using static code analysis on each software change (commits and merges). We examined five undergraduate software engineering projects’ changed modules, compilability, and source code and quality metrics (size, complexity, duplication, maintainability, and security). In total, we assessed 12,103 changes from 103 students contributing to the projects. Our approach allowed us to identify students’ project trends in the impact of the source code changes, providing insights into behaviors such as technology knowledge deficiencies, issues in continuous integration practices, and software quality degradation. We believe that the early, constant feedback on student software engineering project quality can help instructors improve their courses and students enhance their development practices. Tracking of source code evolution could be done via static analysis and instructors could use the analysis results for teaching.
Tipo de publicación: Book Chapter
Publicado en: Communications in Computer and Information Science
How Have We Researched Developers’ Contributions in Software Engineering? A Systematic Mapping Study
Descripción:
Developers contribute to different technical and non-technical tasks throughout the software development life cycle, such as implementing and refactoring code, reviewing changes, documenting, testing, communicating, and collaborating. Contribution assessment research can help understand development phenomena better, motivate developers, and improve software engineering projects in industrial, open-source, and academic settings. As the body of work grows, it becomes worthwhile to aggregate evidence to standardize classifications, consolidate findings, and identify research gaps. This paper characterizes how software engineering research has studied developers’ contributions to projects. We conducted a systematic mapping study of 166 primary papers that assessed developer contributions characterizing the contribution types, research topics, research design practices, measurement constructs, assessment approaches, contexts under study, threats to validity, and challenges. Our findings show that contribution research is broad in software engineering but mainly focused on product-related contributions that mine measures from activities. Yet, research needs to consider more comprehensive construct measures and robust approaches to recognize the multi-faceted, nuanced, and complex nature of development work, without overlooking contributions. At the same time, there is a need for approach applicability to help future research and technology transfer. Researchers, tool designers, and adopters can leverage our results to motivate future software contribution-related work.
Tipo de publicación: Journal Article
Software visualization using the city metaphor: students' perceptions and experiences
Tipo de publicación: Conference Paper
Publicado en: XLIX Latin American Computing Conference (CLEI 2023)
Students' perceptions of integrating contribution measurement tools in software engineering projects
Tipo de publicación: Conference Paper
Publicado en: 35th IEEE International Conference on Software Engineering Education and Training (CSEE&T 2023)