类图实例和习题要点
UML中类图实例

接口:空心圆+直线(唐老鸭类实现了‘讲人话’);依赖:虚线+箭头(植物和空气的关系);关联:实线+箭头(企鹅需要知道气候才迁移);聚合:空心四边形+实线+箭头(雁群和年夜雁的关系);合成/组合:实心四边形+实线+箭头(鸟和同党的关系);泛化/继承:空心三角形+实线(植物和鸟的继承关系);实现:空心三角形+虚线(实现年夜雁飞翔的接口);UML类图解释UML类图:1. 首先看“植物”矩形框, 它代表一个类.该类图分为三层, 第一层显示类的名称, 如果是笼统类就要用斜体显示.第二层是类的特性, 通常就是字段和属性.第三层是类的把持, 通常是方法和行为.注意前面的符号, ‘+’暗示public, ‘—’ 暗示private, ‘#’暗示protected.2. “飞翔”矩形框暗示一个接口图, 它与类图的区别主要是顶端有《interface》显示, 第一行是接口名称, 第二行是接口方法.接口还有另一种暗示方法, 俗称棒棒糖暗示法, 就是唐老鸭类实现了“讲人话”的接口.interfaceIFlyinterfaceIlanguage{{voidFly();void Speak();}}3. 植物, 鸟, 鸭, 唐老鸭他们之间都是继承的关系,继承关系用空心三角形+实现来暗示.4.“年夜雁”实现了“飞翔”接口.实现接口用空心三角形+虚线来暗示.(注:下面的图中应为空心三角形)classBird:Animal cl ass WideGoose:IFly{{//继承植物类//实现飞翔接口}}5. 企鹅与气候有很年夜的关系, 企鹅需要“知道”气候的变动, 需要“了解”气候规律.当一个类“知道”另一个类时, 可以用关联(association)关系.关联关系用实线箭头来暗示.class Penguin :Bird{private Climate climate;//在企鹅Penguin中, 引用到气候Climate对象}6. “年夜雁”和“雁群”这两个类.年夜雁是群居植物, 每只年夜雁都属于一个雁群, 一个雁群可以有多只年夜雁.所以它们之间就满足聚合(Aggregation)关系.聚合暗示一种弱的“拥有”关系, 体现的是A对象可以包括B对象, 但B对象不是A对象的一部份.聚合关系用空心的菱形+ 实线箭头暗示.class WideGooseAggregate{private WideGoose[] arrayWideGoose;//在雁群WideGooseAggregate类中, 有年夜雁数组对象arrayWideGoose}7. “鸟”和“同党”这两个类.鸟和同党似整体和部份的关系, 而且同党和鸟的生命周期是相同的, 在这里鸟和其同党就是合成关系.合成(composition)是一种强的“拥有”关系, 体现了严格的部份和整体的关系, 部份和整体的生命周期一样.合成关系用实心的的菱形+实线箭头来暗示.另外, 合成关系的连线两端还有一个数字“1”和数字“2”, , 这被称为基数.标明这一真个类可以有几个实例, 很显然, 一个鸟应该有两支同党.如果一个类可能有无数个实例, 则就用“n”来暗示.关联关系, 聚合关系也可以有基数的.class Bird{private Wing wing;public Bird(){wing=new Wing();//在鸟Bird类中, 初始化时, 实例化同党Wing,它们之间同时生成}}8. “植物”、“氧气”与“水”之间.植物有几年夜特征, 比如有新陈代谢, 能繁殖.而植物要有生命, 需要氧气, 水以及食物等.也就是说植物依赖于氧气和水.它们之间是依赖关系(Dependency),用虚线箭头来暗示.abstractclass Animal{public bolism(Oxygen oxygen,Water water){}。
4-2类图练习题

