您好,欢迎访问三七文档
揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统刘建宾博士、教授软件工程创新团队带头人,学科负责人、系主任北京信息科技大学软件工程研究与开发中心揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!摘要•案例简述•达到目标•案例背景•成功要素与经验•案例实践与结果展示•失败经历与尝试•案例ROI分析•案例启示•进一步的工作与打算揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统a)案例简述•采用自主研发的代码逆向模型自动化技术与工具,通过代码词法语法扫描分析,结构分析、模型格式化转换,中英文名字映射表构造,以及自然动作汉语语义描述的自动变换等步骤,将大型开源OpenCMS和十余个遗产软件系统的JAVA程序代码自动逆向变换为可视化类图和过程蓝图(程序蓝图)模型,将JAVA程序语句自动逆向变换为自然动作模式语言汉语描述•自动构造分层抽象的程序蓝图的视图模型,以直观图形和自然易懂的汉语分层揭示程序代码中隐含的模块结构、算法思想、及其设计与实现细节;•降低阅读理解程序的复杂性和难度,提高学习和维护工作效率5倍以上。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!开源软件源代码程序蓝图可视自动化逆向工程类图过程蓝图中文代码其他源代码资源遗产系统源代码教学程序源代码项目开发源代码英文代码运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!b)达到目标•自动扫描JAVA源码进行词法语法分析并变换为JAVA蓝图模型文件格式;•采用三维程序蓝图(类图+过程蓝图)可视化表示类模块结构及其类方法的算法过程模型;•运用程序变换工具自动生成概念和逻辑层动作语义的自然汉语描述;•自动对程序蓝图模型的概念、逻辑和实现三层视图进行分层抽象和可视化展示;•通过中英文标识符名字映射技术,支持程序模型的中文本地化表示;•运用文档生成工具批量自动生成项目程序蓝图模型文档;•自动从程序蓝图模型正向生成程序的中英文框架代码和完整代码•通过文本自动对比验证技术,保证模型与代码的一致性运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!谁-北京信息科技大学软件工程研究与开发中心a)案例背景•北京信息科技大学是由原北京机械工业学院和北京信息工程学院(原北大二分校)合并组建,北京市重点支持建设的全日制普通高等学校。•软件工程研究与开发中心是原电子部1983年批准成立的重点科研机构,曾担任多项“六五”至“九五”等国家重点科技攻关项目,以及多项军用软件工程项目的研究与开发,起草多项国家标准,多项成果曾受国家和部委的表彰,为我国软件产业的发展做出重要贡献。•与国家信息产业主管部门密切协作,以标准化和创新成果带动软件技术发展是中心长期以来形成和坚持的特色。•中心的主要任务是以国家软件工程建设需求为导向,继续参与国家重大的软件工程课题和各类纵横向项目的研究与开发,为IT企业和高校师生提供软件工程新技术服务,带动教学和科研水平的提高,建设成为软件工程新技术的研发基地、“产学研用”一体化人才培养基地、科技成果转化、应用推广和产业化基地、知识创新基地。•中心主要从事软件工程标准制定、模型驱动软件工程理论与方法的研究、程序代码模型可视自动化逆向工程服务、软件工程项目开发,人才培养、技术培训、知识创新与出版等方面的工作。揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!•程序代码理解是学习开源软件和维护遗产系统的基础和前提。复杂程序代码阅读理解周期长,效率低、工作量投入大和成本高的老大难问题一直未能得到有效解决。大量开源软件和遗产系统的程序代码资源有学习理解和维护的实际需求和迫切需要。•软件工程创新团队在软件可视自动化工程技术领域已持续开展近二十年的研究工作,先后有100多人参与研发,培养了30余名硕士生和50余名本科生,发表系列专题研究论文60余篇(其中核心期刊论文30余篇,EI检索论文10余篇),在科学出版社出版理论性学术专著1部,原创编程思维导向图(抽象概念结构图)、JAVA蓝图、C++蓝图等过程蓝图建模语言及其模型驱动程序理论与方法,在正向工程、逆向工程、模型重构、算法模式、再工程等技术方向取得创新性理论研究成果。•提出自然动作模式语言及其语言驱动程序技术,在自然动作模式语言与编程语言间的双向转换技术方面找到快速实用的模式匹配自动转换方法,研制系列模型驱动软件工具与环境,开发语言驱动程序自动变换系统,在蓝图模型和自然动作模式语言的自动变换关键技术方面获得突破性进展。•经过大量测试与案例试验,并在大型OpenCMS、SweetHome3D、violet等多个开源软件的学习和十余个遗产软件系统的维护工作中得到成功应用,显著提高软件开发与维护效率。•不断将最新原创科研成果引入课堂,近十年来先后为汕头大学、北信科大和北航的2000余名本科和研究生新开“模型驱动程序设计方法学”、“模型驱动开发”等8门前沿特色课程,程序蓝图开发工具在教学中得到持续测试与应用,不断得以改进和完善。哪来的—创新团队多年潜心研究与开发的原创成果揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!怎么做到的成功要素与经验分享•程序代码向蓝图模型成功转换的关键是需要有一个可靠稳定和功能全面的词法语法分析扫描器•分析类间关系是类图建立的技术难点和关键•信息过滤和抽象技术是实现分层抽象程序视图模型的基本方法•程序蓝图模型、动作模式语言与变换规则的严格形式化定义是实现自动化处理和变换的基础和前提条件•构造中英文标识符名字映射对照表是支持中文化模型界面和实现中英文表示双向映射的基本条件,对照表的规模与模型中文化支持率成正比,中英文名字命名质量对程序的可理解性有重要影响•从逆向模型自动重新生成程序代码的正向转换技术和代码文本自动对比验证技术是保证逆向模型与代码一致性的有效方法揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!案例实践与结果展示案例1-大型开源软件OpenCMS程序蓝图模型可视自动化逆向工程•OpenCms是一个基于JAVAEE平台的开源内容管理系统,由德国的AlkaconSoftware公司负责开发和维护,可以非常平稳的运行在各种开源(Linux、Apache、Tomcat、MySQL等)和商业环境(Windows、BEAWeblogic、Oricle等)中•OpenCms是一个完全免费的开源软件,使用它不需要支付任何许可费用,利用它可以非常容易的创建、维护和管理复杂的大型网站•OpenCms是具有企业级软件品质的开源软件,全球各地均有专业公司提供技术服务支持•OpenCms是一个大型开源软件,V8.5.1.0核心版源代码拥有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包源代码逆向可视自动化产生的逻辑类图模型-PSM揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.4-OpenCMS的org.opencms.db.mysql包源代码逆向可视自动化产生的概念类图-PIM揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.5---三层抽象类图逆向变换过程文本自动对比验证自动生成自动生成词法语法分析从类图模型重新生成的类中文框架代码概念层---PIM逻辑层---PSM实现层—PSM框架信息提取模型格式变换标识符变换信息过滤信息抽取格式转换属性方法逆向映射变换类图自动生成从类图模型重新生成的类英文框架代码从类图模型重新生成的类中文框架代类图三层抽象视图CmsSubscriptionDriver类源代码揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.6-CmsSubscriptionDriver类markResourceAsVisitedBy方法源代码逆向可视自动化产生的编程实现图(抽象实现结构图)揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.7-CmsSubscriptionDriver类markResourceAsVisitedBy方法源代码逆向可视自动化产生的编程逻辑图(抽象逻辑结构图)揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.8-CmsSubscriptionDriver类markResourceAsVisitedBy方法源代码逆向可视自动化产生的编程概念图(编程思维导向图、抽象概念结构图)揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.9-CmsSubscriptionDriver类markResourceAsVisitedBy方法源代码逆向可视自动化产生的过程蓝图三维模型(编程思维导图+JAVA蓝图)揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!文本自动对比验证自动生成自动生成词法语法分析从类图模型重新生成的类中文框架代码概念层---PIM逻辑层---PSM实现层—PSM过程蓝图结点描述变换格式变换标识符变换结点语义抽象控制结构抽象实践1.10---过程蓝图三层抽象视图逆向变换过程重新生成的类方法英文代码重新生成的类方法中文代码过程蓝图三层抽象视图markResourceAsVisitedBy方法的源码自动生成揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.11-从CmsSubscriptionDriver类的实现类图重新正向自动生成的中文框架代码揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.12-从CmsSubscriptionDriver类的实现类图重新正向自动生成的英文框架代码揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.13-CmsSubscriptionDriver类markResourceAsVisitedBy方法的抽象实现结构图重新正向自动生成的中文方法代码揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.14-CmsSubscriptionDriver类markResourceAsVisitedBy方法的抽象实现结构图重新正向自动生成的英文方法代码揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!实践1.15-实例演示揭示研发管理白金定律,分享那些激动人心的创新与变革,使得团队获得过多源动力与更大的推动力!案例实践与结果展示案例2-SweetHome3D实例演示揭示研发管理白金定律,分享那些激动人心的创新与变革
本文标题:94Top100summit运用代码模型自动化逆向工程技术高效理解开源和遗产软件系统―信息科技大_刘
链接地址:https://www.777doc.com/doc-4814331 .html