Abstract:Fig. 1. Githru system. (a) The Global Temporal Filter shows commit trends by number of commits and CLOC (changed lines of code). (b) The Clustering Step controls the granularity of clustering. (c) The stem graph visualizes a cluster information of each commit at a single glance. (d) The Grouped Summary View provides a rough summary of the selected clusters. (e) A file icicle tree allows users to interactively observe the modified file hierarchy. (f) The commit list shows all the commits in a selected cluster. … Show more
“…Some authors have focused their work on providing enhanced visualization of the sequence of commits in different branches. Visual analysis allows lecturers to quickly understand the branching process used in a repository (Youngtaek et al, 2021). Process mining techniques (Macak et al, 2021) have also been used to observe and understand the underlying committing process.…”
We describe an automated assessment process for team-coding assignments based on DevOps best practices. This system and methodology includes the definition of Team Performance Metrics measuring properties of the software developed by each team, and their correct use of DevOps techniques. It tracks the progress on each of metric by each group. The methodology also defines Individual Performance Metrics to measure the impact of individual student contributions to increase in Team Performance Metrics. Periodically scheduled reports using these metrics provide students valuable feedback. This process also facilitates the process of assessing the assignments. Although this method is not intended to produce the final grade of each student, it provides very valuable information to the lecturers. We have used it as the main source of information for student and team assessment in one programming course. Additionally, we use other assessment methods to calculate the final grade: written conceptual tests to check their understanding of the development processes, and cross-evaluations. Qualitative evaluation of the students filling relevant questionnaires are very positive and encouraging.
“…Some authors have focused their work on providing enhanced visualization of the sequence of commits in different branches. Visual analysis allows lecturers to quickly understand the branching process used in a repository (Youngtaek et al, 2021). Process mining techniques (Macak et al, 2021) have also been used to observe and understand the underlying committing process.…”
We describe an automated assessment process for team-coding assignments based on DevOps best practices. This system and methodology includes the definition of Team Performance Metrics measuring properties of the software developed by each team, and their correct use of DevOps techniques. It tracks the progress on each of metric by each group. The methodology also defines Individual Performance Metrics to measure the impact of individual student contributions to increase in Team Performance Metrics. Periodically scheduled reports using these metrics provide students valuable feedback. This process also facilitates the process of assessing the assignments. Although this method is not intended to produce the final grade of each student, it provides very valuable information to the lecturers. We have used it as the main source of information for student and team assessment in one programming course. Additionally, we use other assessment methods to calculate the final grade: written conceptual tests to check their understanding of the development processes, and cross-evaluations. Qualitative evaluation of the students filling relevant questionnaires are very positive and encouraging.
“…Feist et al [12] presented TypeV that visualizes abstract syntax trees from Java source code to support the analysis of software evolution. Kim et al [16] proposed Githru, an interactive visual analytics system that enables developers to understand the context of software development history through interactive visual exploration of Git metadata. RepoVis [11] and Seesoft [9] use a more information dense visual approach, by having each line in every file, represented and colored, for displaying metrics on a per-line basis.…”
Section: Related Workmentioning
confidence: 99%
“…https://www.npmjs.com/package/git-truck15 npx is a tool bundled with Node.js, that can automatically download, install, and execute packages from the npm registry16 …”
The assessment of repository evolution is particularly complex when one needs to analyze both 1) how the codebase is organized hierarchically and 2) how this codebase evolves over time. To address this problem, we developed Git Truck, a visualization tool that includes multiple views for the analysis of the evolution of hierarchically organized Git repositories. We conducted a preliminary user evaluation with 18 participants who, using a remote and asynchronous method, installed Git Truck, used it, and filled in a questionnaire to report their experience and impressions. We learned that participants consider particularly useful views that help them with understanding the contribution level of team members and views that highlight the parts of the system that change the most. The participants see Git Truck as a highly specialized tool; not for daily use but rather for a lower frequency of use.
“…Visualizing a software system can help to analyze the evolution of software architecture, identify the developer network, find stable software releases, and monitor software quality trends [Diehl (2007a)]. A rich body of studies [Alexandru et al (2019); Burch et al (2011); Kim et al (2020);Sandoval Alcocer et al (2013); Tomida et al (2019)] explored different ways to visualize evolving software systems for making it easily understandable to keep the consistent evolution. Chevalier et al (2007) did a visualization of evolution patterns in C++ source code by rendering syntax matched code blocks in consecutive versions to detect the code fragments which have been changed during evolution.…”
The most common use of data visualization is to minimize the complexity for proper understanding. A graph is one of the most commonly used representations for understanding relational data. It produces a simplified representation of data that is challenging to comprehend if kept in a textual format. In this study, we propose a methodology to utilize the relational properties of source code in the form of a graph to identify Just-in-Time (JIT) bug prediction in software systems during different revisions of software evolution and maintenance. We presented a method to convert the source codes of commit patches to equivalent graph representations and named it Source Code Graph (SCG). To understand and compare multiple source code graphs, we extracted several structural properties of these graphs, such as the density, number of cycles, nodes, edges, etc. We then utilized the attribute values of those SCGs to visualize and detect buggy software commits. We process more than 246K software commits from 12 subject systems in this investigation. Our investigation on these 12 open-source software projects written in C++ and Java programming languages shows that if we combine the features from SCG with conventional features used in similar studies, we will get the increased performance of Machine Learning (ML) based buggy commit detection models. We also find the increase of F1 Scores in predicting buggy and non-buggy commits statistically significant using the Wilcoxon Signed Rank Test. Since SCG-based feature values represent the style or structural properties of source code updates or changes in the software system, it suggests the importance of careful maintenance of source code style or structure for keeping a software system bug-free.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.