[发明专利]针对面向对象程序设计语言源代码的软件可视化方法无效
申请号: | 201010266831.5 | 申请日: | 2010-08-30 |
公开(公告)号: | CN102385505A | 公开(公告)日: | 2012-03-21 |
发明(设计)人: | 胡昌振;王国强;王崑声;王志刚;胡鹤;洪孝金 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 付雷杰 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 面向 对象 程序设计语言 源代码 软件 可视化 方法 | ||
技术领域
本发明涉及一种针对面向对象程序设计语言(Object-Oriented Programming Language,OOPL)源代码的软件可视化方法,属于软件可视化技术领域。
背景技术
基于程序源代码获得软件的高级设计抽象的方法,最原始和直接的解决方案就是程序员通过阅读源代码,经过一系列脑力分析,最终用一些高度抽象的图形或者文字表达来阐述一个软件的内部结构和实现逻辑。
软件可视化通常采用软件自动化方式将软件系统的各种属性(包括关键字、类间关系等)或者各种属性的相关统计信息,通过静态或者动态的2D或3D的图形加以概括表示,从而展示软件系统的内部结构,软件的演化信息,和软件的行为特性,实现对源码的自动分析和抽象,产生能反映软件内部结构或者其他度量信息的高度概括的图形表示。通过对软件系统进行可视化可以获得软件的高级抽象,便于快速获得软件设计层次上的理解。
软件可视化的意义在于:①通过对软件进行可视化获得对软件系统设计层次上的抽象,便于系统的维护、巩固、移植和改进,为软件系统尤其是遗产系统的重构、再工程以及设计的恢复提供有力的帮助;②随着开源社区的发展和完善,开源系统尤其是基于Java代码的开源系统种类日臻完善和丰富,且代码量也在飞速增加,但其文档化往往又严重滞后甚至缺乏,所以软件可视化的作用也变的尤为重要。
类图是一种展现软件系统结构的可视化方式。
类图所表示的类间的关系包括:泛化,依赖,关联,聚合,组合,实现。其对应的代码特征如表1所示:
表1类图关系对应的代码特征
由表可以看出:关联关系、聚合关系和组合关系在语法上是没办法区分的,只有从语义上才能区分,除此以外,将类图用作软件源码逆向可视化,其缺点有:
①因为类图主要应用于正向开发中,当其应用于软件源码可视化这样的逆向过程中时,类图中的一些语义相关的关系很难得到正确的表达;
②在现有的一些自动化测试软件中或者某些IDE集成开发工具中提供了由源码到类图的实现,但是由其得到的类图往往由多个连通子图构成,且类图的布局方式有很大的随意性,所以表达不够简洁,清晰,不具有统一性,不利于用户快速了解软件的结构体系。
③类图只能表示软件系统中各个类之间的某些特定关系,对软件系统结构的表示也是通过这些关系体现的,所以在表示系统结构时也局限在了类及类关系层面,对某个具体类在系统中所扮演的角色、所起的作用的表述也具有同样的局限性。
因此类图不适用于软件可视化。
发明内容
本发明的目的是为了克服已有技术中存在的不足,提出一种针对面向对象程序设计语言源代码的软件可视化方法。
本发明的目的是通过以下技术方案实现的。
一种针对面向对象程序设计语言源代码的软件可视化方法,具体为:
步骤一、从源代码中提取关键信息。
从待处理的面向对象程序设计语言源代码中提取关键信息。所述关键信息包括:类所在的包、类名、父类、继承方式、类的类型、类的修饰符、类所包含的嵌套类、类属性的类型、类属性的修饰符、类构造函数参数、类方法的名字、类方法的参数、类方法的返回值类型以及类方法的修饰符。
所述继承方式包括一般继承(extends)和接口实现(implements)两种继承方式;
所述类的类型包括抽象类型、接口类型、普通类型和不确定类型。
步骤二、获取原始图数据信息。
将步骤一得到的关键信息按照表2所示的图的属性、表3所示的边的属性、表4所示的节点的属性的数据结构进行存储,即可到一个仅包含节点名称和边名称的原始图数据信息。
表2存储关键信息的数据结构设计表1-图的属性
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010266831.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种丙烯酸树脂-聚氨酯树脂保温涂料
- 下一篇:潜水飞机机翼变换机构