一种基于类层次图的分析面向对象程序的框架

一种基于类层次图的分析面向对象程序的框架

ID:5318619

大小:242.27 KB

页数:7页

时间:2017-12-08

一种基于类层次图的分析面向对象程序的框架_第1页
一种基于类层次图的分析面向对象程序的框架_第2页
一种基于类层次图的分析面向对象程序的框架_第3页
一种基于类层次图的分析面向对象程序的框架_第4页
一种基于类层次图的分析面向对象程序的框架_第5页
资源描述:

《一种基于类层次图的分析面向对象程序的框架》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ISSNIO00—9825Journa]ofSoftware软件学报2000,11(5):694-7006l]0o.q一种基于类层次图的分析面向对象程序的框架李信粱佳张翔樊晓聪郝国粱弋flI(南京大学计算机软件新技术国家重点实验室南京210093)(南京大学}f算机科学与技术系南京210093)Emai[:zhengg[@nju.edu.cn摘要从类层斑囤CHG(classhierarchygraph)出发,提出一十基于CHG的分析面向对象程序的框架OOAF(object—orientedanalyzingframewo

2、rk),讨论丁OOAF的功能、算法和设计思想,培出了子对象识剐以及可见方法、主导方法的确定算法,建立了可见方法妻层斑目;并且通过计算方法的摧承集、盘写集以厦对方法盘写边界的确定.生成程序的虚函敷调用圈,从而为理解面向对象程序中的虚函敷调用问题提供了一种可行的解击方案关t词毫墨查里,鱼堕璺,分析框架,子对象识,方法确定,虐墨墼翊』n中圈法分类号TP豇{。oA’。、I、\。与分析结构化程序相比,分析面向对象的程序要显得困难得多.究其原因,我们认为主要有下几点:(1/面向对象程序设计鼓励代码分解和细化程序设计,结果是不仅过程体

3、越来越小,而且过程词用越来越频繁:(2)由于使用了动态定连机制,教调用的过程依赖接收方的动态类型,所直到运行时才能确定该调用哪一个过程,从而导致分析调用问题特别困难;(3)面向对象程序设计允许继承机制,一个对象可能属于由许多类构成的一串类,这就使得对象的行为难以控制,特别是多继承机制的使用使得类层次结构以及娄之间的黄系更加复杂;(4)由于予类型、重载(多态性)机制的使用,导致在某个程序点,我们很难确定一个指针指向的对象在程序运行过程中的类型一~.本文提出一个基于类层次图CHG(crasshierarchygraph/的分

4、析面向对象程序的框架⋯OOAF(object—orientedana[yzingframework).OOAF目前具有下几个功能:(1)利用路径等价(类)技术识别子对象;(2)利用子对象(路径)进行可见方法和主导方法的确定F(3)结台确定的可见方法和类层次图建立可见方法类层次图vM—CHG(visibtemethodcrasshierarchygraph);(4)在VM—CHG的基础上计算继承集和改写集,确定菜个方法的改写边界:(j)构造虚函数词用图VFcG(vhtua【functioncallgraph),以解决虚函数

5、调用的模型化问题.车文第1节介绍文中将要用到的两个基本概念.第2节详细介绍()OAF功能的宴现原理和实现算法.第3节概述OOAF框架的结构思想.第4节给出与相关工作的比较,并给出文中工作的总结和夸后的研究内容.1基本概念和术语我们可以用一个直接无环图来模型化一个C++/Java程序的娄层次,这个直接无环圉就是类层次图(CHG),娄层改图的结点表示类,边表示继承关系.类层次图的严格定义如下:定义1(类层次圉).令Ⅳ表示c+十程序中类的集台,Ev表示类与它的直接虚基类构成的有序对(,·本文研究得到江苏省应用基础基金(No.B

6、J970361资助.作者李必t111969年生博士生t主要研究领域为面向对象技术厦其支持环境程序理解集佳,女.1974年生,硬士生,主要研究额域为款件工程.面向对象技木.张爵翔1975年生,硕士生t主要研究顿域为软件工程,面向对象技术.羹晓聪,1972年生,博士,主要研究领域为款件Agent理论,人工智能.郑国粱,1937年生,教授,博士生导师.主要研究领域为款件工程.本文通讯睚系^;事必信,南京210093,南京大学计算机科学与技术系本文1999O卜19收弼原稿,19990616收到修改稿李曲信等:一种基于妻层次图的分

7、析面向对象程序的框架695y)的集合,Env表示娄y与它的直接非虚基类x掏成的有序对(x,y)的集合,我们把,Env中的元素分别韩为虚边和非虚边.令—EvUEnv.我们使用记号x—y表示中的元素(x.y),剐类层次图(记为CHG)就是十二元组G一(,).如罔l(b)所示.CHG中每个结点旁边标的是在该结点中定义的方法,并且我们把在某个结点中所定义的方法集台记为[].例如,:一{如。}.H0,A..,1∈Ne.,∈E,其中目=(AH,A,)是关联A一,.的边.定义2(路径).给定类层次图G一(,E),则交替序列A0+】A+

8、一2..一A。A就称为连接A.到一的一条路径,记为⋯.A.其中A和山分别称~作路径的起点和终点,边的数目称为路径的长度.例如,图1(a中c+一程序的CHG如图Icb)所示,CHG图中从结点^到结点H的路径有ABDFH,ABDL;H,啦DFH,ACDL;H.一缀(一条路径既是它自己的前缀卫是它自己的AC十-c+prog

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。