运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统_第1页
运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统_第2页
运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统_第3页
运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统_第4页
运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统摘要案例简述达到目标案例背景成功要素与经验案例实践与结果展示失败经历与尝试案例ROI分析案例启示进一步的工作与打算运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统案例简述案例简述 采用自主研发的代码逆向模型自动化技术与工具,通过代码词法语法扫描分析,结构分析、模型格式化转换,中英文名字映射表构造,以及自然动作汉语语义描述的自动变换等步骤,将大型开源OpenCMS和十余个遗产软件系统的JAVA程序代码自动逆向变换为可视化类图和过程蓝图(程序蓝图)模型,将JAVA程序语句自动逆向变换为自然动作模式语言汉语描述自动构造分层抽象的程序蓝图

2、的视图模型,以直观图形和自然易懂的汉语分层揭示程序代码中隐含的模块结构、算法思想、及其设计与实现细节;降低阅读理解程序的复杂性和难度,提高学习和维护工作效率5倍以上。开源软件源代码程序蓝图可视自动化逆向工程类图过程蓝图中文代码其他源代码资源遗产系统源代码教学程序源代码项目开发源代码英文代码运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统b)达到目标达到目标自动扫描JAVA源码进行词法语法分析并变换为JAVA蓝图模型文件格式;采用三维程序蓝图(类图+过程蓝图)可视化表示类模块结构及其类方法的算法过程模型;运用程序变换工具自动生成概念和逻辑层动作语义的自然汉语描述;自动对程序蓝图模型的概念

3、、逻辑和实现三层视图进行分层抽象和可视化展示;通过中英文标识符名字映射技术,支持程序模型的中文本地化表示;运用文档生成工具批量自动生成项目程序蓝图模型文档;自动从程序蓝图模型正向生成程序的中英文框架代码和完整代码通过文本自动对比验证技术,保证模型与代码的一致性运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统谁-北京信息科技大学软件工程研究与开发中心案例背景北京信息科技大学是由原北京机械工业学院和北京信息工程学院(原北大二分校)合并组建,北京市重点支持建设的全日制普通高等学校。软件工程研究与开发中心是原电子部1983年批准成立的重点科研机构,曾担任多项“六五”至“九五”等国家重点科技攻关

4、项目,以及多项军用软件工程项目的研究与开发,起草多项国家标准,多项成果曾受国家和部委的表彰,为我国软件产业的发展做出重要贡献。与国家信息产业主管部门密切协作,以标准化和创新成果带动软件技术发展是中心长期以来形成和坚持的特色。中心的主要任务是以国家软件工程建设需求为导向,继续参与国家重大的软件工程课题和各类纵横向项目的研究与开发,为IT企业和高校师生提供软件工程新技术服务,带动教学和科研水平的提高,建设成为软件工程新技术的研发基地、“产学研用”一体化人才培养基地、科技成果转化、应用推广和产业化基地、知识创新基地。中心主要从事软件工程标准制定、模型驱动软件工程理论与方法的研究、程序代码模型可视自动

5、化逆向工程服务、软件工程项目开发,人才培养、技术培训、知识创新与出版等方面的工作。程序代码理解是学习开源软件和维护遗产系统的基础和前提。复杂程序代码阅读理解周期长,效率低、工作量投入大和成本高的老大难问题一直未能得到有效解决。大量开源软件和遗产系统的程序代码资源有学习理解和维护的实际需求和迫切需要。软件工程创新团队在软件可视自动化工程技术领域已持续开展近二十年的研究工作,先后有100多人参与研发,培养了30余名硕士生和50余名本科生,发表系列专题研究论文60余篇(其中核心期刊论文30余篇,EI检索论文10余篇),在科学出版社出版理论性学术专著1部,原创编程思维导向图(抽象概念结构图)、JAVA

6、蓝图、C+蓝图等过程蓝图建模语言及其模型驱动程序理论与方法,在正向工程、逆向工程、模型重构、算法模式、再工程等技术方向取得创新性理论研究成果。提出自然动作模式语言及其语言驱动程序技术,在自然动作模式语言与编程语言间的双向转换技术方面找到快速实用的模式匹配自动转换方法,研制系列模型驱动软件工具与环境,开发语言驱动程序自动变换系统,在蓝图模型和自然动作模式语言的自动变换关键技术方面获得突破性进展。经过大量测试与案例试验,并在大型OpenCMS、Sweet Home3D、violet等多个开源软件的学习和十余个遗产软件系统的维护工作中得到成功应用,显著提高软件开发与维护效率。不断将最新原创科研成果引

