软件工程实验指导_第1页
软件工程实验指导_第2页
软件工程实验指导_第3页
软件工程实验指导_第4页
软件工程实验指导_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程实验指导书3实验一、使用Visio绘制数据流图实验目的:1掌握在MicrosoftVisio中绘制图形的基本方法;2认知数据流图的基本元素;3掌握使用数据流图对系统进行自顶向下逐步求精的分析过程。实验内容:1. 根据下面的描述,按要求画出“教育基金会捐助资金管理系统”的数据流图。2. 或画出自主设计的系统的数据流图。某教育基金会捐助资金管理系统的基本功能如下:1 由捐助者向基金会提出捐助请求,经身份确认后被接受,对捐助人进行登记并授予捐助证书,捐款存入银行。2 由教育单位提出用款申请,在进行相应的合法性校验和核对相应的捐款储备后做出支出。3 每月给基金会的理事会一份财政状况报表,列出本

2、月的收入和支出情况和资金余额。实验要求:1确定“教育基金会捐助资金管理系统”的数据源点和终点,画出该系统的顶层数据流图;2分析系统的主要功能,细化系统的顶层数据流图,画出系统的第1层数据流图;3细化系统的各个主要功能,画出系统的第2层数据流图。提示:1系统中有三个实体:捐助者、教育单位、基金会的理事会;2系统的主要功能有:收入处理、支出处理、产生报表。其中收入处理可以细分为:接受请求(捐助请求)、确认身份和登记收入(存入款项);支出处理可以细分为:接受请求(用款请求)、合法性检查和登记支出(支出款项);3. 系统需要存储的信息:捐助者信息、教育单位信息和收支状况信息。实验所需的基本技术知识,参

3、见基础知识一。基础知识一、Visio基本绘图知识MicrosoftVisio2003为我们提供了强大的绘图功能,使用Visio中提供的图形模板,我们可以轻松绘制数据流图、系统流程、程序流程图、ER图、UML类图、Gantt图等图形,这些图形是我们在软件工程系统分析和设计过程中使用的非常重要的系统描述工具。利用Visio,我们不仅可以绘制ER图,还可以对一个现有的数据库结构进行反向工程来生成数据库的ER图和具体的表的定义结构。Visio支持包括MicrosoftSQLServer、MicrosoftAccess、Oracle和IBM的DB2在内的多种数据库。首先,我们学习利用Visio进行绘图所

4、需的基本操作。利用Visio进行绘图的大致步骤可以概括如下:1. 打开模板,添加图形.2. 移动图形或者改变图形的尺寸.3. 添加文本.4. 将图纸中的图形连接到一起.5. 格式化图形.6. 保存制图.下面我们将分6个循序渐进的单元学习使用Visio绘图的基本操作。1: 初学绘图在本节,你将学会:1打开模板2在图纸中添加图形3查找图形打开模板1. 在File菜单选择New,然后单击ChooseDrawingType.2. 在Category下,单击某一个分类,并在Template下,单击某一个模板.提示如果你不知道应该选哪一个模板,单击BlockDiagram类别,并单击BasicDiagra

5、m模板。这样会打开BasicShapesstencil,其中包含矩形、圆形、三角形、箭头等基本形状。Visio中可以用于软件工程的模板列举如下,但不限于此:1 系统流程图:File/New/Flowchart/BasicFlowchart2 数据流图:File/New/Flowchart/DataFlowDiagram或者File/New/Software/DataFlowModelDiagram3 实体联系图:File/New/Database/DatabaseModelDiagram4 UML模式图:File/New/Software/UMLModelDiagram5 Window用户接口

6、:File/New/Software/WindowsUserInterface6 Jackson图:File/New/Software/Jackson7 Gantt图:File/New/ProjectSchedule/GanttChart在打开模板之后,你可以采用两种方式将图形添加到你的图中,一是从stencil中拖拽一个图形,一是使用绘图工具绘制。从stencil拖拽一个图形1. 点击stencil标题栏,显示其中的图形2. 从stencil中拖拽一个图形到绘图纸上利用绘图工具绘图?点击任意绘图工具,比如Rectangle或者Ellipse,然后在绘图纸上画出图形从图中删除某个图形?点击这个

7、图形,然后按下DELETE键.有些时候,你选择的template的stencil中没有你需要的图形。例如,当你打开BasicFlowchart模板时,它打开三个stencils:BasicFlowchartShapes,Backgrounds,和BordersandTitles.你会发现其中没有你需要的computer图标.如果是这样,你可以键入名字进行搜索,或者打开其他stencils查找.打开其他stencils1. 在File菜单,指向Stencils,点击OpenStencil.2. 双击某一个文件夹,然后双击某一个stencil,之后查找你需要的图形.查找图形,当你不知道应该打开哪一

