面向对象分析与设计实验指导书
实验要求
计算机软件建模技术现在越来越广泛的应用于软件工程中。《面向对象分析与设计》课程实验的目的是为了使学生在课程理论学习的同时,通过在一个实践的环境下,实际学习软件统一建模语言,对软件建模技术有一个初步的了解及认识。通过本指导书中的各个实验,学习掌握对一般面向对象系统建模的方法与技术。总之,通过上述实验环节,使学生加深了解和更好地掌握《面向对象分析与设计》课程教学大纲要求的内容。
在《面向对象的系统设计与开发》的课程实验过程中,要求学生做到:
(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。
(2)仔细观察上机时出现的各种现象,记录主要情况,作出必要说明和分析。 (3)认真书写实验报告。实验报告包括实验目的和要求,实验情况及其分析。对需编程的实验,写出程序设计说明,给出源程序框图和清单。
(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。 (5)实验课程不迟到。如有事不能出席,所缺实验一般不补。
实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即时提问。第二部分是提交书面的实验报告。此外,针对以前教学中出现的问题,本实验将采用阶段检查方式,每个实验都将应当在规定的时间内完成并检查通过,过期视为未完成该实验,不计成绩。以避免期末集中检查方式产生的诸多不良问题,希望同学们抓紧时间,合理安排,认真完成。
2
目 录
实验一 熟悉Rational Rose建模环境 .............................................................................. 4 实验二 用例图及进度安排 ............................................................................................. 12 实验三 类图 .................................................................................................................. 18 实验四 交互图 ............................................................................................................... 28 实验六 状态图 ............................................................................................................... 46 实验七 对象图和包 ........................................................................................................ 53 实验九 组件图和部署图 ................................................................................................. 55 实验十 正向工程 ........................................................................................................... 61
3
实验一 熟悉Rational Rose建模环境
【实验目的】
(1)学会安装Rational Rose 2003,并掌握建模环境设置的方法。 (2)掌握Rational Rose 2003的菜单栏及工具栏的基本操作。 (3)熟悉Rational Rose的4个视图的相关操作。 (4)掌握运用Rational Rose 2003进行建模的方法。
【实验性质】
验证性实验。 【实验要求】
实验设备和器材:Pentium II以上微机,Windows2000以上操作系统,Rational Rose2003安装程序。
【实验内容】
本次实验要求每个人都安装一遍Rational Rose 2003,并熟悉Rational rose建模环境
【实验步骤】
(1)Rational Rose的安装
1.Rational Rose的获取
安装Rational Rose 2003必须先得到Rose软件的安装包。Rational Rose 2003是一款商业软件,建议读者购买Rational公司的正版软件,由于Rational公司已经被IBM公司收购,所以读者可以到IBM公司的官方网站(http://www.ibm.com)以获得相关信息或下载Rational Rose 2003的试用版进行使用。
2.Rational Rose的运行环境
安装Rational Rose 2003需要Windows 2000/Windows XP及其以上版本的操作系统平台,如果是Windows 2000操作系统,需要确定已经安装了Server Pack 2及其以上的补丁程序。
安装Rational Rose 2003的最低硬件配置条件为基于Pentium的PC机,600 MHz CPU,512 MB内存,400 MB硬盘空间,其中软件所需硬盘空间270 MB,每增加一个Rose模型,需增加1~3 MB。
3.Rational Rose的安装步骤
(1)双击启动Rational Rose 2003的安装程序setup.exe,进入安装向导界面,如图1所示。
(2)单击【下一步】按钮,进入如图2所示界面,此界面让用户选择所要安装的产品,这里选择第2项即【Rational Rose Enterprise Edition】。
4
图1 Rational Rose 2003安装向导 图2 选择安装产品界面
(3)单击【下一步】按钮,进入如图3所示界面,此界面让用户选择安装方式,在此选择【Desktop installation from CD image】选项,表示从本地CD进行安装。
(4)单击【下一步】按钮,进入安装向导界面,如图4所示。
图3 选择安装方式界面 图4 安装向导界面
(5)单击【Next】按钮,进入产品说明界面,如图5所示。
(6)单击【Next】按钮,进入协议许可界面,如图6所示。在此界面中选中【I accept the terms in the license agreement】单选按钮即可。
图5 产品说明界面 图6 协议许可界面
(7)单击【Next】按钮,进入安装路径设置界面,如图7所示。在此界面中可以单击【Change】按钮选择安装路径。
(8)在安装路径设置完毕后,单击【Next】按钮,即可进入自定义安装设置界面,如图8所示。在此界面中用户可以根据实际安装需要进行选择。
5
图7 安装路径设置界面 图8 自定义安装设置界面
(9)单击【Next】按钮,进入安装准备界面,如图9所示。
(10)单击【Install】按钮,开始复制文件,进行安装,如图10所示。
图9 安装准备界面 图10 复制文件界面
(11)系统安装完毕,完成界面如图11所示。
(12)单击【Finish】按钮后,会进入产品注册界面,如图12所示。在此界面中要求用户对软件进行注册,有多种注册方式可以选择,如果安装的是试用版,则不需要注册。
图11 安装完成界面 图12 产品注册界面
(13)用安装包里破解文件夹下的rational_perm覆盖安装目录下的rational_perm文件。这个文件默认在在c:\\Program Files\\Rational\\Common目录下.
6
(14)关于应用rational rose 后退出时报错:\"MEM_BAD_POINTER\"
解决方法:解压后有一个shw32.dll文件,用它替换安装目录下的同名文件即可。该方法在我的电脑上测试通过。
(2)熟悉Rational Rose的建模环境
Rational Rose 2003是菜单驱动式的集成化开发工具,并且可以通过工具栏使用其常用工具。它的操作界面分为3个部分:Browser窗口、Diagram窗口和Document窗口。其中,Browser窗口用来浏览、创建、删除和修改模型中的模型元素;Diagram窗口用来显示和创作各种模型图;Document窗口用来显示和书写各个模型元素的文档注释。
1.Rational Rose 2003主界面
启动Rational Rose 2003,将出现如图13所示的启动界面。
启动界面消失后,进入到Rational Rose 2003主界面,首先会弹出如图14所示的对话框窗口,这个对话框用来设置本次启动的初始动作,由3个选项卡构成,分别是:New(新建模型)、Existing(打开现有模型)和Recent(最近打开的模型)。
图13 启动界面
7
图14 New选项卡界面
New选项卡用来选择新建模型时所采用的模板。目前Rational Rose 2003所支持的模板有J2EE(Java 2 Enterprise Edition,Java第二版规范企业版),J2SE(Java 2 Standard Edition,Java第二版规范标准版)的1.2、1.3和1.4版,JDK(Java Development Kit,Java开发工具包)的1.16版和1.2版,JFC(Java Fundamental Classes,Java基础类库)的1.1版,Oracle8-datatypes(Oracle8的数据类型),Rational Unified Process(RUP,Rational统一过程),VB6 Standard(VB6标准程序),VC6 ATL(VC6 Active Templates Library,VC6活动模板库)的3.0版以及VC6 MFC(VC6 Microsoft Fundamental Classes,VC6基础类库)的3.0版。用户可以根据自己所要创建的模型在其中选择相应的模版新建模型;如果不需要任何模版,用户可以直接单击【Cancel】按钮来新建一个空白的模型。
Existing选项卡是用来打开一个已经存在的模型的,其界面如图15所示。
Recent选项卡是用来打开一个最近打开过的模型文件,其界面如图16所示。
图15 Existing选项卡界面 图16 Recent选项卡界面
进入Rational Rose 2003主界面后,可以看到主界面由8个区域组成:系统主菜单、标准工具栏、图形工具条、模型结构窗口、特性说明窗口、编辑窗口、日志记录窗口和状态栏,如图17所示。
系统主菜单
模型结构 窗口
标准工具栏
编辑窗口
图形工具条
特性说明 窗口
日志记录窗口
状态栏
8
图17 Rational Rose 2003主界面
(1)系统主菜单
系统主菜单有11个菜单项,分别是:File(文件)、Edit(编辑)、View(视图)、Format(格式)、Browse(浏览)、Report(报告)、Query(查询)、Tools(工具)、Add-Ins(插件)、Window(窗口)和Help(帮助),并且每个菜单项都有相应的二级菜单或三、四级菜单。
启动Rational Rose后即可建立一个模型,如图17所示在New选项卡中单击【Cancel】按钮建立了一个名为Untitled的空白模型,包含4个视图和一个特性集。此时,如果用户想保存这个模型,单击【File】菜单项,选择其下拉二级菜单中的菜单项【Save】;如果想保存为另一个名字的模型,选择菜单项【Save As】,点击后在出现的对话窗口中填入模型名称,即可将该模型存入磁盘文件。下次工作时打开该模型文件,即可进行模型图的建立和编辑。
又例如,在主菜单项【Add-Ins】下有二级菜单,单击二级菜单中的【Add-Ins Management】,打开功能扩充管理器,就可以方便得把需要的外部软件集成到当前环境中并作为菜单中的一员使用。如图18所
示,可以把Rational家族中系列成员数据模型器、模型集成器、程序测试器、版本控制器、网页模型器、网页发布器等集成到Rose工具菜单上,也可以把非Rational家族成员的C++、CORBA、Java、Oracle等软件集成到Rose工具菜单上,形成强大的集成化软件开发环境。
(2)标准工具栏 标准工具栏包含了最常用的一些操作,列出了个窗口使用的命令图标,并且用户还可以根据需要自行添加或删除工具栏中的按钮。默认情况下,标准工具栏从左至右依次分为7组,如图17所示。
第1组有3个按钮,分别对应【File】菜单项中的New(新建模型)、Open(打开现有模型)和Save(保存模型)3个子菜单项。
第2组也有3个按钮,分别对应【Edit】菜单项中的Cut(剪切)、Copy(复制)和Paste(粘贴)3个子菜单项。
第3组只有一个按钮,对应的是Print(打印)菜单项。
第4组有2个按钮,分别对应Help(帮助)和View Doc(显示文档)菜单项。 第5组共有5个按钮,分别代表Browse Class Diagram(浏览类图)、Browse Interaction Diagram(浏览交互图)、Browse Component Diagram(浏览组件图)、Browse State Machine Diagram(浏览状态机图)、Browse Deployment Diagram(浏览配置图)功能。
第6组是浏览工具栏,使用其中的按钮可以在图与图之间切换,第1个按钮是Browse Parent(浏览父图),即浏览在层次结构上高于当前图的上一层图;第2个按钮是Browse Previous Diagram(浏览前一图)。
第7组是显示工具栏,使用其中的按钮可以实现所显示的图形的放大或缩小,分别是
9
图12.18 Add-Ins功能扩充管理器
Zoom In(放大比例)、Zoom Out(缩小比例)、Fit In Window(和显示窗口一样大)以及Undo Fit In Window(恢复原大小)。
(3)图形工具条
图形工具条列出当前模型图可使用的绘图工具的图标,以便于在绘制各类UML模型图时快速调用相关模型图元素。工具条上显示的是常用的作图按钮,开发人员可以根据需要通过按钮的添加和修改来制定和操作工具条。
(4)模型结构窗口
模型结构窗口以目录形式显示当前模型的组织结构。在目录形式中,根目录下包含5个子目录:Use Case View(用例视图)、Logical View(逻辑视图)、Component View(组件视图)、Deployment View(配置视图)和Model Properties(模型特性),每个子目录下又有若干层子目录,用于对应不同的模型元素。在模型的编辑过程中,模型元素子目录将随着模型元素的创建而自动建立,随着模型元素的删除而自动删除。
(5)编辑窗口
编辑窗口用于编辑各类模型图,通过激发不同的图形窗口使用图形工具条中的图标来创建、绘制以及编辑模型图。可以编辑的模型图包括:用例图、类图、对象图、包图、状态图、活动图、时序图、协作图、组件图和配置图。
(6)特性说明窗口
特性说明窗口用来显示当前模型特性的说明文字,用于记录模型中各种元素的说明性文字。当选择框图中的不同元素时,文档窗口的内容将随之变化。
(7)日志记录窗口
日志记录窗口用来存储出错日志内容。在软件使用过程中,日志记录窗口记录并显示用户的某些操作信息。 (8)状态栏
状态栏显示了一些提示和当前所用的语言。 2.使用Rational Rose 2003建模
利用Rational Rose 2003可以非常方便的建立起UML模型,模型文件的扩展名是.mdl。当用户进入Rational Rose后,系统自动在模型结构窗口建立一个新的模型结构,该模型结构由用例视图、逻辑视图、组件视图、配置视图4个子目录和1个模型特性集组成。下面简单介绍用4个视图建立UML模型的过程。
10
图19 用例图编辑示例
(1)建立用例视图
用户可以通过用例视图建立多个用例包图,每个用例包图可以包含各自的子包图、用例图、参与者、用例及相互之间的关系等内容。如图19是一个用例视图下正在编辑的用例图。 下面介绍一下建立用例视图的步骤。 ① 创建新包目录
鼠标右键单击模型结构窗口中的【Use Case View】子目录项。
用户在弹出的菜单中选择【NewPackage】菜单项,在用例视图子目录下创建一个空的用例包图目录项。
用户输入包名,此处以“Business Package”为例。一个名为“Business Package”的用例包创建完毕。 ② 创建新用例图目录
鼠标右键单击模型结构窗口中的“Business Package”包图目录项。 用户在弹出的菜单中选择【NewUse Case Diagram】菜单项,在“Business Package”用例包图目录下创建一个空的用例图目录项。
用户输入用例图名称,此处以“Library”为例。一个名为“Library”的用例图创建完毕。系统默认用例图名为“Main”。 ③ 建立和编辑用例图
选择模型结构窗口中的“Business Package”包图目录项下的“Library”用例图目录,并双击打开。
Rational Rose在编辑窗口开辟一个工作区,用于绘制“Library”用例图。 添加用例。首先绘制用例图符并命名;然后右键该用例,在弹出菜单中选择【Open Specification】项,完成用例的特性说明;依次顺序完成其他用例的添加。 添加参与者。首先绘制参与者图符并命名;然后右键该参与者,在弹出菜单中选择【Open Specification】项,完成参与者的特性说明;依次顺序完成其他参与者的添加。
添加关系。首先单击工具栏中的实线箭线(单向关联)图符按钮;然后单击指定的参与者,并将鼠标从参与者拖动到指定的用例;输入关联名称,为关联命名;右键该关联,在弹出菜单中选择【Open Specification】项,完成关联的特性说明;依次顺序完成其他参与者和用例之间以及用例和用例之间关联的添加。除单向关联外的其他关系,如泛化、依赖等关系,添加方法相同。
如需删除某个元素,有两种删除方法。一种方法可在编辑窗口的工作区中选中要删除的元素,单击右键,在弹出菜单中选择【Delete】删除该元素,此时该元素在工作区中删除,但在模型结构窗口中仍然保留;另一种方法是在模型结构窗口中选中要删除的元素,单击右键,在弹出菜单中选择【Delete】删除该元素,这种方法删除得彻底。 ④ 建立和编辑用例包图
选择模型结构窗口中的“Business Package”包图目录项,并双击打开。
Rational Rose在编辑窗口开辟一个工作区,用于绘制“Business Package”包图。 添加包。
添加关系。
对于用例包图中包与关系的添加及删除方法与用例图的处理方法相同,在此不再赘述。 (2)建立逻辑视图
用户可以通过逻辑视图建立包括类图、对象图、状态图、活动图、时序图、协作图等在内的各类模型图。逻辑视图模型结构目录项的建立过程与用例视图完全一样,建立和编辑逻
11
辑视图各个模型图的过程也与用例图的建立和编辑相似。
① 建立和编辑类图
类图的建立和编辑过程与用例图类似,但也有自己的特点,建立一个类图的过程如下: 建立类图模型结构目录,其方法与建立用例图结构目录基本相同。
添加类。添加类及类命名的方法与添加用例的方法相同;类添加之后鼠标右键该类,在弹出菜单中选择【Open Specification】菜单项,打开类的特性说明窗口,进行详细的设置。
添加类的属性。鼠标右键该类,在弹出菜单中选择【NewAttribute】菜单项并输入属性名称,格式为“属性名:数据类型=初始值”;然后鼠标右键该属性,在弹出菜单中选择【Open Specification】菜单项,打开属性特性说明窗口,设置属性的数据类型、取值范围、可见性(Public、Private、Protected)等。
添加类的操作。鼠标右键该类,在弹出菜单中选择【NewOperation】菜单项并输入操作名称,格式为“操作名(参数:类型,„„):返回值类型”;然后打开操作特性说明窗口,设置操作的返回类型、功能说明、可见性、指定操作协议、限定、异常处理等。
建立类之间的关系。类间关系主要有关联关系、依赖关系、聚合关系和泛化关系(继承关系),在工具栏中分别选择相应的按钮进行建立;关系建立后,鼠标右键该关系,在弹出菜单中选择【Open Specification】菜单项,进行关系的特性说明设置。 ② 建立和编辑时序图
一个时序图的建立和编辑过程与类图完全相似。在时序图中,纵轴方向由上至下表示时间的先后顺序;横轴方向由左至右安排各个相关的对象。每个对象下面有由竖直虚线表示的生命线,用来标记该对象的生命活跃期。对象之间的消息传递又带箭头的实线表示,实线上标记消息名称;箭头方向由消息发送方指向接受方,消息的序号用来标记各消息发生的时间顺序。
③ 建立和编辑状态图、活动图、协作图及对象图
对象图、状态图、活动图及协作图都采用同样的方法进行建立和编辑,在这里不再赘述。 (3)建立组件视图及配置视图
组件视图由组件图及其包图组成;配置视图由配置图及其包图组成。组件视图及配置视图的包图、组件图及配置图的建立过程和方法与用例视图类似,在这里不再赘述。
实验二 用例图及进度安排
【实验目的】
(1)掌握识别参与者和用例的方法。
(2)掌握定义参与者之间、用例之间关系的方法。 (3)学会对用例进行描述。 (4)学会绘制用例图。
【实验性质】
12
设计性实验。
【实验要求】
实验设备和器材:Pentium II以上微机,Windows2000以上操作系统,Rational Rose2003安装程序。 【实验内容】 画出用例图 【实验步骤】
1、在图书管理系统中,管理员首先登录系统,系统验证通过后,管理方可向系统查询数据,在查询后,系统会给出提示,有没有找到相关的数据,管理员根据系统查询的返回结果,进行下一步的操作,就是删除读者,在删除的过程中,系统会对查询得到的结果判断该记录是否可以删除,若可以删除,则给删除提示,若不能删除,也给相关的提示信息。
绘图步骤:
(1)在用例图上双击main,出现如图1.1所示,为绘制用例图做好准备。
图1.1
(2)在图中的工具栏选取Actor图标,在右边的图中添加一个Actor,并输入名称:administrator,如图1.2所示。
(3)在左边的工具栏中,选取用例的图标,在右边的图中画出一个用例,并输入用例的名称:login 。
13
图1.2
(4)按照步骤(3),绘制出如图1.4和图1.5的两个用例。
图1.3
14
图1.4
图1.5
(5)在绘出了用例后,接下来的是绘制参与者与用例实现,如图1.6所示。
15
图1.6
(6)根据步骤(5),同时完成如图1.7和图1.8。此时,删除读者用例图就到此完成。其系统查询读者信息等其他的功能会在时序图和活动图中描绘。
(7)根据分析情况,进一步添加或细化用例图。
16
图1.7
图1.8
2.【扩展练习】
现拟开发一个BBS论坛系统,其总体需求如下: 新会员注册
会员登录论坛发表文章 会员及游客查询文章
会员信息、等级及权限管理 论坛分类管理 帖子管理
分析该系统的总体要求,创建其用例模型。创建用例模型应遵循以下步骤: ① 识别和确定参与者。 ② 识别和确定用例。 ③ 描述用例。
④ 定义用例之间的关系。 建立用例图,构造用例模型
根据以上描述,绘制系统的用例图。并选择其中一个用例(如添加课程Add Course)给出其用例描述。
3、【扩展练习】
某学校的网上选课系统主要包括如下功能:管理员通过系统界面进入,建立本学期要开的各种课程,将课程信息保存在数据库中并可以对课程进行改动和删除。学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以
17
及付费。同样,通过业务层,这些操作结果存入数据库中。
根据以上描述,绘制系统的用例图。并选择其中一个用例(如添加课程Add Course)给出其用例描述。
用例描述如下: 用例规约: 用例名称: 用例ID: 角色: 用例说明: 前置条件: 基本事件流: 建立新岗位 ESM-ZZJG-1 SuperUser SuperUser创建新岗位。 SuperUser已经登录ESM系统。 1. SuperUser请求新建岗位 2. ESM系统弹出岗位信息查询页面(如图ESM-ZZJG-1所示) 3. SuperUSer选择“新建” 4. 系统弹出岗位信息页面(如图ESM-ZZJG-2) 5.SuperUser输入岗位信息,包括岗位名、部门、岗位职责,并选择“保存” 6.系统保存新建岗位,并返回到岗位信息查询页面 其它事件流: 第5步,SuperUser选择“取消”,系统返回到岗位信息查询页面 第5步,SuperUser输入的岗位信息不完整,例如某一项没有输入,则系统提示岗位信息不完整,请重新输入 第6步,系统保存新建岗位信息时,发现系统中已经存在岗位名、部门相同的岗位信息,提示用户此岗位已经存在 异常事件流: 后置条件:
第6步,系统保存新建岗位时出现系统故障,例如网络故障,数据库服务器故障,系统弹出系统异常页面,提示SuperUSer保存失败 岗位信息保存到数据库中,并在岗位信息查询页面显示出刚刚创建的岗位(如图ESM-ZZJG-3) 实验三 类图
一、实验目的
1.理解类的基本概念。
2.掌握如何从需求分析中抽象出类的方法。 3.掌握在Rational Rose中绘制类的操作方法。 4.理解类间关系的基本概念。 5.掌握描绘类间关系的方法。
6.掌握在Rational Rose中绘制类关系的操作方法。
18
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
针对图书馆的图书馆管理系统完成如下任务: 1. 寻找和抽象出书籍管理功能中的类。 2. 对书籍管理功能中的类的关系建模。
四、实验步骤
1.由图书馆管理系统中的书籍管理功能可知,该模块是由书籍信息类、书目类、新增书籍界面类、修改书籍界面类、删除书籍界面类和书籍管理类6个类组成。
2.绘制类的步骤:
(1)打开前面初步构建的UML模型文件;
(2)打开Rose中的逻辑视图(Logical View),选择分析模型(analysis model)目录。并在其下创建一个子目录并命名为:“图书馆业务功能”。
(3)用鼠标右击“图书馆业务功能”在弹出来的菜单中选择“New→Class diagram”项,创建类图,如图4.1所示。
(4)双击新建的类图,并点右边控件集中选中的类的图标,并用鼠标在图中分别拖出一个类图,并命名为Book,如图4.2所示。
图4.1
19
图4.2
(5)接下来的一步为设置类的属性,在新的类中双击该类,在打开属性面板中,可以看到在此可以设置类的属性和方法等其他的信息,图4.3所示;后撞击Attributes这个栏目,此栏目为设置类的属性的选项,在图中间的单击右键,可以看到有一个“Insert”的选项,选中这个选项,图4.4所示,后在出现的对话框中输入相关信息如图4.5所示;如书本的ISBN号,在Type这个方框内输入此属性的类型值,同时可以看到一栏可以设置此属性的访问权限,一般这些属性都设置Private这个权限,如图4.6所示。这个类的其他属性也可以按照以上的做法设置,最后得到的结果是图4.7所示。
图4.3 图4.4
20
图4.5 图4.6
(6)设置好类的属性,现在来设置类的方法(也是操作),双击类后在弹出的菜单上选operations这个选项,可以看到图4.8所示,在图中的空白地方,单击右键,在弹出的菜单中选insert这个选项,也就只有这个选项可用,见图4.9,接着输入方法名,同时可以设置该方法的返回类型,也可以在Documentations的方框内填写一些相关的方法说明,如图4.12所示,设置好该方法的访问权限,见图4.13。类的其他方法也可以按上面来设置好,最后,得到该类的其他方法见类4.14。
图4.7 图4.8
21
图4.9 图4.11
图4.10
图4.12
22
图4.13 图4.14 (7)至此,类的方法和属性都设置好了,如图4.15所示。
图4.15
(8)接下来为书目类设置,按照上面的步骤可以设置好该类的属性和方法,如图4.16和图4.17所示。
23
图4.16 图4.17
(9)最后,绘制出由分析得出的各个类,如图4.18所示,此时,类图便完成。 (10)根据分析情况,进一步细化添加相关的类。
图4.18
24
3.在Rational Rose中绘制类间的关系。
分析:由前面图书馆管理系统中的书籍管理业务分析和对该业务的抽象出来的类可知,图书馆的主要静态模型类图是由书籍管理类、书类、书目类、管理员类、用户类和各种界面操作类组成。其中用户类与管理员类是泛化的关系,而其它类之间均是关联关系。
绘图步骤:
(1)打开上面做好的类图,添加管理员类,用户类,界面类。首先,添加一人管理员类,图5.1,并按照上面所说方法添加类的各种属性和方法,见图5.2、图5.3。
(2)可以依照上面的操作来添加其他的类,如:用户类(Reader类)、界面类(ActionForm),添加完后结果如图5.4 和图5.5所示;
(3)其他的类添加完后,就可以为各个类添加关系了,由关联、泛化、依赖等关系相互协作来静态描述业务系,所以,各个类的关系也由这几个关系来完成。如图5.6所示:Person类是administrator类和reader类两个类的父类,他们之间为泛化关系。administrator类和reader类是继承Person类。BoobItem类是继承Book类的,其他的类为一般的依赖关系,最后,连接完线条便得到图5.6。
(4)根据分析设计情况,进一步细化各类之间的关系。
图5.1
25
图5.2
图5.3
26
图.5.4
图5.5
27
4.【扩展练习】
现拟开发一个BBS论坛系统,其总体需求如下: 新会员注册
会员登录论坛发表文章 会员及游客查询文章 会员信息、等级及权限管理 论坛分类管理 帖子管理
分析该系统的总体要求,创建其类图模型。创建类图模型应遵循以下步骤: ① 识别系统对象。 ② 识别和定义类。 ③ 定义类间的关系。
④ 建立类图,构造静态模型。
实验四 交互图
一、实验目的
1.理解顺序图的基本概念。
28
2.理解协作图的基本概念。
3.掌握在Rational Rose中绘制交互图的操作方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
前几次实验我们完成了图书馆的管理系统的需求分析,并从业务对象中抽象出了类。现在需要对前面所给出的用例进行实现,而用例的实现主要由交互图来指定和描述系统的动态特性。现指派你运用所学的相关知识,完成如下任务:
1.对书籍管理功能中的用例进行动态建模。
四、实验步骤
1.分析:根据演示部分对图书业务功能模块中的交互操作进行动态建模的操作步骤和方法,请你对书籍管理模块中的交互操作进行动态建模。该模块中主要存在新增书籍、修改书籍信息和删除书籍三种交互操作。
2.请根据教材中示例部分在Rational Rose中绘制上述的交互图。 绘图步骤:
(1)在Rose软件的左边栏目上的Logicl View单击右键,新建一个时序图,时序图是交互图一种表示,可以用时序来表示,如图6.1;在此,先单间介绍一下用法:图中的直线箭头是发送消息;虚线箭头是返回消息;曲折线是对象自己给自己发送消息并调用。 (2)接下来的是添加类,系统中的类是其他的方法的边界,在上面做好的类找到可以直接拖拉来图中,见图6.2 和图6.3所示。
29
图6.1
图6.2
30
图6.3
(3)添加类后,便可以添加方法了,开始是必需是外面的实体向系统发送消息,如图6.4所示,是管理员登录时向系统发送的消息;
图6.4
(5)可以按上一步的方法来完成其他的方法,如viladate(验证),返回验证结果,当用户收到结果后,可以正常登录后便能进行增加图书见图6.5到图6.9。最后得到的时序图如图6.10所示。
31
图6.5
: administrator1: login : ActionFormSystem2: login3: validate
图6.6
32
: administrator : SystemActionForm1: login2: login3: validate4: result5: result图6.7
: administrator : SystemActionForm1: login2: login3: validate4: result5: result6: add7: add图6.8
33
: administrator : SystemActionForm1: login2: login3: validate4: result5: result6: add7: add8: addbook图6.9
: administrator : SystemActionForm1: login2: login3: validate4: result5: result6: add7: add8: addbook9: addruselt10: addresult
图6.10
(6)完成了时序图后,可以按F5键便得到增加图书的协作图,见图6.11所示。 34
1: login6: add : administrator5: result10: addresult : ActionForm3: validate8: addbook4: result9: addruselt2: login7: addSystem
图6.11
(7)剩下的更新图书信息和删除图书信息的交互图在此不再一一详细的介绍,其绘图方法跟绘制增加图书的方法一样,最后得到见图6.12 到图6.15
: administrator : ActionForm1: login2: loginupdate : System3: validate4: result5: result6: updatebook7: updatebook8: updatebook9: updateresult10: updateresult
图6.12
35
1: login6: updatebook : administrator5: result : ActionForm10: updateresult4: result3: validate9: updateresult8: updatebook2: login7: updatebookupdate : System图6.13
: : System : administratorActionForm1: login2: login3: viladate4: viladateresult5: viladateresult6: delete7: delete8: delete9: deleteresult10: deleteresult图6.14
36
1: login6: delete : administrator5: viladateresult10: deleteresult : ActionForm3: viladate8: delete4: viladateresult9: deleteresult2: login7: delete : System
图6.15
3.【扩展练习】
以选课系统中的选课用例(Select Course)为例,设计Select Course的顺序图。 为了使问题简单一些,不考虑学生的登录。假设学生已经成功登录系统,Select Course的事件流如下:
(1) 学生进入选课主界面;
(2) 学生点击选课;
(3) 系统显示所有课程信息;
(4) 学生选择课程;
(5) 系统验证课程是否可选; A1:课程不可选
(6) 系统提示课程选择成功,提示学生交费。 (7) 用例结束。
A1:课程不可选
(1) 系统提示课程不可选原因; (2) 学生重新选课;
(3) 重新验证直至成功; (4) 转选课事件流第6步。
根据Select Course的事件流描述,绘制出Select Course用例的顺序图和协作图。 4.【扩展练习】
37
实验五 活动图
一、实验目的
1.熟悉活动图的基本功能和使用方法。 2.掌握如何使用建模工具绘制活动图方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
根据图书管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。要求:
用活动图来描述系统中已知用例的业务过程: 1.描述删除读者用例。
四、实验步骤
绘制“删除读者信息”用例的活动图。删除读者信息一般按照以下步骤进行: (1)管理员在录入界面,输入待删除的读者名;
(2)“业务逻辑”组件在数据库中,查找待删除的读者名;
(3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续; (4)“业务逻辑”组件判断“待删除的读者”是否可以删除;
(5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续; (6)在数据库中,删除相关信息; (7)显示删除成功信息; (8)结束。 绘图步骤:
(1)在用例图中,找到删除的用例,如图2.1所示,在删除用例上单击右键,在弹出的快捷菜单中选“New”,Rose工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。如图2.2所示。
38
图 2.1
图2.2
(2)新建好活动图后,双击删除的活动图,得到如图2.3所示,然后把在左边的工具栏内点击“Swinlane“,在右边的图添加一个泳道,如图2.4所示,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool,得到图2.5。
39
图2.3
(3)接着在左边的工具上选取开始点,并在administrator的泳道上添加,如图2.6所示;添加完开始结点后,再来为此活动图添加活动,图2.7所示,在左边的工具栏上选中Activity这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系,如图2.8所示。
图2.4
40
图2.5
图2.6
41
图2.7
图2.8
(3)完成步骤(2)后,登录输入需要对输入的信息进行验证,则在图中添加一个验证框,如图2.9所示:添加验证框后,验证的内容,如果通过,则允许管理员进行查询操作,如图2.10所示;如不能通过,则结束,如图2.11所示。
42
图2.9
图2.10
43
图2.11
(4)验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete,如图2.12和图2.13所示。
图2.12
44
图2.13
(5)最后,在删除后,系统会返回操作结果给操作者,图2.14所示;删除成功或删除失败系统都会有信息返回给操作者。
(7)根据分析设计情况,进一步添加或细化活动图。
图2.14
45
2. 【扩展练习】
现拟开发一个BBS论坛系统,其总体需求如下: 新会员注册
会员登录论坛发表文章 会员及游客查询文章
会员信息、等级及权限管理 论坛分类管理 帖子管理
本实验内容为:在完成代开发系统用例图建模基础上,使用活动图对于待开发系统中各主要用例进行动态行为建模。
在使用活动图进行动态建模时,可以参照以下步骤进行: ① 识别要对其工作流进行描述的用例。 ② 进行主路径建模。
③ 对细化主路径,进行从路径建模。 ④ 添加泳道来标识活动的事务分区。 ⑤ 改进高层活动并添加到更多活动图。 在绘制活动图时,基本的操作步骤如下: ① 创建活动图。
② 添加动作,完成动作建模。
③ 添加其他结点及控制流,完成控制流建模。 ④ 添加对象及对象流,完成对象流建模。 ⑤ 添加泳道。
⑥ 检查活动图,并进行细化整理。
实验六 状态图
一、实验目的
1.熟悉活动图的基本功能和使用方法。 2.掌握如何使用建模工具绘制活动图方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
通过前面内容的学习,完成了对图书馆的图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动态。通过这两类图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状
46
态图能从对象的动态行为的角度去描述系统的业务活动。因此,指派你运用本节所学的状态图,完成如下任务:
1. 完成图书业务模块中还书用例的状态图。
四、实验步骤
1.业务分析:由前面章节对图书馆管理系统中的还书主要业务的描述和分析可知,还书业务的动态行为是由:空闲(idle)、图书查找(finding)、还书(reversion)、失败(Failure)、归还成功(Success)5种状态及激活相互转换的事件。
2.绘制状态图:请您根据分析运用UML绘制还书用例的状态图。 分析:
还书的状态图,还书的主要业务都是由管理员来完成,首先管理员必须先登录系统,并通过验证后,便可以进行下一步的操作,查找该书的相关信息,如存在,则进行还书操作,如不存在该信息,则给出提示信息;
绘图步骤:
(1)在用例图中的还书(revesion)用例,单击右键,如图3.1所示,新建一个状态图,命名为revesion状态图,图3.2所示。
图3.1
47
图3.2
(2)双击“receivesion”状态图,展开后,在左边的工具栏上选取一个实心圆点,此结点为开始结点,图3.3所示;当还书的时候,操作者先要询问系统的状态,如果系统忙,操作者则必需等待,因此,得到系统的两种状态,如图3.5所示。
图3.3
48
图3.4
图3.5
(3)操作者在询问系统和状态后,得到的图3.6所示两种状态,如果系统忙,操作者必需要等待、结束,如图3.7和图3.8所示,重返步骤(1)。
49
图3.6
图3.7
50
图3.8
(4)如系统空闲,则进行对还书的信息进行查询操作,图3.9所示;查询也有两种结果,一是查询得到该书的相关信息,二查询不到该书的相关信息;则此时有两种状态,需要建立两种状态,如图3.10所示。
图3.9
51
图3.10
(5)最后,操作者进行了操作后,系统会给出操作的结果给操作者;操作成功或失败,都会有提示信息给出。整个的还书的过程便完成;图3.11所示。
(7)根据分析设计情况,进一步添加或细化状态图。
图3.11
2. 【扩展练习】
52
(1)针对实验三的BBS论坛系统,主要完成以下子系统的状态图建模: 前台业务处理子系统(主要处理访问论坛过程中的状态转移) 后台会员管理子系统
后台论坛分类管理子系统 后台帖子管理子系统
(2)现拟开发一个人力资源管理系统,要求建立employee类的状态图,employee类的状态信息如下:
Apply状态 在这个状态下进行面试,出现hire(雇佣)事件时提出此状态。 Employed状态 该状态按工资的支付方式分为三个子状态Hourly、Salaried和Commissioned。其支付方式可随时改变。当进入/退出子状态时建立/删除支付方式分类。
Leave of Absence状态 雇员在任何雇佣子状态下最长可请假1年。如果雇员返回到Employed状态的同样支付方式子状态,则结束此状态信息。
Terminated状态 在任何Employed状态的子状态下,雇员可以被开除或自动提出辞职。此状态终结时,要做雇员记录(Employee Record)。 Retired状态 雇员在60岁时退休,在此状态下计算养老金信息。 在使用状态图进行动态建模时,可以参照以下步骤进行: ① 识别一个需要继续建模的实体。
② 对状态建模,即确定对象可能存在的状态。 ③ 对事件建模,即确定能引起状态转移的事件。 ④ 对动作建模,即确定转移激活时被执行的动作。 ⑤ 对建模结果进行精化和细化。 在绘制状态图时,基本的操作步骤如下: ① 创建状态图。
② 添加初始状态和终止状态。 ③ 添加状态,并完成状态相关设置。 ④ 完成组合状态。
⑤ 添加历史指示器。
⑥ 添加转移,并完成相关设置。 ⑦ 检查状态图,并进行细化整理。
实验七 对象图和包
一、实验目的
1.对象图的基本概念。 2.包的基本概念。
3.掌握在Rational Rose中绘制对象图和包。
二、实验器材
53
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
图书管理系统的分析和设计已按计划完成类图和交互图的分析与设计,不过当这份文档提交给图书馆的使用人员审查时,他们认为最好能用一个实例来说明系统的运作,现系统分析部指派您完成该项任务,为系统绘制一张对象图。
1.以借书过程为例绘制对象图;
四、实验步骤
为了更好的描述借书过程,根据图8.1绘制借书过程中某一时刻的对象图
LendFrame-BookName-ReaderId+lendBook()Book-BookName-ISBN+findFreeItem()BookManager+lendBook()+findBookByName()Item-ItemId-ISBN-State+getItemId()+setLoanState()图8.1
(1) 确定对象的值
假定管理员在为读者“S05001”办理“UML Guide”的借书手续,这时首先弹出一个借书窗口“lfLend”,在其上输入读者ID和书名,点击“借书”按钮。这里lfLend对象将调用业务管理者类bmMain对象的findBookByName方法去获取一个书名为“UML Guide”的Book对象bLend,然后bmMain再通过lendBook方法,去调用bLend对象findFreeItem方法,去查找一本可借阅的图书,这里假定找到图书iLend,然后使用setLoanState更改iLend的借阅状态为“借出”,完成借书过程。
表8.1描述了在成功设置iLend对象借阅状态为“借出”状态时,与借书过程有关的各对象的值。
表8.1
类名 LendFrame 对象名 lfLend 属性值 BookName=”UML Guide” ReaderID=”S05001” 方法 lendBook BookManager bmMain findBookByName lendBook Book bLend BookName=”UML Guide” findFreeItem 54
ISBN=”ISBN12315” Item iLend ISBN=”ISBN12315” ItemID=”B05001”
(2) 绘图,根据(1)中的描述,绘制出当iLend状态变更时,系统中各对象的状态如图8.2所示。
(3)根据分析设计情况,进一步设计对象和包之间的关系。
getItemID setLoanState lfLendBookName = UML GuideReaderId = S05001iLend : ItemItemId = B05001ISBN = ISBN12315State = 借出bmMain : BookManagerbLend : BookBookName = UML GuideISBN = ISBN12315
图8.2
实验九 组件图和部署图
一、实验目的
1.理解组件图的基本概念。 2.理解组件图的应用:逻辑部署。 3.理解部署图的基本概念。 4.理解部署图的应用:物理部署。 5.掌握组件图和部署图绘制的方法。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
图书管理系统的分析和设计已按计划完成类图和交互图的分析与设计,下一步将完成系统的组件图和部署图,现系统分析部指派您完成如下任务:
55
1. 完成系统的组件图。
四、实验步骤
1. 绘制组件图 分析:
在图书馆管理系统中,通过分析可以发现类图中的类应分为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图,出现图10.1,为编辑组件图做好准备,这时绘图工具栏中的图标如图中椭圆所示,其中具体含义可参看本节“补充图标”一段的介绍。
56
图10.1
(2)在组件视图中,从工具栏中选择MainProgram图标,在右边的绘图区中添加一个新组件,并取名StartClass.java表明新增一个主程序。
图10.2
(3)选择新创建的组件,点击鼠标右键,在弹出的菜单中选择“Open Sepcification”,弹出图10.3对话框。
(4)在对话框中,可以修改组件的名称,设置组件的类型,指定实现的语言。这里新组件的名称定为“StartClass.java”,组件构型为Main Program(Rose中提供了多种构型,大部分在补充图标一段中均有简单的介绍),实现语言为JAVA(Rose中默认的是分析语言Analysis),修改结果如图10.4所示。
图10.3
57
图10.4
(5)组件图描述的是系统的实现视图,因此要指定实现组件功能的文件。点击File选项卡,在列表框中点击鼠标右键,在弹出的菜单中选择“Insert File”,弹出文件对话框。在对话框中,键入StartClass.java,点击“打开”按键,这时对话框如图10.5所示。
图10.5
(6)双击StartClass.java,弹出是否创建对话框,询问是否创建文件,选择“YES”,弹出记事本,这时可输入相应的源程序(注意:如果这里选择的文件已经存在,则不会弹出创建文件对话框,而是直接显示相应文件内容)。
(7)创建相应的包。选择包图标,在右图中创建。这里同样需要对每个组件打开“Open
58
Specification”对话框,设置具体的属性,对“包”组件来说需要在Files选项卡中指明与其对应的目录。创建完毕的组件图如图10.6所示。
图10.6
(8)选择业务对象包(BO),双击,打开业务对象包的详细组件图,这里根据分析的结果分别创建Title.java,Item.java,Loan.java,BorrowerInfomation.java,Reservation.java组件,并设置好每个组件的构型和对应的文件。创建好的BO包组件图如图10.7。
图10.7
(9)创建依赖关系。在本节“关系”一段中,已经描述过依赖关系使用虚线表示,因此根据分析中的结果,在图中将相互依赖的组件连接即可。完成后的组件图如图10.8。
59
图10.8
2. 绘制部署图 分析:
本例的图书管理系统目前开发的是一个单机版系统,其中所有的运算均在一台机器上完成,但是由于打印报表的需要,系统还应配备一台打印机。因此得出系统中存在2个节点:
① 一台主机,其类型是Processor。 ② 一台打印机,其类型是Device。 绘图步骤:
(1)浏览窗口中选择“Deployment View”,弹出如图10.9所示窗口。
图10.9
(2)在图中添加分别添加一个Processer和Device,并分别命名为“computer with java
60
support”和“Printer”,添加完毕后,其结果如图10.10所示。
图10.10
(3)为节点添加连接关系。全图如图10.11。
图10.11
实验十 正向工程
一、实验目的
1.理解正向工程的基本概念。
61
2.利用Rose工具生成代码框架。 3.在实现过程中使用转换后的代码。 4.Java编程综合练习。
二、实验器材
1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容
现在,本例的图书管理系统的分析和设计工作已经基本完成,即将进入编码阶段。为了加快编码进度,可以利用建模工具执行正向工程,将系统中的模型转换成指定语言类型的代码框架,现要求您完成该项任务。
四、实验步骤
使用Rose工具将设计的模型通过正向工程生成代码框架。按照使用Rose工具生成代码的6步基本步骤可以顺利的完成代码框架的生成工作。
(1)检查模型, (2)创建组件 (3)将类映射到组件 (4)设置代码生成属性 (5)选择类,组件和包 (6)生成代码 步骤:
(1) 在上面做好的类图和组件图,浏览窗口中选择“Component View”;见图12.1。 (2) 本例是用实现administrator类为例来讲一下怎样实现正向工程,首先在左边的工具栏内选一个组件,并命名为administrator类,并找到这个类。
(3) 在上面的图中找到administrator类后,把它拖拉到刚才建好的组件图里面,见图12.2所示。
62
图12.1
图12.2
63
(4)做完上一步后,双击该组件,在找开的对话框中,选“Files”这个选项,如图12.3那样设置。
图12.3
(5)做完一步后,右键单击该组件,便会看到有一项为“Java/J2EE”,如图12.4所示,当鼠标移到该项上时会有弹出快捷菜单“Generate Code“,见图12.5,接下来会一另一个对话框出现,选择刚才添加的类点击中间的“Assige”键,图12.6示。到此,正向工程生成代码做完,不过,生成的代码没有具体的代码,有类的属性和方法,但没有方法,这需要程序员编写。
图12.4
64
图12.5
图12.6
以下为所生成的administrator.java的部分源代码 //Source file: D:\\\\UML\\\\1\\\\administrator.java public class administrator extends Person {
public String name; public String Id; /**
65
* @roseuid 46F9CE9B01B5 */
public administrator() { } }
(6)其他的类的正向工程生成代码同上面的方法一样,在此不再一一介绍。 (7)请尽量实现你所作类图和组件图所涉及的代码。 66
因篇幅问题不能全部显示,请点此查看更多更全内容