当前位置: X-MOL 学术arXiv.cs.SE › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Discovery of Layered Software Architecture from Source Code Using Ego Networks
arXiv - CS - Software Engineering Pub Date : 2021-06-06 , DOI: arxiv-2106.03040
Sanjay Thakare, Arvind W Kiwelekar

Software architecture refers to the high-level abstraction of a system including the configuration of the involved elements and the interactions and relationships that exist between them. Source codes can be easily built by referring to the software architectures. However, the reverse process i.e. derivation of the software architecture from the source code is a challenging task. Further, such an architecture consists of multiple layers, and distributing the existing elements into these layers should be done accurately and efficiently. In this paper, a novel approach is presented for the recovery of layered architectures from Java-based software systems using the concept of ego networks. Ego networks have traditionally been used for social network analysis, but in this paper, they are modified in a particular way and tuned to suit the mentioned task. Specifically, a dependency network is extracted from the source code to create an ego network. The ego network is processed to create and optimize ego layers in a particular structure. These ego layers when integrated and optimized together give the final layered architecture. The proposed approach is evaluated in two ways: on static versions of three open-source software, and a continuously evolving software system. The distribution of nodes amongst the proposed layers and the committed violations are observed on both class level and package level. The proposed method is seen to outperform the existing standard approaches over multiple performance metrics. We also carry out the analysis of variation in the results concerning the change in the node selection strategy and the frequency. The empirical observations show promising signs for recovering software architecture layers from source codes using this technique and also extending it further to other languages and software.

中文翻译:

使用 Ego 网络从源代码中发现分层软件架构

软件架构是指系统的高级抽象,包括所涉及元素的配置以及它们之间存在的交互和关系。通过参考软件架构可以轻松构建源代码。然而,逆向过程,即从源代码推导出软件架构是一项具有挑战性的任务。此外,这样的架构由多个层组成,应该准确有效地将现有元素分布到这些层中。在本文中,提出了一种使用自我网络概念从基于 Java 的软件系统中恢复分层架构的新方法。自我网络传统上用于社交网络分析,但在本文中,它们以特定方式进行修改并调整以适应上述任务。具体来说,从源代码中提取依赖网络来创建自我网络。处理自我网络以在特定结构中创建和优化自我层。这些自我层在集成和优化在一起时提供了最终的分层架构。所提出的方法通过两种方式进行评估:三种开源软件的静态版本,以及不断发展的软件系统。在类级别和包级别上都观察到了提议层之间的节点分布和犯下的违规行为。所提出的方法被认为在多个性能指标上优于现有的标准方法。我们还对有关节点选择策略和频率变化的结果的变化进行了分析。经验观察显示了使用这种技术从源代码中恢复软件架构层并将其进一步扩展到其他语言和软件的有希望的迹象。
更新日期:2021-06-08
down
wechat
bug