用例图示例
Administrator update inventory
<<include>> load inventory data <<include>>
run inventory reports
save inventory data <<include>>
<<include>> <<extend>> sale <<extend>> verify check verify credit card
credit card +Verify() 0..* n sale +Update() check +verify() 0..* n 1 n +Load() +Save() +Update()
inventory
3 图书管理系统需求如下: 添加图书 删除图书 添加标题 删除标题 添加借阅者信息 删除借阅者信息 登陆
创建类图的步骤如下: (1)将学生可以是在校生或者毕业生建模为3个类: Student、UnderGraduate和Graduate,其中,后两个类 是Student类的子类。 (2)为“在校生可以是助教的一种”建立模型,即建立 UnderGraduate类的另一个超类Tutor。 (3)通过创建从Tutor到Student的关联(名为tutors),建 立一名助教指导一名学生的模型。 (4)将“教师和教授属于不同级别的教员”建模为3个类: Instructor、Teacher和Professor,其中,后两个类是 Instructor类的子类。 (5)建立“一名教师助理可以协助一名教师和一名教授, 一名教师只能有一名教师助理,一名教授可以有5名教师 助理”的模型。创建TeacherAssistant类,并使其与 Teacher类和Professor类都建立关联。 (6)将TeacherAssistant类建模为Graduate类的派生类。
第三章 类图

3.1 类图的概念
图3-1电子商务网站的对象模型
3.1 类图的概念
2、类图的作用 类图常用来描述业务或软件系统的组成、结构和关系。
3、类图的组成元素 类 接口 协作 关系 注释 约束 包
3.2 UML中的类
1、类的表示 (1)类的定义
类是具有相似结构、行为和关系的一组对象的描述 符。 (2)类的表示
关于聚合与组合
2、泛化-Generalization
表示两个类元间“一般”与“特殊”的关系。 对应面向对象编程语言中类与类之间的继承关系。 “is a kind of”关系,XX是一种XX
Athlete
SwimmerBiblioteka Golfer3、实现-Realization
表达一种说明元素与实现元素之间的关系; 类和接口之间的关系是实现关系,表示类实现接口提供的
3.2 UML中的类
(7)类的约束 约束指定了类所要满足的一个或多个规则。 在UML中,约
束是用花括号括起来的自由文本。
Washing Machine
Brand name Model name Serial number Capacity Add clothes( ) Add detergent( ) Remove clothes( )
表示客户与提供者之间用不同的方法表现同一个概念, 通常一个概念更抽象,一个概念更具体。包括:
① 跟踪<<trace>>--声明不同模型中的元素之间存在一些 连接但不如映射精确。
② 精化<<refine>>--声明具有两个不同语义层次上的元 素之间的映射。
③ 派生<<derive>>--声明一个实例可以从另一个实例导 出。
UML中类图实例

