UML实验指导书.docx
《UML实验指导书.docx》由会员分享,可在线阅读,更多相关《UML实验指导书.docx(42页珍藏版)》请在冰豆网上搜索。
![UML实验指导书.docx](https://file1.bdocx.com/fileroot1/2023-1/31/7cdceca8-6a51-4368-b670-2d1ba7ce799a/7cdceca8-6a51-4368-b670-2d1ba7ce799a1.gif)
UML实验指导书
UML建模实验指导书
(10学时)
哈尔滨理工大学计算机科学与技术学院
实验教学中心
实验一Rose基本使用及用例图
[实验目的]
1.熟悉Rose的系统界面,掌握其基本使用方法。
2.熟悉模型图标元素。
3.掌握用例图的绘制方法。
[实验内容]
1.练习Rose的基本使用。
2.熟悉UML模型元素及表示方法。
3.绘制图书馆管理系统的用例图。
[实验要点及说明]
一、Rose简介
Rose是美国的Rational公司的面向对象建模工具,利用这个工具,可以建立用UML描述的软件系统的模型,而且可以自动生成和维护C++、Java、VB和Oracle等语言和系统的代码。
ØRationalRose在建模方面具有以下特点:
1.保证模型和代码高度一致。
Rose可以实现真正意义上的正向、逆向和双向工程。
2.支持多种语言。
Rose本身能够支持的语言包括C++、VisualC++、Java、VisualBasic、PowerBuilder等,还可为数据库应用产生数据库描述语言(DDL)。
3.为团队开发提供强有力的支持。
Rose提供了两种方式来支持团队开发:
一种是采用SCM(软件配置管理)的团队开发方式;另一种是没有SCM情况下的团队开发方式。
这两种方式为用户提供了极大的灵活性,用户可以根据开发的规模和开发人员数目以及资金情况等选择一种方式进行团队开发。
4.支持模型的Internet发布。
Rose的InternetWebPublisher能够创建一个基于Web的Rose模型的HTML版本,使得其他人员能够通过标准的浏览器,如IE来浏览该模型。
5.生成使用简单且定制灵活的文档。
Rose本身提供了直接产生模型文档的功能。
6.支持关系型数据库的建模。
利用Rose能够进行数据库的建模。
Rose能够为ANSI、Oracle、SQLServer等支持标准DDL的数据库自动生成数据描述语言。
ØRationalRose基本使用
RationalRose主界面如下图所示:
:
Rose的工作区分为4个部分:
浏览器、文档区、编辑区和日志区。
1.浏览器——用来浏览、创建、删除和修改模型中的模型元素。
浏览器是层次结构,组成树形视图样式,用于在Rose模型中迅速定位。
浏览器可以显示模型中的所有元素,包括用例、关系、类和组件等,每个模型元素可能又包含其他元素。
利用浏览器可以增加模型元素(参与者、用例、类、组件、图等);浏览现有的模型元素;浏览现有的模型元素之间的关系;移动模型元素;更名模型元素;将模型元素添加到图中;将文件或者URL链接到模型元素上;将模型元素组成包;访问模型元素的详细规范;打开图。
浏览器中有4个视图:
UseCaseView(用例视图)、LogicalView(逻辑视图)、ComponentView(组件视图)、DeploymentView(配置视图)。
2.文档区——用来显示和书写各个模型元素的文档注释。
文档区用于为Rose模型元素建立文档,例如对浏览器中的每一个参与者写一个简要定义,只要在文档区输入这个定义即可。
3.编辑区——用来显示和创作模型的各种图。
在编辑区中,可以打开模型中的任意一张图,并利用左边的工具栏对图进行浏览和修改。
修改图中的模型元素时,Rose会自动更新浏览器。
同样,通过浏览器改变元素时,Rose也会自动更新相应的图。
这样就可以保证模型的一致性。
4.日志区——用来记录对模型所做的所有重要动作。
ØRationalRose的视图
Rose模型中有4个视图:
UseCaseView(用例视图)、LogicalView(逻辑视图)、ComponentView(组件视图)、DeploymentView(配置视图)。
每个视图针对不同的对象,具有不同的作用。
1.UseCaseView(用例视图)
用例视图包括系统中的所有参与者、用例和用例图,还可能包括一些时序图或协作图。
用例视图是系统中与实现无关的视图,它只关注系统功能的高层形状,而不关注系统的具体实现方法。
通常在项目开始时要先确定,之后不轻易修改。
2.LogicalView(逻辑视图)
逻辑视图关注系统如何实现用例中提出的功能,提供系统的详细图形,描述组件之间如何关联。
另外,逻辑视图还包括需要的特定类、类图和状态图。
利用这些细节元素,开发人员可以构造系统的详细信息。
从逻辑视图中可以看到系统的逻辑结构。
3.ComponentView(组件视图)
组件视图显示代码模块之间的关系。
组件视图包含模型代码库、可执行文件、运行库和其他组件的信息。
组件是代码的实际模块。
在Rose中,组件和组件图在组件视图中显示。
从组件视图中可以看出系统实现的物理结构。
4.DeploymentView(配置视图)
配置视图关注系统的实际配置,可能与系统的逻辑结构有所不同。
例如,系统可能使用三层逻辑结构,但配置可能是两层的。
配置视图还要处理其他问题,如容错、网络带宽、故障恢复和响应时间等。
一个项目只有一个配置视图。
Ø使用RationalRose建模
1.创建模型
Rose模型文件的扩展名是.mdl,要创建模型,需要完成下列步骤:
1)从菜单栏选择“File→New”,或单击标准工具栏中的“New”按钮;
2)弹出如图2-14所示的对话框,选择要用到的框架,单击“OK”按钮。
如果不使用模板,单击“Cancel”按钮。
如果选择使用模板,Rose会自动装入此模板的默认包、类和组件。
模板提供了每个包中的类和接口,各有相应的属性和操作。
通过创建模板,可以收集类与组件,便于作为基础设计和建立多个系统。
如果单击“Cancel”按钮,表示创建一个空项目,用户需要从头开始创建模型。
2.保存模型
RationalRose的保存,类似于其他应用程序。
可以通过菜单或者工具栏来实现。
1)保存模型:
通过选择菜单“File→Save”或者工具栏的“Save”按钮,来保存系统建模。
2)保存日志:
激活日志窗口(见图2-30),通过菜单“File→SaveLogAs”来保存,或者右键单击日志窗口,在弹出的菜单中选择“SaveLogAs”命令来保存。
3.设置全局选项
全局选项可以通过菜单Tools→Options进行设置。
1)设置字体
在Options对话框中,可以设置文档窗口字体、日志窗口字体和默认字体,点击不同的Front按钮,就可以分别设置字体。
2)设置颜色
Rose中可以单独修改对象的颜色。
点击Options对话框中的LineColor和FillColor按钮,用户可以分别设置对象的线颜色和填充颜色。
二、UML中的模型元素
UML中的模型元素包括事物和事物之间的联系。
事物是UML中重要的组成部分,它代表任何可以定义的东西。
事物之间的关系能够把事物联系在一起,组成有意义的结构模型。
每一个模型元素都有一个与之相对应的图形元素。
模型元素的图形表示使UML的模型图形化,而图形语言的简明和直观使其成为人们建立问题模型的有力工具。
Ø事物
UML模型中的事物可分为结构事物、动作事物、分组事物和注释事物4类。
这些事物是UML模型中面向对象的基本的建筑快,他们在模型中属于静态部分,代表物理上或概念上的元素。
1.结构事物
UML模型中最基本的结构化事物共有7种,类、接口、协作、用例、活动类、组件和节点。
(1)类(如图1-1所示)
Ø对具有相同属性、方法、关系和语义的对象的抽象。
(2)接口(如图1-2所示)
Ø类或组件提供特定服务的一组操作的集合。
Ø描述了类或组件的对外可见的动作。
(3)协作(如图1-3所示)
Ø定义了交互操作。
Ø代表构成系统的模式的实现。
(4)用例(如图1-4所示)
Ø描述系统对一个特定角色执行的一系列动作。
Ø组织动作事物。
图1-1类图1-2接口图1-3协作图1-4用例
(5)活动类(如图1-5所示)
Ø类对象有一个或多个进程或线程的类。
(6)组件(如图1-6所示)
Ø实现了一个接口集合的物理上可替换的系统部分。
(7)节点(如图1-7所示)
Ø在运行时存在的一个物理元素。
Ø代表一个可计算的资源。
Ø通常占用一些内存和具有处理能力。
图1-5活动类图1-6组件图1-7节点
2.动作事物
动作事物是UML模型中的动态部分,它们是模型的动词,代表时间和空间上的动作。
交互和状态机是UML模型中最基本的两个动态事物元素,它们通常和其他的结构元素、主要的类、对象连接在一起。
(1)交互
一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。
在UML中消息表示为带箭头的直线,直线上标注操作名字,如图1-8所示。
(2)状态机
由一系列对象的状态组成。
在UML中状态的图形表示如图1-9所示。
3.分组事物
Ø分组事物是UML模型中组织的部分。
Ø分组事物只有一种,称为包。
Ø包是一种将有组织的元素分组的机制。
Ø包只存在于开发阶段。
Ø包的图形表示如图1-10所示。
4.注释事物
UML模型的解释部分。
在UML中注释事物的图形表示如图1-11所示。
图1-8消息图1-9状态图1-10包图1-11注释
1UML中的关系
UML中包括如下几种常用关系。
1.关联关系。
关联关系连接元素和链接实例,它用连接两个模型元素的实线表示。
如图1-12所示
2.依赖关系。
依赖关系描述一个元素对另一个元素的依附。
依赖关系用源模型指向目标模型的带箭头的虚线表示,如图1-13所示。
图1-12关联图1-13依赖
3.泛化关系。
泛化关系也称为继承关系,这种关系意味着一个元素是另一个元素的特例。
泛化用一条带空心三角箭头的实线表示,他从表示特殊性事物的模型元素指向表示一般性事物的模型元素,如图1-14所示。
4.实现关系。
实现关系描述一个元素实现另一个元素。
实现关系用一条带空心三角箭头的虚线表示,箭头从源模型指向目标模型,表示源模型元素实现目标元素模型,如图1-15所示。
5.聚合关系。
聚合关系描述元素之间部分与整体的关系,即一个表示整体的模型元素可能由几个表示部分的模型元素聚合而成。
聚合关系用一端带有空心小菱形的直线表示,小菱形端连接表示整体事物的模型元素,另一端连接表示部分事物的模型元素,如图1-16所示。
图1-14泛化图1-15实现图1-16聚合
三、实例——图书馆管理系统的用例图
1.确定系统涉及的总体信息
1读者:
⏹借书
⏹还书
⏹书籍预定
2图书馆管理员:
⏹书籍借出处理
⏹书籍归还处理
⏹预定信息处理
3系统管理员:
⏹增加书目
⏹删除或更新书目
⏹增加书籍
⏹减少书籍
⏹增加读者账户信息
⏹删除或更新读者账户信息
⏹书籍信息查询
⏹读者信息查询
2.确定系统的参与者
图书馆管理系统的参与者:
⏹读者(借阅者)
⏹图书馆管理员
⏹图书馆管理系统维护者
3.确定系统的用例
1借阅者请求服务的用例
⏹登录系统
⏹查询自己的借阅信息
⏹查询书籍信息
⏹预定书籍
⏹借阅书籍
⏹归还书籍
2图书馆管理员处理借书、还书的用例
⏹处理书籍借阅
⏹处理书籍归还
⏹删除预定信息
3系统管理员进行系统维护的用例
⏹查询借阅者信息
⏹查询书籍信息
⏹增加书目
⏹删除或更新书目
⏹增加书籍
⏹删除书籍
⏹添加借阅者账户
⏹删除或更新借阅者账户
4.使用Rose绘制用例图的步骤
1创建用例图
在浏览器窗口中,在“UseCaseView”的图标上单击鼠标右键,在弹出的菜单中选择New→UseCaseDiagram。
此时,在“UseCaseView”树形结构下多了一个名为“NewDiagram”的图标,这个图标就是新建的用例图的图标。
右键单击此图标,在弹出的菜单中选择Rename菜单项,可以为用例图重命名。
双击用例图图标,出现用例图的编辑区和编辑工具栏。
2工具栏的定制
用户可以根据需要自行定制和添加工具栏中的图标按钮,操作方法为:
右键单击工具栏的空白处,在弹出的菜单中选择Customize菜单项,出现“自定义工具栏”对话框,在此对话框中可以添加工具栏中的图标按钮。
3添加参与者与用例
⏹绘制参与者与用例。
参与者和用例的绘制方法相同,首先点击工具栏中的图标按钮,然后在编辑区要绘制的地方单击鼠标左键。
⏹设置用例的属性。
在用例上双击,弹出用例属性设置对话框。
也可以在选中的用例上单击右键,在弹出的菜单中选择“OpenSpecification...”,打开属性设置对话框。
⏹设置参与者的属性。
双击参与者图标,打开参与者属性设置对话框。
也可以在选中的参与者上单击右键,在弹出的菜单中选择“OpenSpecification...”,打开属性设置对话框。
4添加参与者与用例之间的关系
首先点击工具栏上表示关系的按钮,然后在参与者与用例之间拖动鼠标。
此外,还可以修改关系的属性,具体方法可参照参与者与用例的属性设置方法。
5添加用例之间的关系
用例之间的关系有关联关系(Association)、包含关系(Include)、扩展关系(Extend)和泛化关系(generalization)4种。
关联关系的图标按钮为
,包含关系与扩展关系的图标按钮为
,泛化关系的图标按钮为
。
添加用例之间关系,其操作方法参照④。
5.图书馆管理系统中的用例图
1借阅者请求服务的用例图(如图1-17所示)
[用例图说明]
⏹Searchforbook:
书籍查询用例。
⏹Reservethebook:
书籍预定用例。
⏹Logonthesystem:
登陆系统。
⏹QueryInfo:
查询借阅信息。
⏹Borrowthebook:
借阅书籍。
⏹Returnthebook:
归还书籍。
⏹ReturnWithFine:
还书时缴纳罚金。
图1-17借阅者请求服务的用例图
2图书馆管理员处理借书、还书的用例图(如图1-18所示)
[用例图说明]
⏹Getbook:
书籍归还处理。
⏹Lendbook:
书籍借阅处理。
⏹RemoveReservation:
删除书籍预定信息。
图1-18图书馆管理员处理借书、还书的用例图
⏹GetWithFine:
还书时收取罚金。
⏹Checkusercount:
检查用户借阅凭证的合法性。
3
系统管理员进行系统维护的用例图(如图1-19所示)
图1-19系统管理员进行系统维护的用例图
[用例图说明]
⏹QueryBorrowerInfo:
查询读者信息。
⏹QueryBookInfo:
查询书籍信息。
⏹AddTitle:
增加书目。
⏹RemoveorUpdateTitle:
删除或更新书目。
⏹AddBook:
增加书籍。
⏹RemoveBook:
删除书籍。
⏹AddBorrower:
添加借阅者账户。
⏹RemoveorUpdateBorrower:
删除或更新借阅者账户信息。
实验二类图
实验二栈和队列
[实验目的]
掌握类图的创建及画法。
[实验内容]
用Rose绘制图书馆管理系统的类图。
[实验要点及说明]
一、类图的用途
类图是系统静态视图的一部分,它主要是用来描述软件系统的静态结构。
该视图主要支持系统的功能需求,也就是系统要提供给最终用户的服务。
当系统分析师以支持软件系统的功能需求为目的设计静态视图时,通常以下述3种方法之一使用类图。
(1)对系统的词汇建模;
(2)对简单协作建模;
(3)对逻辑数据库模式建模。
二、类图建模技术
1.对简单协作建模
协同是软件系统的动态交互在软件系统的静态视图上的映射。
协同的静态结构是通过类图表达出来的。
在对类图的简单协同建模时,不仅要描述类的职责、结构和服务,还要强调类间的关系。
在协同建模时,要遵循的策略包括:
(1)识别要模拟的机制。
一个机制描述了被建模的部分系统的一些功能和行为,这些功能和行为是由类、接口等元素交互作用产生的。
(2)对每种机制,识别参与协作的类、接口和其他协作,并识别它们间的关系。
(3)通过协作的脚本,发现建模的模型是否有被遗漏和语义错误的地方,并更正错误。
(4)得出相应类的对象,并确定具体的属性和操作。
2.对数据库模式建模
在为数据库建模时,要遵循的策略包括:
(1)在系统中确定的类,它的状态必须超过其应用系统生命周期。
(2)创建包含这些类的类图,并把它们标记成永久的(persistent)。
(3)展开这些类的结构信息,即详细的描述属性的细节,并注重关联和构造这些类的基数。
(4)观察系统中的公共模式(如循环关联、一对一关联等),它们往往使物理数据库设计复杂化。
如果必要,系统分析师需要创建简化逻辑结构的中间抽象。
(5)考虑这些类的行为,扩充那些对于数据存储和数据完整性很重要的操作。
(6)如果可能,用工具来把逻辑设计换成物理设计。
三、实例——图书馆管理系统的类图
1.使用Rose绘制类图的步骤:
1创建类图
在浏览器窗口中,右键单击“LogicView”图标,从弹出的菜单中选择New→ClassDiagram。
此时,在“LogicView”树形结构下多了一个名为“NewDiagram”的图标。
要改变图标的名称,只要在创建时直接输入即可。
还可以右键单击此图标,在弹出的菜单中选择Rename菜单项,可以为类图重命名。
双击类图图标,出现类图的编辑区和编辑工具栏,类图的工作栏及其说明如下图所示。
2加入类
单击工具栏中类的图标
,然后在类图编辑区域中某个位置单击鼠标左键,就可以在该类图中绘制一个类。
要改变类的名称,只要在创建时直接输入即可。
还可以右键单击编辑区域中类的图标,在弹出的菜单中选择OpenSpecification...按钮,在出现的对话框里可以对类进行一定的设置,包括设置类的名字、类型等。
3增加类的属性
有两种方法可以增加类的属性(即类的成员变量)。
⏹使用“ClassSpecification”。
按照前面介绍的方法打开“ClassSpecification”窗口,然后选择“Attributes”选项卡,在窗口空白的地方单击右键,并且单击Insert按钮。
⏹选择类的图标,单击右键,在弹出的菜单中选择NewAttribute按钮。
4增加类的方法
类的方法是该类所能进行的操作。
增加类的方法与增加类的属性相似,按照前面介绍的方法打开“ClassSpecification”窗口,然后选择“Operation”选项卡,在窗口空白的地方单击右键,并且单击Insert按钮。
还可以选择类的图标,单击右键,在弹出的菜单中选择NewOperation按钮。
2.图书馆管理系统的类图。
在图书馆管理系统的实例中,数据类共有7个:
Item、Title、Loan、Reservation、Borrower(项目,名称,借出,预定,借阅者),5个类之间有一定的关系,如图2-1所示。
图2-1图书馆系统的类图
实验三时序图和协作图
实验二栈和队列
[实验目的]
1.掌握时序图、协作图的绘制方法。
2.验证Rose的交互图自动生成功能。
[实验内容]
1.用Rose绘制图书馆管理系统的时序图与协作图。
2.利用Rose的交互图自动生成功能,将已经设计好的时序图转换成协作图。
[实验要点及说明]
一、时序图建模技术
按时间顺序对控制流建模,要遵循如下策略。
1设置交互的语境。
2通过识别对象在交互中扮演的角色,设置交互的场景。
3为每个对象设置生命线。
4从引发某个消息的信息开始,在生命线之间画出从顶到底依次展开的消息,显示每个消息的特性(如参数)。
5如果需要可视化消息的嵌套或实际计算发生时的时间点,可以用激活修饰每个对象的生命期。
6如果需要说明时间或空间的约束,可以用时间标记修饰每个消息,并附上合适的时间和空间约束。
7如果需要更形式化的说明某控制流,可以为每个消息附上前置和后置条件。
实例1——图书馆管理系统的时序图
1.使用RationalRose绘制时序图的步骤。
1创建时序图。
在浏览器窗口中,在“UseCaseView”的图标上单击鼠标右键,在弹出的菜单中选择New→SequenceDiagram。
此时,在“UseCaseView”树形结构下多了一个名为“NewDiagram”的图标,右键单击此图标,在弹出的菜单中选择Rename菜单项,可以更改新创建的时序图的名字。
双击时序图图标,出现时序图的编辑区和编辑工具栏。
2时序图工具栏按钮简介。
时序图工具栏中各个按钮的图标及其作用如图3-1所示。
3添加对象。
⏹向时序图添加对象。
首先点击工具栏中的对象图标按钮,然后在编辑区要放置对象的位置单击鼠标左键。
图3-1时序图工具栏各个按钮的图标及作用
⏹设置对象属性。
可以双击相应的对象图标,弹出对象属性设置对话框。
也可以选中要改变属性的对象,单击右键,在弹出的菜单中选择“OpenSpecification...”,打开属性设置对话框。
⏹设置对象持续性。
可以设置每个对象的持续性,Rose中提供了3个选项。
“持续(Persistent)”对象保存到数据库或其他形式的永久存储体中,即使程序终止,对象依然存在。
“静态(Static)”对象保存在内存中直到程序终止。
“临时(Transient)”对象只是在短时间内保存在内存中。
要设置对象的持续性,右键单击要设置持续性的对象,从弹出菜单中选择“OpenSpecification...”,打开属性设置对话框,即可进行设置。
4添加消息
消息是对象间的通信,一个对象可以请求另一个对象做某件事。
在时序图中,消息用两个对象生命线之间的箭头表示。
⏹增加对象间的消息。
首先点击工具栏中的图标按钮→,然后将鼠标从发送消息的对象或角色的生命线拖动到接收消息的对象或角色的生命线。
消息绘制出来以后,还要输入消息文本。
双击表示消息的箭头,在弹出的对话框的Name字段里输入要添加的文本。
⏹显示或取消消息编号。
消息编号在时序图中是可选的,选择菜单栏的Tools→Options菜单项,在出现的对话框中选择Diagram选项卡,将“Sequencenumbering”复选框勾选,就可以显示消息编号;如果不勾选,消息编号不会显示在时序图中。
⏹显示或取消激活显示。
选择菜单栏的Tools→Options菜单项,在出现的对话框中选择Diagram选项卡,将“Focusofcontrol”复选框勾选,就可以显示激活;如果不勾选,激活不会显示在时序图中。
2.图书馆管理系统的时序图。
在图书馆管理系统中,每个用例都可以建立一个时序图,将用例执行中各个参与的对象之间的消息传递过程表现出来。
由于图书馆管理系统中用例很多,此处只介绍几个重要的时序图。
1系统管理员添加书籍的时序图(如图3-2)。
图3-2系统管理员添加书籍的时序图