针对面向对象程序设计语言源代码的软件可视化方法

文档序号:6463889阅读:572来源:国知局
专利名称:针对面向对象程序设计语言源代码的软件可视化方法
技术领域
本发明涉及一种针对面向对象程序设计语言(Object-Oriented Programming Language, 00PL)源代码的软件可视化方法,属于软件可视化技术领域。
背景技术
基于程序源代码获得软件的高级设计抽象的方法,最原始和直接的解决方案就是程序员通过阅读源代码,经过一系列脑力分析,最终用一些高度抽象的图形或者文字表达来阐述一个软件的内部结构和实现逻辑。软件可视化通常采用软件自动化方式将软件系统的各种属性(包括关键字、类间关系等)或者各种属性的相关统计信息,通过静态或者动态的2D或3D的图形加以概括表示,从而展示软件系统的内部结构,软件的演化信息,和软件的行为特性,实现对源码的自动分析和抽象,产生能反映软件内部结构或者其他度量信息的高度概括的图形表示。通过对软件系统进行可视化可以获得软件的高级抽象,便于快速获得软件设计层次上的理解。软件可视化的意义在于①通过对软件进行可视化获得对软件系统设计层次上的抽象,便于系统的维护、巩固、移植和改进,为软件系统尤其是遗产系统的重构、再工程以及设计的恢复提供有力的帮助;②随着开源社区的发展和完善,开源系统尤其是基于Java代码的开源系统种类日臻完善和丰富,且代码量也在飞速增加,但其文档化往往又严重滞后甚至缺乏,所以软件可视化的作用也变的尤为重要。类图是一种展现软件系统结构的可视化方式。类图所表示的类间的关系包括泛化,依赖,关联,聚合,组合,实现。其对应的代码特征如表1所示表1类图关系对应的代码特征
权利要求
1. 一种针对面向对象程序设计语言源代码的软件可视化方法,其特征在于其具体操作步骤为步骤一、从源代码中提取关键信息;从待处理的面向对象程序设计语言源代码中提取关键信息;所述关键信息包括类所在的包、类名、父类、继承方式、类的类型、类的修饰符、类所包含的嵌套类、类属性的类型、 类属性的修饰符、类构造函数参数、类方法的名字、类方法的参数、类方法的返回值类型以及类方法的修饰符;所述继承方式包括一般继承和接口实现两种继承方式; 所述类的类型包括抽象类型、接口类型、普通类型和不确定类型; 步骤二、获取原始图数据信息;将步骤一得到的关键信息按照表2所示的图的属性、表3所示的边的属性、表4所示的节点的属性的数据结构进行存储,即可到一个仅包含节点名称和边名称的原始图数据信息;表2存储关键信息的数据结构设计表1-图的属性
2.如权利要求1所述的一种针对面向对象程序设计语言源代码的软件可视化方法,其特征在于步骤四中所述图像布局算法包括但不限于开源工具VCG中使用的深度优先布局算法。
3.如权利要求1或2所述的一种针对面向对象程序设计语言源代码的软件可视化方法,其特征在于优选的,步骤四中所述图像布局算法,具体为步骤4. 1 设定画布的左上角为坐标原点,设定原点垂直向下方向为Y轴的正方向;原点水平向右方向为X轴的正方向;步骤4.2 对步骤三得到的有向图进行深度搜索,得到其最大深度d、层序号i,每层所包含的节点集合Vi、集合Vi所包含的节点的个数Mimi以及所有节点的各自所在层数deep ; 其中,d,i均为正整数且1彡i彡d ;步骤4. 3 根据步骤4. 2得到的结果,获得每个节点边框的左上角的坐标; ①每个节点边框的左上角的纵坐标y的计算方法 设定H为画布的高度,根据公式1可得到有向图中每一层的高度差h h = (Η )/((1-1)(1)其中,h2和Ill分别为画布的上、下留白高度; 根据公式2可得到该节点的左上角的纵坐标y y = ^+(i-l) Xh(2)②每个节点边框的左上角的横坐标χ的计算方法 第a步将各层中的节点按照字母表升序排序;第b步通过公式3得到同一层中两个相邻节点的距离w,通过公式4得到第s层,第t 个节点的横坐标值X,其中,3彡s彡d,l彡t彡皿队且83均为正整数; w = (W-X1-X2)/(nums-l+2)(3)χ = x^tXw(4)其中,W为画布的宽度,X1, X2分别为第s层左右两边的留白; 步骤4. 4:对步骤三得到的有向图中的所有节点,根据每个节点上的文本的内容和样式,得到节点的边框长宽信息;步骤4. 5 根据步骤4. 3得到的每个节点边框的左上角的坐标及步骤4. 4得到的节点边框长宽信息得到与边框相关的线的开始点和结束点坐标。
全文摘要
本发明涉及一种针对面向对象程序设计语言源代码的软件可视化方法,属于软件可视化技术领域。本发明包括如下步骤①从源代码中提取关键信息;②获取原始图数据信息;③获取有向图数据信息;④设计图形布局;⑤进行可视化映射。本文提出了一种新的针对面向对象程序设计语言源代码的软件可视化方法,弥补了类图用于软件可视化中的不足,能够更准确直观的反应软件的内部结构和软件内类的地位和作用,便于使用者快速获得软件设计层次上的理解。
文档编号G06F9/44GK102385505SQ20101026683
公开日2012年3月21日 申请日期2010年8月30日 优先权日2010年8月30日
发明者洪孝金, 王国强, 王崑声, 王志刚, 胡昌振, 胡鹤 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1