《UML实验指导书(共41页).doc》由会员分享,可在线阅读,更多相关《UML实验指导书(共41页).doc(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上UML建模实验指导书(10学时)哈尔滨理工大学计算机科学与技术学院实验教学中心实验一 Rose基本使用及用例图实验目的1熟悉Rose的系统界面,掌握其基本使用方法。2熟悉模型图标元素。3掌握用例图的绘制方法。实验内容1练习Rose的基本使用。2熟悉UML模型元素及表示方法。3绘制图书馆管理系统的用例图。实验要点及说明一、 Rose简介Rose是美国的Rational公司的面向对象建模工具,利用这个工具,可以建立用UML描述的软件系统的模型,而且可以自动生成和维护C+、Java、VB和Oracle等语言和系统的代码。 Rational Rose在建模方面具有以下特点:1
2、.保证模型和代码高度一致。Rose可以实现真正意义上的正向、逆向和双向工程。2.支持多种语言。Rose本身能够支持的语言包括C+、Visual C+、Java、Visual Basic、PowerBuilder等,还可为数据库应用产生数据库描述语言(DDL)。3.为团队开发提供强有力的支持。Rose提供了两种方式来支持团队开发:一种是采用SCM(软件配置管理)的团队开发方式;另一种是没有SCM情况下的团队开发方式。这两种方式为用户提供了极大的灵活性,用户可以根据开发的规模和开发人员数目以及资金情况等选择一种方式进行团队开发。4.支持模型的Internet发布。Rose的Internet Web
3、 Publisher能够创建一个基于Web的Rose模型的HTML版本,使得其他人员能够通过标准的浏览器,如IE来浏览该模型。5.生成使用简单且定制灵活的文档。Rose本身提供了直接产生模型文档的功能。6.支持关系型数据库的建模。利用Rose能够进行数据库的建模。Rose能够为ANSI、Oracle、SQL Server等支持标准DDL的数据库自动生成数据描述语言。 Rational Rose 基本使用Rational Rose主界面如下图所示::Rose的工作区分为4个部分:浏览器、文档区、编辑区和日志区。1.浏览器用来浏览、创建、删除和修改模型中的模型元素。浏览器是层次结构,组成树形视图样
4、式,用于在Rose模型中迅速定位。浏览器可以显示模型中的所有元素,包括用例、关系、类和组件等,每个模型元素可能又包含其他元素。利用浏览器可以增加模型元素(参与者、用例、类、组件、图等);浏览现有的模型元素;浏览现有的模型元素之间的关系;移动模型元素;更名模型元素;将模型元素添加到图中;将文件或者URL链接到模型元素上;将模型元素组成包;访问模型元素的详细规范;打开图。浏览器中有4个视图:Use Case View(用例视图)、Logical View(逻辑视图)、Component View(组件视图)、Deployment View(配置视图)。2.文档区用来显示和书写各个模型元素的文档注释
5、。文档区用于为Rose模型元素建立文档,例如对浏览器中的每一个参与者写一个简要定义,只要在文档区输入这个定义即可。3.编辑区用来显示和创作模型的各种图。在编辑区中,可以打开模型中的任意一张图,并利用左边的工具栏对图进行浏览和修改。修改图中的模型元素时,Rose会自动更新浏览器。同样,通过浏览器改变元素时,Rose也会自动更新相应的图。这样就可以保证模型的一致性。4.日志区用来记录对模型所做的所有重要动作。 Rational Rose的视图Rose模型中有4个视图:Use Case View(用例视图)、Logical View(逻辑视图)、 Component View(组件视图)、Deplo
6、yment View(配置视图)。每个视图针对不同的对象,具有不同的作用。1. Use Case View(用例视图)用例视图包括系统中的所有参与者、用例和用例图,还可能包括一些时序图或协作图。用例视图是系统中与实现无关的视图,它只关注系统功能的高层形状,而不关注系统的具体实现方法。通常在项目开始时要先确定,之后不轻易修改。 2. Logical View(逻辑视图)逻辑视图关注系统如何实现用例中提出的功能,提供系统的详细图形,描述组件之间如何关联。另外,逻辑视图还包括需要的特定类、类图和状态图。利用这些细节元素,开发人员可以构造系统的详细信息。从逻辑视图中可以看到系统的逻辑结构。 3. Co
7、mponent View(组件视图) 组件视图显示代码模块之间的关系。组件视图包含模型代码库、可执行文件、运行库和其他组件的信息。组件是代码的实际模块。在Rose中,组件和组件图在组件视图中显示。从组件视图中可以看出系统实现的物理结构。 4. Deployment View(配置视图)配置视图关注系统的实际配置,可能与系统的逻辑结构有所不同。例如,系统可能使用三层逻辑结构,但配置可能是两层的。配置视图还要处理其他问题,如容错、网络带宽、故障恢复和响应时间等。一个项目只有一个配置视图。 使用Rational Rose建模 1创建模型 Rose模型文件的扩展名是.mdl,要创建模型,需要完成下列步
8、骤:1) 从菜单栏选择“FileNew”,或单击标准工具栏中的“New”按钮;2) 弹出如图2-14所示的对话框,选择要用到的框架,单击“OK”按钮。如果不使用模板,单击“Cancel”按钮。 如果选择使用模板,Rose会自动装入此模板的默认包、类和组件。模板提供了每个包中的类和接口,各有相应的属性和操作。通过创建模板,可以收集类与组件,便于作为基础设计和建立多个系统。如果单击“Cancel”按钮,表示创建一个空项目,用户需要从头开始创建模型。2.保存模型 Rational Rose的保存,类似于其他应用程序。可以通过菜单或者工具栏来实现。1) 保存模型:通过选择菜单“FileSave”或者工
9、具栏的“Save”按钮,来保存系统建模。2) 保存日志:激活日志窗口(见图2-30),通过菜单“FileSave Log As”来保存,或者右键单击日志窗口,在弹出的菜单中选择“Save Log As”命令来保存。3.设置全局选项全局选项可以通过菜单ToolsOptions进行设置。1) 设置字体在Options对话框中,可以设置文档窗口字体、日志窗口字体和默认字体,点击不同的Front按钮,就可以分别设置字体。2) 设置颜色 Rose中可以单独修改对象的颜色。点击Options对话框中的Line Color和Fill Color按钮,用户可以分别设置对象的线颜色和填充颜色。二、UML中的模型
10、元素UML中的模型元素包括事物和事物之间的联系。事物是UML中重要的组成部分,它代表任何可以定义的东西。事物之间的关系能够把事物联系在一起,组成有意义的结构模型。每一个模型元素都有一个与之相对应的图形元素。模型元素的图形表示使UML的模型图形化,而图形语言的简明和直观使其成为人们建立问题模型的有力工具。 事物UML模型中的事物可分为结构事物、动作事物、分组事物和注释事物4类。这些事物是UML模型中面向对象的基本的建筑快,他们在模型中属于静态部分,代表物理上或概念上的元素。1. 结构事物 UML模型中最基本的结构化事物共有7种,类、接口、协作、用例、活动类、组件和节点。 (1)类(如图1-1所示
11、) 对具有相同属性、方法、关系和语义的对象的抽象。 (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所示) 在运行时存在的一个物理元素。 代表一个可计算的资源
12、。 通常占用一些内存和具有处理能力。 图1-5 活动类 图1-6 组件 图1-7 节点2. 动作事物 动作事物是UML模型中的动态部分,它们是模型的动词,代表时间和空间上的动作。交互和状态机是UML模型中最基本的两个动态事物元素,它们通常和其他的结构元素、主要的类、对象连接在一起。(1)交互一组对象在特定上下文中,为达到某种特定的目的而进行的一系列消息交换组成的动作。 在UML中消息表示为带箭头的直线,直线上标注操作名字,如图1-8所示。(2)状态机由一系列对象的状态组成。在UML中状态的图形表示如图1-9所示。3. 分组事物 分组事物是UML模型中组织的部分。 分组事物只有一种,称为包。 包
13、是一种将有组织的元素分组的机制。 包只存在于开发阶段。 包的图形表示如图1-10所示。4. 注释事物 UML模型的解释部分。在UML中注释事物的图形表示如图1-11所示。图1-8 消息 图1-9 状态 图1-10 包 图1-11 注释 UML中的关系 UML中包括如下几种常用关系。1.关联关系。关联关系连接元素和链接实例,它用连接两个模型元素的实线表示。如图1-12所示2.依赖关系。依赖关系描述一个元素对另一个元素的依附。依赖关系用源模型指向目标模型的带箭头的虚线表示,如图1-13所示。图1-12 关联 图1-13 依赖3.泛化关系。泛化关系也称为继承关系,这种关系意味着一个元素是另一个元素的
14、特例。泛化用一条带空心三角箭头的实线表示,他从表示特殊性事物的模型元素指向表示一般性事物的模型元素,如图1-14所示。4.实现关系。实现关系描述一个元素实现另一个元素。实现关系用一条带空心三角箭头的虚线表示,箭头从源模型指向目标模型,表示源模型元素实现目标元素模型,如图1-15所示。5.聚合关系。聚合关系描述元素之间部分与整体的关系,即一个表示整体的模型元素可能由几个表示部分的模型元素聚合而成。聚合关系用一端带有空心小菱形的直线表示,小菱形端连接表示整体事物的模型元素,另一端连接表示部分事物的模型元素,如图1-16所示。图1-14 泛化 图1-15 实现 图1-16 聚合三、实例图书馆管理系统
15、的用例图 1确定系统涉及的总体信息 读者:n 借书n 还书n 书籍预定 图书馆管理员:n 书籍借出处理n 书籍归还处理n 预定信息处理 系统管理员:n 增加书目n 删除或更新书目n 增加书籍n 减少书籍n 增加读者账户信息n 删除或更新读者账户信息n 书籍信息查询n 读者信息查询 2确定系统的参与者图书馆管理系统的参与者:n 读者(借阅者)n 图书馆管理员n 图书馆管理系统维护者 3确定系统的用例 借阅者请求服务的用例n 登录系统 n 查询自己的借阅信息n 查询书籍信息n 预定书籍n 借阅书籍n 归还书籍 图书馆管理员处理借书、还书的用例n 处理书籍借阅n 处理书籍归还n 删除预定信息 系统管
16、理员进行系统维护的用例n 查询借阅者信息n 查询书籍信息n 增加书目n 删除或更新书目n 增加书籍n 删除书籍n 添加借阅者账户n 删除或更新借阅者账户 4使用Rose绘制用例图的步骤 创建用例图在浏览器窗口中,在“Use Case View”的图标上单击鼠标右键,在弹出的菜单中选择New Use Case Diagram。此时,在“Use Case View”树形结构下多了一个名为“New Diagram”的图标,这个图标就是新建的用例图的图标。右键单击此图标,在弹出的菜单中选择Rename菜单项,可以为用例图重命名。双击用例图图标,出现用例图的编辑区和编辑工具栏。 工具栏的定制用户可以根据
17、需要自行定制和添加工具栏中的图标按钮,操作方法为:右键单击工具栏的空白处,在弹出的菜单中选择Customize菜单项,出现“自定义工具栏”对话框,在此对话框中可以添加工具栏中的图标按钮。 添加参与者与用例n 绘制参与者与用例。参与者和用例的绘制方法相同,首先点击工具栏中的图标按钮,然后在编辑区要绘制的地方单击鼠标左键。n 设置用例的属性。在用例上双击,弹出用例属性设置对话框。也可以在选中的用例上单击右键,在弹出的菜单中选择“Open Specification.”,打开属性设置对话框。n 设置参与者的属性。双击参与者图标,打开参与者属性设置对话框。也可以在选中的参与者上单击右键,在弹出的菜单中
18、选择“Open Specification.”,打开属性设置对话框。 添加参与者与用例之间的关系首先点击工具栏上表示关系的按钮,然后在参与者与用例之间拖动鼠标。此外,还可以修改关系的属性,具体方法可参照参与者与用例的属性设置方法。 添加用例之间的关系 用例之间的关系有关联关系(Association)、包含关系(Include)、扩展关系(Extend)和泛化关系(generalization)4种。关联关系的图标按钮为,包含关系与扩展关系的图标按钮为,泛化关系的图标按钮为。添加用例之间关系,其操作方法参照。5图书馆管理系统中的用例图 借阅者请求服务的用例图(如图1-17所示)用例图说明n S
19、earch for book: 书籍查询用例。n Reserve the book: 书籍预定用例。n Logon the system: 登陆系统。n Query Info: 查询借阅信息。n Borrow the book: 借阅书籍。n Return the book: 归还书籍。n Return With Fine: 还书时缴纳罚金。图1-17 借阅者请求服务的用例图 图书馆管理员处理借书、还书的用例图 (如图1-18所示)用例图说明n Get book: 书籍归还处理。n Lend book: 书籍借阅处理。n Remove Reservation: 删除书籍预定信息。图1-18 图
20、书馆管理员处理借书、还书的用例图 n Get With Fine: 还书时收取罚金。n Check user count: 检查用户借阅凭证的合法性。 系统管理员进行系统维护的用例图 (如图1-19所示)图1-19系统管理员进行系统维护的用例图用例图说明n Query Borrower Info: 查询读者信息。n Query Book Info: 查询书籍信息。n Add Title: 增加书目。n Remove or Update Title: 删除或更新书目。n Add Book: 增加书籍。n Remove Book: 删除书籍。n Add Borrower: 添加借阅者账户。n Re
21、move or Update Borrower: 删除或更新借阅者账户信息。实验二 类图实验二 栈和队列实验目的掌握类图的创建及画法。实验内容用Rose绘制图书馆管理系统的类图。实验要点及说明一、类图的用途类图是系统静态视图的一部分,它主要是用来描述软件系统的静态结构。该视图主要支持系统的功能需求,也就是系统要提供给最终用户的服务。当系统分析师以支持软件系统的功能需求为目的设计静态视图时,通常以下述3种方法之一使用类图。(1)对系统的词汇建模;(2)对简单协作建模;(3)对逻辑数据库模式建模。二、类图建模技术1. 对简单协作建模 协同是软件系统的动态交互在软件系统的静态视图上的映射。协同的静态
22、结构是通过类图表达出来的。在对类图的简单协同建模时,不仅要描述类的职责、结构和服务,还要强调类间的关系。 在协同建模时,要遵循的策略包括:(1)识别要模拟的机制。一个机制描述了被建模的部分系统的一些功能和行为,这些功能和行为是由类、接口等元素交互作用产生的。(2)对每种机制,识别参与协作的类、接口和其他协作,并识别它们间的关系。(3)通过协作的脚本,发现建模的模型是否有被遗漏和语义错误的地方,并更正错误。(4)得出相应类的对象,并确定具体的属性和操作。2. 对数据库模式建模 在为数据库建模时,要遵循的策略包括:(1)在系统中确定的类,它的状态必须超过其应用系统生命周期。(2)创建包含这些类的类
23、图,并把它们标记成永久的(persistent)。(3)展开这些类的结构信息,即详细的描述属性的细节,并注重关联和构造这些类的基数。(4)观察系统中的公共模式(如循环关联、一对一关联等),它们往往使物理数据库设计复杂化。如果必要,系统分析师需要创建简化逻辑结构的中间抽象。(5)考虑这些类的行为,扩充那些对于数据存储和数据完整性很重要的操作。(6)如果可能,用工具来把逻辑设计换成物理设计。三、实例图书馆管理系统的类图 1使用Rose绘制类图的步骤: 创建类图在浏览器窗口中,右键单击“Logic View”图标,从弹出的菜单中选择New Class Diagram。此时,在“Logic View”
24、树形结构下多了一个名为“New Diagram”的图标。要改变图标的名称,只要在创建时直接输入即可。还可以右键单击此图标,在弹出的菜单中选择Rename菜单项,可以为类图重命名。双击类图图标,出现类图的编辑区和编辑工具栏,类图的工作栏及其说明如下图所示。 加入类单击工具栏中类的图标,然后在类图编辑区域中某个位置单击鼠标左键,就可以在该类图中绘制一个类。要改变类的名称,只要在创建时直接输入即可。还可以右键单击编辑区域中类的图标,在弹出的菜单中选择Open Specification. 按钮,在出现的对话框里可以对类进行一定的设置,包括设置类的名字、类型等。 增加类的属性有两种方法可以增加类的属性
25、(即类的成员变量)。n 使用“Class Specification”。按照前面介绍的方法打开“Class Specification”窗口,然后选择“Attributes”选项卡,在窗口空白的地方单击右键,并且单击Insert按钮。 n 选择类的图标,单击右键,在弹出的菜单中选择New Attribute按钮。 增加类的方法类的方法是该类所能进行的操作。增加类的方法与增加类的属性相似,按照前面介绍的方法打开“Class Specification”窗口,然后选择“Operation”选项卡,在窗口空白的地方单击右键,并且单击Insert按钮。还可以选择类的图标,单击右键,在弹出的菜单中选择N
26、ew Operation按钮。2图书馆管理系统的类图。 在图书馆管理系统的实例中,数据类共有7个:Item、Title、Loan、Reservation、Borrower(项目,名称,借出,预定,借阅者), 5个类之间有一定的关系,如图2-1所示。图2-1 图书馆系统的类图实验三 时序图和协作图实验二 栈和队列实验目的1掌握时序图、协作图的绘制方法。2验证Rose的交互图自动生成功能。实验内容1 用Rose绘制图书馆管理系统的时序图与协作图。2 利用Rose的交互图自动生成功能,将已经设计好的时序图转换成协作图。实验要点及说明一、 时序图建模技术按时间顺序对控制流建模,要遵循如下策略。 设置交
27、互的语境。 通过识别对象在交互中扮演的角色,设置交互的场景。 为每个对象设置生命线。 从引发某个消息的信息开始,在生命线之间画出从顶到底依次展开的消息,显示每个消息的特性(如参数)。 如果需要可视化消息的嵌套或实际计算发生时的时间点,可以用激活修饰每个对象的生命期。 如果需要说明时间或空间的约束,可以用时间标记修饰每个消息,并附上合适的时间和空间约束。 如果需要更形式化的说明某控制流,可以为每个消息附上前置和后置条件。实例1图书馆管理系统的时序图1 使用Rational Rose绘制时序图的步骤。 创建时序图。在浏览器窗口中,在“Use Case View”的图标上单击鼠标右键,在弹出的菜单中
28、选择New Sequence Diagram。此时,在“Use Case View”树形结构下多了一个名为“New Diagram”的图标,右键单击此图标,在弹出的菜单中选择Rename菜单项,可以更改新创建的时序图的名字。双击时序图图标,出现时序图的编辑区和编辑工具栏。 时序图工具栏按钮简介。时序图工具栏中各个按钮的图标及其作用如图3-1所示。 添加对象。n 向时序图添加对象。首先点击工具栏中的对象图标按钮,然后在编辑区要放置对象的位置单击鼠标左键。图3-1 时序图工具栏各个按钮的图标及作用n 设置对象属性。可以双击相应的对象图标,弹出对象属性设置对话框。也可以选中要改变属性的对象,单击右键
29、,在弹出的菜单中选择“Open Specification.”,打开属性设置对话框。n 设置对象持续性。可以设置每个对象的持续性,Rose中提供了3个选项。“持续(Persistent)”对象保存到数据库或其他形式的永久存储体中,即使程序终止,对象依然存在。“静态(Static)”对象保存在内存中直到程序终止。“临时(Transient)”对象只是在短时间内保存在内存中。要设置对象的持续性,右键单击要设置持续性的对象,从弹出菜单中选择 “Open Specification.”,打开属性设置对话框,即可进行设置。 添加消息消息是对象间的通信,一个对象可以请求另一个对象做某件事。在时序图中,消息
30、用两个对象生命线之间的箭头表示。n 增加对象间的消息。首先点击工具栏中的图标按钮,然后将鼠标从发送消息的对象或角色的生命线拖动到接收消息的对象或角色的生命线。消息绘制出来以后,还要输入消息文本。双击表示消息的箭头,在弹出的对话框的Name 字段里输入要添加的文本。n 显示或取消消息编号。消息编号在时序图中是可选的,选择菜单栏的ToolsOptions菜单项,在出现的对话框中选择Diagram选项卡,将“Sequence numbering”复选框勾选,就可以显示消息编号;如果不勾选,消息编号不会显示在时序图中。n 显示或取消激活显示。选择菜单栏的ToolsOptions菜单项,在出现的对话框中
31、选择Diagram选项卡,将“Focus of control”复选框勾选,就可以显示激活;如果不勾选,激活不会显示在时序图中。2 图书馆管理系统的时序图。 在图书馆管理系统中,每个用例都可以建立一个时序图,将用例执行中各个参与的对象之间的消息传递过程表现出来。由于图书馆管理系统中用例很多,此处只介绍几个重要的时序图。 系统管理员添加书籍的时序图(如图3-2)。图3-2 系统管理员添加书籍的时序图时序图说明n add Item():添加书籍函数。n find(String):根据书籍查找相应书目的函数。n create(Integer, Title):修改书籍数目的函数。 图书管理员处理借书的
32、时序图(不包括预留书籍的情况)。图3-3 图书管理员处理借书的时序图时序图说明n find(String):查找书目的函数。n find_item():查找所要书籍的函数。n find_on_title(Title):根据书目名从数据库中找到书目信息的函数。n identify_borrower():验证借阅者身份的函数。n find(Sting):根据借阅者的登陆账号找到借阅者信息的函数。n create(Borrower, item):修改借阅信息的函数。 系统管理员删除书目的时序图(如图3-4)。时序图说明n find(String):书目类的查找函数。n find_on_title(T
33、itle):查找此书目下书籍信息的函数。n destroy:删除书籍信息的函数。n destroy:删除书目信息的函数。图3-4 系统管理员删除书目的时序图 借阅者预留书籍的时序图(如图3-5)。图3-5借阅者预留书籍的时序图时序图说明n Login:登陆系统的函数。n find(string):查找相应书目的函数。n reserve():预订书籍的函数。二、协作图建模技术利用协作图对控制流建模,要遵循如下策略。 设置交互的语境。 通过识别对象在交互中扮演的角色,设置交互的场景。 对每个对象设置初始特性。 描述对象之间可能有信息沿着它传递的链。 从引起交互的消息开始,适当地设置其顺序号,然后将
34、随后的每个消息附到适当的链上。 如果需要说明时间或空间约束,可以用时间标记修饰这个消息,并附上合适的时间和空间约束。 如果需要更形式化地说明这个控制流,可以为每个消息附上前置和后置条件。 实例图书馆管理系统的协作图1 使用Rational Rose绘制协作图的步骤。 创建协作图。在浏览器窗口中,在“Use Case View”的图标上单击鼠标右键,在弹出的菜单中选择New Collaboration Diagram。此时,在“Use Case View”树形结构下多了一个名为“New Diagram”的图标,右键单击此图标,在弹出的菜单中选择Rename菜单项,可以更改新创建的协作图的名字。双
35、击协作图图标,出现协作图的编辑区和编辑工具栏。 协作图工具栏按钮简介。协作图工具栏中各个按钮的图标及其作用如图3-6所示。 添加对象。首先点击工具栏中的图标按钮,然后在绘制区要放置对象的位置单击鼠标左键。协作图中对象的属性及持续性的设置方法见时序图。 添加消息n 添加对象间的消息。在将消息添加到两个对象之间前,首先要建立对象间的通信路径。单击工具栏中的图标按钮,在两个目标对象之间拖动一条直线,就在对象间增加了通信路径。有了通信路径,就可以在路径上增加对象之间的消息了。增加对象间消息的步骤如下:选择工具栏中的图标按钮或,单击两个对象之间的通信路径,就会画出消息箭头。消息绘制出来以后,还要输入消息
36、文本。双击表示消息的箭头,在弹出的对话框的Name 字段里输入要添加的文本。n 添加反身消息。选择工具栏中的图标按钮,然后单击收发消息的对象,为此对象增加一个到它自身的通信路径。反身通信路径在对象上方,显示为半圆形。 图3-6 协作图工具栏各个按钮的图标及作用选择工具栏中的图标按钮,然后在对象的反身通信路径上单击,Rose就会为对象添加消息。新增加的消息的属性值可以按照前面介绍的方法修改。 添加数据流。数据流描述一个对象向另一个对象发送消息时返回的消息。一般来说,对协作图的每个消息都加上数据流是没有必要的,这样做只会使图中堆满价值不大的信息。只要在一些重要消息上附加数据流即可。 数据流的添加步
37、骤如下:选择工具栏的图标按钮或,单击要返回数据的消息,Rose就会在协作图中添加数据流箭头。2图书馆管理系统的协作图。同时序图类似,在图书馆管理系统中,每个用例也可以建立一个协作图。此处只介绍几个重要的协作图。 系统管理员添加书籍的协作图(如图3-7)。协作图说明n add Item():添加书籍函数。n find(String):根据书籍名查找相应书目的函数。n update():修改某类书目下书籍数量的函数。图3-7 系统管理员添加书籍的协作图 图书管理员处理借书的协作图(如图3-8)。图3-8 图书管理员处理借书的协作图协作图说明n identify_borrower():验证借阅者身份
38、的函数。n find_reservation():查找预订信息的函数。n find(Borrow, Title):根据借阅者和借阅的书籍名找到相应预订信息的函数。n borrow():处理借书的函数。n update():更新某一书目下书籍数量的函数。n check_if_max():检查借阅凭证所借书籍数目是否已经超过最大限额的函数。 借阅者预订书籍的协作图(如图3-9)。图3-9 借阅者预订书籍的协作图协作图说明n identify_borrower():验证借阅者身份的函数。n find(String):根据书籍名称查找书目信息的函数。n reserve():预订某一书目下的书籍的函数。
39、n create(Title, Borrower):修改预订信息的函数。 实验四 状态图和活动图实验二 栈和队列实验目的掌握状态图、活动图的绘制方法。实验内容用Rose绘制图书馆管理系统的状态图与活动图。实验要点及说明一、 状态图建模技术建模。状态图一般用于对系统中的某些对象,比如类、用例和系统的行为建模。建模的时候要找出对象所处的状态、触发状态改变的动作,以及对象状态改变时应执行的动作。具体的建模步骤如下: 找出适合用模型描述其行为的类。 确定对象可能存在的状态。 确定引起状态转换的事件。 确定转换进行时对象执行的相应动作。 对建模的结果进行相应的精化和细化。实例图书馆管理系统的状态图1 使
40、用Rational Rose绘制状态图的步骤。 创建状态图。在浏览器窗口中,在“Logic View”的图标上单击鼠标右键,在弹出的菜单中选择New Statechart Diagram。点击菜单项后,在“Logic View”目录下创建“State/Activity Model”子目录,目录下是新建的状态图“New Diagram”的图标,右键单击此图标,在弹出的菜单中选择Rename菜单项,可以更改新创建的状态图的名字。双击状态图图标,出现状态图的编辑区和编辑工具栏。 状态图工具栏按钮简介。状态图工具栏中各个按钮的图标及其作用如图4-1所示。 加入开始状态和终止状态。状态图中可以加入两个特
41、殊的状态:开始状态和终止状态。开始状态在图中显示为实心圆,点击工具栏中的开始状态图标,然后在绘制区域要绘制开始状态的地方单击鼠标左键就可以加入开始状态。终止状态的加入方法与开始状态相同。 增加状态。增加状态的步骤如下:n 增加状态。点击工具栏中的状态图标,然后在绘制区域要绘制状态的地方单击鼠标左键。双击状态图标,在弹出的对话框中可设置状态的属性。 图4-1 状态图工具栏各个按钮的图标及作用n 增加入口动作。入口动作是对象进入某个状态时发生的动作,进入动作在状态内显示,前面有“Entry/”前缀。添加入口动作可以在状态属性对话框里进行:点击对话框的“Actions”选项卡,在空白处单击鼠标右键,
42、在弹出菜单中选择Insert菜单项。接着,双击出现的动作类型“Entry/”,在出现的对话框的“When”选项的下拉列表中选择“On Entry”,在“Name”选项中填入动作的名字。 点击“OK”按钮,退出此对话框,然后再点击属性设置对话框的“OK”按钮,状态图的入口动作就添加完成。n 增加出口动作。出口动作与入口动作相似,不过它在对象退出某个状态时发生。它的添加方法也和入口动作相似,只不过在“When”选项的下拉列表中选择“On Exit”。n 增加活动。活动是对象在特定状态时进行的行为,活动与入口动作/出口动作不同,活动是可以中断的。增加活动与增加入口动作和出口动作类似,只要在“When
43、”选项的下拉列表中选择“Do”即可。 增加转换。转换是从一种状态到另一种状态的过渡,在UML中转换用一条带箭头的直线表示。增加转换的步骤如下:n 加入转换图标。转换要在两个状态之间进行,要增加转换,首先点击工具栏中的图标按钮,然后单击转换的源状态,即转换开始的状态,向目标状态拖动一条直线。n 增加事件。事件导致对象从一种状态变到另一种状态。在框图中,事件可以用操作名和有意义的字符串表示。要增加事件,可以双击转换的图标,在出现的对话框的“General”选项卡里增加。在此对话框中,可以在“Event”选项中添加触发转换得事件,在“Argument(参数)”选项中添加事件的参数,还可以在“Docu
44、ment”选项中对事件的描述。n 增加动作。动作是转换过程中发生的不可中断的行为,大多数动作要在转换时发生。要增加动作,可以双击转换的图标,在出现的对话框中选择“Detail”选项卡,在“Action”选项中填入要发生的动作。 增加历史状态。状态图的绘制过程中有时要使用历史状态。历史状态的添加方法如下:n 双击要添加历史状态的状态,在打开的对话框中选择“General”选项卡。n 将左下角的“State/Activity History”复选框勾选,就可以增加历史状态了。2 图书馆管理系统中的状态图。 在图书馆管理系统中,有明确状态转换的类包括:书籍和借阅者的账户(相当于包含特定个人信息的电子
45、借阅凭证)。可以在系统中为这两类事物建立状态图。 书的状态图(如图4-2)。图4-2 书的状态图状态图说明n New book:还未入库的新书。n Delete:已经从书库里删除的书。n Available:书籍处于可用状态,即可以外借的状态。n Reserved:预订状态。n Borrowed:借出状态。 借阅者账户的状态图(如图4-3)。图4-3 借阅者账户的状态图状态图说明n New Borrow:新加入的借阅者的账户。n Account Available:借阅账户为可用状态,即未达到所规定的书籍借阅数目的上限。n Account Unavailable:借阅账户为不可用状态,即所借的书籍数已达到规定的书籍借阅数