uml实验报告1-9讲解 - 图文

更新时间:2023-11-13 18:33:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 UML建模基础

一、实验目的

1. 熟悉UML建模工具Rational rose的可视化环境。 2. 掌握利用Rational rose进行建模的步骤。 二、实验内容

1. 熟悉Rational rose建模环境

(1) 单击“开始—>所有程序—>IBM Rational—>Rational Rose Enterprise Edition”,启动Rational Rose建模环境,软件启动后产生如图1.1所示的建模模型窗口。

图1.1 Rational rose 启动提示界面

(2) 选项卡【new】用来选择新建模型时采用的模板。单机【Details】按钮可以查看选中模板的描述。【Existing】选项卡用于打开一个已经存在的模型。【Recent】选项卡可以打开一个最近打开的模型文件。如暂时不需要任何模板,只需要建立一个新的空白模型文件,单击【Cancel】按钮,显示Rational rose主界面,如图1.2所示。

图1.1 Rational rose主界面

(3) 主界面包含五大部分:导航窗口、绘图窗口、工具栏、文档窗口和日志窗口。

①导航窗口:用于在模型中迅速漫游。导航窗口类似于windows操作系统的资源管理器,它以树形结构显示了模型中的所有元素,包括参与者、用例、类、组件等。利用导航窗口可以:

a) 增加模型元素

参与者、用例、类、组件、框图。

b) 浏览现有模型元素。 c) 浏览现有模型元素间的关系。 d) 移动模型元素。 e) 更名模型元素。 f) 将模型元素加进框图。 g) 将文件或UML链接到元素。 h) 将元素组成包。 i) 访问元素的详细规范。 j) 打开图形。

导航窗口四个视图根结点。

图1.3 导航窗口

a) 用例视图(Use Case View):用于管理需求分析获取的所有用例、参与者和用例图。

b) 逻辑视图(Logic View):分析和设计完成的所有制品(如类图、对象图、顺序图、活动图、状态图等)放置在逻辑视图中。

c) 组件视图(Component View):逻辑视图中的类实现后成为软件的组件,可以放在组件视图中创建这些组件,并绘制组件图描述它们之间的依赖关系。

d) 部署视图(Deployment View):系统最终要实现物理部署,在部署视图中创建物理系统中的节点和节点的连接,并描述软件组件在物理节点中的分布。

②绘图窗口:当在导航窗口中选中某个图双击后,就会打开一个绘图窗口并显示该图,可以使用左边工具栏进行绘图。根据图型的不同,工具栏提供与之相应的图形符号。

③工具栏:提供了所有UML中的图示符号,包括用例、参与者、类、关系、注释等等,按下任意一个图形元素,就可以在绘图窗口中绘制出来。

④文档窗口:图形符号提供的信息经过了抽象和压缩,提供的信息量有限,每张图或每个图形元素的详细信息可以补充在文档窗口中。比如书写用例规约时,只要在绘图窗口中点击选中某个用例,然后在文档窗口中输入规约内容,系统就会自动保存文档内容,并与该用例关联起来。

⑤日志窗口:使用Rose工具时,有些信息会在日志窗口中显示出来,比如在生成代码时可能发生的任何错误。

2. 建模基本步骤

(1) 启动Rational rose软件,建立空白模型文件。

(2) 双击Use Case View 节点下的main,出现如图1.4所示,为绘制用例图做好准备。

图1.4 绘制用例图

(3) 添加参与者:在图1.4中的工具栏选取Actor图标,在右边的图中添加一

个Actor,选中新添加的Actor,单击鼠标右键,出现如图1.5所示的快捷菜单,选择“Open Specification”

项,打开该Actor的设置对话框,如图1.6所示。在name框中为该参与者命名为学生,单击【OK】按钮。

图1.5 Actor设置

图1.6 Actor命名

(4) 添加用例:如图1.7在左边的用例工具栏选取用例图标,在右边的图中添加一个Use Case,选中新添加的“Use Case”,单击鼠标右键,选择“Open Specification”项,打开该Use Case的设置对话框,如图1.8所示。在name框中为该用例命名为“登陆系统”,在Documentation框中键入“登陆”的用例规格说明,单击【OK】按钮。从此以后只要选中“登陆系统”用例,则界面上的文档窗口就会显示其对应的用例规格说明。

图1.7 添加用例

图1.8 用例命名

(5) 按照(4)反复操作,分别加入“成绩查询”、“退出系统”、“输入系统密码”、“找回系统密码”用例,如图1.9所示。

图1.9 用例添加

(6) 用例的实现:在绘出了参与者和用例后,接下来的是绘制参与者与用例实现,如图1.10所示。

图1.10 用例实现

(7) 绘制用例间的关系:根据需求分析可得出“找回系统密码”是“登陆系统”的扩展,用例“登陆系统”包含用例“输入密码”。如图1.11,利用工具栏依赖关系图标绘制相应关系。同时右键在Open Specification按钮(如图1.12),在相应对话框中设计依赖关系的类型,设置结果如图1.13所示。

图1.11 用例间关系

1.12 类型设置

1.13 图形结果

(8) 保存模型:选择菜单栏【File->Save】或者标准工具栏的【Save】按钮,可以保存已建立好的系统模型,UML中模型文件扩展名为.mdl。

3. 结合日常生活中实际使用的系统,模仿2中的用例模型绘制用例图,并

保存模型,熟悉利用Rational rose的建模过程,要求绘制的用例图中用例与2中的用例图不相同。

实验二 用例图

一、实验目的

1. 熟悉UML用例图的基本图形元素。 2. 掌握用例与用例之间的各种关系。

3. 熟悉针对具体场景使用例图进行软件建模的方法。

4. 掌握用例规格说明的概念和基本结构,以及用例规格说明的作用。 二、实验内容

1. 根据实验一建模实例,熟悉利用Raional rose软件绘制用例图的基本方法。

2. 通过对“学生信息管理系统”的需求描述,确定系统用例图: “学生信息管理系统”的需求描述如下:

? 在每个新学年开始都会有新生入学,这时系统的管理人员可以通过系统

将这些新生的学籍、年龄、家庭住址、性别、身高、学生证号、身份证号等基本信息存入数据库,每个新生都对应一个唯一的编号,此编号可

以是学生,在日程管理中,系统管理员还可以对所有学生的基本信息进行查询、修改和删除等操作;同时校领导可以查询、修改全校所有学生的基本信息。

? 学校领导可以通过本系统了解每个班的任课教师、辅导员、学生姓名、

学生人数、专业等班级基本信息。系统管理员可以进行查询班级基本信息、添加班级、修改班级基本信息、删除班级等操作。

? 在考试结束以后,教师可以将学生的考试成绩录入系统,还可以对学生

的成绩进行查询和修改。学生可以通过本系统进行成绩的查询。 ? 学生还可以在网上选择自己选修的课程(必修课必须上,所以不用选),学

生通过本系统可以看到有哪些课程可以选以及课程的基本信息。课程的基本信息包括:课程号、所属专业、课程名称、开课学期、学时数、学分、任课教师等。每个学生每学期的选修课程数不得大于6门,如果已经选择了6门课程则不能再选择其他课程。只有将已选择的课程删除掉才能再选择新课程。系统管理员负责修改、增加、删除选修课程。 ? 系统管理员可以对系统的账号进行添加、设置、删除、查询等操作,同

时可以设置每个账号的权限以及对应的个人信息。 a) 请根据上述描述,确定系统的参与者 b) 确定系统的用例并绘制完整的用例图。

3. 根据2中所绘制的“学生信息管理系统”用例图,写出学生“选择课程”用例的用例规格说明。

“选择课程”用例规格说明

用例编号: 用例名称: 简要说明: 参与者: 前置条件: 后置条件: 基本事件流 UC21 选择课程 用户选择课程并保存 学生、教师、校领导、管理员 用户正确登录系统 成功完成选课并保存 1.用户向系统发送选课请求 2.用户选择欲选课程 3.系统核对用户身份条件 4.选课成功并且自动保存 扩展事件流: 3a身份条件验证失败,显示选择所需条件并提示重新选择或者放弃选课 3a 1)用户重新选择课程,跳转到2

3a 2)放弃选课,终止操作

4. 考虑一个网络订餐系统的需求,并绘制出完整的用例图。

实验三 类图

一、实验目的

1. 熟悉UML中类的定义和图形符号。

2. 掌握类与类之间的各种关系代表的含义及表示方法。 3. 掌握类图的绘制方法。 4. 了解对象图的绘制方法。 二、实验内容

1. 按照如下操作要求,绘制图书管理系统各类图,掌握绘制类图的步骤:

(1) 新建模型文件,打开模型文件中的逻辑视图(Logical View),用鼠标右击逻辑视图,在弹出来的菜单中选择“New→Class diagram”项,创建“图书馆业务功能”类图,如图3.1所示。

图3.1 新建类图

(2) 双击新建的“图书馆业务功能”类图,并点右边控件集中选中的“Class”图标,并用鼠标在图中拖出一个类图,并命名为Book,如图3.2所示。

图3.2 新建类

(3) 下一步为设置Book类的属性,在类图中双击Book类,可以在打开的“Class Specification”对话框中设置Book类的属性和方法等其他的信息;点击“Attributes”选项卡,此选项卡可以设置类的属性,在图中间单击右键,可以看到有一个“Insert”的选项,选中这个选项,然后在出现的对话框中输入相关信息,即书本的ISBN号属性,在“Type”方框内输入此属性的类型值,同时可以看到一栏可以设置此属性的访问权限,一般将属性设置为“private”。Book类的其他属性也可以按照以上的做法设置,具体操作过程如图3.3所示。

图3.3 类的属性设置

(4) 设置好Book类的属性,即可以设置Book类的方法(操作)。双击Book类后在“Class Specification”对话框中选“operations”选项卡,在图中的空白地方,单击右键,在弹出的菜单中选“insert”选项,输入方法名,同时可以设置该方法的返回类型以及可见性,并可以在Documentation的方框内填写一些相关的方法说明,具体设置方法见图3.4。

图3.4 类的方法设置

(5)完成上述操作即可完成类的设置,如图3.5所示。

图3.5 类

2. 根据以下描述画出类图,并注明多重性关系(省略类的属性和关系):

? 一个学生可以选修多门课程,也可能没有任何课程;一门课程可以

被多个学生选修;一个老师可以教多门课程或者不教课;每门课程至少有一个老师,也可以有多个老师任教;每门课程可以有0或1本教材,每本教材只能用于一门课程。

3. 根据下面的代码画出Course类的类图,要求标明各属性的类型和可见性

以及类方法。

class Course { private: string courseName; string teacher; string student[100]; const int courseNum; static double courseAverScore; public: Course(); void SetCourseTeacher(string teacher); double CaculateScore(int studentNum=1); }; double Course::courseAverScore=0.0;

4. 根据以下描述,画出相应的UML类图:

(1) 神舟六号飞船是神州飞船系列的一种,它由轨道舱、返回舱、推进

舱和逃逸救生塔等组成。

(2) 航天员可以在返回舱内驾驶飞船,轨道舱是航天员工作和休息的场

所。在紧急的情况下,颗粒利用逃逸救生塔逃生。 (3) 在飞船两侧有多个太阳能电池翼,可以为飞船提供电能。

5. 在下图中最上面的对象的名称是什么?该图表示的意思是什么?

China:CountryfuJian:ProvincesiChuan:Province

图3.6 对象图

6. 针对实验二中的“学生信息管理系统”绘制类图,要求注明类间的关系

以及每个类应有的属性和方法(省略属性的类型以及方法的返回值、参数)。

实验四 状态图

一、实验目的

1. 掌握状态的定义和组成部分。 2. 掌握UML中状态的表示方法。 3. 掌握转换的定义及转换的5要素。 4. 解触发事件、监护条件、动作的定义。 5. 掌握阅读和绘制状态图的方法。 二、实验内容

1. 阅读计算机线程的状态图,完成下列问题。

图1 状态图

(1) 该图中线程有几种状态?分别是什么?

初态、就绪、运行、阻塞、终态 (2) 请使用文字描述线程的基本运行过程。

线程开始进入就绪态,当获得cpu时间片进入运行态,如果运行结束进入终态,但是如果时间片用完就回到就绪态,运行期间如果不满足所需资源进入阻塞态,处于阻塞态的如果资源满足又会重新进入就绪态。 2. 根据问题描述,完成电梯状态图绘制。

电梯开始处于空闲状态(idle),当有人按下按钮要求使用电梯时(事件is required发生),电梯进入运行状态(run)。如果电梯的当前楼层比想要的楼层高时(监护条件[currentFloor>desiredFloor]成立),电梯进入下降状态(moving down);反之,如果电梯的当前楼层比想要的楼层低时(监护条件[currentFloor

3. 根据问题描述,完成手机状态图绘制。

当手机开机时,它处于空闲状态(idle),当用户使用电话呼叫某人(call someone)时,手机进入拨号状态(dialing)。如果呼叫成功,即电话接通(connected),手机就处于通话状态(working);如果呼叫不成功(can’t connect),例如对方线路有问题,关机、拒绝接听。这时手机停止呼叫,重新进入空闲状态,手机进入空闲状态下被呼叫(be called),手机进入响铃状态(ringing),如果用户接听电话(pick),手机处于通话状态,当手机进入通话状态时自动进行计时,通话结束手机自动停止计时,通话过程中手机可以实时显示通话时间;如果用户未做出任何反应(haven’t acts),可能他没有听见铃声,手机一直处于响铃状态,如果用户拒绝来电(refused),手机回到空闲状态(idle)。

实验五 活动图

一、实验目的

1. 掌握活动的概念以及表示方法。

2. 掌握活动图中个元素表示的意义和表示方法。 3. 掌握分支、监护条件、分岔、汇合和泳道的概念。 4. 掌握阅读和绘制活动图的方法。 二、实验内容

1. 依据下列要求绘制活动图:

绘制“删除读者信息”用例的活动图(原始用例图自行绘制)。删除读者信息一般按照以下步骤进行:

(1) 管理员在录入界面,输入待删除的读者名; (2) “业务逻辑”组件在数据库中查找待删除的读者名;

(3) 如果不存在,则显示出错信息,返回步骤(1),如果存在则继续; (4) “业务逻辑”组件判断“待删除的读者”是否可以删除;

(5) 如果不可以,则显示出错信息,返回步骤(8),如果可以则继续; (6) 在数据库中,删除相关信息; (7) 显示删除成功信息; (8) 结束。

(1) 在用例图中,找到“删除读者信息”的用例,如图1所示,在“删除读者信息”用例上单击右键,在弹出的快捷菜单中选“New”,Rose工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。

图 1 用例图

(2) 新建好活动图后,双击“删除读者信息”的活动图,得到如图2所示,然后在左边的工具栏内点击“Swimlane”,在右边的图添加一个泳道,如图3所示,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool,得到图4。

图2 图3

图4

(3) 在左边的工具上选取“Start State”,并在administrator的泳道上添加,如图5所示;添加完开始结点后,再来为此活动图添加活动,图6所示,在左边的工具栏上选中“Activity”这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系,如图7所示。

图5 图6 图7

(4) 完成步骤(3)后,登录输入需要对输入的信息进行验证,则在图中利用“Decision”图标添加一个验证框,如图8所示:添加验证框后,验证的内容,如果通过,则允许管理员进行查询操作,如图9所示;如不能通过,则结束,如图10所示。

图8 图9 图10

(5) 验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete,如图11和图12所示。

图11 图12 (6)最后,在删除后,系统会返回操作结果给操作者,图13所示;删除成功或删除失败系统都会有信息返回给操作者。

图13

(7)根据分析设计情况,进一步添加或细化活动图。

2. 下图中表示某公司的销售过程活动图,请用文字详细说明。

图14

【活动图说明】

(1) 收到订单:收到客户的订单。

(2) 分叉:同时进行准备货物(3)和开具发票(6) (3) 准备货物:准备货物。

(4) 分支:判断是否是加急件,是的话发EMS跳到步骤(8) (5) 普通包裹:发普通包裹。 (6) 开具发票:开具发票。 (7) 收款:根据订单收款。

(8) 汇合节点:如果收款和发送都完成,进行下一步。 (9) 关闭订单:关闭订单,交易完成 (10)

结束

3. 用活动图表示for(i=0;i<9;i++)循环。

4. 按照如下远程网络教学系统绘制活动图:

对于“远程网络教学系统”学生登录后可以下载课件。在登录时系统需要验证用户的登录信息如果验证通过系统会显示所有可选服务。如果验证失败则登录失败。当用户看到系统显示的所有可选服务后可以选择下载服务然后下载需要的课件。下载完成后用户退出系统则会注销相应的用户信息。

5. 试画出ATM自动取款机“取款”用例的活动图。其事件流文档如下:

(1) 用户选择取款; (2) 系统要求输入取款金额; (3) 用户输入取款金额; (4) 系统验证取款金额;

(4a) 余额不足;

(4a1)系统显示余额不足; (4a2)用例终止;

(5) 系统询问是否打印凭条; (6) 用户选择不打印凭条; (7) 系统显示取款成功; (8) 结束。

实验六 顺序图

一、实验目的

1. 了解顺序图的概念。

2. 掌握顺序图中个元素表示的意义和表示方法。 3. 掌握顺序图建模的流程。

二、实验内容

1. 按照如下步骤绘制顺序图:

(1) 在“Logical View”中新建“Sequence Diagram“,双击图标,出现

图6.1,为编辑顺序图做好准备。

图6.1

(2) 在顺序图编辑窗口中,从工具栏中选择Object图标,在右边的绘图

区中添加一个新元素,并取名Customer表明新增一个对象,如图6.2所示。

图6.2

(3) 同样的方法,添加ATM对象和Account对象,如图6.3所示。

图6.3

(4) 根据ATM取款的场景,获得第一条消息为“客户向ATM机提交取

款需求”,向图中添加消息,如图6.4所示。

(13) 如果可以选课,则向数据库中添加关联信息。 (14) 向界面对象返回信息。

4. 绘制网络订餐系统中订餐用例交互过程的协作图。

实验八 组件图与配置图

一、实验目的

1. 了解组件的概念以及引入组件的原因。 2. 掌握组件的要素,组件和类的比较。 3. 掌握UML中组件图配置图的图形元素。 4. 掌握阅读和绘制组件图和配置图的方法。 5. 了解组件图和配置图的应用。 二、实验内容

1. 根据要求绘制组件图。 分析:

在LSTC的图书馆管理系统中,通过分析可以发现类图中的类应分为4个部

分:

(1) 用户接口模块(UI),主要负责系统和用户的交互,包括Frame类,Dialog

类等。

(2) 业务对象模块(BO),主要负责处理系统中的业务计算,如借书,还书

等功能的具体操作。

(3) 数据存储模块(DB),主要负责处理对数据的存储。 (4) 通用工具模块(UTIL),包括系统中通用函数。

通过一个主程序StartClass来启动。由于系统中的类较多,这里以业务对象模块(BO)为例来讲解如何创建组件图,BO模块中包括:

Item类:书目类,表示一本(不是一种)实际存在的书籍或杂志; Loan类:借书业务类,将借阅者和图书馆关联起来,一个Loan对象表示借出的一本书;

BorrowerInfomation类:借阅者信息类,表示一个借阅者;

Title类:表示一种书或一种杂志。如《C++编程思想》就是一种书,用1个title对象表示,如果有2本这样的书,则需要用2个Item对象表示;

Reservation类:预定信息类,表示一个预定信息。

Item类和Loan类之间互相依赖,Loan类和BorrowerInfomation类之间互相依赖,BorrowerInfomation类和Reservation类之间互相依赖,Reservation类和Title之间互相依赖,Title和Item类之间互相依赖。 绘图步骤:

(1) 在组件视图中双击Main图,出现图1,为编辑组件图做好准备,这时绘

图工具栏中的图标如图中椭圆所示。

图1

(2) 在组件视图中,从工具栏中选择MainProgram图标,在右边的绘图区中

添加一个新组件,并取名StartClass.java表明新增一个主程序。

图2

(3) 选择新创建的组件点击鼠标右键,在弹出的菜单中选择“Open

Sepcification”,如图3。

图3

(4) 在对话框中,可以修改组件的名称,设置组件的类型,指定实现的语言。

这里新组件的名称定为“StartClass.java”,组件构型为Main Program(Rose中提供了多种构型),实现语言为JAVA(Rose中默认的是分析语言Analysis),修改结果如图4所示。

图4

(5) 组件图描述的是系统的实现视图,因此要指定实现组件功能的文件。点

击File选项卡,在列表框中点击鼠标右键,在弹出的菜单中选择“Insert File”,弹出文件对话框。在对话框中,键入StartClass.java,点击“打开”按键,这时对话框如图5所示。

图5

(6) 双击StartClass.java,弹出是否创建对话框,询问是否创建文件,选择

“YES”,弹出记事本,这时可输入相应的源程序(注意:如果这里选择的文件已经存在,则不会弹出创建文件对话框,而是直接显示相应文件内容)。

(7) 创建相应的包。选择包图标,在右图中创建。这里同样需要对每个组件

打开“Open Specification”对话框,设置具体的属性,对“包”组件来说需要在Files选项卡中指明与其对应的目录。创建完毕的组件图如图6所示。

本文来源:https://www.bwwdw.com/article/y3ev.html

Top