当前位置:文档之家› 用Rational Functional Tester创建随需应变的自动测试脚本

用Rational Functional Tester创建随需应变的自动测试脚本

用Rational Functional Tester创建随需应变的自动测试脚本
用Rational Functional Tester创建随需应变的自动测试脚本

用Rational Functional Tester创建随需应变的自动测试脚本

IBM Rational Functional Tester是由IBM推出的针对Java,.Net和Web应用程序的自动化测试工具,拥有功能强大的编辑器并支持多种脚本语言,还集成了ScriptAssure 技术、模式匹配功能及数据驱动,以增强测试脚本的灵活性。借助这一工具,测试人员可以轻松地录制或编写脚本来进行自动化测试,极大地提高了测试效率。

软件在开发过程中是不断变化的,之后各个版本间的更替也会不可避免地引起界面、功能的变化,可以说"唯一不变的,就是变化"。这对自动化测试提出了很高的要求:要随需应变。自动化测试的脚本必须具有相当的自适应能力,在各种环境下都能正常工作。只有提高脚本的复用程度和兼容性,自动化测试才有实际意义,否则随着软件的各个版本的变更、发布,测试人员只能不停地去更新脚本,造成效率的低下、人力物力的极大浪费。

要达到这个目标,可以从以下两个方面来着手:

1) 充分利用Rational Functional Tester的强大功能,比如ScriptAssure? 技术、正则表达式,数据驱动,Rational Functional Tester API等;

2) 合理地编写、优化脚本。提纲挈领地对测试过程进行抽象,对关键过程进行必要的验证。

本文将从录制一个简单脚本开始,一步步对其进行改造和完善,不断提高脚本的自适应能力,使之能够摆脱种种束缚,灵活可靠地在多变的测试环境中顺利执行。

一摆脱初始录制环境的束缚

文中我们以这个简单的Web页面测试场景为例:用户进入IBM网站,搜索关键字"lotus",验证

"https://www.doczj.com/doc/db17236053.html,"这一链接存在于结果集内。

首先,我们可以使用Rational Functional Tester录制这段脚本:

1.打开Rational Functional Tester,新建一个"Functional Test项目",命名为"SearchLotusProject";2.右键单击项目管理器中的"SearchLotusProject",选择"使用记录器添加脚本";

3.将新脚本命名为"SearchLotusLink",单击"完成"按钮;此时会弹出脚本记录器的窗口,脚本记录已经开始了;

4.依次打开IE,输入地址:"https://www.doczj.com/doc/db17236053.html,", 回车;在搜索栏里输入"lotus",单击"Search"按钮,可以得到一个结果列表,其中就有"https://www.doczj.com/doc/db17236053.html,";

5.插入验证点。点击脚本记录器上的按钮,会出现"验证点向导"窗口。按住手形的对象选择器,选中链接"https://www.doczj.com/doc/db17236053.html,"(红框高亮显示),以默认的设置创建一个"数据验证点",点击按钮"完成"。

6.点击脚本记录器上的按钮"停止记录",完成录入过程。

通过以上的操作,我们得到脚本:

Java语言的脚本有很好的可读性,稍有Java知识的人便能看懂这些操作的具体含义。

接下来我们试着回放这段脚本(注意:此时搜索结果页面尚未关闭)。点击工具栏上的按钮"运行Functional Tester脚本",开始回放。

整个回放过程大约需要1分钟,但回放日志中有2条警告信息:"对象识别较困难(在警告阈值以上)",并给出了识别分数和警告阈值。这是由于Rational Functional Tester所使用的ScriptAssure? 技术认为这两次识别是弱识别,可能存在问题。下面我们来看看具体原因:

ScriptAssure技术给各个界面元素赋予了一定的权重,再综合目标对象的各个属性得出一个量化的特征值,便于在对象之间进行比较,因此可以大大提高脚本对频繁变更的应用程序界面的弹性适应能力,ScriptAssure技术的原理并不难懂。打开脚本资源管理器中的对象"document_htmlDocument",可以看到这个对象在识别时,使用到3个属性:".class",".title"和".url",权重各有不同。

