How Do Software Developers Identify Design Problems? A Qualitative Analysis

Sousa, Leonardo, Oliveira, Roberto, Garcia, Alessandro Fabricio, Lee, Jaejoon ORCID: https://orcid.org/0000-0001-6016-8540, Conte, Tanya, Oizumi, William, de Mello, Rafael, Lopes, Adriana, Valentim, Natasha, Oliveira, Edson and Lucena, Carlos (2017) How Do Software Developers Identify Design Problems? A Qualitative Analysis. In: SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering. UNSPECIFIED, pp. 54-63. ISBN 9781450353267

Full text not available from this repository. (Request a copy)

Abstract

When a software design decision has a negative impact on one or more quality attributes, we call it a design problem. For example, the Fat Interface problem indicates that an interface exposes non-cohesive services Thus, clients and implementations of this interface may have to handle with services that they are not interested. A design problem such as this hampers the extensibility and maintainability of a software system. As illustrated by the example, a single design problem often affects several elements in the program. Despite its harmfulness, it is difficult to identify a design problem in a system. It is even more challenging to identify design problems when the source code is the only available artifact. In particular, no study has observed what strategy(ies) developers use in practice to identify design problems when the design documentation is unavailable. In order to address this gap, we conducted a qualitative analysis on how developers identify design problems in two different scenarios: when they are either familiar (Scenario 1) or unfamiliar (Scenario 2) with the analyzed systems. Developers familiar with the systems applied a diverse set of strategies during the identification of each design problem. Some strategies were frequently used to locate code elements for analysis, and other strategies were frequently used to confirm design problems in these elements. Developers unfamiliar with the systems relied only on the use of code smells along the task. Despite some differences among the subjects from both scenarios, we noticed that developers often search for multiple indicators during the identification of each design problem.

Item Type: Book Section
Faculty \ School: Faculty of Science > School of Computing Sciences
Related URLs:
Depositing User: LivePure Connector
Date Deposited: 22 Jan 2020 03:56
Last Modified: 22 Oct 2022 23:51
URI: https://ueaeprints.uea.ac.uk/id/eprint/73723
DOI: 10.1145/3131151.3131168

Actions (login required)

View Item View Item