Published January 9, 2023 | Version 1.0
Dataset Open

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

Description

Several refactorings performed while evolving software features aim to improve internal quality attributes like cohesion and complexity. Studies show that non-assisted refactorings might worsen, not improve, internal attributes. Current knowledge is scarce on how developers perceive the relevance of critical internal attributes while evolving features. Internal attributes are critical if their measurement assumes anomalous values. This qualitative study investigates the developer's perception on 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 industry case studies based on online focus group sessions. Developers discussed how much (and why) critical attributes are relevant for adding or enhancing features. We assessed the relevance of critical attributes individually and relatively, reasons behind the relevance of each critical attribute, and 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.

Files

Appendix A - Virtual template created on the MURAL tool (Sections A to G).png