7、入课堂,近十年来先后为汕头大学、北信科大和北航的2000余名本科和研究生新开“模型驱动程序设计方法学”、“模型驱动开发”等8门前沿特色课程,程序蓝图开发工具在教学中得到持续测试与应用,不断得以改进和完善。哪来的创新团队多年潜心研究与开发的原创成果怎么做到的成功要素与经验分享 程序代码向蓝图模型成功转换的关键是需要有一个可靠稳定和功能全面的词法语法分析扫描器 分析类间关系是类图建立的技术难点和关键 信息过滤和抽象技术是实现分层抽象程序视图模型的基本方法 程序蓝图模型、动作模式语言与变换规则的严格形式化定义是实现自动化处理和变换的基础和前提条件 构造中英文标识符名字映射对照表是支持中文化模型界面和

8、实现中英文表示双向映射的基本条件,对照表的规模与模型中文化支持率成正比,中英文名字命名质量对程序的可理解性有重要影响 从逆向模型自动重新生成程序代码的正向转换技术和代码文本自动对比验证技术是保证逆向模型与代码一致性的有效方法 案例实践与结果展示案例1-大型开源软件OpenCMS程序蓝图模型可视自动化逆向工程OpenCms是一个基于JAVA EE平台的开源内容管理系统,由德国的Alkacon Software公司负责开发和维护,可以非常平稳的运行在各种开源(Linux、Apache、Tomcat、MySQL等)和商业环境(Windows、BEA Weblogic、Oricle等)中OpenCms

9、是一个完全免费的开源软件,使用它不需要支付任何许可费用,利用它可以非常容易的创建、维护和管理复杂的大型网站OpenCms是具有企业级软件品质的开源软件,全球各地均有专业公司提供技术服务支持OpenCms是一个大型开源软件,V核心版源代码拥有56643个标识符,18552个方法,1508个类和111个包,源码包规模21.5M实践 1.1-OpenCMS的功能概要模型-CIM 实践 1.2- OpenCMS的org.opencms.db.mysql包源代码逆向可视自动化产生的实现类图模型-PSM实践 1.3- OpenCMS的org.opencms.db.mysql包源代码逆向可视自

10、动化产生的逻辑类图模型-PSM实践 1.4-OpenCMS的org.opencms.db.mysql包源代码逆向可视自动化产生的概念类图-PIM实践 1.5-三层抽象类图逆向变换过程文本自动对比验证自动生成自动生成词法语法分析从类图模型重新生成的类中文框架代码概念层-PIM逻辑层-PSM实现层PSM框架信息提取模型格式变换标识符变换信息过滤信息抽取格式转换属性方法逆向映射变换类图自动生成从类图模型重新生成的类英文框架代码从类图模型重新生成的类中文框架代类图三层抽象视图CmsSubscriptionDriver类源代码实践 1.6- CmsSubscriptionDriver类markResou

11、rceAsVisitedBy方法源代码逆向可视自动化产生的编程实现图(抽象实现结构图)实践 1.7- CmsSubscriptionDriver类markResourceAsVisitedBy方法源代码逆向可视自动化产生的编程逻辑图(抽象逻辑结构图)实践 1.8- CmsSubscriptionDriver类markResourceAsVisitedBy方法源代码逆向可视自动化产生的编程概念图(编程思维导向图、抽象概念结构图)实践 1.9- CmsSubscriptionDriver类markResourceAsVisitedBy方法源代码逆向可视自动化产生的过程蓝图三维模型(编程思维导图+J

12、AVA蓝图)文本自动对比验证自动生成自动生成词法语法分析从类图模型重新生成的类中文框架代码概念层-PIM逻辑层-PSM实现层PSM过程蓝图结点描述变换格式变换标识符变换结点语义抽象控制结构抽象实践 1.10-过程蓝图三层抽象视图逆向变换过程重新生成的类方法英文代码重新生成的类方法中文代码过程蓝图三层抽象视图markResourceAsVisitedBy方法的源码自动生成实践 1.11- 从CmsSubscriptionDriver类的实现类图重新正向自动生成的中文框架代码实践 1.12- 从CmsSubscriptionDriver类的实现类图重新正向自动生成的英文框架代码实践 1.13- C

