本文将概述如何通过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中运行项目