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.
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Carliss Y. Baldwin and Kim B. Clark. 2000. Design Rules, Vol. 1: The Power of Modularity (1st. ed.). MIT Press, Cambridge, MA.Google ScholarDigital Library
- 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 ScholarDigital Library
- Ran Mo. 2018. Automatically Measuring Software Architecture and Identifying Architecture Problems. Doctoral Dissertation. Drexel University, Philadelphia, PA.Google Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
Detecting architectural integrity violation patterns using machine learning
Recommendations
Architectural patterns for the design of federated learning systems
AbstractFederated learning has received fast-growing interests from academia and industry to tackle the challenges of data hungriness and privacy in machine learning. A federated learning system can be viewed as a large-scale distributed ...
Highlights- Federated learning systems as large-scale distributed systems with different components and stakeholders requires software system design thinking.
A catalog of architectural primitives for modeling architectural patterns
Architectural patterns are a fundamental aspect of the architecting process and subsequently the architectural documentation. Unfortunately, there is only poor support for modeling architectural patterns for two reasons. First, patterns describe ...
FLRA: A Reference Architecture for Federated Learning Systems
Software ArchitectureAbstractFederated learning is an emerging machine learning paradigm that enables multiple devices to train models locally and formulate a global model, without sharing the clients’ local data. A federated learning system can be viewed as a large-scale ...
Comments