13、msSubscriptionDriver类markResourceAsVisitedBy方法的抽象实现结构图重新正向自动生成的中文方法代码实践 1.14- CmsSubscriptionDriver类markResourceAsVisitedBy方法的抽象实现结构图重新正向自动生成的英文方法代码实践 1.15-实例演示案例实践与结果展示案例2- SweetHome 3D实例演示SweetHome 3D是一款免费的家装辅助设计软件。它能帮您通过二维的家居平面图来设计和布置您的家具,还可以用三维的视角浏览整个装修布局的全貌可以在官方网站 http:/ 它主要面向一些正在搬迁或者想重新设计现有居室,

14、同时又希望能够尽快完成室内设计的人。多样化的可视向导能够帮助您绘制家居平面图和布置家具。您可以在已有的平面图上绘制墙体,然后把家具从目录中拖拽到平面图上。每一次在二维平面图上的操作都能同步更新到三维视图上,这样您就可以看见一个真实的立体布局。SweetHome 3D是一个大型开源软件,最新V4.1版源代码拥有14512个标识符,3610个方法,194个类和9个包,源码包规模23.6M案例实践与结果展示案例2- SweetHome 3D实例演示案例实践与结果展示案例3-全中文模型界面支持案例演示And失败经历与尝试在动作语义的自然语言描述与编程语言的动作表达式之间的自动化变换方面,曾采用自然语言

15、的分词和语义理解的传统处理方法,速度慢,效果不佳,成为关键技术瓶颈;近年来,尝试基于形式语言的模式匹配与变换的自动处理方法获得成功,通过自动机将编程语言的动作表达式自动变换为自然动作模式语言的受限自然语言描述,高效快速,稳定可靠,在解决关键技术瓶颈问题上取得重要进展与突破。案例ROI分析(1)阅读理解遗产系统代码和学习开源软件编程技术的效率提高5-10倍,将使维护和学习周期缩短,人力成本下降;(2)自动变换得到的三维程序蓝图模型容易阅读和理解。蓝图模型将作为公司负资产的遗产程序代码(代码越多,花费越多)转变为正资产(模型越多,花费越少),三维的程序蓝图模型及变换将取代二维的代码和传统文档成为公

16、司的核心资产;(3)代码与模型的双向可视自动化变换技术和代码文本自动对比验证技术,可及时维护模型与代码的一致性,保证模型不会过时和它具有的智能资产价值;(4)对中小规模的企业和直接编码的项目,可在代码开发完成后进行代码模型可视自动化逆向工程,自动快速生成项目的模型文档,减少60-80%的程序核心文档书写工作,使项目开发敏捷化;(5)从代码逆向自动创建的可视化程序蓝图模型具有直观和容易理解的特性,这将有效降低项目关键人员变动的风险并有利于控制人员费用的增加。(6)模型到代码的正向自动变换技术提供模型自动转换和代码自动生成的功能,减少4/5以上的编码工作量;另外,可视化蓝图建模语言和本地化动作模式

17、语言取代传统编程语言作为开发语言工件,简单易懂,直观自然,显著提高开发工作效率,并改进软件的可维护性。案例启示-程序蓝图可视自动化逆向工程过程开源软件代码遗产系统代码教学程序代码项目开发代码其他代码资源程序蓝图可视自动化逆向变换程序蓝图文档与代码自动生成中文程序代码英文程序代码文本自动对比验证类图模型过程蓝图模型蓝图模型制品案例启示-类图三层抽象视图逆向变换过程类源代码从类图模型重新生成的类英文框架代码从类图模型重新生成的类中文框架代码文本自动对比验证自动生成自动生成词法语法分析从类图模型重新生成的类中文框架代码概念层-PIM逻辑层-PSM框架信息提取模型格式变换标识符变换信息过滤信息抽取格式

18、转换属性方法逆向映射变换概念类图逻辑类图实现类图类图类图三层视图模型自动生成实现层PSM案例启示-过程蓝图三层抽象视图逆向变换过程方法源代码重新生成的类方法英文代码重新生成的类方法中文代码文本自动对比验证自动生成自动生成词法语法分析从类图模型重新生成的类中文框架代码概念层-PIM逻辑层-PSM实现层PSM抽象概念结构图(编程思维导向图)抽象逻辑结构图抽象实现结构图过程蓝图结点描述变换格式变换标识符变换结点语义抽象控制结构抽象过程蓝图三层视图自动生成案例启示-程序蓝图可视自动化再工程过程开源软件代码遗产系统代码教学程序代码项目开发代码其他代码资源程序蓝图模型可视自动化逆向工程逆向程序蓝图程序蓝图模型可视自动化正向工程再工程中文程序代码文本自动对比

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论