第五章UM对象图和类图资料.

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章 类图和对象图
学习目标
(1)对象类以及类图的概念(了解) (2)对象之间的关联关系(重点掌握) (3)识读类图和分析类图(重点掌握) (4)对象图、接口基本概念(了解) (5)对象类图建模的基本步骤以及建模过程中应注意的问 题(了解)
任务分析
University
name : String address : String phoneNumber : String faxNumber : String
1
1..n
+dean 1
1..n
Teacher
name : String
teacherID : String salary : float address : String Title : String
1..n
1..n
Student name : String studentID : String homeAddress : String enrollDate : Date
1.2 类
• 面向对象系统组织结构的核心。 • 对一组具有相同属性、操作、关系和语义的对象的
抽象。 • 包括名称部分(Name)、属性部分(Attribute)
和操作部分(Operation)。
• 1 名称 • 2 属性 • 3 操作 • 4 职责 • 5 约束 • 6 注释
1.2 类
名称
• 应该来自系统的问题域。 • 应该是一个名词,且不应该有前缀或后缀。 • 分为简单名称和路径名称。
(3) 参数表
• 一些按顺序排列的属性定义了操作的输入。 • 是可选的,即操作不一定必须有参数才行。 • 定义方式:“名称:类型”。 • 若存在多个参数,将各个参数用逗号隔开。 • 参数可以具有默认值。
(4) 返回类型
• 是可选的,即操作不一定必须有返回类型。 • 绝大部分编程语言只支持一个返回值。 • 具体的编程语言一般要加一个关键字void来表示无返回值。
关联名
★如果关联关系已经清楚,就无需关联名
② 关联的角色
关联的角色
★ 在关联的每一个端点上有一个角色。每一个角色具
有一个名字,用来描述其类被其他的类看作是什么:
把它称为角色名,如果类名与角色名相同,则不 标出角色名。类关系通过添加角色来进一步丰 富。在类图中使用角色可以帮助读者理解第一 个类对于第二个类的作用。
(2) 属性名
• 每个属性都必须有一个名字以区别于类中的其他属性。 • 属性名由描述所属类的特性的名词或名词短语组成。 • 单字属性名小写,如果属性名包含了多个单词,这些单词
要合并,且除了第一个单词外其余单词的首字母要大写。
(3) 类型
• 简单类型: ① 整型 ② 布尔型 ③ 实型 ④ 枚举类型 • 系统中的其他类
1
1..n
1..n
Department
name : String phoneNumber : String faxNumber : String
1..n
Hale Waihona Puke Baidu
addTeacher(teacher : Teacher) : int removeTeacher(teacher : Teacher) : int getNumofTeachers() : int
关联关联
(1). 关联的定义 关联(association): 模型元素之间的一种语义联系,它是对具
有共同的结构特性、行为特性、关系和语义的链的描述。 关联可以分为单向关联,双向关联。
单向关联
双向关联
关联关系是指类之间的语义联系。关联可以具有如下特性:
•关联名称 •角色名称 •多重性 •导航性
① 关联名
1.3 接口
• 在没有给出对象的实现和状态的情况下对对象行为 的描述。
• 包含操作但不包含属性。 • 没有对外界可见的关联。 • 一个类可以实现一个或多个接口。
• 接口类:
1.3 接口
1.4 类之间的关系
• 1 关联关系 • 2 聚合和组合关系 • 3 泛化关系 • 4 依赖关系 • 5 实现关系
(4) 初始值
• 目的: ① 保护系统的完整性,防止漏掉取值或被非法的值破坏系
统的完整性。 ② 为用户提供易用性。
操作
• 对类的对象所能做的事务的抽象。 • 一个类可以有任意数量的操作或者根本没有操作。 • 返回类型、名称和参数一起被称为操作签名。 • 在UML中,类操作的语法为:
• 1. 可见性 • 2. 操作名 • 3. 参数表 • 4. 返回类型
addStudent(stud : Student) : int removeStudent(stud : Student) : int getNumofStudents() : int addDept(dept : Department) : int removeDept(dept : Department) : int getNumofDept() : int getNumofTeacher() : int
属性
• 描述了类在软件系统中代表的事物(即对象)所具 备的特性。
• 类可以有任意数目的属性,也可以没有属性。 • 在UML中,类属性的语法为:
• 1. 可见性 • 2. 属性名 • 3. 类型 • 4. 初始值
属性
(1) 可见性
• 类型: ① 公有(Public) “+” ② 私有(Private)“-” ③ 受保护(Protected)“#”
操作
(1) 可见性
• 类型: ① 公有(Public) “+” ② 私有(Private) “-” ③ 受保护(Protected) “#” ④ 包内公有(Package) “~”
(2) 操作名
• 用来描述所属类的行为的动词或动词短语。 • 单字操作名小写,如果操作名包含了多个单词,这些单词
要合并,并且除了第一个单词外其余单词的首字母要大写。
0..n
1..n
0..n Course name : String courseID : String textBook : Book
0..n
1 类图的概念
• 描述类、接口、协作及它们之间关系的图。 • 显示系统中各个类的静态结构。
1.1 概述
• 类图的元素: ① 类(Class) ② 接口(Interface) ③ 协作(Collaboration) ④ 依赖关系(Dependency) ⑤ 泛化关系(Generalization) ⑥ 关联关系(Association) ⑦ 实现关系(Realization)
相关文档
最新文档