级别: 初级 璇 姜 (jx0517@hotmail.com), 软件工程师,IBM中国软件实验室,IBM
2006 年 2 月 20 日 本文将概述如何通过IBM Rational Software Architect对早期项目的建模操作,以及代码复审的特性,实现开发人员参与测试,有效的缩短开发生命周期。
介绍
项目交付实施以后,随着新的需求的不断提出,会对项目的升级提出迫切的需求。
早期的应用程序的开发是以代码为中心的开发方式,设计人员使用孤立于开发平台的图表以及文字来表达自己的设计思想,交由软件开发人员来实现。而不断变化的需求,提升了在开发、维护生命周期中质量控制过程的重要性。所以,在软件开发维护初期尽可能早的引入测试机制,会更有效的发现问题以便缩短开发周期以及减少开发风险。使用IBM Rational Software Architect对早期的应用项目进行代码到模型的转换,配合代码复审功能,是达到这个目的的有效途径。
本文介绍了IBM Rational Software Architect (本文内简称RSA)产品的特性,允许用户对已经存在的项目的源代码进行建模操作,并实现模型到代码的相互转换,同时使用预先定义的规则和最佳实践自动检验Java源代码。这将有效的帮助用户快速定位流程上的错误以及代码设计中许多隐藏的问题。
针对的读者
本文主要面向在软件项目中对使用建模语言(UML)以及代码审查(Code Review)感兴趣的软件开发人员和测试人员。假设读者已拥有了一定的UML和Java基础。
其他信息
本文大致介绍了UML建模和代码复审的特性。与UML和代码复审以及IBM Software Development Platform相关的其它资源列在文章末的参考资源部分。
RSA概述
RSA是IBM Rational软件开发平台的组件之一,这个软件开发平台包括促进建立企业级Java和J2EE应用能力的软件项目设计、开发、管理、测试工具,由下列组件构成:
- IBM Rational Portfolio Manager,跨越整个软件生命周期的项目管理工具
- IBM Rational Application Developer and Rational Web Developer,集成的软件开发平台,前身为著名的IBM WebSphere Studio Application Developer and IBM WebSphere Studio Site Developer
- IBM Rational Software Modeler,基于UML 2.0,建立和分析软件项目的可视化视图
- IBM Rational Software Architect,基于UML 2.0,建立和分析软件项目的可视化视图,于设计团队与开发团队之间建立很好的连接。本文着重介绍这个组件
- IBM Rational Manual Tester,针对单元测试,创建和执行测试用例
- IBM Rational Functional Tester,针对自动测试和回归测试
- IBM Rational Performance Tester,针对性能以及负载能力的测试工具
软件质量评测
传统意义上,软件质量的评测是测试人员在将产品交付客户之前的主要任务。测试人员一般进行以下活动:
- 测试管理和计划
- 自动和手工功能测试
- 性能测试和负载测试
在早期的应用软件开发平台上,这些活动常常不能与代码编写的工作相并行,所以测试人员一般是在代码完全实现后才能开始他们的测试工作,只有在这时候,测试人员才能发现问题并反馈给开发人员。
RSA的应用,实现了开发人员参与测试,将软件质量的测试扩展到了开发人员范畴。毫无疑问,在项目的开发阶段发现并解决问题可以显著地降低成本,提高代码的质量,并且有助于团队按时交付应用程序。
RSA具有推进开发人员测试能力的如下特性:
- UML to Code(代码转换):通过模型描述语言生成可运行的代码,进行流程测试,避免开发过程中结构上的修改。
- Code Review(代码审查):静态代码分析工具,通过建立代码审查,来建立单元和组件测试,发现代码一致性或者内存及性能瓶颈方面的问题,可以带来高质量的代码,同时也减少了开发的时间。
- Component Test(组件测试):面向J2EE组件和web服务的单元测试框架的扩展
- Runtime Analysis(运行时分析):应用程序(性能、内存使用、多线程等)的重要运行时参数的分析和调试工具
这些开发人员测试能力的提供可以很好的提高生产率。另外,他们有助于你在测试执行功能集成测试之前就发现并防止错误。
迁移早期项目
早期项目的开发,由于软件开发平台的限制,一般以代码为中心,设计视图与代码之间没有系统的关联,这给后期维护、升级带来了很大的困难。
模型驱动是一种新的开发方式,对于缩短软件开发生命周期,它是一种非常有效的方法。RSA提供了导入功能,可以方便的实现早期软件项目到模型之间的互相转换。
检查源代码
在完成导入之前,你必须检查你的源代码以便确保他们是完整并且可用的,通过导入残缺的代码所产生的视图是无意义的,那只会干扰你的维护流程。
这样做的好处还包括你可以事先大致了解整个项目的工作流程(如果你先前并不熟悉的话),这对检视可视化视图有很大的帮助。
导入源代码
在导入源代码之前你必须在RSA中先建立一个Java项目,以便确定调整后的源代码以及可视化视图的存储路径。参看图1
图1,建立Java项目
选择需要导入的现存项目,根据我们要做的工作,这里我们选择导入"现有的项目到工作空间中",参看图2。
图2,导入现存项目
如果你的现存的项目并不是由RSDP系列平台开发的,由于没有相应的.Project文件,你只能使用文件系统导入的方式来完成导入操作,参看图3。这两种导入方式对最终结果而言没有任何区别。
图3,导入系统文件
提示:导入Java源代码的过程中,RSA会检查代码的语法方面合法性,主要包括类型错误,未使用的变量等基本方面,你可以在"问题"视图察看这些错误,双击一个错误提示会自动打开相应的源代码并高亮显示错误位置。
建立UML模型
为了保存RSA生成的模型视图,必须先建立一个空的模型。
切换当前视图到建模视图,在刚才导入的项目上单击鼠标右键,选择新建-UML模型,参看图4。
图4,建模
可视化项目
把导入的项目文件用图表的方式显示在刚才建立的模型里。很简单,把相应的源代码用鼠标拖拽到刚才建立的空模型里面就可以了,也可以在模型浏览器的源代码(或包)上点鼠标右键,选择可视化-添加到当前图。
现在可以看见你的代码的可视化图形了,它可以非常直观的显示类与类之间的调用关系,所有的函数入口以及方法。可以通过完全图形化的界面调整类的依赖关系。双击函数或方法入口可以直接打开源程序。参看图5。
图5,可视化模型
至此,早期项目已经被迁移到新的RSA开发平台,开发人员可以利用新平台的所有特性对项目进行相关的维护、升级操作。
转换到代码
一旦结构调整的维护工作已经完成(具体的功能实现与否不会干扰这个操作),我们就可以使用模型到代码的转换功能由RSA生成可编译的代码,直接将此代码交由测试人员进行流程测试,而开发人员可以同时编写功能部分的代码,这两个操作可以并行实现。
将模型的代码生成到Java项目容器中,参看图6。
图6,运行转换
在RSA中运行项目
一旦转换完成,你可以在RSA提供的集成环境里运行这个项目,运行时可以直接在控制台视图中察看输出结果。参看图7。
图7,运行
小结
可以使用RSA可视化早期软件项目,并在可视化的基础上维护、升级,调整后经转换生成的代码可以直接运行,从而实现提前测试,缩短软件维护生命周期。
代码复审
代码复审验证项目中现存的代码是否符合规则,这里的规则包括但不限于程序语言的语法规则。应用其中的部分规则,有助于从代码开发的角度避免程序后期可能产生的问题,统一程序结构。
RSA缺省提供了230多条规则用于代码复审,这些规则可以涵盖绝大多数软件开发的场合,用户也可以自定义审查规则以便对缺省规则作必要的扩充。这些规则包括:
- J2EE最佳实践,包括基于J2EE开发实践的规则,并且支持面向WebSphere 服务的WEB项目。
- J2SE最佳实践,包括用于验证代码是否符合Java 开发的J2SE最佳实践的规则。
- 全球化,包括基于全球化代码最佳实践的规则,确保代码在本地化的环境中正确地运行。
- 命名惯例,包括与Java代码的元素命名规范相关的规则。
- 性能,包括在Java应用中为提高性能和减少内存占用的一些建议。
- 私有API,用于确定不属于Java代码的API。
- 结构分析,包括构建代码体系结构审查的规则。
- 设计原则,包括面向对象编程设计原则的规则。
- 自定义,包括用户定义的对现有规则的扩充。
你可以选择其中的全部或者部分规则来运行代码复审,RSA提供了默认的规则选择集,分别为:
- 快速代码审查,只运行有可能产生严重问题的规则检查。
- 完全代码审查,运行所有规则检查,包括自定义规则。
- J2EE最佳实践,运行来自J2EE最佳实践目录的所有规则。
- 全球化代码审查,运行来自全球化目录下的所有规则。
- J2SE最佳实践,运行来自J2SE最佳实践目录的所有规则。
- 结构化分析代码审查,运行来自结构分析目录的所有规则。
通过使用代码复审,开发人员可以在程序的开发阶段检测出绝大多数代码结构问题,这些问题通常并不能被语法检查功能查出。另外一个好处就是有效的保证程序的一致性,例如通过代码复审的程序在相同的组件里所完成的功能是完全相同的。
打开代码复审视图
代码复审是基于已经存在的代码的检查。首先,你必须确保你要检查的项目文件是开启的。
代码复审视图不是默认打开的。切换当前视图到Java视图,单击菜单窗口-显示视图-代码复审便可打开代码复审的主窗口。参看图8。
图8,打开代码复审视图
设计、选择代码复审规则
在代码复审视图里,单击管理规则( )按钮,打开代码复审的首选项视图。在这里,你可以查看RSA可以提供的全部规则,包括规则的描述、示例、解决方法和属性。也可以新建复审规则,添加相应的规则到用户自定义类中。选择其中的部分或者全部规则来运行本次代码复审。一个完整的规则如图9:
图9,代码复审首选项
运行代码复审
定义和选择好复审规则以后,就可以对当前项目或工作区进行复审了。单击开始复审( )按钮。
代码复审开始时,"停止"按钮将代替"开始"按钮,你可以在任何时候单击"停止"按钮以停止运行。所有在你停止它之前检测到的分析结果不会丢失。
当右下角的进度指示器达到100%时,表示代码复审已经执行完毕。复审结果会显示在代码复审视图。参看图10。
图10,代码复审结果
处理复审结果
复审结果按规则目录分组并按优先级排列,依次是问题、警告、建议。
双击其中的一个待处理的复审结果,源代码以及代码复审的详细信息会显示相应的视图中,你可以根据提示修改你的源代码以便通过下一次的代码复审。参看图11。
图11,复审结果查看
快速修正
对于常见的一些代码复审结果,RSA提供了快速修正的功能。如果复审结果的图标是 ,表示这个复审结果可以被快速修正。在该结果上点击鼠标右键,选择快速修正,如图12。
图12,快速修正问题
其他处理选择
除了上面的选择外,你还可以选择忽略这个检查结果,或者针对这个源代码禁用本代码复审规则,甚至在这次代码复审的所有结果中禁用本规则。
提示:
- 使用完整代码复审进一步提高代码的质量
- 一旦决定使用某项规则,你应当在整个项目中一致地应用此规则
- 只检查你关心的项目或源代码,减少代码复审使用的时间
- 确保整个团队使用一致的代码复审规则
小结
代码复审是实施最佳开发实践的强大工具,可以实现开发人员的参与测试,确保缩短开发生命周期,降低开发成本以及风险。
总结
通过阅读本文,了解RSA帮助你有效的将早期开发平台上开发的应用软件移植到最新的RSA开发平台上来,同时利用RSA的可视化模型对源程序的结构进行调整,并使用代码复审功能检测并修正源程序中可能隐含的问题。RSA的参与,可以实现测试阶段的尽早开始,有效地减少开发风险及缩短开发生命周期。
参考资料
关于作者  | |  | 姜璇,IBM中国软件开发实验室,Rational GB18030 certification team,软件工程师,熟悉OS/2,Linux,AIX操作系统 / JDK DBCS测试,近期参与Rational GB18030认证测试,了解Rational系列产品。曾多次在报刊杂志发表文章。
感谢team Leader徐成及团队成员在成文过程中的指导、帮助。EMail: jx0517@hotmail.com |
对本文的评价
|