摘要
现有的软件复杂网络建模方法,对模型的定义各不相同,缺少统一的框架,导致不同编程语言、不同粒度的软件模型分析对比困难。针对软件的静态结构,分析对比了现有建模方法的特点,提出了软件依赖网络建模方法,将软件系统抽象为计算服务提供者以及它们之间的依赖关系,实现了不同粒度下网络模型的直观映射;通过对Java软件依赖网络的实例分析,证明其具有小世界、高聚类系数的特性,入度基本服从幂率分布,出度基本服从带指数截断的幂率分布,并指出这些网络特性的软件工程含义,探讨了它们对软件开发和维护的指导意义。
In previous study of software complex network modeling, the lack of unified definition of model makes it difficult to compare between software networks from different program languages or abstraction levels. Analyzed the current methods and proposed software dependency network method. In this method, software system is abstracted as service providers and dependencies between them. Mapping can be easily achieved between networks from different abstract levels. Following the method, study average degree, degree distribution, average distance and clustering coefficient of several Java software packages. It is approved that software dependency networks display small world, high clustering coefficient. In-degree follows power law and out-degree follows power law with exponent cutoff. The underlying principles and guidance to software development and maintenance are also discussed.
出处
《计算机科学》
CSCD
北大核心
2008年第11期239-243,共5页
Computer Science
基金
国家自然科学基金项目“软件适应性预测模型的研究”(60773155)的资助
关键词
软件工程
复杂网络
软件维护
Software engineering, Complex networks, Software maintenance