权重用来标识这个属性在识别过程中的重要程度,权重为100,表明这个属性非常关键,必须和原值完全一致;权重为0,表明这个属性是无关紧要的。识别分数就是在这些权重的基础上进行一定的运算而得到的。识别对象时,如果有一个权重100的属性值与原值不符,识别分数就要加上"权重×100",即10000分。在这个例子中,录制时使用的是空白的IE页面,而回放时使用的是录制遗留下的搜索结果页面,导致".title"和".url"这两项属性值不符,因此它的识别分数就是".title权重×100"再加上".url权重×100",一共是9000分+4000分=13000分,这就是警告信息里识别分数的由来。

至于警告信息里提到的"警告阈值",可以在Rational Functional Tester "首选项"的ScriptAssure高级选项里修改。缺省值是10000,表明有一个阈值为100的重要属性不匹配。"警告阈值"越小,则意味着识别过程越严格。

对于这一例子而言,使用空白页面和非空页面对结果都没有影响,只要操作对象是浏览器即可,因此我们可以把".title"和".url"这两项属性的权重设为0。修改之后,保存,再回放一次。同样使用刚才的结果页面,但在回放日志里不再有警告信息,而且回放过程也仅仅用了13秒,快速合格地完成了测试。

在录制脚本中,除了有录制时浏览器页面的限制,还有一处隐藏的限制:脚本中没有打开浏览器的操作。如果没有在回放前打开一个浏览器页面,回放操作肯定会失败。幸好Rational Functional Tester的API提供了这样的功能,在所有Java脚本的公共父类com.rational.test.ft.script.RationalTestScript里,有一个方法startBrowser(https://www.doczj.com/doc/db17236053.html,ng.String url),可以用来启动浏览器,并打开某个URL。因此需要在脚本的第一行前加上"startBrowser("");"用来打开一个空白页面,然后再执行其他操作。

通过修改页面对象的识别属性和添加必要的Java代码,我们完成了对脚本内容和录制环境的解耦工作。二摆脱时间的束缚

回放时,Java脚本是由Java虚拟机解释执行,进行速度很快;而浏览器的打开,页面的装入则往往由于机器性能、网络带宽、服务器负载而速度缓慢。如果被测程序的运行和脚本执行的时间差过大,极有可能导致测试的失败,因此等待时间是我们应该妥当设置的一个要素。可以在工具级和程序级这两个层次上进行设置。

1)工具级设置

在Rational Functional Tester "首选项"的"回放"选项里,可以看到四项时间有关的回放设置。缺省的"尝试查找测试对象的最长时间"值为20秒。由于此处设置比较简单,而且是一个对所有项目和脚本都有效的全局设置,因此很难设定一个能满足所有脚本的值。建议接受默认设置,不在这一层上做时间定制,而是去程序级进行更为灵活的控制。

2)程序级设置

我们可以在程序级上,对脚本做适量的加工。在某些关键操作后加上适当的等待,直到该操作完全执行完毕,再继续之后的操作。"步步为营"地执行脚本,确保每一步的前提都是正确的。

脚本可以使用以下两种方式来添加等待时间:

?定长等待

调用Java脚本的公共父类com.rational.test.ft.script.RationalTestScript里的方法:sleep(double seconds)。这一方法可以使回放过程等待若干秒。

这种方式直观、简单。但缺点也是明显的:固定的时间常常不能适应多变的真实环境:等待时间设置得过长,无疑会拉长测试的回放时间,降低效率;等待时间设置得过短,在某些情况下,又无法起到延时应有的效果,仍然错过了被测对象。

?不定长等待

脚本记录器记录下的这些页面对象都是从接口com.rational.test.ft.object.interfaces.TestObject继承下来的,在TestObject中有一个方法waitForExistence()可以用以实现不定长的等待。在一定的时间限度内,等待该对象的出现;一旦出现后就不再等待,程序继续往下执行。最大时间限度是在"首选项"的"回放"选项里设置的。不定长等待既达到灵活等待的目的,又没有浪费不必要的等待时间,是一个值得推荐的解决方案。

本例中,我们在脚本中添加了不定长的等待设置,如下:

针对新打开的空页面,搜索输入框和结果页面,分别做了相应的等待设置。正常情况下,这段脚本的回放需要20秒钟,耗时略多于设置等待之前,但此时的脚本在等待时间方面,处理得更为灵活。在牺牲部分效率的同时,获得了更高的可靠性。对于持续性的、大规模的自动化测试而言,其中的价值不言而喻。

三摆脱空间的束缚

