Nothing Special   »   [go: up one dir, main page]

skip to main content
article

The Study on Software Architecture Smell Refactoring

Published: 27 February 2024 Publication History

Abstract

Maintenance and complexity issues in software development continue to increase because of new requirements and software evolution, and refactoring is required to help software adapt to the changes. The goal of refactoring is to fix smells in the system. Fixing architectural smells requires more effort than other smells because it is tangled in multiple components in the system. Architecture smells refer to commonly used architectural decisions that negatively impact system quality. They cause high software coupling, create complications when developing new requirements, and are hard to test and reuse. This paper presented a tool to analyze the causes of architectural smells such as cyclic dependency and unstable dependency and included a priority metric that could be used to optimize the smell with the most refactoring efforts and simulate the most cost-effective refactoring path sequence for a developer to follow. Using a real case scenario, a refactoring path was evaluated with real refactoring execution, and the validity of the path was verified.

References

[1]
Al-MutawaH. A.DietrichJ.MarslandS.McCartinC. (2014). On the shape of circular dependencies in Java Programs. Proceedings of the 2014 23rd Australian Software Engineering Conference (ASWEC ’14), 48–57. 10.1109/ASWEC.2014.15
[2]
ArcelliF. F.PigazziniI.RovedaR.ZanoniM. (2017). Automatic detection of instability architectural smells, Automatic Detection of Instability Architectural Smells. Proceedings of the 32nd IEEE International Conference on Software Maintenance and Evolution, 433-437. 10.1109/ICSME.2016.33
[3]
AzadiU.ArcelliF. F.TaibiD. (2019). Architectural smells detected by tools: a A catalogue proposal. 2019 IEEE/ACM International Conference on Technical Debt (TechDebt), 88-97. 10.1109/TechDebt.2019.00027
[4]
Baqais, A. A. B., & Alshayeb, M. (2020). Automatic software refactoring: A A systematic literature review. Software Quality Journal, 28(2), 459–502.
[5]
Bavota, G., De Lucia, A., Marcus, A., & Oliveto, R. (2014). Automating extract class refactoring: An An improved method and its evaluation. Empirical Software Engineering, 19(6), 1617–1664.
[6]
Caracciolo, A., Bledar, A., Lungu, M., & Nierstrasz, O. (2016). Marea: A semi-automatic decision support system for breaking dependency cycles. 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), 482-492. 10.1109/SANER.2016.11
[7]
ChantianB.MuenchaisriP. (2019). A refactoring approach for too large packages using community detection and dependency-based impacts. In Proceedings of the 1st World Symposium on Software Engineering (WSSE ’19). Association for Computing Machinery. 10.1145/3362125.3362132
[8]
FontanaF. A.PigazziniI.RaibuletC.BascianoS.RovedaR. (2019). Pagerank and criticality of architectural smells. Proceedings of the 13th European Conference on Software Architecture, 2, 197-204. 10.1145/3344948.3344982
[9]
Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring: Improving the design of existing code (1st ed.). Addison-Wesley Professional.
[10]
Garcia, J., Popescu, D., Edwards, G., & Medvidovic, N. (2009). Identifying architectural bad smells, 2009 13th European Conference on Software Maintenance and Reengineering, 255-258. 10.1109/CSMR.2009.59
[11]
Lehman, M. M. (1996). Laws of software evolution revisited. Proceedings of the 5th European Workshop on Software Process Technology, 108–124. 10.1007/BFb0017737
[12]
Likert, R. (1932). A technique for the measurement of attitudes. Archives de Psychologie.
[13]
Lippert, M., & Roock, S. (2006). Refactoring in large software projects: performing Performing complex restructurings successfully. John Wiley & Sons.
[14]
Martin, C. (2017). Clean architecture: A craftsman’s guide to software structure and design. Prentice Hall Press.
[15]
Martin, R. (2003). Agile software development: Principles, patterns, and practices. Prentice Hall PTR.
[16]
Pan, W. F., Jiang, B., & Li, B. (2013). Refactoring software packages via community detection in complex software networks. International Journal of Automation and Computing, 10(2), 27–31.
[17]
Praditwong, K., Harman, M., & Yao, X. (2011). Software module clustering as a multi-objective search problem. IEEE Transactions on Software Engineering, 37(2), 264–282.
[18]
RizziL.FontanaF. A.RovedaR. (2018). Support for architectural smell refactoring. In Proceedings of the 2nd International Workshop on Refactoring (IWoR 2018). Association for Computing Machinery. 10.1145/3242163.3242165
[19]
SasD.AvgeriouP.ArcelliF. F. (2019). Investigating instability architectural smells evolution: An exploratory case study. 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), 557–567. 10.1109/ICSME.2019.00090
[20]
Suryanarayana, G., Samarthyam, G., & Sharma, T. (2014). Refactoring for software design smells: Managing technical debt. Morgan Kaufmann (1st ed.). http://www.omg.org.
[21]
Zimmermann, O. (2015). Architectural refactoring: A task-centric view on software evolution . IEEE Software, 32(2), 26–29.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image International Journal of Software Innovation
International Journal of Software Innovation  Volume 12, Issue 1
Nov 2023
166 pages
ISSN:2166-7160
EISSN:2166-7179
Issue’s Table of Contents

Publisher

IGI Global

United States

Publication History

Published: 27 February 2024

Author Tags

  1. Architecture Smell
  2. Refactoring Strategies
  3. Refactoring Tool

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Feb 2025

Other Metrics

Citations

View Options

View options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media