On the perceived relevance of critical internal quality attributes when evolving software features

05/07/2023
by   Eduardo Fernandes, et al.
0

Several refactorings performed while evolving software features aim to improve internal quality attributes like cohesion and complexity. Indeed, internal attributes can become critical if their measurements assume anomalous values. Yet, current knowledge is scarce on how developers perceive the relevance of critical internal attributes while evolving features. This qualitative study investigates the developers' perception of the relevance of critical internal attributes when evolving features. We target six class-level critical attributes: low cohesion, high complexity, high coupling, large hierarchy depth, large hierarchy breadth, and large size. We performed two industrial case studies based on online focus group sessions. Developers discussed how much (and why) critical attributes are relevant when adding or enhancing features. We assessed the relevance of critical attributes individually and relatively, the reasons behind the relevance of each critical attribute, and the interrelations of critical attributes. Low cohesion and high complexity were perceived as very relevant because they often make evolving features hard while tracking failures and adding features. The other critical attributes were perceived as less relevant when reusing code or adopting design patterns. An example of perceived interrelation is high complexity leading to high coupling.

READ FULL TEXT
research
07/10/2019

Do Design Metrics Capture Developers Perception of Quality? An Empirical Study on Self-Affirmed Refactoring Activities

Background. Refactoring is a critical task in software maintenance and i...
research
01/08/2020

Perception and Acceptance of an Autonomous Refactoring Bot

The use of autonomous bots for automatic support in software development...
research
09/28/2018

A model for system developers to measure the privacy risk of data

In this paper, we propose a model that could be used by system developer...
research
09/05/2023

How do Developers Improve Code Readability? An Empirical Study of Pull Requests

Readability models and tools have been proposed to measure the effort to...
research
07/02/2019

Understanding Flaky Tests: The Developer's Perspective

Flaky tests are software tests that exhibit a seemingly random outcome (...
research
07/16/2018

Visualizing Design Erosion: How Big Balls of Mud are Made

Software systems are not static, they have to undergo frequent changes t...
research
05/25/2020

On Irrelevance of Attributes in Flexible Prediction

This paper analyses properties of conceptual hierarchy obtained via incr...

Please sign up or login with your details

Forgot password? Click here to reset