脚本记录器将记录下来的对象保存在该脚本的"专用测试对象图"中,而且是以树形结构保存。专用测试对象图不仅保存了对象本身的相关属性,连它和其他对象的相对关系也一并保存下来。

这段脚本使用方法document_htmlDocument()来调用页面的Document对象,使用方法text_q()来调用搜索输入框,使用方法button_search()来调用搜索按钮。这些方法是由脚本SearchLotusLink的父类SearchLotusLinkHelper定义的:

脚本回放时,Rational Functional Tester利用"专用测试对象图"进行静态识别,可以从浏览器这个顶级容器开始,层层深入地定位到指定的某个对象。但这种呆板的对象查找方式也留下了很大的隐患:Web页面里层次结构的变化屡见不鲜,而这种变化对于对象的查找而言,有着致命的影响。在这种模式下要想适应页面层次结构的变化,只能重新录制对象,生成新的"专用测试对象图"。代价如此之大的维护方式使得自动化测试几乎没有可行性。

因此必须要将对象的识别同具体的"专用测试对象图"分开,实现对象的动态识别。页面对象都有一个共同的父类:com.rational.test.ft.object.interfaces.TestObject,而它的方法find(Subitem properties)正是用来在某个特定范围内查找满足条件的所有对象。借助它,我们可以对SearchLotusLinkHelper 进行改造,使其与"专用测试对象图"不再紧密地耦合在一起。

改造后,回放过程中所需要用到的页面对象都是在当前浏览器中即时查找得到的。通过目标对象的类型和某个属性值来定位目标对象,脱离了"专用测试对象图"中树形结构的约束。SearchLotusLinkHelper的部分内容如下:

与此同时,针对脚本SearchLotusLink里为选择操作对象而记录下的的鼠标操作,及验证点。我们也同样对其进行抽象,攫取其中的关键行为,代之以程序动作。比如:

这两行脚本的操作是在浏览器的地址栏内输入URL,再按下回车。这个动作如果借助Rational Functional Tester所提供的API来表示,可以简化很多:

再以程序的方式生成验证点并验证,不与脚本相关的数据结构发生干系。经过优化和精炼后的脚本SearchLotusLink如下:即使将来页面布局和结构发生变化,这段脚本仍然能正确地定位到搜索输入框和搜索按钮。

四摆脱语言的束缚

如今的软件大多都要求支持"全球化",能够适应多种语言环境。就用户界面而言,需要在不同的语言环境中展示出本地语言界面。多语言环境下的人工测试往往不尽如人意,自动化测试反而更为迅速和准确。

我们仍然以这个场景为例,所不同的是:用户进入IBM中国网站。再搜索关键字"lotus",验证

"https://www.doczj.com/doc/db17236053.html,"这一链接存在于结果集内。测试过程的逻辑并没有变化,但界面截然不同,"Search"按钮在这里显示为"搜索"按钮。

为了拓展脚本SearchLotusLink对多语言的支持能力,我们在SearchLotusLinkHelper查找对象的过程中,加上一个中间层,通过它来衔接固定的操作逻辑和多变的界面。原先的方法findTestObjectInBrowser(String

property1, String value1, String property2, String value2)只是按这两个属性值找出合适的对象;现在则要对属性做适当的转换,使它能适应其他语言环境,在不同语言的界面里都能定位到这个页面对象。

将Rational Functional Tester切换到"Java透视图",在SearchLotusLinkHelper所在的resources包中,添加一个类:utilities,来实现对多语言环境的支持。这里为简单起见,我们将URL和搜索按钮的文本的多语言表示直接保存在这个类里。用户可以通过它来获取某一属性在特定语言环境下的表示。

进而我们对SearchLotusLinkHelper中方法findTestObjectInBrowser(String property1, String value1, String property2, String value2)的做相应的修改,使它能够得到当前语言环境下属性的表述形式。

最后,我们在脚本SearchLotusLink中加上一个开关,用来设置当前所使用的语言环境。我们只需要简单地设置一下这个开关,同样的脚本就可以在中英文两种环境下进行测试。按这种模式,测试还可以延伸到其它语言环境中。

六总结和展望

本文通过一个针对Web页面的测试用例,由浅入深地阐明了如何利用Rational Functional Tester创建随需应变的自动化测试脚本。脚本在经过优化和改造后,对多变的回放环境、等待时间、页面变化及多语言

环境都有了较强的自适应能力。使脚本在不经维护或很少维护的情况下,也能在各种环境下顺利地执行测

试。

文中只是介绍了一个基本思路和简单实现。在自动化测试的大规模应用中,需要对utilities类、

findTestObjectInBrowser()方法等辅助功能做进一步的完善和扩充,衍生为一个支持框架,对脚本的记录、

回放、灵活性、健壮性加以全方位的支持。"软硬结合",在这个灵活的软框架的辅佐下,更好地发挥出Rational

Functional Tester工具的强大功能。

关于作者

章国俊,软件工程师,来自IBM中国软件开发中心的Lotus部门。目前主要从事IBM Workplace产品的功能测试工作。对Java、比较感兴趣。联系方式:zhanggj@https://www.doczj.com/doc/db17236053.html,

RationalRose【UML建模】教程+使用详解

Rational Rose 简介 Rose模型(包括所有框图、对象和其他模型元素)都保存在一个扩展名为.mdl的文件中。 1. 环境简介 1.1 Rational Rose可视化环境组成 Rose界面的五大部分是浏览器、文档工具、工具栏、框图窗口和日志。见图1-1。 图1-1:Rose界面 ●浏览器:用于在模型中迅速漫游。 ●文档工具:用于查看或更新模型元素的文档。 ●工具栏:用于迅速访问常用命令。 ●框图窗口:用于显示和编辑一个或几个UML框图。 ●日志:用于查看错误信息和报告各个命令的结果。

1.2浏览器和视图 浏览器是层次结构,用于在Rose模型中迅速漫游。在浏览器中显示了模型中增加的一切,如参与者、用例、类、组件等等。Rose浏览器见图1-2。 浏览器中包含四个视图:Use Case视图、Logical视图、Component视图和Deployment 视图。点击每个视图的右键,选择new就可以看到这个视图所包含的一些模型元素。 图1-2:Rose浏览器 1. 3框图窗口 在图1-3所示的框图窗口中,我们可以浏览模型中的一个或几个UML框图。改变框图中的元素时,Rose自动更新浏览器。同样用浏览器改变元素时,Rose自动更新相应框图。这样,Rose就可以保证模型的一致性。 图1-3:框图窗口

2.UML各类框图的建立 2. 1建立用例图use case diagram 从用例图中我们可以看到系统干什么,与谁交互。用例是系统提供的功能,参与者是系统与谁交互,参与者可以是人、系统或其他实体。一个系统可以创建一个或多个用例图。 ●创建用例图(图2-1-1) 在浏览器的Use Case视图中,双击Main,让新的用例图显示在框图窗口中。也可以新建一个包(右击Use Case视图,选择new→package,并命名),然后右击这个新建包的,选择new→use case diagram。 对系统总的用例一般画在Use Case视图中的Main里,如果一个系统可以创建多个用例图,则可以用包的形式来组织。 图2-1-1:创建用例图 ●创建参与者(图2-1-2) (1)在工具栏中选择“Actor”,光标的形状变成加号。 (2)在用例图中要放置参与者符号的地方单击鼠标左键,键入新参与者的名 称,如“客户”。 若要简要的说明参与者,可以执行以下步骤: (1)在用例图或浏览器中双击参与者符号,打开对话框,而且已将原型(stereotype)设置

Rational Rose用例图的建模步骤

用例图建模步骤 窗口说明 1.开始 用例图在用例视图目录下,使用右键菜单“new”——》“use case diagram”。

2.工具栏调整 一般情况下,所有UML模型的工具栏都是可以调整的,可以根据具体需要对工具栏上的按钮进行定制。在工具栏上使用右键菜单,选择“Customize”如图2,选择需要增加或减少的图标,如图3所示。 3.增加参与者 参与者的增加有2种方式, 方式一:使用工具栏上的快捷菜单 如图4,图5所示

方式二:使用左边栏右键菜单“new”——》“Actor”新增参与者功能 如图6所示,需要注意的是:使用此方式增加的参与者将不会自动出现在右边的绘图区中,需要把这个参与者拖到绘图区方可。 关于删除:在右边的绘图区,删除参与者可以使用Del键删除,但删除之后被删除的参与者在左边的目录下仍然是存在的。即在绘图区中不能彻底的删除参与者。在左边的目录区, 4.增加用例 用例增加的方式和方法与参与者增加的方式和方法是相同的。 5.建立参与者之间的关系 参与者之间的关系常见的是泛化关系。 步骤如下: 1)选择泛化关系,如图7所示。 2)如图8所示,画出两个参与者之间的泛化关系。注意:起点是继承类,终点是被继承类。即,画的时候是从儿子开始,到父亲结束。

