Home > Research > Publications & Outputs > How Do Software Developers Identify Design Prob...

Electronic data

  • SBES_2017

    Rights statement: © ACM, 2017. This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering http://dx.doi.org/10.1145/3131151.3131168

    Accepted author manuscript, 511 KB, PDF document

    Available under license: CC BY-NC: Creative Commons Attribution-NonCommercial 4.0 International License

Links

Text available via DOI:

View graph of relations

How Do Software Developers Identify Design Problems?: A Qualitative Analysis

Research output: Contribution in Book/Report/Proceedings - With ISBN/ISSNConference contribution/Paperpeer-review

Published

Standard

How Do Software Developers Identify Design Problems? A Qualitative Analysis. / Sousa, Leonardo; Oliveira, Roberto; Garcia, Alessandro Fabricio et al.
SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering. New York: ACM, 2017. p. 54-63.

Research output: Contribution in Book/Report/Proceedings - With ISBN/ISSNConference contribution/Paperpeer-review

Harvard

Sousa, L, Oliveira, R, Garcia, AF, Lee, J, Conte, T, Oizumi, W, de Mello, R, Lopes, A, Valentim, N, Oliveira, E & Lucena, C 2017, How Do Software Developers Identify Design Problems? A Qualitative Analysis. in SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering. ACM, New York, pp. 54-63. https://doi.org/10.1145/3131151.3131168

APA

Sousa, L., Oliveira, R., Garcia, A. F., Lee, J., Conte, T., Oizumi, W., de Mello, R., Lopes, A., Valentim, N., Oliveira, E., & Lucena, C. (2017). How Do Software Developers Identify Design Problems? A Qualitative Analysis. In SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering (pp. 54-63). ACM. https://doi.org/10.1145/3131151.3131168

Vancouver

Sousa L, Oliveira R, Garcia AF, Lee J, Conte T, Oizumi W et al. How Do Software Developers Identify Design Problems? A Qualitative Analysis. In SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering. New York: ACM. 2017. p. 54-63 doi: 10.1145/3131151.3131168

Author

Sousa, Leonardo ; Oliveira, Roberto ; Garcia, Alessandro Fabricio et al. / How Do Software Developers Identify Design Problems? A Qualitative Analysis. SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering. New York : ACM, 2017. pp. 54-63

Bibtex

@inproceedings{e54e0ed52d1942468da883f18a6f1bc5,
title = "How Do Software Developers Identify Design Problems?: A Qualitative Analysis",
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.",
author = "Leonardo Sousa and Roberto Oliveira and Garcia, {Alessandro Fabricio} and Jaejoon Lee and Tanya Conte and William Oizumi and {de Mello}, Rafael and Adriana Lopes and Natasha Valentim and Edson Oliveira and Carlos Lucena",
note = "{\textcopyright} ACM, 2017. This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering http://dx.doi.org/10.1145/3131151.3131168 ",
year = "2017",
month = sep,
day = "17",
doi = "10.1145/3131151.3131168",
language = "English",
isbn = "9781450353267",
pages = "54--63",
booktitle = "SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering",
publisher = "ACM",

}

RIS

TY - GEN

T1 - How Do Software Developers Identify Design Problems?

T2 - A Qualitative Analysis

AU - Sousa, Leonardo

AU - Oliveira, Roberto

AU - Garcia, Alessandro Fabricio

AU - Lee, Jaejoon

AU - Conte, Tanya

AU - Oizumi, William

AU - de Mello, Rafael

AU - Lopes, Adriana

AU - Valentim, Natasha

AU - Oliveira, Edson

AU - Lucena, Carlos

N1 - © ACM, 2017. This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering http://dx.doi.org/10.1145/3131151.3131168

PY - 2017/9/17

Y1 - 2017/9/17

N2 - 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.

AB - 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.

U2 - 10.1145/3131151.3131168

DO - 10.1145/3131151.3131168

M3 - Conference contribution/Paper

SN - 9781450353267

SP - 54

EP - 63

BT - SBES'17 Proceedings of the 31st Brazilian Symposium on Software Engineering

PB - ACM

CY - New York

ER -