摘要
提出一种基于软件调用结构分析的软件系统可生存性评估方法。该方法首先采用静态词法分析技术和基于面向方面编程的动态监控技术,分析软件组件间的调用关系,建立软件系统的调用网络;通过移除部分组件以模拟组件的失效,将选定组件所对应的节点及相关的边从调用网络中移除,生成残余组件调用网络。提出了可生存系数,即残余组件最大联通子图占原调用网络图的比例。实验中选取8个开源软件项目和Struts的20个版本的可生存性指标进行评估,其结果与人们对软件升级的感性认识相同:在软件在升级中,为了解决各种缺陷和实现部分新增功能,软件结构可生存性不断下降;每次发布的新版本由于重新设计系统架构,软件的质量会显著提升。
A new method was proposed to evaluate the survivability of the software system based on the calling structure of the software.Firstly,the interactions among the components of the software were obtained using the static lexical analysis technology and dynamic monitoring of the AOP(Aspect ORIENTED PROGRAmming).The calling network was constructed to model the calling structure of the software.Secondly,a component failure simulation method was proposed by removing the nodes and edges corresponding to the selected components from the calling network.The residual calling network was considered as the software calling structure when the components are disabled.Then,the survivability coefficient was presented to measure the survivability of the software system,the proportion of the biggest connected subgraph of the residual network compared to the original call network diagram.In the experiments,nine open source software projects were selected to compare their survivability,and 20 versions of Struts(J2EE framework) were chosen to investigate the changes of the software survivability during their updating.Our evaluation concurs with the intuition that minor upgrades,aimed at fixing bugs and adding minor functionality quickly,reduce software survivability,whereas major upgrades,which normally clean up messy code and re-construct the software,improve software quality.
出处
《中南大学学报(自然科学版)》
EI
CAS
CSCD
北大核心
2013年第S1期443-448,共6页
Journal of Central South University:Science and Technology
基金
国家自然科学基金资助项目(91118005,91218301,61221063,61203174)
国家科技支撑计划项目(2011BAK08B02)
教育部博士点基金资助项目(20110201120010)
中央高校基本科研业务费专项资金资助项目(2011)
关键词
软件调用结构
复杂网络理论
软件可生存性
software call structure
complex network theory
software survivability