6.建立用例之间的关系 用例之间的关系主要是3种,分别是包含(include),扩展(extend)和泛化(generalization)。我们只要熟悉一种建立方式,其他2种都可以采用同样的步骤实现。 建立包含关系步骤如下: 1)如图9所示,选择用例关系的图标。 2)如图10所示,从“登陆系统”用例开始,到“密码验证”用例结束画出关联关系,注意箭头的方向。 3)双击这条线或者右键点击这条线然后选择“Open Specification”菜单项(图11所示), 在弹出的窗口(图12)的Stereotype中选择包含(include)关系

RationalRose-详细介绍

使用Rational Rose 进行UML可视化建模 本课程以某所大学的《在线选修课程管理系统》为例来介绍怎样使用Rational Rose 进行UML可视化建模。 最终递交三个文件:regist.mdl, regist.sql, VB的代码或Java的代码。 内容: 一、系统描述 (2) 二、用例图(Use Case View) (2) 三、活动图(Activity Diagram)(建立选修课程目录表) (5) 四、相关的包和类以及简单类图 (11) 五、用例实现图(Use Case Realization Diagram) (13) 六、顺序图(Sequence Diagram)与合作图(Collaboration Diagram) (15) 七、类图中的关系(Relationships) (18) 八、类图中的操作与属性 (20) 九、类图中的泛化 (22) 十、状态图(Statechart Diagram) (26) 十一、构件图(Component Diagram) (31) 十二、部署图(Deployment Diagram) (34) 十三、生成程序代码 (35) 十四、创建数据库设计 (40) 十五、附件1:转换后的Visual Basic程序 (44) 十六、附件2:转换后的Java程序 (45) 十七、附件3:生成的SQL语句 (46)

一、系统描述 1.大学教师选择本学期要教授的课程,每位教师最多只能上报4门课程。 2.教师选课结束后,教务管理人员进行协调和确认教师的课程,并创建本学期的课程目录表,向学生公布。 2.学生填写课程选修表,每个学生最多选修4门课程;每门选修课程的学生数最多为10人,最少为3人。人数达到10人时,停止学生登记注册此门课程;3.学生选课结束后,系统自动取消人数少于三人的课程。 4.学生按最终的课程表到财务处办理收费手续(billing system)。 5.教师可查询所教课程的学生花名册(roster)。 6.教务管理人员维护学生、教师和课程的信息。 二、用例图(Use Case View) 1.《在线选修课程管理系统》中的执行者(Actors) ●注册选修课程的学生; ●教授选修课程的教师; ●教务管理人员必须汇总选修课程情况,制作课程表; ●教务管理人员必须维护关于课程、教师和学生的所有信息; ●财务管理系统从本系统中取出收费信息。 2.使用Rational Rose 创建执行者(Actors) 图1

Rational Rose顺序图(序列图)的建模步骤

序列图的建模步骤 1.创建和删除序列图 1.1 创建序列图 新建一个序列图的方式有两种: 1.1.1 在逻辑视图中增加序列图 1)一般情况下,序列图属于系统的逻辑模型,因此可以使用“Logical View”的右键菜单——〉“New”——〉“Sequence Diagram”,如下图所示: 然后输入序列图的名称,如下图所示: 接着双击新增的序列图名称,开始输入序列图,如下图所示:

1.1.2 在用例视图中增加序列图 序列图主要是用于对用例的描述,在此种目的下新增序列图的方式也是有两种: 2.1)直接在“Use Case View”下的相应用例上通过右键菜单——〉“New”——〉“Sequence Diagram”菜单项新建一个序列图,如下图所示: 输入序列图的名称,如下图所示:

输入完序列图的名称后,双击此序列图的名称开始输入序列图的内容。 2.2)在用例图中使用用例的属性窗口来新增序列图。如下图所示,在用例“浏览课件”的“Specification”属性窗口中的“Diagrams”项目下,通过右键菜单——〉“Insert Sequence Diagram”, 输入序列图的名称,如下图所示: 双击此序列图名称,进入序列图的编辑界面。

