for Predicting Code Quality With STC

Project Details

  • Project Overview
    STCharts is a project which deals with socio-technical congruence in regards to software code quality. STCharts allows us to analyse a software project's social and technical data with a web based visualization. We can analyse various software metrics to determine which factors of project development are contributing towards code quality.
  • SEGAL Members Involved
    Eirini Kalliamvakou, Jordan Ell, Daniela Damian

Project Description

The objective of this project is to assess socio-technical congruence (STC) as a contributing or signalling factor for code quality. Our goal is to monitor STC throughout the lifetime of a project and determine whether it is a metric that predicts code quality, in contrast to or in combination with other activity and quality metrics. We also aim to map STC across multiple projects in search of meaningful patterns.

To help with our goal, we are developing STCharts, a tool that calculates and maps STC alongside other project metrics over sliding time windows of the project’s activity. STCharts uses a project’s commit history and bug tracker information to get technical and social dependencies for the STC calculation.

Project Components and Results

The visual output of the tool comes in the form of four graphs, each mapping two metrics, over a user-specified time window:

  • STC with Fix Inducing Changes
  • Number of Bugs Opened and Number of Bugs Closed
  • Number of Commits and Number of Authors
  • Number of Technical Dependencies and Number of Social Dependencies

In its current stage, STCharts allows visual analysis of the data on project metrics in order to determine which factors of project development are contributing to code quality. We can also statistically analyse the data at this stage using tools such as R.

Applications and Benefits

Research: We aim to verify whether STC is a contributing factor to code quality, if it can be used as a predictor for it, and whether there are latency effects between the fluctuations of both. Our results can help the ongoing research on modelling code quality, by investigating the relationship between the development process and the development outcome.

Practice: Our research aims to identify whether STC is an actionable concept in monitoring or anticipating changes in code quality. Our tool can be extended to provide recommendations to project managers based on the progress of STC and historical evidence of its mapping.

Future Work

The next stages of our research work on this project include mining larger data sets, comparing between different projects, and performing statistical analysis on the data to determine STC’s contribution to code quality.

Back to Top