ABSTRACT
Open source projects are adopting faster release cycles that reflect various changes in the software. Therefore, comprehending the effects of these changes as software architecture evolves over multiple releases becomes necessary. However, it is challenging to keep architecture in-check and add new changes simultaneously for every release. To this end, we propose a visualization tool called AC2, which allows users to examine the alterations in the architecture at both higher and lower levels of abstraction for Python projects. AC2 uses call graphs and collaboration graphs to show the interaction between different architectural components. The tool provides four different views to see the architectural changes. Users can examine two releases at a time to comprehend architectural changes between them. AC2 can support the maintainers and developers, observing changes in the project and their influence on the architecture, which allows them to examine its increasing complexity over many releases at component level. AC2 can be downloaded from <a>https://github.com/rishalab/AC2</a> and the demo can be seen at <a>https://www.youtube.com/watch?v=GNrJfZ0RCVI</a>.
- Shin-Young Ahn, Sungwon Kang, Jongmoon Baik, and Ho-Jin Choi. 2009. A weighted call graph approach for finding relevant components in source code. In 10th ACIS International Conference on Software Engineering, Artificial Intelligences, Networking and Parallel/Distributed Computing. 539–544. https://doi.org/10.1109/SNPD.2009.86 Google ScholarDigital Library
- Manoj Bhat, Klym Shumaiev, Uwe Hohenstein, Andreas Biesdorf, and Florian Matthes. 2020. The evolution of architectural decision making as a key focus area of software architecture research: A semi-systematic literature study. In 2020 IEEE International Conference on Software Architecture (ICSA). 69–80. https://doi.org/10.1109/ICSA47634.2020.00015 Google ScholarCross Ref
- Hongyu Pei Breivold, Daniel Sundmark, Peter Wallin, and Stig Larsson. 2010. What does research say about agile and architecture? In 2010 Fifth International Conference on Software Engineering Advances. 32–37. https://doi.org/10.1109/ICSEA.2010.12 Google ScholarDigital Library
- David Garlan, Shang-Wen Cheng, and Andrew J Kompanek. 2002. Reconciling the needs of architectural description with object-modeling notations. Science of Computer Programming, 44, 1 (2002), 23–49. https://doi.org/10.1016/S0167-6423(02)00031-X Google ScholarDigital Library
- Abram Hindle, Zhen Ming Jiang, Walid Koleilat, Michael W Godfrey, and Richard C Holt. 2007. Yarn: Animating software evolution. In 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis. 129–136. https://doi.org/10.1109/VISSOF.2007.4290711 Google ScholarCross Ref
- Ric Holt and Jason Y Pak. 1996. Gase: visualizing software evolution-in-the-large. In Proceedings of WCRE’96: 4rd Working Conference on Reverse Engineering. 163–167. https://doi.org/10.1109/WCRE.1996.558900 Google ScholarCross Ref
- Catherine Blake Jaktman, John Leaney, and Ming Liu. 1999. Structural analysis of the software architecture—a maintenance assessment case study. In Working Conference on Software Architecture. 455–470. https://doi.org/10.1007/978-0-387-35563-4_26 Google ScholarCross Ref
- Anton Jansen and Jan Bosch. 2005. Software architecture as a set of architectural design decisions. In 5th Working IEEE/IFIP Conference on Software Architecture (WICSA’05). 109–120. https://doi.org/10.1109/WICSA.2005.61 Google ScholarDigital Library
- Foutse Khomh, Bram Adams, Tejinder Dhaliwal, and Ying Zou. 2015. Understanding the impact of rapid releases on software quality. Empirical Software Engineering, 20, 2 (2015), 336–373. https://doi.org/10.1007/s10664-014-9308-x Google ScholarDigital Library
- Duc Minh Le, Pooyan Behnamghader, Joshua Garcia, Daniel Link, Arman Shahbazian, and Nenad Medvidovic. 2015. An empirical study of architectural change in open-source software systems. In 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories. 235–245. https://doi.org/10.1109/MSR.2015.29 Google ScholarCross Ref
- Duc Minh Le, Daniel Link, Arman Shahbazian, and Nenad Medvidovic. 2018. An empirical study of architectural decay in open-source software. In 2018 IEEE International conference on software architecture (ICSA). 176–17609. https://doi.org/10.1109/ICSA.2018.00027 Google ScholarCross Ref
- Alan MacCormack and Daniel J Sturtevant. 2016. Technical debt and system architecture: The impact of coupling on defect-related activity. Journal of Systems and Software, 120 (2016), 170–182. https://doi.org/10.1016/j.jss.2016.06.007 Google ScholarDigital Library
- Andrew McNair, Daniel M German, and Jens Weber-Jahnke. 2007. Visualizing software architecture evolution using change-sets. In 14th Working Conference on Reverse Engineering (WCRE 2007). 130–139. https://doi.org/10.1109/WCRE.2007.52 Google ScholarDigital Library
- Andrew McVeigh, Jeff Kramer, and Jeff Magee. 2011. Evolve: tool support for architecture evolution. In 2011 33rd International Conference on Software Engineering (ICSE). 1040–1042. https://doi.org/10.1145/1985793.1985990 Google ScholarDigital Library
- Taiga Nakamura and Victor R Basili. 2005. Metrics of software architecture changes based on structural distance. In 11th IEEE International Software Metrics Symposium (METRICS’05). 24–24. https://doi.org/10.1109/METRICS.2005.35 Google ScholarDigital Library
- Daye Nam, Youn Kyu Lee, and Nenad Medvidovic. 2018. EVA: A tool for visualizing software architectural evolution. In 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion). 53–56. https://doi.org/10.1145/3183440.3183490 Google ScholarDigital Library
- Barbara Russo. 2018. Profiling call changes via motif mining. In 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR). 203–214.Google ScholarDigital Library
- Raghvinder S Sangwan, Ashkan Negahban, Robert L Nord, and Ipek Ozkaya. 2020. Optimization of Software Release Planning Considering Architectural Dependencies, Cost, and Value. IEEE Transactions on Software Engineering, https://doi.org/10.1109/TSE.2020.3020013 Google ScholarCross Ref
- Marcelo Schmitt Laser, Nenad Medvidovic, Duc Minh Le, and Joshua Garcia. 2020. ARCADE: an extensible workbench for architecture recovery, change, and decay evaluation. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 1546–1550. https://doi.org/10.1145/3368089.3417941 Google ScholarDigital Library
- Outi Sievi-Korte, Ita Richardson, and Sarah Beecham. 2019. Software architecture design in global software development: An empirical study. Journal of Systems and Software, 158 (2019), 110400. https://doi.org/10.1016/j.jss.2019.110400 Google ScholarDigital Library
- Leonardo Sousa, Willian Oizumi, Alessandro Garcia, Anderson Oliveira, Diego Cedrim, and Carlos Lucena. 2020. When Are Smells Indicators of Architectural Refactoring Opportunities: A Study of 50 Software Projects. In Proceedings of the 28th International Conference on Program Comprehension. 354–365. https://doi.org/10.1145/3387904.3389276 Google ScholarDigital Library
- Qiang Tu and Michael W Godfrey. 2002. An integrated approach for studying architectural evolution. In Proceedings 10th International Workshop on Program Comprehension. 127–136. https://doi.org/10.1109/WPC.2002.1021334 Google ScholarCross Ref
- Colin C Venters, Rafael Capilla, Stefanie Betz, Birgit Penzenstadler, Tom Crick, Steve Crouch, Elisa Yumi Nakagawa, Christoph Becker, and Carlos Carrillo. 2018. Software sustainability: Research and practice from a software architecture viewpoint. Journal of Systems and Software, 138 (2018), 174–188. https://doi.org/10.1016/j.jss.2017.12.026 Google ScholarCross Ref
Index Terms
- AC²: towards understanding architectural changes in Python projects
Recommendations
Software architectural principles in contemporary mobile software
Distills the architectural principles found in Android.Traces back those principles to their conception in software-architecture research.Reports on characteristics of Android ecosystem of apps by mining hundreds of apps in several app markets.Reflects ...
Towards a framework for managing architectural design decisions
ECSA '17: Proceedings of the 11th European Conference on Software Architecture: Companion ProceedingsSoftware architecture is considered as a set of architectural design decisions. The recent trends, both in research and industry, call for improved tool support for software architects and developers to manage architectural design decisions and its ...
Comments