一个以代码为中心的增量同步式双向工程工具

来源 :北京大学 | 被引量 : 0次 | 上传用户:niuniuplayplay
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
目前,越来越多的软件项目使用UML作为建模工具,一方面提高了软件开发的抽象层次,另一方面也可以生成框架代码,提高了开发效率。然而,在软件再工程和软件维护的过程中,程序代码和软件模型会产生不一致,这就需要使用程序分析技术从代码中获取必要的设计信息,并自动恢复出软件模型,以帮助软件维护人员更好的理解软件系统的架构和设计。在迭代的软件开发过程当中,代码和模型不一致带来的问题更加突出,因为开发人员在迭代开发的过程中,会对软件模型进行调整,由于缺乏增量式的代码生成工具,多数情况下,这种调整是手工完成的,不仅容易出错,也降低了开发的效率。   传统的正向工程工具,包括Rational Rose、Together CC、JBOO、ArgoUML,能够支持丰富的UML表示法,并对各种面向对象语言提供了扩展的支持,但由于UML表示法和实现语言并不能一一对应,以及缺乏与集成开发环境的集成,导致对代码生成和自动同步支持非常有限。例如,传统的建模工具并不能增量生成代码,用户对代码的修改会被覆盖;并不能自动同步代码和模型,一次性的逆向分析也会覆盖用户对软件模型的修正。   本文针对JAVA编程语言,讨论了如何保持UML模型和程序代码的一致性,如何在逆向分析过程中完成语言模型到UML表示法的映射,以及在代码生成过程中UML表示法和JAVA代码之间的转换方法。在此基础上,本文介绍了一种支持双向工程的软件开发辅助工具-OODIA。OODIA使用Java语言实现,以Eclipse插件的形式与Eclipse的Java集成开发环境JDT进行集成。OODIA包括三个主要模块:UML编辑器、逆向分析器、实时同步器。开发人员可以使用OODIA对类图进行编辑操作,对视图的修改会增量式的生成JAVA代码;也可以对已有代码进行逆向分析,提取程序信息,并以UML类图的方法进行可视化。程序员对程序代码的编辑会被高效地、实时地同步到UML视图,从而保证了软件模型和代码的一致性,有效地降低了软件维护的代价,并把迭代的软件开发过程有机地结合了起来。以上三个模块的实现使用了如下的技术:UML编辑器该模块使用Eclipse的GEF(Graphical Editing Framework)实现,采用MVC(Model,View,Control)的设计模式。其中OODIA元模型的持久化采用XML实现。   逆向分析器该模块使用JDT提供的编译基础设施为Java代码创建语法树,通过对语法树的遍历抽取类图和包图的信息。   实时同步器当程序员修改代码或进行代码生成时,JDT会将对源代码的修改动作转换为对语法树的修改,OODIA通过监听和分析语法树的修改事件,自动将代码的修改同步到类图和包图之上。OOIDA的同步器实际上保持了代码到模型的单向映射,用户对模型的编辑都会被转化为代码的操作,从这个意义上来说,OODIA的同步器是以代码为中心的。
其他文献
网络社区,是目前广受人们尤其是大学生欢迎的重要网络应用。现有的网络社区已经能提供交友、购物、教育、娱乐等等服务,也是社会热点与焦点问题的重要发散地。进入web2.0时代之
现实世界中的优化问题通常是多属性的,一般是对多个目标的同时优化。如一个国家的最优良性发展,涉及到经济的快速增长、社会秩序的稳定、环境的保护和改善等多个方面。在这里,经
随着信息化的深入发展,FTP服务器作为一种必不可少的文件共享方式在人们的生活中扮演着越来越重要的角色。由于传统的FTP服务器完全依靠少数的管理员来管理所有用户和文件资源
面向服务架构(SOA)用开放的标准把企业的业务功能包装成标准的服务。这种服务通过明确的、与实现无关的接口来定义,服务被松散绑定,并且可以通过强调位置透明性和互操作性的通
人脸识别是模式识别和计算机视觉中的一个研究热点。在实际应用中,由于人脸图像是较为复杂的,因此需要对它进行数据降维,以避免维数灾难问题,这一过程也称为特征提取。在众多特征
安卓操作系统是基于Linux内核的移动操作系统,具有源码开放、兼容硬件丰富和易于开发等特点。龙芯中科作为自主创新的国产处理器研发机构,在移动互联网全面兴起的时代,有肩负起
随着多媒体技术和网络技术的飞速发展,多媒体信息的应用日益广泛,对规模越来越大的多媒体数据库进行有效的管理成为迫切需要解决的问题。高效、准确的多媒体检索策略是解决这一
近年来,随着软件复用技术的发展,基于构件开发作为一种软件复用的有效的方法学,得到了广泛的关注和发展。   多语种构件库设计与实现是多语种软件技术支撑平台的开发与应用的
网络信息爆炸性的增长和多元化的发展,不仅给人们带来了信息共享的快乐,同时也带来了“信息迷航”和“知识匮乏”等一系列问题。人们希望能快速地从搜索引擎中找到自己需要的信
随着经济的高速发展,环境问题越来越受到人们的重视。环境污染、环境质量退化已经成为制约区域经济发展的主要因素之一,也给人类的可持续性发展及人类自身健康造成了极大的危害