1.2 删除序列图 不管是在逻辑视图(Logical View)还是在用例视图(Use Case View),删除序列图的方式都是一样的。都是选中需要删除的序列图,右键菜单——〉“Delete”,即可直接删除,如下图所示。注意,在Rational Rose2003环境下,所有的删除操作都是没有提示的。 1.3 修改序列图的名称 不管是在逻辑视图(Logical View)还是在用例视图(Use Case View),修改序列图名称的方式都是一样的。都是选中需要修改名称的序列图,右键菜单——〉“Rename”,如下图所示: 2.增加和删除对象 2.1 增加对象 在序列图中,增加对象的方式主要有两种:

RationalRose详细介绍和例子详细操作

使用R a t i o n a l R o s e进行U M L可视化建模本课程以某所大学的《在线选修课程管理系统》为例来介绍怎样使用RationalRose进行UML可视化建模。 最终递交三个文件:regist.mdl,regist.sql,VB的代码或Java的代码。 内容: 二、用例图(UseCaseView)............................................... 三、活动图(ActivityDiagram)(建立选修课程目录表)....................... 四、相关的包和类以及简单类图.......................................... 五、用例实现图(UseCaseRealizationDiagram)............................. 六、顺序图(SequenceDiagram)与合作图(CollaborationDiagram)............. 七、类图中的关系(Relationships)....................................... 八、类图中的操作与属性................................................ 九、类图中的泛化...................................................... 十、状态图(StatechartDiagram)......................................... 十一、构件图(ComponentDiagram).......................................

Rational_Rose_教程+使用详解

UML 面向对象分析与设计教程 上海钱拓金融信息服务有限公司 内部文档禁止外传

目录 一.Rational Rose 简介 (3) 1.1 环境简介 (3) 1.1.1 Rational Rose可视化环境组成 (3) 1.1.2浏览器和视图 (4) 1.1.3框图窗口 (5) 二.UML各类框图的建立 (6) 2.1建立用例图use case diagram (6) 2.2建立活动图activity diagram (11) 2.3建立类图class diagram (15) 2.4建立交互图interaction diagram (20) 2.4.1序列图sequence diagram (20) 2.4.2协作图collaboration diagram (23) 2.4.3序列图和协作图之间的转换 (26) 2.5建立状态图statechart diagram (26) 2.6建立构件图component diagram (30) 2.7建立实施图deployment diagram (32)

一.Rational Rose 简介 Rose模型(包括所有框图、对象和其他模型元素)都保存在一个扩展名为.mdl的文件中。 Rational Rose中用例视图和逻辑视图的区别用例视图是从系统外部来看系统,逻辑视图是描述系统的内部结构。 两者之间的关系是实现关系,即,逻辑视图所描述的系统实现用例视图所描述的功能。 举个最简单的例子吧:对于很多系统都有的用户登录功能 在用例视图中只描述用户在什么样的界面登录(是登录对话框,还是指纹鉴别器,还是身份识别卡,也许都可以),如何登录(是输入口令,还是将手指放在指纹阅读器上,还是将身份识别卡在读卡器上划过),系统有什么响应(登录成功后是显示正确提示,还是有悦耳的声音,还是吐出两张美金,登录失败后是回到登录界面,还是放个P,也许是从机器里冒出一只拳头打在用户的脸上)。但不会描述系统内部如何去验证用户,以及如何出拳。 而在逻辑视图中则是描述系统如何验证用户,可能有一个登录界面类,有一个用户认证控制类,及用户信息存储类,以及这些类如何相互运作以完成用户认证,也许还会有拳头控制类来实现拳头瞄准和出拳,总之要将用例视图中提到的功能全部正确的实现。 1.1 环境简介 1.1.1 Rational Rose可视化环境组成 Rose界面的五大部分是浏览器、文档工具、工具栏、框图窗口和日志。见图1-1。

Rational-Rose-―正向工程操作步骤

Rational Rose —正向工程操作步骤 利用Rational Rose构建正向工程的步骤: 步骤一,通过Rose建立一个新的Logial View。这里我另外给大家展示一张类的属性以及一些特定方法的自动生成,如图所示: 步骤二:构建类关系图,添加:包,类关系,结构以及注释等等,关于UML类逻辑图如何构建,我这里就不多赘述了。 步骤三:点击上端菜单栏中的Tools下拉菜单—Java / J2EE—Project Specification; 在弹出的对话框的Code Generation标签内编辑生成代码的属性,比如:“Generate Rose ID”,“Generate Default Return Line”,并选中“Automatic Synchronization M”。如图所示:

步骤四:继续在当前对话框内,点击标签:“Classpath”,在对话框内,点击新建ClassPath 按钮,注意:这里的Classpath并非java在环境变量中定义的:classpath;而是定义:需要将生成的java代码保存到的路径。 步骤五:完成步骤三,与步骤四后,点击“应用”—“确定”按钮。 步骤六:完成前面几个步骤的生成配置后,我们将在步骤六介绍生成java文件啦。 A,键盘Ctrl+A选中类图中,刚刚构建的所有元素; B,点击上端菜单栏中的Tools下拉菜单Java/J2EE—SynTax Check(语法检测);正常的,Rose应弹出:Syntax checking completed successfully. C,点击上端菜单栏中的Tools下拉菜单— Java / J2EE—Generate Code来生成java代码。在弹出的Assign CLASSPATH Entries对话框中:在左侧选择文件保存目录,右侧选择需要保存的包和元素。如图所示:

Rational Rose使用简单教程

Rational Rose使用简单教程 概述: (1) 使用Rational Rose 提供的模型去画UML图 (2) 用例图 (2) 类图 (6) 对象图 (7) 状态图 (8) 顺序图 (9) 协作图 (10) 组件图 (11) 部署图 (11) 活动图 (12) 概述: UML能从不同的角度去描述系统,它提供了九种图,下面我们用一张图去对比这九种图的用途 使用Rational Rose创建用例

创建方法: 1.右击browser框中的Use Case View包,弹出快捷菜单; 2.选择New——Use Case项; 3.输入用例的名字;(如出错,可用Rename命令更改) 4.如果文档窗口不可见,选择屏幕上方的View—— Documentation菜单; 5.在browser框中选中所需用例; 6.将光标置于文档框中,输入相应文档。 其他几种图的创建方式类似,只需记住创建图的名字即可。 1、用例图:Use Case Diagram 2、类图:Class Diagram 3、对象图:Object Diagram 4、状态图:State Diagram 5、顺序图:Sequence Diagram 6、协作图:Collaboration Diagram 7、组件图:Component Diagram 8、部署图:Deployment Diagram 9、活动图:Activity Diagram 使用Rational Rose 提供的模型去画UML图用例图 双击browser框中的Use Case View包中的Main条目,打开主用例图; 单击选中browser框中的执行者,并将其拖到主用例图中;

实验用RationalRose生成代码

实验:用Rational Rose生成代码 在Rational中提供了将模型元素转换成目标代码,以及将目标代码转换成模型元素的功能,我们称之为"双向工程"。这极大地方便了软件开发人员的设计工作,能够使设计者把握系统的静态结构,起到帮助编写优质代码的作用。 不同的版本对于代码生成提供了不同程度的支持,在Rational Rose 2003中,Rational Rose Enterprise版本可以使用多种语言进行代码生成,这些语言包括Ada83、Ada95、ANSI C++、CORBA、Java、COM、Visual Basic、Visual C++、Oracle 8和XML_DTD等。我们可以通过选择"Tools"(工具)下的"Options"(选项)选项查看其所支持的语言信息,如图5-23所示。 下面,我们以Java目标语言为例,说明使用Rational Rose生成代码的四个步骤。 步骤1. 选择待转换的模型元素 在Rational Rose中,打开已经设计好的目标模型:类、构件或包。使用Rational Rose 生成代码一次可以生成一个类(Class)、一个构件(Component)或一个包(Package)。我们通常在逻辑视图的类图中选择要转换的类,在逻辑视图或构件视图中选择要转换的包或构件。如果选择的目标模型是包或构件,则在这个包或构件下的所有模型都将被转换成目标代码。 步骤2. 检查模型的正确性和Java语言的语法错误 Rational Rose拥有独立于各种语言之外的模型检查功能,通过该功能,能够在代码生成以前,保证模型的一致性。在生成代码前,最好检查一下模型,发现并处理模型中的错误和不一致性,使代码正确生成。通过选择"Tools"(工具)下的"Check Model"(检查模型)选项,可以检查模型的正确性,如图5-24所示。

相关主题
文本预览
相关文档 最新文档