实验四包图和对象图实例
一、实验目的
1.掌握对象图和包图的基本概念
2.了解何时使用对象图和包图
3. 掌握对象图和包图绘制方法
二、实验条件
计算机一台,windows操作系统,rational rose或visio软件(2003-2023版)
三、实验原理及内容
一个"包图"可以是任何一种的UML图组成,通常是UML用例图或UML类图。 包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组。 包被描述成文件夹,可以应用在任何一种UML图上。 虽然包图并非是正式的UML图,但实际上他们是很有用处的, 创建一个包图是为了∶描述你的需求高阶概述。
为了更好地描述借书过程,根据图4.1绘制借书过程中某一时刻的对象图,以借书过程为例绘制对象图:
例1:
图4.1 图书馆借书类图
1.确定对象的值
假定管理员在为读者“S05001”办理书籍“UML Guide”的借书手续,这时首先弹出一个借书窗口LendFrame类的对象“lfLend”,在其上输入读者ID和书名,点击“借书”按钮。这里lfLend对象将调用业务管理者BookManager类的对象bmMain的findBookByName方法去获取一个书名为“UML Guide”的书籍Book类的对象bLend,然后bmMain再通过lendBook方法,去调用bLend对象findFreeItem方法,去查找一本可借阅的图书,这里假定找到书目Item类的对象iLend,然后使用setLoanState更改iLend的借阅状态为“借出”,完成借书过程。
表4.1描述了在成功设置iLend对象借阅状态为“借出”状态时,与借书过程有关的各对象的值。
表4.1 参数表
类名 | 对象名 | 属性值 | 方法 |
LendFrame | lfLend | BookName=“UML Guide” ReaderID=“S05001” | lendBook |
BookManager | bmMain | findBookByName lendBook | |
Book | bLend | BookName=“UML Guide” ISBN=“ISBN12315” | findFreeItem |
Item | iLend | ISBN=“ISBN12315” ItemID=“B05001” State=“借出” | getItemID setLoanState |
2.绘图,根据1中的描述,绘制出当iLend状态变更时,系统中各对象的状态如图4.2所示。
图4.2 变更后的对象图
3.根据分析设计情况,进一步设计对象和包之间的关系。
4.将图4.1中四个类分别放入四个包中,完成包图的绘制。
例2:
例3:
例4:
四、实验思考题
1 请简述建立对象图的过程。
打开Rational Rose在Logical View中创建相关的类->创建属性和方法->在Use Case View中右击选择new->Collabortion Diagram->选择object->在窗口中绘图后右击->选择Open Specification设置name和class->使用object Line连接。
2 请简述建立包图的过程。
打开Rational Rose在Logical View中右击选择new->Package->创建后选择右击点击->new->class->将创建的包拖入窗口后使用Dependency or instantistes连接。
3 实验例题完成后,将截图粘贴到实验报告中