skip to main content
10.1145/3341105.3374008acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Detecting architectural integrity violation patterns using machine learning

Published:30 March 2020Publication History

ABSTRACT

Recent1 years have seen a surge of research into new ways of analyzing software quality. Specifically, a set of studies has been devoted to the impact the architectural relations among files have on system maintainability and file bug-proneness. The literature has proposed a set of rules for determining recurring architectural design flaws that occur in most complex systems, are associated with bugs, and thus incur high maintenance costs. In the present paper we advocate for using machine learning as the means of refining the approach and revealing new patterns of architectural integrity violations. Having trained a machine learning model on the combination of structural and historical information acquired from the Tiki open source project, we have been able to replicate three of the six known types of architectural violations and discover one new type, the Reverse Unstable Interface pattern. The implication of our study is that machine learning can provide valuable insights into the problem and discover novel patterns which would help software analysts to pinpoint specific architectural problems that may be the root causes of elevated bug- and change-proneness.

References

  1. Diego Guemes-Pena, Carlos Lopez-Nozal, Raul Marticorena-Sanchez, and Jesus Maudes-Raedo. 2018. Emerging topics in mining software repositories: Machine learning in software repositories and datasets. Progress in Artificial Intelligence 7 (2018), 237--247. Google ScholarGoogle ScholarCross RefCross Ref
  2. Nanette Brown, Yuanfang Cai, Yuepu Guo, Rick Kazman, Miryung Kim, Philippe Kruchten, Erin Lim, Alan MacCormack, Robert Nord, Ipek Ozkaya, Raghvinder Sangwan, Carolyn Seaman, Kevin Sullivan, and Nico Zazworka. 2010. Managing technical debt in software-reliant systems. In Proceedings of the FSE/SDP Workshop on Future of Software Engineering Research (FoSER '10). ACM, New York, NY, 47--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Qiong Feng, Rick Kazman, Yuanfang Cai, Ran Mo, and Lu Xiao. 2016. Towards an architecture-centric approach to security analysis. In Proceedings of the 13th Working IEEE/IFIP Conference on Software Architecture (WICSA '16). IEEE Computer Society, Washington, DC, 221--230. Google ScholarGoogle ScholarCross RefCross Ref
  4. Thomas Ball, Jung-Min Kim, Adam A. Porter, and Harvey P. Siy. 1997. If your version control system could talk. In Proceedings of the ICSE Workshop on Process Modelling and Empirical Studies of Software Engineering, 5 pages.Google ScholarGoogle Scholar
  5. Maximilian Steff and Barbara Russo. 2012. Co-evolution of logical couplings and commits for defect estimation. In Proceedings of the 9th IEEE Working Conference on Mining Software Repositories (MSR '12). IEEE Press, Piscataway, NJ, 213--216. Google ScholarGoogle ScholarCross RefCross Ref
  6. Jacek Sliwerski, Thomas Zimmermann, and Andreas Zeller. 2005. When do changes induce fixes? In Proceedings of the 2005 International Workshop on Mining Software Repositories (MSR '05). ACM, New York, NY, 5 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Marco D'Ambros, Michele Lanza, and Romain Robbes. 2009. On the relationship between change coupling and software defects. In Proceedings of the 16th Working Conference on Reverse Engineering (WCRE '09). IEEE Computer Society, Washington, DC, 135--144. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Carliss Y. Baldwin and Kim B. Clark. 2000. Design Rules, Vol. 1: The Power of Modularity (1st. ed.). MIT Press, Cambridge, MA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Ran Mo, Yuanfang Cai, Rick Kazman, and Lu Xiao. 2015. Hotspot patterns: The formal definition and automatic detection of architecture smells. In Proceedings of the 12th Working IEEE/IFIP Conference on Software Architecture (WICSA '15). IEEE Computer Society, Washington, DC, 51--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Ran Mo. 2018. Automatically Measuring Software Architecture and Identifying Architecture Problems. Doctoral Dissertation. Drexel University, Philadelphia, PA.Google ScholarGoogle Scholar
  11. Ran Mo, Yuanfang Cai, Rick Kazman, Lu Xiao, and Qiong Feng. 2019. Architecture anti-patterns: Automatically detectable violations of design principles. IEEE Transactions on Software Engineering (accepted for publication). Google ScholarGoogle ScholarCross RefCross Ref
  12. Lu Xiao, Yuanfang Cai, and Rick Kazman. 2014. Design Rule Spaces: A new form of architecture insight. In Proceedings of the 36th International Conference on Software Engineering (ICSE '14). ACM, New York, NY, 967--977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Yuanfang Cai, Lu Xiao, Rick Kazman, Ran Mo, and Qiong Feng. 2018. Design Rule Spaces: A new model for representing and analyzing software architecture. IEEE Transactions on Software Engineering 45, 7 (July 2019), 657--682. Google ScholarGoogle ScholarCross RefCross Ref
  14. Sunny Wong, Yuanfang Cai, Giuseppe Valetto, Georgi Simeonov, and Kanwarpreet Sethi. 2009. Design Rule Hierarchies and parallelism in software development tasks. In Proceedings of the 24th IEEE/ACM International Conference on Automated Software Engineering (ASE '09). IEEE Computer Society, Washington, DC, 197--208. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Yuanfang Cai, Hanfei Wang, Sunny Wong, and Linzhang Wang. 2013. Leveraging design rules to improve software architecture recovery. In Proceedings of the 9th International ACM Sigsoft Conference on Quality of Software Architectures (QoSA '13). ACM, New York, NY, 133--142. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Adam Tornhill. 2015. Your Code as a Crime Scene: Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs (1st. ed.). The Pragmatic Programmers, LLC.Google ScholarGoogle Scholar
  17. Phu Chien Nguyen, Kouzou Ohara, Akira Mogi, Hiroshi Motoda, and Takashi Washio. 2006. Constructing decision trees for graph-structured data by chunkingless graph-based induction. In Proceedings of the 10th Pacific-Asia conference on Advances in Knowledge Discovery and Data Mining (PAKDD '06). Springer-Verlag Berlin, Heidelberg, 390--399. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Claire Donnat, Marinka Zitnik, David Hallac, and Jure Leskovec. 2018. Learning structural node embeddings via diffusion wavelets. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD '18). ACM, New York, NY, 1320--1329. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Ran Mo, Yuanfang Cai, Rick Kazman, Lu Xiao, and Qiong Feng. 2016. Decoupling level: A new metric for architectural maintenance complexity. In Proceedings of the 38th International Conference on Software Engineering (ICSE '16). ACM, New York, NY, 499--510. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Detecting architectural integrity violation patterns using machine learning

            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
              SAC '20: Proceedings of the 35th Annual ACM Symposium on Applied Computing
              March 2020
              2348 pages
              ISBN:9781450368667
              DOI:10.1145/3341105

              Copyright © 2020 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 the author(s) 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: 30 March 2020

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate1,650of6,669submissions,25%

              Upcoming Conference

              SAC '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader