首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
The quality of a software system is largely determined by its internal structures which always degrade over the software evolution. Therefore, the structures have to be reconditioned from time to time. However, the existing methods are very complex and resource-consuming when doing this task. In this paper, we present an approach to recondition the class structures of object-oriented (OO) software systems. It uses attribute-method networks and method-method networks to represent attributes, methods and dependencies between them; It proposes a guided community detection algorithm to obtain the optimized community structures in the method-method networks, which also correspond to the optimized class structures; It also provides a list of refactorings by comparing the optimized class structures with the real class structure in software systems and inspecting the attribute-method networks. The approach is evaluated using the open-source case study, JHotDraw 5.1, and the advantages of our approach are illustrated in comparison with existing methods.  相似文献   

2.
An intrinsic property of software in a real-world environment is its need to evolve, which is usually accompanied by the increase of software complexity and deterioration of software quality, making software maintenance a tough problem. Refactoring is regarded as an effective way to address this problem. Many refactoring approaches at the method and class level have been proposed. But the research on software refactoring at the package level is very little. This paper presents a novel approach to refactor the package structures of object oriented software. It uses software networks to represent classes and their dependencies. It proposes a constrained community detection algorithm to obtain the optimized community structures in software networks, which also correspond to the optimized package structures. And it finally provides a list of classes as refactoring candidates by comparing the optimized package structures with the real package structures. The empirical evaluation of the proposed approach has been performed in two open source Java projects, and the benefits of our approach are illustrated in comparison with the other three approaches.  相似文献   

3.
The quality of internetware software is significantly associated with class structure.As software evolves,changes often introduce many unrelated responsibilities to the same classes or distribute tightly-related methods in different classes.These changes make the classes difficult to understand and maintain.Extract class refactoring is an effective technique to improve the quality of software structure by decomposing unrelated methods in one class to create new classes or extracting tightly-related methods from different classes.In this paper,we propose a novel approach for class extraction from internetware source codes.This approach leverages a community structure detection technique to partition software into clusters and extracts classes from the resulting clusters.Our experimental results,which investigate the public well-known internetware PKUAS,indicate that:(1)the proposed approach is much faster than existing search-based clustering approaches(Hillclimbing and Genetic algorithm)and is thus applicable for large-scale internetware;(2)the proposed approach can identify meaningful class extractions for internetware;and(3)Extract Class refactoring candidates identified by the proposed approach significantly improve class cohesion of internetware.  相似文献   

4.
ContextSoftware networks are directed graphs of static dependencies between source code entities (functions, classes, modules, etc.). These structures can be used to investigate the complexity and evolution of large-scale software systems and to compute metrics associated with software design. The extraction of software networks is also the first step in reverse engineering activities.ObjectiveThe aim of this paper is to present SNEIPL, a novel approach to the extraction of software networks that is based on a language-independent, enriched concrete syntax tree representation of the source code.MethodThe applicability of the approach is demonstrated by the extraction of software networks representing real-world, medium to large software systems written in different languages which belong to different programming paradigms. To investigate the completeness and correctness of the approach, class collaboration networks (CCNs) extracted from real-world Java software systems are compared to CCNs obtained by other tools. Namely, we used Dependency Finder which extracts entity-level dependencies from Java bytecode, and Doxygen which realizes language-independent fuzzy parsing approach to dependency extraction. We also compared SNEIPL to fact extractors present in language-independent reverse engineering tools.ResultsOur approach to dependency extraction is validated on six real-world medium to large-scale software systems written in Java, Modula-2, and Delphi. The results of the comparative analysis involving ten Java software systems show that the networks formed by SNEIPL are highly similar to those formed by Dependency Finder and more precise than the comparable networks formed with the help of Doxygen. Regarding the comparison with language-independent reverse engineering tools, SNEIPL provides both language-independent extraction and representation of fact bases.ConclusionSNEIPL is a language-independent extractor of software networks and consequently enables language-independent network-based analysis of software systems, computation of design software metrics, and extraction of fact bases for reverse engineering activities.  相似文献   

5.
一种自动化软件设计改进方法   总被引:4,自引:0,他引:4  
面向对象的软件设计改进是增强系统的可扩展性、使之适应可能的需求变化的一种有效手段.提出一种基于CBR(case based reasoning)和微体系结构反模式的设计改进方法.该方法形式化地定义了在微体系结构层中不灵活的设计结构和相应的重构方案的描述方法,研究了它们在事例库中的组织和索引机制.根据基于事例的推理技术的4R过程,提出了类图、顺序图、质量要素和语义约束的相似性度量方法,描述了在给定设计中识别反模式及其实例,并在此基础上,用高质量的设计方案进行替代的几种算法.以该方法为依据,进一步介绍了设计改进支撑系统--CBDIT(CBR based design improving tool)的体系结构的设计.  相似文献   

6.
如何发现高质量的社区结构对于深刻研究和分析基于位置的社交网络(LBSN)这种新型复杂网络具有重要意义,然而,现有面向社交网络的社区发现方法都无法适用于具有多维异构关系的LBSN.为此,提出了一种基于联合聚类的用户社区发现方法Multi-BVD,该方法先给出了融合用户社交网络与地理位置标签网络中多模实体及其异构关系的社区划分目标函数,然后使用拉格朗日乘子法得到目标函数极小值的迭代更新规则,并运用块值矩阵分解技术来确定最优的社区划分结果.仿真实验结果表明,Multi-BVD方法能有效地发现LBSN中具有地理特征的用户社区结构,该社区结构在社交关系和地理兴趣标签上都有更优的内聚性,并能更紧密地体现用户社区与地理标签簇间的兴趣关联性.  相似文献   

7.
卜依凡  刘辉  李光杰 《软件学报》2019,30(5):1359-1374
上帝类是指某个承担了本应由多个类分别承担的多个职责的类.上帝类违背了分而治之的基本思想以及单一职责的设计原则,严重影响软件的可维护性和可理解性.但上帝类又是一种比较常见的代码坏味.因此,针对上帝类的检测与重构一直是代码重构领域的研究热点之一.为此,提出了一种基于深度神经网络的上帝类检测方法.该方法不仅利用了常见的软件度量,而且充分利用了代码中的文本信息,意图通过挖掘文本语义揭示每个类所承担的主要角色.此外,为了解决有监督深度学习所需的海量标签数据,提出了一种基于开源代码构造标签数据的方法.最后,基于开源数据集对所提出的方法进行了实验验证.实验结果表明,这些方法优于现有的上帝类检测方法,尤其是在查全率上有大幅度的提升(提高了35.58%).  相似文献   

8.
软件中的网络化特征及其对软件质量的贡献   总被引:9,自引:0,他引:9  
现实世界中的许多复杂系统都可以使用网络模型进行描述,复杂网络的结构和性质研究已经成为引人注目的领域。软件作为一类复杂系统,也可以使用网络化的方法进行定量分析。文章首先介绍了度量网络特征的参数,然后将复杂网络理论引入人工设计和实现的软件中,把其中的实体和关系转换成为网络拓扑的形式,通过对四个不同规模并经过详细设计的Java类库进行实验验证和数值分析,发现其中的无尺度特征、小世界现象和脆弱性/鲁棒性并存的特点。根据这些结论,提出利用网络拓扑特征改善软件系统的设计、开发和测试方法。这些结果对提高软件质量具有有益的启示和指导意义。  相似文献   

9.
基于局部相似性的复杂网络社区发现方法   总被引:8,自引:1,他引:7  
刘旭  易东云 《自动化学报》2011,37(12):1520-1529
复杂网络是复杂系统的典型表现形式, 社区结构是复杂网络最重要的结构特征之一. 针对复杂网络的社区结构发现问题, 本文提出一种新的局部相似性度量, 并结合层次聚类算法用于社区结构发现. 相对全局的相似性度量, 本文提出的相似性度量具有较低的计算开销; 同时又能很好地刻画网络的结构特征, 克服了传统局部相似性度量在某些情形下对节点相似性的低估倾向. 为了将局部相似性度量用于社区结构发现, 推广了传统的Ward层次聚类算法, 使之适用于具有相似性度量的任意对象, 并将其用于复杂网络社区结构发现. 在合成和真实世界的网络上进行了实验, 并与典型算法进行了比较, 实验结果表明所提算法的可行性和有效性.  相似文献   

10.
Component Specifications for Robotics Integration   总被引:1,自引:1,他引:0  
Robotics researchers have been unable to capitalize easily on existing software components to speed up their development efforts and maximize their system's capabilities. A component-based approach for building the software for robotics systems can provide reuse and sharing abilities to the research community. The software engineering community has been studying reuse techniques for three decades. We present several results from those efforts that are applicable to the robotics software integration problem. We describe how to specify a software component so that a potential user may understand its capabilities and facilitate its application to his or her system. At the National Institute of Standards and Technology, we have developed a three-stage, component-specification approach. We illustrate this approach for a component that is relevant to robotics.  相似文献   

11.
This article proposes a framework for community discovery in temporal multiplex networks by extending the evolutionary clustering approach to encompass both time and multiple dimensions. In this extended framework, the problem of finding community structures for time‐evolving networks with multiple types of ties is reformulated by adding the concept of dimensional smoothness, relative to a single timestamp, to that of temporal smoothness, at the base of evolutionary clustering. At each timestamp, the method tries to maximize the quality of the clustering obtained for the current multidimensional network and to minimize the differences with respect to that obtained at the previous timestamp. Moreover, the evolution of a community between two consecutive timestamps is maintained by exploiting the Hungarian approach, which determines the best cluster correspondence between two consecutive timestamps. Experiments on synthetic and real‐world networks show the capability of the approach in discovering and tracking group organization of actors constituting the network.  相似文献   

12.
文中在研究了现有社区发现算法的基础上,提出了一种简单的加权网络中社区发现方法。文中基于社区结构最为普遍的性质,受社会网络中真实社区结构和并行计算的任务划分规则的启发,提出了基于核心边的加权网络中社区发现方法。该方法首先依据网络中边的权值寻找核心边;然后依据相似性度量,发现网络中的一个初始社区;最后通过隶属度度量,将发现的初始社区逐步扩展成网络中的社区结构。该方法在进行社区结构发现的过程中,仅仅依赖节点所处位置的局部信息,可以在对网络进行广度优先遍历的过程中完成社区发现工作。因此该方法具有较低的计算复杂度,可以适用于大规模网络中的社区发现。通过有效性实验和效率实验,表明该方法可以有效发现大规模网络中的社区结构。  相似文献   

13.
通过在软件体系结构层次实施软件重构,能够改善软件的质量、提高软件的易演化性。提出了基于演化信息实施软件体系结构重构的策略,通过分析体系结构的演化历史,采用概念格的方法分析其中构件间的演化依赖关系,从而达到改善体系结构质量的目的。  相似文献   

14.
Extract method is one of the most popular software refactorings. However, little work has been done to investigate or validate the major motivations for such refactorings. Digging into this issue might help researchers to improve tool support for extract method refactorings, e.g., proposing better tools to recommend refactoring opportunities, and to select fragments to be extracted. To this end, we conducted an interview with 25 developers, and our results suggest that current reuse, decomposition of long methods, clone resolution, and future reuse are the major motivations for extract method refactorings.We also validated the results by analyzing the refactoring history of seven open-source applications. Analysis results suggest that current reuse was the primary motivation for 56% of extract method refactorings, decomposition of methods was the primary motivation for 28% of extract method refactorings, and clone resolution was the primary motivation for 16% of extract method refactorings. These findings might suggest that recommending extract method opportunities by analyzing only the inner structure (e.g., complexity and length) of methods alone would miss many extract method opportunities. These findings also suggest that extract method refactorings are often driven by current and immediate reuse. Consequently, how to recognize or predict reuse requirements timely during software evolution may play a key role in the recommendation and automation of extract method refactorings. We also investigated the likelihood for the extracted methods to be reused in future, and our results suggest that such methods have a small chance Received April 2, 2015; accepted November 10, 2015 E-mail: Liuhui08@bit.edu.cn (12%) to be reused in future unless the extracted fragment could be reused immediately in software evolution and extracting such a fragment can resolve existing clones at the same time.  相似文献   

