skip to main content
10.1145/3468264.3473120acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

AC²: towards understanding architectural changes in Python projects

Published:18 August 2021Publication History

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

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarCross RefCross Ref
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarCross RefCross Ref
  6. 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 ScholarGoogle ScholarCross RefCross Ref
  7. 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 ScholarGoogle ScholarCross RefCross Ref
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarCross RefCross Ref
  11. 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 ScholarGoogle ScholarCross RefCross Ref
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. Barbara Russo. 2018. Profiling call changes via motif mining. In 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR). 203–214.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarCross RefCross Ref
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarCross RefCross Ref
  23. 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 ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. AC²: towards understanding architectural changes in Python projects

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        ESEC/FSE 2021: Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
        August 2021
        1690 pages
        ISBN:9781450385626
        DOI:10.1145/3468264

        Copyright © 2021 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 18 August 2021

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate112of543submissions,21%
      • Article Metrics

        • Downloads (Last 12 months)33
        • Downloads (Last 6 weeks)3

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader