论文部分内容阅读
随着软件产业的发展,我们面临的遗产软件不仅在数量上日益增多,而且在比例上也逐渐上升,能否很好地利用这笔财富,将在很大程度上影响软件业的生产率.因此,近几年来,遗产软件再工程已经发展为软件工程方法学的一个重要的研究领域.实践表明,软件再工程的过程中,程序理解是第一步,也是最关键的一步,目前,随着各种CASE工具的出现,程序理解方法也逐渐进入实用的阶段.本文在格理论的基础上提出了概念分析方法,该方法以反映一定逻辑关系的项目表作为切入点,抽取出成员和变量之间共有的信息,应用概念格生成算法得到概念格.与簇分析方法相比较,概念分析方法并不给出一个确定的方案,而是通过格来反映变量和类成员之间所有可能的关系.最终得到的概念格不仅具有最小性、最大分解性以及其他一些重要的语法特性,而且可以帮助理解程序,通过应用程序对类层次结构的使用可以发现类层次结构的设计问题,比如存在没有使用的冗余类成员,或者类分割问题等,从而为再工程的类库重设计提供一些参考.在该理论的基础上,本文讨论了概念格分析工具CLAT的实现,工具包括四个部分:信息抽取、信息管理、信息显示以及类库重设计部分.目前已经基本完成了信息抽取部分的代码编写工作,对一个Visual C++工程,能分析工程中包含的文件、各文件之间的引用关系、系统中的类信息、以及各个类成员之间的使用关系等.从结构体系的角度看,该系统不仅具有一定的语言透明性,可以适用于不同的面向对象语言,而且证明了概念分析方法在遗产软件再工程中的可行性和实用价值.