15.
Many natural structures can be naturally represented by complex networks. Discovering network motifs, which are overrepresented patterns of inter-connections, is a computationally hard task related to graph isomorphism. Sequential methods are hindered by an exponential execution time growth when we increase the size of motifs and networks. In this article we study the opportunities for parallelism in existing methods and propose new parallel strategies that adapt and extend one of the most efficient serial methods known from the Fanmod tool. We propose both a master–worker strategy and one with distributed control, in which we employ a randomized receiver initiated methodology capable of providing dynamic load balancing during the whole computation process. Our strategies are capable of dealing both with exact and approximate network motif discovery. We implement and apply our algorithms to a set of representative networks and examine their scalability up to 128 processing cores. We obtain almost linear speedups, showcasing the efficiency of our proposed approach and are able to reach motif sizes that were not previously achievable using conventional serial algorithms.  相似文献   

16.
深度神经网络已经在自动驾驶和智能医疗等领域取得了广泛的应用.与传统软件一样,深度神经网络也不可避免地包含缺陷,如果做出错误决定,可能会造成严重后果.因此,深度神经网络的质量保障受到了广泛关注.然而,深度神经网络与传统软件存在较大差异,传统软件质量保障方法无法直接应用于深度神经网络,需要设计有针对性的质量保障方法.软件缺陷定位是保障软件质量的重要方法之一,基于频谱的缺陷定位方法在传统软件的缺陷定位中取得了很好的效果,但无法直接应用于深度神经网络.在传统软件缺陷定位方法的基础上提出了一种基于频谱的深度神经网络缺陷定位方法 Deep-SBFL.该方法首先通过收集深度神经网络的神经元输出信息和预测结果作为频谱信息;然后将频谱信息进行处理作为贡献信息,以用于量化神经元对预测结果所做的贡献;最后提出了针对深度神经网络缺陷定位的怀疑度公式,基于贡献信息计算深度神经网络中神经元的怀疑度并进行排序,以找出最有可能存在缺陷的神经元.为验证该方法的有效性,以EInspect@n (结果排序列表前n个位置内成功定位的缺陷数)和EXAM (在找到缺陷元素之前必须检查元素的百分比)作为评测指...  相似文献   

17.
复杂网络与网络化软件系统   总被引:1,自引:0,他引:1  
复杂网络理论是对复杂系统的高度抽象,实证研究发现网络化复杂软件系统的拓扑结构具有复杂网络的特征.复杂网络理论的最新研究成果,为网络化复杂软件系统的开发提供了新的数学基础.提出一种基于复杂网络的网络化软件工程,探讨了复杂网络理论在网络化复杂软件系统的建模、测试和度量中的应用.  相似文献   

18.
RFID测试技术的发展对RFID技术的成熟和广泛应用具有重要的理论意义和实用价值;RFID调制制式测试(识别)则是RFID测试技术重要研究内容之一;文中提出了一种新的基于软件无线电的RFID调制方式测试方法;`在软件无线电的基础上,采用4个特征参数,用BP神经网络实现对2ASK、4ASK、2FSK、4FSK和BPSK等RFID系统典型调制方式进行识别;讨论了方案设计,给出了仿真实验结果;仿真结果表明该方法具有较好的准确性和稳健性。  相似文献   

19.
20.
The study of emerged community structure is an important challenge in networks analysis. In fact, several methods have been proposed in the literature to statistically determine the significance of discovered structures. Nevertheless, most of existing analysis models consider only the structural aspect of emerged communities. We are interested in studying the robustness of emerged communities in peer-to-peer (P2P) networks. More precisely, we consider the emerged communities in the induced graph by all the exchanges in these networks. Hence, rather than examining the robustness only on the structural properties of the graph, we will focus on the parameters that allow the emergence of community structures. In fact, perturbing these parameters might destroy most of the obtained properties at the emerged level. To the best of our knowledge, robustness of networks has never been considered from this angle before. In this paper, we study the impact of perturbing the content and the profile of nodes on the emerged communities in P2P networks. We show how these alterations affect both structure and information supported by the emerged structures.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号