Abstract
Architectural technical debt can have a huge impact on software maintainability and evolution. Hence, different architectural violations, detected as architectural smells, need to be identified and refactored. In this paper, we conducted a multiple case-study on several architectural smells detected in four industrial projects. We conducted an in-depth investigation with a questionnaire, interviews and thorough inspection of the code with the practitioners. We evaluated the negative impact of the technical debt detected by the architectural smells, their difficulty to be refactored and the usefulness of the detection tool. The results show that practitioners appreciated the help of automatic detection, and that they prioritize refactoring architectural debt that causes more negative impact despite the higher refactoring effort.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
For space reason, it is available at https://drive.google.com/file/d/160TA9Q9jUIUpTBp-Wg7zu87elVa3y1qr/view?usp=sharing.
References
Besker, T., Martini, A., Bosch, J.: The pricey bill of technical debt: when and by whom will it be paid? In: 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 13–23, September 2017
Cast Software: Cast (2018). http://www.castsoftware.com/Products
Headway Software Technologies: Structure101 (2018). http://structure101.com/products/
hello2morrow: Sonargraph (2018). https://www.hello2morrow.com/products/sonargraph
Arcelli Fontana, F., Pigazzini, I., Roveda, R., Tamburri, D.A., Zanoni, M., Nitto, E.D.: Arcan: a tool for architectural smells detection. In: International Conference Software Architecture (ICSA 2017) Workshops, Sweden, Gothenburg, pp. 282–285 (2017)
Kazman, R., et al.: A case study in locating the architectural roots of technical debt. In: Proceedings of the 37th IEEE International Conference on Software Engineering (ICSE 2015), vol. 2, pp. 179–188 (2015)
Martini, A., Bosch, J.: An empirically developed method to aid decisions on architectural technical debt refactoring: AnaConDebt. In: Proceedings of the 38th International Conference on Software Engineering, ICSE 2016, Austin, TX, USA, 14–22 May 2016, Companion Volume, pp. 31–40 (2016)
Martini, A., Sikander, E., Madlani, N.: A semi-automated framework for the identification and estimation of Architectural Technical Debt: a comparative case-study on the modularization of a software component. Inf. Softw. Technol. 93(Suppl. C), 264–279 (2018)
Yamashita, A.F., Moonen, L.: Do developers care about code smells? An exploratory survey. In: 20th Working Conference on Reverse Engineering, WCRE 2013, Germany, pp. 242–251 (2013)
Soh, Z., Yamashita, A., Khomh, F., Guéhéneuc, Y.: Do code smells impact the effort of different maintenance programming activities? In: IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering, SANER 2016, Suita, Osaka, Japan, 14–18 March 2016, vol. 1, pp. 393–402 (2016)
Yamashita, A.: Assessing the capability of code smells to explain maintenance problems: an empirical study combining quantitative and qualitative data. Empir. Softw. Eng. 19(4), 1111–1143 (2014)
Palomba, F., Bavota, G., Penta, M.D., Oliveto, R., Lucia, A.D.: Do they really smell bad? A study on developers’ perception of bad code smells. In: 30th IEEE International Conference on Software Maintenance and Evolution, Victoria, BC, Canada, 29 September–3 October 2014, pp. 101–110 (2014)
Runeson, P., Höst, M.: Guidelines for conducting and reporting case study research in software engineering. Empir. Softw. Eng. 14(2), 131–164 (2009)
Martini, A., Bosch, J.: The magnificent seven: towards a systematic estimation of technical debt interest. In: Proceedings of the XP 2017 Scientific Workshops, XP 2017, pp. 7:1–7:5. ACM, New York (2017)
Lippert, M., Roock, S.: Refactoring in Large Software Projects: Performing Complex Restructurings Successfully. Wiley, Hoboken (2006)
Macia, I., Arcoverde, R., Cirilo, E., Garcia, A., von Staa, A.: Supporting the identification of architecturally-relevant code anomalies. In: Proceedings of the 28th IEEE International Conference on Software Maintenance (ICSM 2012), Italy, pp. 662–665. IEEE (2012)
Arcelli Fontana, F., Pigazzini, I., Roveda, R., Zanoni, M.: Automatic detection of instability architectural smells. In: Proceedings of the 32nd International Conference on Software Maintenance and Evolution (ICSME 2016), Raleigh, North Carolina, USA, ERA Track. IEEE, October 2016
Al-Mutawa, H.A., Dietrich, J., Marsland, S., McCartin, C.: On the shape of circular dependencies in java programs. In: Proceedings of 23rd Australian Software Engineering Conference (ASWEC 2014), Sydney, Australia, pp. 48–57. IEEE, April 2014
Roveda, R.: Identifying and evaluating software architecture erosion. Ph.D. thesis, Università degli studi di Milano - Bicocca, May 2012
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston (1999)
Lanza, M., Marinescu, R.: Object-Oriented Metrics in Practice. Springer, Heidelberg (2006). https://doi.org/10.1007/3-540-39538-5
ESSeRE Lab: Questionnarie table (2018). https://drive.google.com/file/d/160TA9Q9jUIUpTBp-Wg7zu87elVa3y1qr/view?usp=sharing
ISO - International Organization for Standardization: System and software quality models (2015)
Arcelli Fontana, F., Roveda, R., Vittori, S., Metelli, A., Saldarini, S., Mazzei, F.: On evaluating the impact of the refactoring of architectural problems on software quality. In: Proceedings of the Scientific Workshop Proceedings of XP 2016, Edinburgh, Scotland, UK, 24 May 2016, p. 21 (2016)
Roveda, R., Arcelli Fontana, F., Pigazzini, I., Zanoni, M.: Towards an architectural debt index. In: Proceedings of the Euromicro Conference on Software Engineering and Advanced Applications (SEAA), Technical Debt track, Prague, Czech Republic. IEEE, August 2018
Garcia, J., Popescu, D., Edwards, G., Medvidovic, N.: Identifying architectural bad smells. In: CSMR 2009, Germany, pp. 255–258. IEEE (2009)
Acknowledgements
The research leading to these results has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No. 712949 (TECNIOspring PLUS) and from the Agency for Business Competitiveness of the Government of Catalonia. We thank Chalmers University of Technology and University of Gothenburg for the support.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Martini, A., Fontana, F.A., Biaggi, A., Roveda, R. (2018). Identifying and Prioritizing Architectural Debt Through Architectural Smells: A Case Study in a Large Software Company. In: Cuesta, C., Garlan, D., Pérez, J. (eds) Software Architecture. ECSA 2018. Lecture Notes in Computer Science(), vol 11048. Springer, Cham. https://doi.org/10.1007/978-3-030-00761-4_21
Download citation
DOI: https://doi.org/10.1007/978-3-030-00761-4_21
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-00760-7
Online ISBN: 978-3-030-00761-4
eBook Packages: Computer ScienceComputer Science (R0)