8、个stencils的时候1 .在File菜单,点击FindShape.FindShape面板会出现在stencil所在的区域,在绘图纸的左侧.2 .在SearchFor编辑框中,输入一个或者多个可以描述你需要的图形的关键字.3 .点击Go.4 .当你查找到你需要的图形时,从FindShape面板将它拖拽到绘图纸中.提示如果想关闭stencil或者FindShape面板,右键单击标题栏,然后在快捷菜单中,单击Close.练习*OOOo氐1 .在File菜单,指向New,然后单击ChooseDrawingType.2 .在Category下,单击Flowchart,然后在Template下,单击B

9、asicFlowchart.3 .在图纸中添加图形:拖拽Process图形到图纸上.4 .再拖拽一个Process图形到图纸上,将它放在第一个Process图形下方.5 .拖拽一个Decision图形到图纸上,将它放在第二个Process图形下方.6 .拖拽一个Predefinedprocess图形到图纸上,将它放在Decision图形的右侧.7 .拖拽另一个Process图形至ij图纸上,将它放在Decision图形的下方.8 .拖拽一个Terminator图形到图纸上,将它放在最后一个Process图形下方.2:移动图形或者改变图形的尺寸在本节,你将学会:1 .移动图形2 .改变图形的尺寸

10、3 .缩放图形移动某个图形1 .单击工具栏中的Pointer工具区2 .移动鼠标到图形上,鼠标变成十字箭头形状.3 .拖动图形。或者,用键盘上的箭头键移动图形你可以利用绘图纸上的网格对齐图形,或者放置图形到适当的位置.一次移动多个图形1 .按下SHIFT键,点击每个图形.或者,如果你想移动的图形聚在一起,在选中Pointer工具的情况下,点击这些图形周围的空白区域,拖拽鼠标选中所有你想移动的图形.2 .将鼠标放在选中图形的中央.3 .拖动这些图形.或者,用键盘上的箭头键移动图形.提示你可以利用Rotation工具a旋转一个图形.改变图形的尺寸1 .选中Pointer工具.2 .选中图形.3 .

11、其余操作类似在Word中改变图形的大小指定一个或者多个图形的精确尺寸1 .选中一个或者多个图形.2 .在View菜单,点击Size&PositionWindow.3 .在Size&Position窗口中,输入图形的宽度和高度X10mm42,5mmWidth100mmHeight50mmAngle0degPinPosBottDiriLeftX:距离图纸左边沿的距离Y:距离图纸下边沿的距离Width:图形的宽度Height:图形的高度有时,你很难移动或者改变特别小的图形的尺寸.为了能够准确的放置图形的位置,需要将图的一部分进行放大,你可以利用快捷键或者工具栏上的Zoom工具.你也可以利用Pan&Z

12、oom窗口将一个大的图缩小,以观察其全貌.使用快捷键缩放图纸1 .为了放大图的某个部分,选中Pointer工具,然后按下CTRL+SHIFT键,用鼠标拖拽出你想放大的部分.2 .为了迅速缩小图纸以查看你的制图的全貌,你可以按下CTRL+W键.利用Pan&Zoomwindow,缩放图纸1 .在View菜单,单击Pan&ZoomWindow.2 .在Pan&Zoom窗口,拖拽出你想放大的区域,这个区域会被用红色的边框围起来3 .如果你想变换视图,在Pan&Zoom窗口中拖拽红色边框的位置或者大小即可.练习继续前一节的练习.1. 删除最后一个Process图形(在Terminator图形上方的那个P

13、rocess图形).2. 为了更精确的制图,按下CTRL+SHIFT键,用鼠标拖拽出一个区域以放大该区域.3. 选中图中除了Terminator图形之外的其他图形(用shift键或者用拖拽的方式).4. 移动选中的图形到图纸中的适当位置.5. 按下CTRL+W键,看看你的制图的全貌.3:添加文本本节,你将学会:1添加一个图形的文字2添加独立的文字3格式化文字给一个图形添加文字?双击图形,输入文字。或者选中Text工具,点击图形,然后输入文字.将图形中的文字删除?双击图形,图形中的文字呈反显状态,按下DELETE键.或者选中Text工具,点击图形,选中你想删除的文字,然后按下DELETE键.添加

14、独立的文字?点击Text工具,单击你想添加文字的地方,在文本框中输入文字即可.删除独立的文字?点击Pointer工具,点击文字区,然后按下DELETE键.109在绘图纸上移动一个文字区1. 选中Pointer工具,点击文字区.3.拖动文字区到目标位置.格式化文字1. 选择文字a. 选中Pointer工具,点击文字区或者包含文字的图形可以选中整个文字区或者图形内的文字.b. 如果想选择部分文字,则双击文字区或者图形内部的文字。2. 在Format菜单,单击Text,然后在Text对话框中更改文字的属性.或者单击工具栏上的格式化按钮,比如Bold(加粗),Italic(倾斜),或者Underlin

15、e(下划线).如果工具栏中没有这些按钮,右键单击工具栏,然后在快捷菜单中单击Formatting.技巧为了显示更多的文字格式化按钮,你可以右键单击工具栏,然后在快捷菜单中选择FormatText.练习继续前面的练习.添加文字到流程图的图形中1. 单击第一个Process图形,输入1.2. 单击第二个Process图形,输入2.3. 单击Decision图形,输入3.4. 单击Predefinedprocess图形,输入A.5. 单击Terminator图形,输入B.6. 选中流程图中所有图形.7. 为了改变文字的颜色,选择所有图形,单击TextColor按钮右侧的小箭头,选择红色.8. 为了给

16、你的流程图添加一个标题,单击Text工具,在流程图的上方的适当位置单击然后输入123AB.4: 连接图形在本课中,你将学到:1使用Connector工具连接图形;2使用stencil中的connector连接图形;3给connectors添加文字.Connectors可以将图中的图形连接起来,用于标明图形之间的某种关系.在Visio中当你移动被连接的图形时,连接线也会跟着图形移动.注意:如果使用Line工具连接图形,当你移动被连接的图形时,你将不得不重新绘制图形之间的连接线.因此,务必使用Connectors连接图形.连接绘图纸上的图形1. 单击Connector工具.2. 将鼠标移动到需要连

17、接的图形之一,这个图形的边框将变为红色.3. 拖动鼠标到需要连接的另一个图形,这个图形的边框也变为红色.删除connector?单击connector,然后按下DELETE键.利用stencil中的connectors连接图形4. 从stencil中拖出一个connector,然后拖动它的一个端点到需要连接的图形之一,直到图形的边框变成红色,或者connector的端点变成红色.5. 拖动connector的另一个端点到另一个需要连接的图形.提示MicrosoftVisio包含Connectorsstencil,其中包含许多不同类型的connectors.如果你在现有打开的stencils中找

18、不到,可以试试VisioExtras文件夹中的Connectorsstencil.给connectors添加注释文字?选中Pointer工具,单击connector,然后输入文字.5: 格式化图形本节,你将学到:1格式化二维图形;2格式化一维图形;3利用controlhandles改变图形的外观格式化二维图形1. 单击二维图形,也可以选择多个二维图形.2. 采用下面的方法之一:?在Format菜单,单击Line改变直线的颜色、粗细或者样式.?在Format菜单,单击Fill改变填充颜色和填充样式.?单击任何格式化按钮,比如FillColor按钮.提示为了显示更多的格式化按钮,右键单击工具栏,在

19、快捷菜单中单击FormatShape.技巧你可以利用FormatPainter工具将一个图形的格式化属性文字、填充、线等的属性拷贝到另一个图形。单击你想复制格式化属性的图形,单击FormatPainter工具,然后单击你想格式化的图形.格式化一维图形1. 单击一维图形.2. 利用下面方法之一格式化图形:?在Format菜单,单击Line了改变颜色、粗细、样式或者端点.?单击任意格式化按钮,比如LineColor按钮,LineWeight按钮,或者LineEnds按钮.练习格式化流程图中的图形1. 为了改变Decision图形的填充颜色,单击这个图形,单击FillColor按钮,然后选择绿色.2

20、. 为了改变Predefinedprocess图形的边框颜色,单击这个图形,单击LineColor按钮,然后选择灰色.3. 为了减少Predefinedprocess图形的大小,拖动图形的控制句柄.4. 为了调整Line-curveconnector图形的connector的曲线,拖动connector的控制句柄.5. 为了改变Line-curveconnector的样式,单击这个图形,单击LinePattern按钮,然后选择虚线.6:完成和使用Visio制图本课中,你将学到:1预览和打印你的图;2在微软Office产品中使用visio图形你已经掌握了创建Visio图形的基本技能,现在你可以对

21、这个制作好的图进行其他处理。首先,你需要保存它,打印,以其他格式保存,或者将它放在微软的Word文档中。预览和打印1. 单击PrintPreview按钮.2. 如果你需要进行调整或者重新进行打印设置,单击Close按钮,关闭预览窗口.更改图纸,利用File/PageSetup.更改打印设置,利用File/Print,然后单击Properties.3. 在File菜单,单击Print.将图拷贝到Word文档中1. 为了选中图纸中的每一个图形,在Edit菜单,单击SelectAll.10132. 为了复制这些图形,在Edit菜单,单击Copy.4. 打开Word文档,单击你想插入图的位置.5. 选

22、才EEdit菜单,单击Paste插入该图.在Word文档中修改visio图1. 在Word文档中,双击图.MicrosoftVisio在Word中启动,然后你可以象在Visio环境中一样修改这个图.2. 为了退出MicrosoftVisio,返回Word文档,单击图的外Word文档的其他地方即可练习:保存你的流程图,拷贝到Word文档中继续前面的练习。1. 为了保存你的流程图,在File菜单,单击SaveAs.2. 在Filename对话框中,输入文件名,然后单击Save.3. 在Properties对话框,填入任何你需要的信息,然后单击OK.4. 为了选择你的流程图上的所有图形,在Edit菜

23、单,单击SelectAll.5. 为了复制你的流程图,在Edit菜单,单击Copy.6. 启动MicrosoftWord.7. 单击你想插入流程图的位置.8. 为了插入你的流程图,在Edit菜单,单击Paste.1516实验二、利用RationalRose进行面向对象分析实验目的:学会使用Rose进行面向对象分析,创建各种基于UML勺框图。实验内容:本实验将利用Rose支持面向对象分析和设计的功能,设计并创建用于说明某个系统的框图。这个系统可以是你熟知的任何系统。系统的规模不用过大(有310项系统功能即可),比如一个IC卡式的自动电话机,或者自动售货机等系统。实验要求:1 用语言描述这个系统的

24、功能;2利用Rose完成该系统的建模(对象模型、功能模型、动态模型);实验所需的基本技术知识,参见基础知识二。基础知识二、Rose与UMLUML框图UML(统一建模语言,UnifiedModelingLanguage),是最广泛使用的面向对象系统的标准建模方法。它是GradyBooch、JamesRumbaugh博士、IvarJacobson、RebeccaWirfsBrock、PeterYourdon和许多其他人员集体智慧的结晶。其中Booch、Rumbaugh和Jacobson是Rational软件公司的三剑客,着重于UML的标准化和改进。利用UML可以开发几种不同的可视框图,表示系统的不

25、同方面。RationalRose支持开发这些模型的大部分,包括:zBusinessUseCase框图zUseCase框图zActivity框图zSequence框图zCollaboration框图zClass框图zStatechart框图zComponent框图zDeployment框图这些模型框图表示系统的不同方面。BusinessUseCase匡图BusinessUseCase框图表示整个机构提供的功能。用来回答如下问题:公司干什么?为什么要建立系统?BusinessUseCase框图在业务建模活动期间大量用于设置系统情境和形成创建使用案例的基础。下图显示了一家财务公司的简化Busines

26、sUseCase框图。#贷款资金BusinessUseCase框图显示业务用例与业务角色之间的交互。业务用例表示公司执行的过程,而业务角色表示业务要交互的角色,如客户与厂家。也就是说,业务角色表示公司外与公司交互的任何人,而不表示公司内的角色或人员。公司内的角色或人员表示为业务工人。UseCase框图UseCase框图显示使用案例与角色间的交互。使用案例表示从用户角度对系统的要求,因此表示系统功能。角色是系统的主体,表示提供或接收系统信息的人或系统。这个框图显示哪个角色启动使用案例,并显示角色何时从使用案例收到信息。利用UseCase框图可以演示系统的需求。BusinessUseCase框图与

27、自动化过程无关,而UseCase框图则针对自动化过程。业务用例和使用案例之间没有一对一的关系。一个业务用例可能需要30个使用案例来实现其过程。下图是自动柜员机(ATM)系统的UseCase框图。27查阅结余这个UseCase框图显示ATM系统使用案例与角色间的交互。本例中,银行客户启动几个使用案例:取钱、存钱、转帐、付款、查阅结余和改变PIN。UseCase框图显示系统的总体功能。用户、项目管理员、分析人员、开发人员、质量保证工程师和任何对系统感兴趣的人都可以浏览这个框图,了解系统功能。Activity框图Activity框图演示了系统中的工作流。这个框图定义工作流从哪里开始,到哪里结束,工作

28、流中发生哪些活动,这些活动按什么顺序发生。Activity框图中,框图中的活动用圆角矩形表示,这是工作流进行期间发生的步骤。工作流影响的对象用方框表示。开始状态表示工作流开始,结束状态表示工作流结束,决策点用菱形表示,如下图所示。客户服务代表信用部经理可以通过查看Activity框图中的虚线,了解对象的流程。对象流程显示活动使用或创建的对象和工作流过程中对象状态的改变。实线称为过渡,显示一个活动如何导致另一个活动。Activity框图可以分为垂直泳道,每个泳道表示工作流中的不同角色。泳道中的活动就是这个角色的责任。Sequence框图Sequence框图显示使用案例中的功能流程。例如,取钱使用

29、案例有几个可能的程序,如想取而没钱、想取而PIN错等。取20元的正常情形,如下图:读卡机ATM屏幕客户的帐目取钱机a1读卡号工3:屏幕初始名LII111一插卡4:打3帐目,5:握票锚人之ilLI1Ik6:输入PIN用验证PN日提示选择事替U. X TI nur 11g:选择事箔t取钱)j1 0:提示金额 |11:输入金额(加元)13;验油数【2。元)14:扣钱(20元)15:提取钱加元117J%I_艮卡u16:提取收据:,duFji11du这个Sequence框图显示了使用案例的过程流程。框图顶部显示了涉及的角色(用户)和ATM屏幕对象(读卡机、ATM屏幕、客户帐目、取钱机)。每个箭头表示角色

30、与对象或者对象与对象之间为完成所需功能而传递的消息。Collaboration框图Collaboration框图显示的信息与Sequence框图相同,但Collaboration框图用不同方式显示这个信息,具有不同作用。下图对应Sequence框图中的例图。11:输入金额(20元)T择事务(嚓输N5:提示输入PINW/q=一一8:提不选择事翁强二么翦10提小金额卜验证FIN,2:取钱(20元)13:验钱数,20元)14:而熏(20元)用士的怅目供收据在这个Collaboration框图中,对象表示为矩形,角色用简图表示。Sequence框图演示的是对象与角色随时间变化的交互,而Collabor

31、ation框图则不参照时间而显示对象与角色的交互。并且,Collaboration框图中直接通信的对象之间有一条直线,如ATM屏幕和读卡机之间。没有画线的对象之间不直接通信。因此Collaboration框图显示的信息与Sequence框图相同,但Collaboration框图具有不同的作用。Class框图Class框图显示系统中类与类之间的交互。类是对象的蓝图。Class框图中的类是对Sequence框图或Collaboration框图中每种对象创建的。下图是取钱使用案例的Class框图。开发人员可以利用Class框图开发类。设计人员设计好Class框图之后,可以利用Rose产生框架代码,然

32、后开发人员填写具体语言细节。Statechart框图(选做)Statechart框图提供了建模对象各种状态的方式。Class框图提供了类及其相互关系的静态图形,而Statechart框图则可以建模系统的动态功能。Statechart框图显示对象的功能。例如,银行帐目可能有几种不同的状态,可以打开、关闭或透支。帐目在不同状态下的功能是不同的。Statechart框图可以显示这个信息。如下图,显示了银行帐目的Statechart框图。取钱【结余小于0】在这个框图中,我们看到了帐目的不同状态,并看到了帐目如何从一种状态变化到另一种状态。例如,帐目打开而客户请求关闭帐目时,帐目转入关闭状态。客户请求是

33、事件,事件导致帐目从一种状态过渡到另一种状态。如果帐目打开而客户要取钱,则帐目可能转入透支状态。这发生在帐目结余小于0时,框图中显示为【结余小于0】。方括号中的条件称为保证条件,控制过渡能不能发生。有两种特殊状态一一开始状态和停止状态。开始状态在框图中用黑点表示,显示对象首次生成的状态。停止状态用牛眼表示,显示对象删除之前的状态。在Statechart框图中只有一个开始状态。Statechart框图不是对每个类创建,只用于复杂的类。如果类对象有多种状态,每种状态中的表现又大不相同,则可能要对其创建Statechart框图。Component框图(选做)Component框图显示模型的物理视图,

34、也显示系统中的软件组件及其相互关系。框图中有两种组件:执行组件和代码库。在Rose中,模型的每个类映射到源代码组件。一旦创建组件,就加进Component框图中,然后画出组件间的相关性。组件间的相关性包括编译相关性和运行相关性。下图是ATMClient的Component框图。ATMae这个Component框图显示了ATM系统中的客户机组件。ATM屏幕有两个组件,表示ATM屏幕类的头和体。阴影组件称为包体,表示C+中ATM屏幕类的体文件(.cpp)。无阴影组件也称为包规范,这个包规范表示C+类的头文件(.H)。组件ATM.exe是个任务规范,表示处理线程。组件连接所用的虚线表示组件间的相关性

35、。例如,读卡机类与ATM屏幕类相关,即必须有ATM屏幕类才能编译读卡机类。编译所有类之后,即可创建可执行文件ATMClient.exe。编译人员要使用Component框图。Component框图显示组件应以什么顺序编译,框图还显示编译时会创建哪些运行组件。Deployment框图(选做)Deployment框图显示网络的物理布局和各种组件的位置。在ATM例子中,ATM在不同物理设备(或结点)上运行许多子系统。这个Deployment框图显示了系统的主要布局。ATM客户机可执行文件(ATMClient.exe)在不同地点的多个ATM上运行。ATM客户机通过专用网与地区ATM服务器通信。ATM服

36、务器可执行文件(ATMServer.exe)在地区ATM服务器上执行。地区ATM服务器又通过局域网与运行Oracle的银行数据库服务器通信。最后,打印机与地区ATM服务器连接。因此,这个框图显示了系统的物理设备。ATM系统采用三层架构,分别针对数据库、地区ATM服务器和客户机。项目管理员通过这个框图与用户沟通系统的布局。部署人员用Deployment框图进行部署规划。以上介绍的所有这些框图从几个方面描述系统。项目相关人员可以通过不同的框图从不同角度了解项目,执行自己的任务。z整个小组用BusinessUseCase框图了解系统针对的业务;z客户和项目管理员用UseCase框图取得系统的高级视图

37、,确定项目范围;z项目管理员用UseCase框图和文档将项目分解成可管理的小块;z分析人员和客户用使用案例文档了解系统提供的功能;z技术作者用使用案例文档开始编写用户手册和培训计划;z分析人员和开发人员用Sequence和Collaboration框图了解系统的逻辑流程、系统中的对象及对象间的消息;z质量保证人员用使用案例文档和Sequence、Collaboration框图取得测试脚本所需的信息;z开发人员用Class框图和Statechart框图取得系统各部分的细节及其相互关系的信息;z部署人员用Component和Deployment框图显示要创建的可执行文件、DLL文件和其他组件以及这

38、些组件在网络上的部署位置;z整个小组用模型来确保代码遵循了需求,代码可以回溯到需求。RationalRose就是一个可供整个项目组使用的工具。项目组可以利用Rose创建项目的各种框图,供小组成员查看所需信息。此外,Rose还可以帮助开发人员产生框架代码,适用于多种语言,包括C、CORBA、Java、COM、VisualBasic和XML。而且,Rose还可以根据现有系统的代码产生对应的模型。这样Rose就可以实现模型和代码的同步,当模型发生改变时,Rose可以修改代码,作出相应改变;而代码发生改变时,Rose也可以将这个改变加进模型中。Rose模型的四个视图RationalRose是分析和设计

39、面向对象软件系统的强大的可视化工具,可以用来先建模系统再编写代码,从而一开始就保证系统结构合理。利用模型可以更方便地捕获设计缺陷,从而以较低的成本修正这些缺陷。UseCase视图UseCase视图包括系统中的所有角色、使用案例和UseCase框图,还可能包括一些Sequence或Collaboration框图。UseCase视图是系统中与实现无关的视图。它关注系统功能的高层形状,而不关注系统的具体实现方法。利用这个视图确定系统的业务模型和系统使用案例。Logical视图(选做)关注系统如何实现使用案例中提出的功能。提供系统的详细图形,描述组件间如何关联。还包括需要的特定类、Class框图和St

40、atechart框图。利用这些细节元素,开发人员可以构造系统的详细设计。通常,对Logical视图采用两步法。第一步,表示分析类。分析类是独立于语言的类。设计类是具有语言特定细节的类。Logical视图关注的焦点是系统的逻辑结构。在这个视图中,要表示系统组件,检查系统的信息和功能,检查组件之间的关系。重复使用是一个主要目的。通过认真指定类的信息和行为,组合类,以及检查类和包之间的关系,就可以确定重复使用的类和包。Logical视图的主要用户是开发人员和建筑师。开发人员关心创建什么类,每个类包含的信息和功能以及类之间的关系。建筑师更关心系统的总体结构。要负责保证系统结构稳定,并考虑重复使用,系统

41、能灵活地适应需求变化。Component视图(选做)Component视图包含模型代码库、可执行文件、运行库和其他组件的信息。组件是代码的实际模块。组件和Component框图在Component视图中显示。Component视图的主要用户是负责控制代码和编译部署应用程序的人。有些组件是代码库,有些是运行组件。开发人员也用Component视图显示已经生成的代码库和每个代码库中包含的类。Deployment视图(选做)Deployment视图关注系统的实际部署,可能与系统的逻辑结构有所不同。例如,系统可能有三层逻辑结构。界面与业务逻辑分开,业务逻辑与数据库逻辑分开。但部署可能是两层的。界面在一

42、台机器上,而业务和数据库逻辑放在另外一台机器上。Deployment视图还要处理其他问题,如容错、网络带宽、故障恢复和响应事件。使用Rose创建UML框图Rose的屏幕组件Rose界面有五大部分,分别是浏览器、文档窗口、工具栏、框图窗口和日志。它们的作用简单介绍如下:浏览器用于在模型中迅速漫游。文档窗口用于查看或更新模型元素的文档。工具栏用于迅速访问常用命令。框图窗口用于显示和编辑一个或几个UML框图。日志用于查看错误消息和报告各个命令的结果。3339标准工具栏框图工具栏#在浏览器中列出了Rose中的四个视图:UseCase视图、Logical视图、Component视图和Deployment

43、视图。每个视图中可以包含不同的模型元素,比如Logical视图中包含了Class框图、Sequence框图、Collaboration框图、Intefaces接口等模型元素。在创建新的UML框图的时候,可以在适当的视图上单击鼠标右键,在弹出的快捷菜单中选择New,然后选择需要创建的UML框图的类型。这时候,在浏览器窗口的树状结构中会添加一个新的结点,可以修改它的名字。双击该结点,在框图窗口中会弹出这个UML框图的编辑窗口。这时,可以拖拽框图工具栏上的适当图标到框图窗口中,开始绘制UML框图的过程。如果所需图标没有在框图工具栏中出现,用鼠标右键单击该工具栏,选择Customize,增删工具栏上的

44、按钮。实验三、Java代码生成与逆向转出工程代码实验目的:学会使用Rose进行Java代码生成与逆向转出工程代码操作。实验内容:本实验需要自定义三个有关联关系的Java类,然后进行逆向工程过程,将它们转成UML框图。之后,对这个UML框图进行一定的修改,再转出成Java代码。实验要求:1 .用Java语言书写三个类,其中两个类是另一个类的子类;2 将这三个子类用逆向工程过程转成UML框图;3 在UML框图中添加一个新的类,这个类是原有两个子类之一的子类;4 .将更新后的UML类图结构重新转出成Java代码。实验所需的基本技术知识,参见基础知识三。基础知识三、利用Rose生成代码和逆向工程过程R

45、ationalRose最强大的特性之一是能够生成表示模型的代码。代码生成选择随Rose版本不同而不同,目前有三个版本:zRoseModeler可以生成系统的模型,但不支持代码生成和逆向工程过程。zRoseProfessional可以用一种语言生成代码。zRoseEnterprise可以用语言生成代码,这些语言包括Ada83,Ada95,ANSIC,CORBA,Java,COM,VisualBasic,VisualC+,C+和XML,还支持数据库代码生成和逆向工程过程。准备生成代码生成代码的基本步骤有六步:1 检查模型2 创建组件3 将类映射到组件4 设置代码生成属性5 选择类、组件和包6 生成

46、代码第一步:检查模型Rose包括独立于语言的模型检查特性,可以在生成代码之前保证模型一致性。最好先进行这个检查再生成代码,因为它能发现模型中的错误和不一致,使代码正确生成。要检查Rose模型:1 从菜单选择Tools/CheckModel。2 发现的错误写入日志窗口。第二步:创建组件生成C、Java或VisualBasic代码,不需要完成这个步骤。第三步:将类映射到组件生成C、Java或VisualBasic代码,不需要完成这个步骤。第四步:设置代码生成属性代码生成属性控制代码如何生成。Rose提供常用默认设置。例如,Java类的一个代码生成属性是GenerateDefaultConstruc

47、tor,控制类是否自动创建构造器。要浏览代码生成属性,选才ITools/Options,然后选择相应语言标签,例如,下面是Java属性的标签。第五步:选择类、组件和包生成代码时,可以一次生成一个类、一个组件或一个包。第六步:生成代码在框图中选择类或组件后,从菜单Tools中选择相应代码生成选项,如Java/J2EE,再选才iGenerateCode。如果代码生成过程中遇到错误,则这些错误会在日志窗口中标出。生成代码之后,可以利用Tools/Java/J2EE/EditCode查看代码。Rose生成的代码中的元素包括:类(Classed代码中生成模型中的所有类。属性(Attributes)代码包

48、括每个类的属性,包括可见性、数据类型和默认值。操作签名(Operationsignatures)代码中声明操作及其参数、参数数据类型和返回值。3645关系(Relationships)模型中的有些关系会在代码生成时产生,表现在属性上。组件(Components)每个组件由相应源代码文件实现。文档(Documentation)添加文档时,代码生成器在适当的位置插入文档。注:实验时,类的名字最好用英文名字,否则代码生成会出错。用RationalRose逆向工程过程所谓的逆向工程,是指可以利用现有的代码导出系统的UML模型。在逆向转出工程代码过程中,Rose从代码读取组件、包、类、关系、属性和操作。

49、将这些信息读进Rose模型中后,就可以进行所需的改变,然后通过Rose的正向工程特性重新生成代码。通过选择菜单Tools/Java/J2EE/ReverseEngineer可以进行Java代码的逆向工程操作。在这个操作界面中,左上角的窗口用于选择需要进行逆向工程的代码所处的目录位置,右上角则列出了这个目录中所有的java源文件,选中所需文件,点击Add按钮添加到中部的转出文件列表中,然后可以进行进一步选择,之后点击Reverseo转出后的UML类图在Logical视图中,将类拖动到框图窗口中可以看到具体的类的定义信息,而且可以看到该类的关联信息。基础知识四、用Rose生成VisualC十代码和

50、逆向导入过程说明:本部分仅给出一个过程实例一、创建类并自动生成代码1 .在Rose中创建类accountaccount觌d:Integer奥amount:Integer命type:Integer=0 create。 delete。 update。2 .生成类account的代码(1)选择类account(2)选择菜单Tools/VisualC+/UpdateCode47寸国atigMRofc-M.nnlil-Class用现fm:L/就Wfe出/*wUi叫m2工0045如d/nsjgfindM昨匕口才屈*%国*?U0笆M回国国国M国图图国M-Bi“力士|阊1HhMym2用仓库汇总搴醯雨阳网S1曲

51、盘奢存到阳第隹用同困住谟节伸到唱吊的用冽EH牛前HEi114r事bo蜃(b4kJ*Lita-urijuiSiCCMHLt团pBTl.OL(2)*Ift作同塞首或吊.臭fshffi多曲品蝶皮甫&冏朝耙生而品调忖人Q卷M进货HoddRrcpcrtjw、p6drti.ye*?StripeCCRftA1MaModelw加jEEDefiby.LwfJfiEE*Oradol刎ft谑rcNtMt卜MO卸时如血/WtblMBhSfTORiIrJt.,EQ,卜园a&摩钥和国o自岸戏点国Q自库遮贷国O也摩上科国Q卷M修恩带罗m/-x1aJ三.小suN:*+VhnonCartrail*WdMsK,MbModefer

52、*kCfe?忖ii*小,JI溺师|雷学力爵个与0金白。”同嬴高必Qwd.Inport4TL3J0SkRInportMK&0btoddComflertCTnaErequendy阳hsdQuMtionsEropwiBSi.,欹许二。期杳揩导书.由二I出现代码更新向导的界面:管CodeUpdateTool-WelcomeThtCodeUpdateToolttktiyouthrcuththtraetncfetntrtiinccodfromthecoffiponentsinyoursnodeldirecti?intothecorreEpondiziEsourcecodeprojacts.WiththeC

53、cdUpdateToolrounEnratttndupdatesavtralprojectsofdifferentinplementationianEuaEesinthesameoperation.Th电as1。thtMt电。1) Onthenextr*e%selectthecampontn11andcHtstfrom*iuhyou4nttoeratecode.NoftethatclassesmustbeassicnedtalancuageconpontntbtfcrtthycanbeEnratd.2) 5tartthecodeupdatebrclickingtheFimshbutton-3) Fareachugpdatedcomiponentj.conTimthedeletioiiofanjprojectitemsthatihtyMv老b也电力$dfro*thgd电1;4) Whtnthtc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论