TY - GEN
T1 - A validated set of smells in model-view-controller architectures
AU - Aniche, Maurício
AU - Bavota, Gabriele
AU - Treude, Christoph
AU - Van Deursen, Arie
AU - Gerosa, Marco Aurélio
N1 - Publisher Copyright:
© 2016 IEEE.
PY - 2017/1/12
Y1 - 2017/1/12
N2 - Code smells are symptoms of poor design and implementation choices that may hinder code comprehension, and possibly increase change- and defect-proneness. A vast catalogue of smells has been defined in the literature, and it includes smells that can be found in any kind of system (e.g., God Classes), regardless of their architecture. On the other hand, software systems adopting specific architectures (e.g., the Model-View-Controller pattern) can be also affected by other types of poor practices. We surveyed and interviewed 53 MVC developers to collect bad practices to avoid while working on Web MVC applications. Then, we followed an open coding procedure on the collected answers to define a catalogue of six Web MVC smells, namely BRAIN REPOSITORY, FAT REPOSITORY, PROMISCUOUS CONTROLLER, BRAIN CONTROLLER, LABORI-OUS REPOSITORY METHOD, and MEDDLING SERVICE. Then, we ran a study on 100 MVC projects to assess the impact of these smells on code change- and defect-proneness. In addition, we surveyed 21 developers to verify their perception of the defined smells. The achieved results show that the Web MVC smells (i) more often than not, increase change- and defect-proneness of classes, and (ii) are perceived by developers as severe problems.
AB - Code smells are symptoms of poor design and implementation choices that may hinder code comprehension, and possibly increase change- and defect-proneness. A vast catalogue of smells has been defined in the literature, and it includes smells that can be found in any kind of system (e.g., God Classes), regardless of their architecture. On the other hand, software systems adopting specific architectures (e.g., the Model-View-Controller pattern) can be also affected by other types of poor practices. We surveyed and interviewed 53 MVC developers to collect bad practices to avoid while working on Web MVC applications. Then, we followed an open coding procedure on the collected answers to define a catalogue of six Web MVC smells, namely BRAIN REPOSITORY, FAT REPOSITORY, PROMISCUOUS CONTROLLER, BRAIN CONTROLLER, LABORI-OUS REPOSITORY METHOD, and MEDDLING SERVICE. Then, we ran a study on 100 MVC projects to assess the impact of these smells on code change- and defect-proneness. In addition, we surveyed 21 developers to verify their perception of the defined smells. The achieved results show that the Web MVC smells (i) more often than not, increase change- and defect-proneness of classes, and (ii) are perceived by developers as severe problems.
UR - http://www.scopus.com/inward/record.url?scp=85013105572&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85013105572&partnerID=8YFLogxK
U2 - 10.1109/ICSME.2016.12
DO - 10.1109/ICSME.2016.12
M3 - Conference contribution
AN - SCOPUS:85013105572
T3 - Proceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016
SP - 233
EP - 243
BT - Proceedings - 2016 IEEE International Conference on Software Maintenance and Evolution, ICSME 2016
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 32nd IEEE International Conference on Software Maintenance and Evolution, ICSME 2016
Y2 - 2 October 2016 through 10 October 2016
ER -