创作编号:GB8878185555334563BT9125XW创作者:凤呜大王*UML中类图实例接口:空心圆+直线(唐老鸭类实现了‘讲人话’);依赖:虚线+箭头(动物和空气的关系);关联:实线+箭头(企鹅需要知道气候才迁移);聚合:空心四边形+实线+箭头(雁群和大雁的关系);合成/组合:实心四边形+实线+箭头(鸟和翅膀的关系);泛化/继承:空心三角形+实线(动物和鸟的继承关系);实现:空心三角形+虚线(实现大雁飞翔的接口);UML类图解释UML类图:1. 首先看“动物”矩形框,它代表一个类。
该类图分为三层,第一层显示类的名称,如果是抽象类就要用斜体显示。
第二层是类的特性,通常就是字段和属性。
第三层是类的操作,通常是方法和行为。
注意前面的符号,‘+’表示public, ‘—’ 表示private, ‘#’表示protected.2. “飞翔”矩形框表示一个接口图,它与类图的区别主要是顶端有《interface》显示,第一行是接口名称,第二行是接口方法。
接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了“讲人话”的接口。
interface IFly interface Ilanguage{ {void Fly(); void Speak();} }3. 动物,鸟,鸭,唐老鸭他们之间都是继承的关系,继承关系用空心三角形+实现来表示。
4.“大雁”实现了“飞翔”接口。
实现接口用空心三角形+虚线来表示。
(注:下面的图中应为空心三角形)class Bird:Animal class WideGoose:IFly{ {//继承动物类 //实现飞翔接口} }5. 企鹅与气候有很大的关系,企鹅需要“知道”气候的变化,需要“了解”气候规律。
当一个类“知道”另一个类时,可以用关联(association)关系。
关联关系用实线箭头来表示。
class Penguin :Bird{private Climate climate;//在企鹅Penguin中,引用到气候Climate对象}6. “大雁”和“雁群”这两个类。
第5章类图及对象图121103讲解

[可见性]属性名[:类型][‘[ ’多重性[次序]‘]’][=初始值][{特性}]
表示属性约束说明: 例如: #visibility:Boolean=false{读写} 表示属性”visibility”可读,写
?
问题:
1、指出下面属性名的含义。
+studentName:String=“黎明”
② 缩略表示
实体类
界面类
控制类
4.类名
① 名词或名词短语(动词或动词短语表示控制类) 例如:人,桌子,图形,汇总 ② 尽可能用明确、简短,业务领域中事物的名称, 避免使用抽象、无意义的名词 例如:帐户,订单,事物 ③ 用英文,第1个字母大写 例如:Shape, Person, CheckingAccdount ④ 可分为简单类名,带路径类名 例如: CheckingAccdount
?
问题:
1、指出下面操作名的含义。
+setName(name:String)
+getName():String
+creatbook()
教学进程
5.1.4 类的类型
1.边界类 边界类位于系统与外界的交界处,承担系统与 外界的信息功能.
边界类处在用例图中,参与者与用例的关联处, 可以根据用例图发现边界类。
2.确定类之间的关系
①
2.确定类之间的关系
②
?
货品是由供应商提供,但订单所订的 货品怎么样反映出来?
2.确定类之间的关系
②
5.2.2 聚集和组合
1. 聚集
聚集(aggregation): 表示类之间一种松散的整 体与部分的组成关系,是一种特殊的关联。
表示
例子
类图实例和习题要点

图书基本信息
图书类别信息 读者借阅图书信息
9
10 11 12
BorrowType
Store Reserve Fine
读者借阅类型信息
图书在图书馆中的存放位置信息 读者预订图书信息 读者罚款信息
系统的用户接口可以作为系统的边界类:
(如果采用页面形式表示用户接口,可把页面看成边界类)
Login(登录)、Main(主界面)、 SystemManage(系统管理)、 ReadrManage(读者管理)、 BookManage(图书管理)、 BorrowManage(借阅管理)、 FineManage(罚款管理)等窗体
2.每个HouseKeeper都有一个Manager负责,有的 Manager可能负责多个HouseKeeper,有的Manager 可能一个HouseKeeper都没有,下面哪幅图适合描述 类HouseKeeper和类Manager的关系? A
HouseKeeper
0..n 1
Manager
B
HouseKeeper
Librarian Manage Book
Borrow-Lend
Reader
顶层用例图
administrator delete user add user
update user
query user
系统管理员Manage User 子用例图
Librarian Set ReaderCard Query ReaderInfo
1.
(3)根据MVC模式寻找 根据用例图找出边界类;在用例图中找出控制类; 数据库设计完毕后,可以根据数据表获得实体类。 (4)有些类无法通过上述方法找到,可能还需要 从后面的动态模型(如时序图和协作图)中通过 分析对象来确定。
UML各类图和例子

12. ATM打印清单。
软件1工3程. A与T项M目案退例出教程客户旳卡,用例结束。
15
电子工业出版社
❖ 其他事件流A1:输入无效密码
1. ATM告诉客户该密码错误。 2. ATM退出客户旳卡,用例结束。
❖ 其他事件流A2:余额不足
1. ATM告诉客户该帐户余额不足。 2. ATM退出客户旳卡,用例结束。
软件工程与项目案例教程
7
电子工业出版社
顺序图:显示对象之间旳动态合作关系,它强
调对象之间消息发送旳顺序,同步显示对象之间 旳交互;假如强调时间和顺序,则使用顺序图;
软件工程与项目案例教程
8
电子工业出版社
协作图:描述了一组相互合作旳对象与对象之
间旳协作关系,强调对象相互间旳通信关系。假 如强调上下级关系,则选择合作图。
软件工程与项目案例教程
9
电子工业出版社
构件图:组件图描述了软件组件旳物理构造以
及各组件之间旳依赖关系。一种部件可能是一种 资源代码部件、一种二进制部件或一种可执行部 件。
软件工程与项目案例教程
10
配置图: (也称布署图)描述了软件在硬件环电子工业出版社
境中旳配置关系。配置图不但显示实际旳计算机 和设备(用节点表达)以及它们之间旳关系,还 描述了连接旳类型及组件之间旳依赖性。在节点 内部,放置可执行部件和对象以显示节点跟可执 行软件单元旳相应关系。
❖ 简要阐明:客户能够从ATM机上取出自 己帐目上旳部分或者全部存款。
❖ 前提条件:无 ❖ 主事件流:
软件工程与项目案例教程
14
电子工业出版社
1. 客户将卡插入ATM机,开始用例。
2. ATM显示欢迎消息并提醒客户输入密码。
UML设计-用例和用例图练习题及参考答案

学院班级管理系Leabharlann 的用例图按课程编号查询 按课程名查询
删除已选课程 <<extend >>
登录
找回密码
维护课程信息
系统管理员
帐号管理系统的用例图
系统管理员
创建新帐号
设置帐号 查询帐号 删除帐号
设置帐号基本信息 设置帐号权限
饮料自动售货机顾客购买矿泉水的用例图
显示是否有饮料 选择饮料
自动售货机
付款 找钱 提供饮料
收钱
顾客
UML 面向对象技术教程
第三章 用例及用例图 练习题及参考答案
1
练习题:
试画出学院班级管理系统的用例图。
用例有:登录;找回密码;查看、修改、删除、录入班级基本 信息,参与者有管理员与系院领导。
试画出学生成绩管理的用例图。
用例有:登录;找回密码;录入、修改、保存、查询、删除成 绩,参与者有教师与学生。
登录
<<extend >> 找回密码
系统管理员
查询班级基本信息 删除班级基本信息 修改班级基本信息 录入班级基本信息
系院领导
学生成绩管理的用例图
<<include >>
录入成绩
保存成绩
教师
修改成绩 查询成绩
学生
删除成绩 <<extend >>
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Brrow Book Return Book Renew Book Fine Reserve Book Cancle Reservation Lose Book Lose ReaderCard
序号 19 20 21 22 23 24
参与者
用例名称 Login Reserve Book 登录系统
用例说明
Cancle Reservation
图书管理员Borrow-Lend子用例图
studentteFra bibliotekcherReader
Query ReaderInfo Reserve Book Login Query BookInfo
Cancle Reservation Renew Book
读者Borrow-Lend子用例图
Librarian Manage Book
Borrow-Lend
Reader
顶层用例图
administrator delete user add user
update user
query user
系统管理员Manage User 子用例图
Librarian Set ReaderCard Query ReaderInfo
Lose ReaderCard
图书管理员Manage Reader 子用例图
Fine <<extend>>
Borrow Book Reserve Book
Return Book Query BookInfo Librarian
Lose Book
Renew Book
Set Book Type Set Borrow Type Set BookInfo
“图书管理系统”中的类
序号
1 2
类名称
Admin Administrator
类说明
抽象出来的管理员 进行系统管理的管理员
3
4 5
Librarian
Reader ReaderType
进行读者管理、图书管理、借阅管理的图 书管理员
读者基本信息 读者类别信息
6
7 8
Book
BookType Borrow
部分文档描述: 系统为每个读者建立一个账户,并给读者发放读者证, (可以提供读者证号、读者姓名),账户中存储读者 的个人信息、借阅信息以及预订信息等,持有读者证 可以借阅图书、返还图书、查询图书信息、预订图书 和取消预订。 在借阅图书时,需要输入读者所借阅的图书名、 ISBN号,然后输入读者的读者证号和姓名,完成后 提交所填表格,系统验证读者是否有效。如果读者 有效,借阅请求被接受,系统查询读者所借阅的图书 是否存在。若存在,则读者可借出图书,系统记录借阅 记录,如果读者所借阅的图书已被借出,读者还可预订
图 书 管 理 系 统 的 用 例
5 6 7 8 9 10 11 12 13 14 15 16 17 18 Librarian (图书管理员)
进行图书类型设置 进行借阅种类设置 进行图书信息设置 为读者办证 根据需要进行图书信息查询 进行读者信息查询 处理读者的借书请求 处理读者的还书请求 处理读者的续借图书请求 收取读者的超期罚款 收取读者的图书预订请求 处理读者的取消预订请求 处理图书挂失 处理读者证挂失
1.
(3)根据MVC模式寻找 根据用例图找出边界类;在用例图中找出控制类; 数据库设计完毕后,可以根据数据表获得实体类。 (4)有些类无法通过上述方法找到,可能还需要 从后面的动态模型(如时序图和协作图)中通过 分析对象来确定。
主要参与者:系统管理员、图书管理员、读者 主要用例:Manage User(用户管理)、 Manage Book(图书管理)、Manage Reader (读者管理)、Borrow-Lend(借阅管理)等。 1. Manage User:完成系统用户的增加、删除、修改、 查询等功能。 2. Manage Book:完成基本信息设置(图书类型设置、 借阅种类设置)和图书信息管理(图书信息设置、 图书信息查询)功能。 3. Manage Reader:完成读者办证、读者信息查询、 读者证挂失功能。 4. Borrow-Lend:完成借书、还书、续借、超期罚款、 图书预订、取消预订、图书挂失等功能。
该图书。读者如期还书后,系统清除借阅记录,否则 需缴纳罚金。读者还可以续借图书,系统还包括图书 挂失和读者证挂失等功能。 同时,以上部分操作还需要系统管理员和图书 管理员进行参与。 结合以上分析,采用识别类的方法,暂时可以 识别出“图书管理系统”中的一些类。
实例:图书管理系统
识别“图书管理系统”中的类 (1)寻找名词 阅读系统文档和用例(尤其是用例事件流),找出 名词或名词短语,注意区别类和属性,筛选后,去 除冗余的、与系统无关的、非独立的类。 (2)类-职责-协作方法 CRC方法,模拟开发人员”处理卡片”的一个过程。 开发人员在执行一个处理实例(即一个用例)的同 时,将类名赋予的职责和合作者填入卡片,以 此来确定类。
申请预订图书 取消图书预订 根据需要进行图书信息查询 进行读者信息查询 申请续借图书
Reader (读者)
Cancle Reservation Query BookInfo Query ReaderInfo Renew Book
Manage User administrator Manage Reader
序号 1 2 3 4
参与者
用例名称 Add User 增加系统用户 删除系统用户 修改系统用户 查询系统用户
用例说明
Administrator (系统管理员)
Delete User Update User Query User Set Book Type Set Brrow Type Set BookInfo Set ReaderCard Query BookInfo Query ReaderInfo
建立系统静态图的过程是对系统领域问题及其解决 方案的分析和设计的过程。静态图设计的主要内容 是类图的建立。
建立类图的步骤:
1.研究分析问题领域,确定系统的需求。 2.发现类和对象,明确类的属性和操作。 3.发现类之间的静态关系,一般与特殊关系,整体 和部分关系,类之间的继承性和多重性。 4.设计类与关系。 5.绘制类图并编制相应的说明。