电子学报 ›› 2015, Vol. 43 ›› Issue (10): 2062-2068.DOI: 10.3969/j.issn.0372-2112.2015.10.027

• 学术论文 • 上一篇    下一篇

基于UIO序列的类重要性度量

姜淑娟1, 鞠小林1,2, 王兴亚1, 李海洋1, 张艳梅1, 刘颖祺1   

  1. 1. 中国矿业大学计算机科学与技术学院, 江苏徐州 221116;
    2. 南通大学计算机科学与技术学院, 江苏南通 226019
  • 收稿日期:2014-03-03 修回日期:2014-04-14 出版日期:2015-10-25 发布日期:2015-10-25
  • 通讯作者: 姜淑娟
  • 作者简介:鞠小林 男,1976年出生,江苏南通人,南通大学计算机科学与技术学院讲师,中国矿业大学计算机科学与技术学院博士研究生,主要研究领域为软件分析与测试.E-mail:ju.xl@ntu.edu.cn
  • 基金资助:

    国家自然科学基金(No.61202006,No.60970032);江苏省333工程;江苏省高校自然科学研究(No.12KJB520014);江苏省研究生创新工程(No.CXZZ12_0935);南通市应用研究计划(No.BK2012023)

Measuring the Importance of Classes Using UIO Sequence

JIANG Shu-juan1, JU Xiao-lin1,2, WANG Xing-ya1, LI Hai-yang1, ZHANG Ya-mei1, LIU Ying-qi1   

  1. 1. School of Computer Science and Technology, China University of Mining and Technology, Xuzhou, Jiangsu 221116, China;
    2. School of Computer Science and Technology, Nantong University, Nantong, Jiangsu 226019, China
  • Received:2014-03-03 Revised:2014-04-14 Online:2015-10-25 Published:2015-10-25

摘要:

程序理解是测试和维护大规模面向对象程序的关键,选择程序的关键类优先开展分析是理解程序结构的一个有效的方法.为支持自动识别软件系统中的关键类,本文提出了一种基于UIO序列的类重要性度量方法.首先将软件系统抽象为一个以类为转换的有限自动机模型,随后求解该自动机的UIO序列,将该序列集合转化为状态转换树.通过递归计算状态转换树的节点复杂度求得类重要度.并在考虑异常传播的基础上改进了算法.最后通过实验验证了算法的有效性.

关键词: 关键类, 有限状态机, UIO序列, 程序理解

Abstract:

Program comprehension is the key to provide insight into large scale object-oriented programs in the testing and maintenance activities.It's a reasonable way to select and start with the key classes.To identify the key classes in a system automatically, we propose a technique to measure the importance of each class based on Unique Input/Output sequence.Firstly, we abstract the software system as a finite state machine model, and then we compute the Unique Input/Output sequence of the finite state machine and converse the Unique Input/Output sequence to a state transform tree by a proposed algorithm.Finally, we traverse the state transform tree to calculate the importance of the classes.The case studies show the effectiveness of our technique.

Key words: key classes, finite state machine, UIO sequence, program comprehension

中图分类号: