2015春2014级面向对象与UML实验指导书

更新时间:2023-11-21 23:41:01 阅读量: 教育文库 文档下载

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

《面向对象与UML》

实验指导书

适用专业: 软件工程

编写者:面向对象与UML课程组

2015年3月

共25 页,第 1页

一、基本目的

面向对象与UML是以介绍面向对象的统一建模语言UML为主,使学生了解面向对象技术的相关概念,熟悉UML分析和设计的基本方法,同时掌握在Rational Rose环境下使用UML建模语言进行软件模型分析和设计的相关技术。

本课程的实验课程是UML程序设计教学的重要技能环节。通过实验,使学生加深理解、验证、巩固课堂教学内容,提高学生使用UML建模语言进行软件设计分析的能力,实验课程重点培养学生在Rational rose环境下对UML4种视图以及9种图的使用。

二、实验环境

使用IBM Rational rose7.0集成开发环境。 三、实验要求

1. 每人独立完成实验和实验报告。每个实验包括多个实验题目,要求每个实验在规定时间内设计完成所有实验题目,并按照要求提交实验报告。

2. 预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前进行思考和分析。

3. 遵守机房纪律,服从辅导教师指挥,爱护实验设备。 4. 实验课程不迟到。如有事不能出席,需请假。 四、实验内容

表1 实验内容及时间安排

序号 实验1 实验2 实验3 实验4 实验5 实验6 实验7 实验8 实验9 实验内容 UML建模基础 用例图 类图 状态图 活动图 时序图 协作图 组件图与配置图 双向工程 参考实验课时数 2 2 4 2 2 2 2 2 2 共25 页,第 2页

计划开设周次 5 6 7,8 9 11 12 14 15 16 合计 五、实验报告

20 每人针对每个实验提交一份实验报告。实验报告主要包括四方面内容: 1. 实验目的:该实验需要学生掌握的内容。 2. 实验题目:实验题目具体内容。

3. 实验结果:利用Rational rose得到的建模结果。

共25 页,第 3页

实验一 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主界面

共25 页,第 4页

(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中的图示符号,包括用例、参与者、类、关系、注释等等,按下任意一个图形元素,就可以在绘图窗口中绘制出来。

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

共25 页,第 5页

⑤日志窗口:使用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设置

共25 页,第 6页

图1.6 Actor命名

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

图1.7 添加用例

图1.8 用例命名

共25 页,第 7页

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

图1.9 用例添加

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

图1.10 用例实现

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

共25 页,第 8页

图1.11 用例间关系

1.12 类型设置

1.13 图形结果

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

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

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

共25 页,第 9页

实验二 用例图

一、实验目的

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

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

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

1. 根据实验一建模实例,熟悉利用Raional rose软件绘制用例图的基本方法。 2. 通过对“学生信息管理系统”的需求描述,确定系统用例图: “学生信息管理系统”的需求描述如下:

? 在每个新学年开始都会有新生入学,这时系统的管理人员可以通过系统将这些新生的学籍、年龄、家庭住址、性别、身高、学生证号、身份证号等基本信息存入数据库,每个新生都对应一个唯一的编号,此编号可以是学生,在日程管理中,系统管理员还可以对所有学生的基本信息进行查询、修改和删除等操作;同时校领导可以查询、修改全校所有学生的基本信息。

? 学校领导可以通过本系统了解每个班的任课教师、辅导员、学生姓名、学生人数、专业等班级基本信息。系统管理员可以进行查询班级基本信息、添加班级、修改班级基本信息、删除班级等操作。

? 在考试结束以后,教师可以将学生的考试成绩录入系统,还可以对学生的成绩进行查询和修改。学生可以通过本系统进行成绩的查询。

? 学生还可以在网上选择自己选修的课程(必修课必须上,所以不用选),学生通过本系统可以看到有哪些课程可以选以及课程的基本信息。课程的基本信息包括:课程号、所属专业、课程名称、开课学期、学时数、学分、任课教师等。每个学生每学期的选修课程数不得大于6门,如果已经选择了6门课程则不能再选择其他课程。只有将已选择的课程删除掉才能再选择新课程。系统管理员负责修改、增加、删除选修课程。

? 系统管理员可以对系统的账号进行添加、设置、删除、查询等操作,同时可以设置每个账号的权限以及对应的个人信息。

a) 请根据上述描述,确定系统的参与者 b) 确定系统的用例并绘制完整的用例图。

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

