春级面向对象与UML实验指导书.docx
《春级面向对象与UML实验指导书.docx》由会员分享,可在线阅读,更多相关《春级面向对象与UML实验指导书.docx(10页珍藏版)》请在冰豆网上搜索。
春级面向对象与UML实验指导书
2022春2022级面向对象与UML实验指导书
《面向对象与UML》
适用专业:
软件工程
编写者:
面向对象与UML课程组
2022年3月
共25页,第1页
一、基本目的
面向对象与UML是以介绍面向对象的统一建模语言UML为主,使学生了解面向对象技术的相关概念,熟悉UML分析和设计的基本方法,同时掌握在RationalRoe环境下使用UML建模语言进行软件模型分析和设计的相关技术。
本课程的实验课程是UML程序设计教学的重要技能环节。
通过实验,使学生加深理解、验证、巩固课堂教学内容,提高学生使用UML建模语言进行软件设计分析的能力,实验课程重点培养学生在Rationalroe环境下对UML4种视图以及9种图的使用。
二、实验环境
使用IBMRationalroe7.0集成开发环境。
三、实验要求
1.每人独立完成实验和实验报告。
每个实验包括多个实验题目,要求每个实验在规定时间内设计完成所有实验题目,并按照要求提交实验报告。
2.预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前进行思考和分析。
3.遵守机房纪律,服从辅导教师指挥,爱护实验设备。
4.实验课程不迟到。
如有事不能出席,需请假。
四、实验内容
表1实验内容及时间安排
序号实验1实验2实验3实验4实验5实验6实验7实验8实验9实验内容UML建模基础用例图类图状态图活动图时序图协作图组件图与配置图双向工程参考实验课时数224222222共25页,第2页
计划开设周次567,891112141516合计五、实验报告
20每人针对每个实验提交一份实验报告。
实验报告主要包括四方面内容:
1.实验目的:
该实验需要学生掌握的内容。
2.实验题目:
实验题目具体内容。
3.实验结果:
利用Rationalroe得到的建模结果。
共25页,第3页
实验一UML建模基础
一、实验目的
1.熟悉UML建模工具Rationalroe的可视化环境。
2.掌握利用Rationalroe进行建模的步骤。
二、实验内容
1.熟悉Rationalroe建模环境
(1)单击“开始—>所有程序—>IBMRational—>RationalRoeEnterprieEdition”,启动RationalRoe建模环境,软件启动后产生如图1.1所示的建模模型窗口。
图1.1Rationalroe启动提示界面
(2)选项卡【new】用来选择新建模型时采用的模板。
单机【Detail】按钮可以查看选中模板的描述。
【E某iting】选项卡用于打开一个已经存在的模型。
【Recent】选项卡可以打开一个最近打开的模型文件。
如暂时不需要任何模板,只需要建立一个新的空白模型文件,单击【Cancel】按钮,显示Rationalroe主界面,如图1.2所示。
图1.1Rationalroe主界面
共25页,第4页
(3)主界面包含五大部分:
导航窗口、绘图窗口、工具栏、文档窗口和日志窗口。
①导航窗口:
用于在模型中迅速漫游。
导航窗口类似于window操作系统的资源管理器,它以树形结构显示了模型中的所有元素,包括参与者、用例、类、组件等。
利用导航窗口可以:
a)增加模型元素参与者、用例、类、组件、框图。
b)浏览现有模型元素。
c)浏览现有模型元素间的关系。
d)移动模型元素。
e)更名模型元素。
f)将模型元素加进框图。
g)将文件或UML链接到元素。
h)将元素组成包。
i)访问元素的详细规范。
j)打开图形。
导航窗口四个视图根结点。
图1.3导航窗口
a)用例视图(UeCaeView):
用于管理需求分析获取的所有用例、参与者和用例图。
b)逻辑视图(LogicView):
分析和设计完成的所有制品(如类图、对象图、顺序图、活动图、状态图等)放置在逻辑视图中。
d)部署视图(DeploymentView):
系统最终要实现物理部署,在部署视图中创建物理系统中的节点和节点的连接,并描述软件组件在物理节点中的分布。
②绘图窗口:
当在导航窗口中选中某个图双击后,就会打开一个绘图窗口并显示该图,可以使用左边工具栏进行绘图。
根据图型的不同,工具栏提供与之相应的图形符号。
③工具栏:
提供了所有UML中的图示符号,包括用例、参与者、类、关系、注释等等,按下任意一个图形元素,就可以在绘图窗口中绘制出来。
④文档窗口:
图形符号提供的信息经过了抽象和压缩,提供的信息量有限,每张图或每个图形元素的详细信息可以补充在文档窗口中。
比如书写用例规约时,只要在绘图窗口中点击选中某个用例,然后在文档窗口中输入规约内容,系统就会自动保存文档内容,并与该用例关联起来。
共25页,第5页
⑤日志窗口:
使用Roe工具时,有些信息会在日志窗口中显示出来,比如在生成代码时可能发生的任何错误。
2.建模基本步骤
(1)启动Rationalroe软件,建立空白模型文件。
(2)双击UeCaeView节点下的main,出现如图1.4所示,为绘制用例图做好准备。
图1.4绘制用例图
(3)添加参与者:
在图1.4中的工具栏选取Actor图标,在右边的图中添加一个Actor,选中新添加的Actor,单击鼠标右键,出现如图1.5所示的快捷菜单,选择“OpenSpecification”项,打开该Actor的设置对话框,如图1.6所示。
在name框中为该参与者命名为学生,单击【OK】按钮。
图1.5Actor设置
共25页,第6页
图1.6Actor命名
(4)添加用例:
如图1.7在左边的用例工具栏选取用例图标,在右边的图中添加一个UeCae,选中新添加的“UeCae”,单击鼠标右键,选择“OpenSpecification”项,打开该UeCae的设置对话框,如图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,利用工具栏依赖关系图标绘制相应关系。
同时右键在OpenSpecification按钮(如图1.12),在相应对话框中设计依赖关系的类型,设置结果如图1.13所示。
共25页,第8页
图1.11用例间关系
1.12类型设置
1.13图形结果
(8)保存模型:
选择菜单栏【File->Save】或者标准工具栏的【Save】按钮,可以保存已建立好的系统模型,UML中模型文件扩展名为.mdl。
3.结合日常生活中实际使用的系统,模仿2中的用例模型绘制用例图,并保存模型,熟
悉利用Rationalroe的建模过程,要求绘制的用例图中用例与2中的用例图不相同。
共25页,第9页
实验二用例图
一、实验目的
1.熟悉UML用例图的基本图形元素。
2.掌握用例与用例之间的各种关系。
3.熟悉针对具体场景使用例图进行软件建模的方法。
4.掌握用例规格说明的概念和基本结构,以及用例规格说明的作用。
二、实验内容
1.根据实验一建模实例,熟悉利用Raionalroe软件绘制用例图的基本方法。
2.通过对“学生信息管理系统”的需求描述,确定系统用例图:
“学生信息管理系统”的需求描述如下:
学校领导可以通过本系统了解每个班的任课教师、辅导员、学生姓名、学生人数、专业等班级基本信息。
系统管理员可以进行查询班级基本信息、添加班级、修改班级基本信息、删除班级等操作。
在考试结束以后,教师可以将学生的考试成绩录入系统,还可以对学生的成绩进行查询和修改。
学生可以通过本系统进行成绩的查询。
学生还可以在网上选择自己选修的课程(必修课必须上,所以不用选),学生通过本系统可以看到有哪些课程可以选以及课程的基本信息。
课程的基本信息包括:
课程号、所属专业、课程名称、开课学期、学时数、学分、任课教师等。
每个学生每学期的选修课程数不得大于6门,如果已经选择了6门课程则不能再选择其他课程。
只有将已选择的课程删除掉才能再选择新课程。
系统管理员负责修改、增加、删除选修课程。
系统管理员可以对系统的账号进行添加、设置、删除、查询等操作,同时可以设置每个账号的权限以及对应的个人信息。
a)请根据上述描述,确定系统的参与者b)确定系统的用例并绘制完整的用例图。
3.根据2中所绘制的“学生信息管理系统”用例图,写出学生“选择课程”用例的用例规格
共25页,第10页
说明。
4.考虑一个网络订餐系统的需求,并绘制出完整的用例图。
共25页,第11页
实验三类图
一、实验目的
1.熟悉UML中类的定义和图形符号。
2.掌握类与类之间的各种关系代表的含义及表示方法。
3.掌握类图的绘制方法。
4.了解对象图的绘制方法。
二、实验内容
1.按照如下操作要求,绘制图书管理系统各类图,掌握绘制类图的步骤:
(1)新建模型文件,打开模型文件中的逻辑视图(LogicalView),用鼠标右击逻辑视图,在弹出来的菜单中选择“New→Cladiagram”项,创建“图书馆业务功能”类图,如图3.1所示。
图3.1新建类图
(2)双击新建的“图书馆业务功能”类图,并点右边控件集中选中的“Cla”图标,并用鼠标在图中拖出一个类图,并命名为Book,如图3.2所示。
图3.2新建类
共25页,第12页
(3)下一步为设置Book类的属性,在类图中双击Book类,可以在打开的“ClaSpecification”对话框中设置Book类的属性和方法等其他的信息;点击“Attribute”选项卡,此选项卡可以设置类的属性,在图中间单击右键,可以看到有一个“Inert”的选项,选中这个选项,然后在出现的对话框中输入相关信息,即书本的ISBN号属性,在“Type”方框内输入此属性的类型值,同时可以看到一栏可以设置此属性的访问权限,一般将属性设置为“private”。
Book类的其他属性也可以按照以上的做法设置,具体操作过程如图3.3所示。
图3.3类的属性设置
(4)设置好Book类的属性,即可以设置Book类的方法(操作)。
双击Book类后在“ClaSpecification”对话框中选“operation”选项卡,在图中的空白地方,单击右键,在弹出的菜单中选“inert”选项,输入方法名,同时可以设置该方法的返回类型以及可见性,并可以在Documentation的方框内填写一些相关的方法说明,具体设置方法见图3.4。
共25页,第13页
图3.4类的方法设置
(5)完成上述操作即可完成类的设置,如图3.5所示。
图3.5类
2.根据以下描述画出类图,并注明多重性关系(省略类的属性和关系):
一个学生可以选修多门课程,也可能没有任何课程;一门课程可以被多个学生选修;一个老师可以教多门课程或者不教课;每门课程至少有一个老师,也可以有多个老师任教;每
共25页,第14页
门课程可以有0或1本教材,每本教材只能用于一门课程。
3.根据下面的代码画出Coure类的类图,要求标明各属性的类型和可见性以及类方法。
claCoure{private:
tringcoureName;tringteacher;tringtudent[100];contintcoureNum;taticdoublecoureAverScore;public:
Coure();voidSetCoureTeacher(tringteacher);doubleCaculateScore(inttudentNum=1);};doubleCoure:
:
coureAverScore=0.0;4.根据以下描述,画出相应的UML类图:
(1)神舟六号飞船是神州飞船系列的一种,它由轨道舱、返回舱、推进舱和逃逸救生塔等组成。
(2)航天员可以在返回舱内驾驶飞船,轨道舱是航天员工作和休息的场所。
在紧急的情况下,颗粒利用逃逸救生塔逃生。
(3)在飞船两侧有多个太阳能电池翼,可以为飞船提供电能。
5.在下图中最上面的对象的名称是什么?
该图表示的意思是什么?
China:
CountryfuJian:
ProvinceiChuan:
Province
图3.6对象图
6.针对实验二中的“学生信息管理系统”绘制类图,要求注明类间的关系以及每个类应有的属性和方法(省略属性的类型以及方法的返回值、参数)。
共25页,第15页
实验四状态图
一、实验目的
1.掌握状态的定义和组成部分。
2.掌握UML中状态的表示方法。
3.掌握转换的定义及转换的5要素。
4.解触发事件、监护条件、动作的定义。
5.掌握阅读和绘制状态图的方法。
二、实验内容
1.阅读计算机线程的状态图,完成下列问题。
图1状态图
(1)该图中线程有几种状态?
分别是什么?
(2)请使用文字描述线程的基本运行过程。
2.根据问题描述,完成电梯状态图绘制。
电梯开始处于空闲状态(idle),当有人按下按钮要求使用电梯时(事件irequired发生),电梯进入运行状态(run)。
如果电梯的当前楼层比想要的楼层高时(监护条件[currentFloor>deiredFloor]成立),电梯进入下降状态(movingdown);反之,如果电梯的当前楼层比想要的楼层低时(监护条件[currentFloor
共25页,第16页
2分钟后,电梯门自动关上(doorcloe),如果有更多的电梯使用请求,进入运行状态(run),反之,则进入空闲状态(idle)。
3.根据问题描述,完成手机状态图绘制。
共25页,第17页
实验五活动图
一、实验目的
1.掌握活动的概念以及表示方法。
2.掌握活动图中个元素表示的意义和表示方法。
3.掌握分支、监护条件、分岔、汇合和泳道的概念。
4.掌握阅读和绘制活动图的方法。
二、实验内容
1.依据下列要求绘制活动图:
绘制“删除读者信息”用例的活动图(原始用例图自行绘制)。
删除读者信息一般按照以下步骤进行:
(1)管理员在录入界面,输入待删除的读者名;
(2)“业务逻辑”组件在数据库中查找待删除的读者名;
(3)如果不存在,则显示出错信息,返回步骤
(1),如果存在则继续;(4)“业务逻辑”组件判断“待删除的读者”是否可以删除;
(5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续;(6)在数据库中,删除相关信息;(7)显示删除成功信息;(8)结束。
(1)在用例图中,找到“删除读者信息”的用例,如图1所示,在“删除读者信息”用例上单击右键,在弹出的快捷菜单中选“New”,Roe工具也会弹出一个菜单,选”ActivityDiagram”,选中后单击,便可以新建好一个活动图。
图1用例图
共25页,第18页
(2)新建好活动图后,双击“删除读者信息”的活动图,得到如图2所示,然后在左边的工具栏内点击“Swimlane”,在右边的图添加一个泳道,如图3所示,并命名为adminitrator.按照此步骤,再添加另一个泳道,并命名为SytemTool,得到图4。
图2图3图4(3)在左边的工具上选取“StartState”,并在adminitrator的泳道上添加,如图5所示;添加完开始结点后,再来为此活动图添加活动,图6所示,在左边的工具栏上选中“Activity”这个图标,在adminitrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系,如图7所示。
图5图6图7
(4)完成步骤(3)后,登录输入需要对输入的信息进行验证,则在图中利用“Deciion”图标添加一个验证框,如图8所示:
添加验证框后,验证的内容,如果通过,则允许管理员进行查询操作,如图9所示;如不能通过,则结束,如图10所示。
图8图9图10
共25页,第19页
(5)验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete,如图11和图12所示。
图11图12
图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)在“LogicalView”中新建“SequenceDiagram“,双击图标,出现图6.1,为编辑
顺序图做好准备。
图6.1
(2)在顺序图编辑窗口中,从工具栏中选择Object图标,在右边的绘图区中添加一个
新元素,并取名Cutomer表明新增一个对象,如图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或者工具栏Browe->Create
CollaborationDiagram)
2.根据实验六中题目3的描述绘制协作图。
3.根据下列交互过程描述,绘制协作图。
(1)学生通过界面发送选课命令。
(2)界面向控制对象请求课程信息。
(3)控制对象向数据库发送查询数据消息。
(4)控制对象暂存数据库的查询结果。
(5)界面对象从控制对象中取得所有的课程信息。
(6)在界面上显示所有的课程信息。
(7)界面对象发送命令要求控制对象删除课程信息。
(8)学生选择课程。
(9)界面对象要求学生输入学号。
(10)界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。
(11)控制对象从数据库中查询关联信息。
(12)控制对象判断是否可以选课。
(13)如果可以选课,则向数据库中添加关联信息。
(14)向界面对象返回信息。
4.绘制网络订餐系统中订餐用例交互过程的协作图。
共25页,第25页