共25 页,第 10页

说明。

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

共25 页,第 11页

实验三 类图

一、实验目的

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

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

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

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

图3.1 新建类图

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

图3.2 新建类

共25 页,第 12页

(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。

共25 页,第 13页

图3.4 类的方法设置

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

图3.5 类

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

? 一个学生可以选修多门课程,也可能没有任何课程;一门课程可以被多个学生选修;一个老师可以教多门课程或者不教课;每门课程至少有一个老师,也可以有多个老师任教;每

共25 页,第 14页

门课程可以有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. 针对实验二中的“学生信息管理系统”绘制类图,要求注明类间的关系以及每个类应有的属性和方法(省略属性的类型以及方法的返回值、参数)。

共25 页,第 15页

实验四 状态图

一、实验目的

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

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

图1 状态图

(1) 该图中线程有几种状态?分别是什么? (2) 请使用文字描述线程的基本运行过程。 2. 根据问题描述,完成电梯状态图绘制。

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

共25 页,第 16页

2分钟后,电梯门自动关上(door close),如果有更多的电梯使用请求,进入运行状态(run),反之,则进入空闲状态(idle)。

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

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

共25 页,第 17页

实验五 活动图

一、实验目的

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

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

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

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

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

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

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

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

图 1 用例图

共25 页,第 18页

(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

共25 页,第 19页

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

图11 图12

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

图13

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

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

共25 页,第 20页

图14

3. 用活动图表示for(i=0;i<9;i++)循环。 4. 按照如下远程网络教学系统绘制活动图:

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

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

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

(4a) 余额不足;

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

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

共25 页,第 21页

实验六 顺序图

一、实验目的

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所示。

共25 页,第 22页

图6.3

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

中添加消息,如图6.4所示。

图6.4

(5) 同样的方法添加其它消息,如图6.5所示。

图6.5

共25 页,第 23页

2. 用文字说明下列书序图的含义:

3. 对如下交互序列用序列图进行描述:

(1) 李老师希望通过系统查询到某名学生的学科成绩信息; (2) 李老师通过用户界面录入学生的学号;

(3) 用户界面根据学生的学号向数据库访问层请求学生信息; (4) 数据库访问层根据学生的学号加载学生信息;

(5) 数据库访问层根据学生信息和学科科目获取该名学生的分数信息; (6) 数据库访问层将学生信息和分数信息提供给用户界面; (7) 用户界面将学生信息和分数信息显示出来; 4. 对上述题目中的如下备选过程采用顺序图进行描述:

(1) 该名学生没有学科成绩:数据库访问层返回学科成绩为空,系统提示李老师没

有该学生的成绩;

(2) 系统没有该学生的信息:数据库访问层返回学生信息为空,系统提示李老师学

生不存在。

5. 用户打印文件,计算机向打印机发送打印命令,如果打印机空闲,则直接打印文

件,否则将打印文件存储到打印队列之中。绘制上述过程的顺序图。

共25 页,第 24页

实验七 协作图

一、实验目的

1. 了解协作图的概念。

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

二、实验内容

1. 根据实验六中题目5所绘制的顺序图生成协作图。(F5或者工具栏Browse->Create

Collaboration Diagram)

2. 根据实验六中题目3的描述绘制协作图。 3. 根据下列交互过程描述,绘制协作图。

(1) 学生通过界面发送选课命令。 (2) 界面向控制对象请求课程信息。 (3) 控制对象向数据库发送查询数据消息。 (4) 控制对象暂存数据库的查询结果。

(5) 界面对象从控制对象中取得所有的课程信息。 (6) 在界面上显示所有的课程信息。

(7) 界面对象发送命令要求控制对象删除课程信息。 (8) 学生选择课程。

(9) 界面对象要求学生输入学号。

(10) 界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。 (11) 控制对象从数据库中查询关联信息。 (12) 控制对象判断是否可以选课。

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

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

共25 页,第 25页

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

Top