第4章 类图对象图和包图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

职责是对类的功能和作用的非形式化描述。是自
由形式的文本。 可以非正式的在类图的下方增加一栏,将该类的 职责逐条描述出来。
5、约束
约束是指定了类所要满足的一个或多个规则。
形式化的方法。
在UML中,约束是用一个大括号括起来的文本信息。
6、注释
注释(Note)可以为类添加更多的描述信息。
2、属性
属性描述了类在软件系统中代表的事物(即对象)
所具备的特性。 类可以有任意数目的属性,也可以没有属性。 在UML中,类属性的语法定义形式为(“[ ]内的 内容是可选的”): (1)可见性
属性有不同的可见性(Visibility)。利用可见性可
以控制外部事物对类中属性的操作方式。
4.2.3 类图的应用
类图描述了系统的静态结构,该结构主要体现 系统的功能需求,即系统应该提供给用户的服务。 1 . 为系统的词汇表建模 2. 对简单协作建模 3. 对逻辑数据库模式建模
1.为系统的词汇表建模
模拟系统的词汇表涉及确定哪些抽象是系统的一 部分,哪些抽象不在系统的边界内。可以用类图定义 这些抽象和它们的责任。
例如:在一个驾校中,1名教员有1~n名学员,1 名学员也有1~n名教员。
(6)聚合
聚合是表示一个类是由几部分类组成的。 一种特殊类型的关联。 表示整体与部分关系的关联。 在UML图中,聚合关系用带有空心菱形头的实现来
表示,其中头部指向整体。
2、依赖关系
表示两个或多个模型元素之间语义上的关系。 表示一个模型元素(需求方)需要另一个模型元素(供
4.2 类图
4.2.1 类图的定义


描述类、接口、协作及它们之间关系的图。
显示系统中各个类的静态结构。 类图的元素:
① ② ③ ④ ⑤ ⑥ ⑦
类(Class) 接口(Interface) 协作(Collaboration) 依赖关系(Dependency) 泛化关系(Generalization) 关联关系(Association) 实现关系(Realization)
(3)属性类型

简单类型:
整型 布尔型 实型 枚举类型


系统中的其他任意类型
(4)初始值
定义:
初始值(Default),或称为默认值,是刚创建 的对象的值。 作用: ① 保护系统的完整性,防止漏掉取值或被非法 的值破坏系统的完整性。 ② 为用户提供易用性。设定一些初始值能够有 效的帮助用户进行输入。
应方)来达到某种目的。 在UML图中,依赖用一条带有箭头的虚线来表示, 箭头的方向指向独立的类。 例如:顾客买票的时候,需要依赖于售票员。
顾客 售票员
依赖
UML有很多种依赖,这些依赖关系可以再细分为5
种类型,分别是绑定依赖、实现依赖、使用依赖、 抽象依赖和授权依赖。
(1)绑定依赖
较高级的依赖类型,用于绑定模板以创建新的模 型元素。
对象之间在交互过程中某一时刻的状态。
对象图是类图的实例,在UML中,几乎使用与类图完全
相同的标识。端点可以是对象也可以是类,连线表示它 们之间的关系,对象名后面是一个冒号,冒号后面是该 对象所属的类别,名称要带下画线。
注释可以包含图形也可以包含文本。
4.1.2 接口
接口是在没有给出对象的实现和状态的情况下对对
象行为的描述。 包含操作但不包含属性。
没有对外界可见的关联。 一个类可以实现一个或多个接口。 在UML中,接口的表示方式是用一个带有名称的
小圆圈表示的,并且可以通过一条 (实现关系)线与 实现它的类相连接。
(2)继承性 继承性是共享父类所定义的成分的前提下,允许 它自身定义增加的描述。可分为单重继承和多重继承。
多重继承
4、实现关系
实现关系(Realization)是指两个实体之间的一种约
定。一个实体定义一个约定,而另一个实体要实现 这种约定。 在UML图中,实现关系通常用一条带有空心三角箭 头的有向虚线表示,箭头的方向指向实现的类。
接口是一种特殊的类,当接口被其他类依赖的时
候,即一个接口是在某个特定类中实现后,一个 类通过一个依赖关系与该接口相连接。
4.1.3 类之间的关系
类之间的关系最常用的有关联关系、依赖关系、 泛化关系和实现关系等4种。
1、关联关系
关联关系是一种结构关系。 指明事物的对象之间
的联系。 在UML图中,关联关系用一条连接两个类的实线 表示。
{union}
{subsets<property-name>} {redefines< property-name >} {ordered} {bag}
{seq}或{sequence}
{composite}
集合元素可以重复,并且有序
组合属性
3、操作
对类的对象所能做的事务的抽象。
一个类可以有任意数量的操作或者根本没有操作。 返回类型、名称和参数一起被称为操作签名。


4.1.1 类
类是面向对象系统组织结构的核心。 类是对一组具有相同属性、操作、关系和语义的
对 象的抽象。 类包括名称部分、属性部分和操作部分。
类还可以定义其职责、约束和注释。
1、名称
应该来自系统的问题域。
应该是一个名词,且不应该有前缀或后缀。 分为简单名称和路径名称。

公有(Public) “+” 私有(Private)“-” 受保护(Protected)“#” 包( Package)“~”

(2)属性名
每个属性都必须有一个名字以区别于类中的其他
属性。 属性名由描述所属类的特性的名词或名词短语组 成。 单字属性名小写,如果属性名包含了多个单词, 这些单词要合并,且除了第一个单词外其余单词 的首字母要大写。
在UML中,类操作的语法为:
(1)可见性
操作的可见性描述了该操作是否对于其他 类能够看见,从而是否可以被其他类进行调 用。

① ② ③ ④
类型: 公有(Public) “+” 私有(Private) “-” 受保护(Protected) “#” 包内公有(Package) “~”
(2) 操作名
用来描述所属类的行为的动词或动词短语。 单字操作名小写,如果操作名包含了多个单词,
这些单词要合并,并且除了第一个单词外其余 单词的首字母要大写。 (3) 参数表

是一些按顺序排列的属性定义了操作的输入。 是可选的,即操作不一定必须有参数。 定义方式:“名称:类型”。 若存在多个参数,将各个参数用逗号隔开。 参数可以具有默认值。
2. 对简单协作建模
① ②
③ ④
识别要建模的机制。 对每种机制,识别参与协作的类、接口和其他 协作,并识别这些事物之间的关系。 用协作的脚本检测事物。 把元素和它们的内容聚合在一起。
3.对逻辑数据库模式建模

在模型中识别的类,其状态必须超过其应用系统的 生命周期。
创建包含这些类的类图,并把它们标记为永久的。
责。
角色的名称应该是名词或名词短语,以解释对象是如
何参与关系的。
(3) 约束
约束是关联关系中通过关联线附近加注一个说明来
描述两个类之间的规则。
在UML图中,可以在关联线附近用花括号{顺序}说
明这个规则,表示约束。
例如:一个售票员为一个顾客服务,要求服务要 按照顾客的次序进行。
(4)导航性
关联关系通常可由名称、角色、约束、导航性、多
重性和聚合等来修饰。
(1)名称
使用一个动词或动词短语来命名关联。清晰而简洁
地说明对象间关系。 关联的名称并不是必需的。 可以前缀或后缀一个指引阅读方向的方向指示符, 以消除歧义。
(2)角色
角色是关联关系中一个类对另一个类所表现出来的职


展开这些类的结构性细节,并注重于关联和构造类 的基数。
观察系统中的公共模式,必要时可以创建简化逻辑 结构的中间抽象。 考虑这些类的行为,扩展对数据存储和数据完整性 来说重要的操作。 如果有可能,用工具把逻辑设计转换成物理设计。



4.3 对象图
4.3.1 对象图的定义
对象图(Object Diagram)描述了参与交互的一组对象及
类图模型
4.2.2 类图的结构
虽然在软件开发的不同阶段都使用类图,但这些类 图描述的是不同层次的抽象。 在需求分析阶段,类图描述了问题域中的概念;
在设计阶段,类图描述了类与类之间的接口;
在实现阶段,类图描述了软件系统中类的实现。
按照Steve Cook和John Daniels的观点,类图分为3 个层次,即概念层、说明层和实现层。
第4章 类图、对象图和包图 (静态建模)
类与关系 类图的概念、结构及应用 对象图的定义、组成及应用 包图基本概念、关系及应用 静态建模实例
4.1 类与关系

类、对象和它们之间的关系是构建面向对象模型 的基本要素。 对象是具有明确语义边界并封装了状态和行为的 实体,是由一组属性和作用在这组属性上的一组 操作构成。它是构成系统的一个基本单位,用于 描述客观事物。 类是对象的抽象描述,它是由属性的描述和行为 的描述两方面组成。
(4)返回类型
是可选的,即操作不一定必须有返回类型。 绝大部分编程语言只支持一个返回值。 具体的编程语言一般要加一个关键字void来表
示无返回值。 (5)属性字符串
在操作的定义中加入一些除了预定义元素之 外的信息。从而方便对操作的一些内容进行说明。
4、职责
职责是类或其他元素的契约或义务。
表示形式: 绑定(《bind》)
(2)实现依赖
实现(Realization)依赖指的是说明和对这个说明 的具体实现之间的映射关系。
(3)使用依赖
表示客户使用提供者提供的服务以实现它的行 为,包括:

使用(《use》)

③ ④ ⑤
调用(《call》)
参数(《parameter》) 发送(《send》) 实例化(《instantiate》)
3、泛化关系
泛化关系是表示类之间一般类别(父类)和特殊Leabharlann Baidu别(子
类)的分类关系。可以用于类、用例以及其他模型元素。
在UML图中,泛化关系通常用一条带有空心三角箭头
的有向实线表示,箭头的方向指向父类。
泛化关系一般具有可替换性和继承性。 (1)可替换性 可替换性指运行时一个类的实例可以被这个类的 任何子类的实例所替换。即面向对象的多态性。
公有属性能够被系统中其他 私有属性仅在类内部可见, 受保护属性只对有继承关系 属性的可见性包括:公有的、私有的、受保 任何操作查看和使用,当然也可 只有类内部的操作才能存取该属 的类使用。一般情况下,只在有 包属性是指同一包内的类是 护的、包4种,分别用符号“ +”、“-”、“#” 以被修改。 性。 继承关系的父类和子类之间。 和“~”标记。 可见的。
1.概念层 概念层(Conceptual)类图描述了问题域中的概念。 类可以从问题域的概念中得出,但两者并没有直接的映 射关系。 2.说明层
说明层(Specification)类图描述了软件的接口部分 而没有描述软件的实现部分,可以用一个类型描述一个 接口。 3.实现层 只有在实现层(Implementation)才真正有类的概念, 并且揭示了软件的实现部分。实现层的类图是大多数 人最常用的类图。
(4) 抽象依赖
表示客户与提供者之间的关系,依赖于在不同抽 象层次上的事物,包括:
① ② ③
跟踪(《trace》) 精化(《refine》) 派生(《derive》)
(5)授权依赖
表达一个事物访问另一个事物的能力,包括: ① 访问(《access》) ② 导入(《import》) ③ 友元(《friend》)
导航性是描述一个对象通过链进行导航访问另一个对
象。
可以在关联线上加箭头表示导航关系。
例如:一名职业球员专门效力于一个的球队。
(5)多重性
多重性是在关联中描述某个类有多个对象可以和另
一个类的单个对象关联。
在UML图中通常通过在关联线上注明多重性的数值
描述多重性,格式:“min..max” (均为Int型)。

(5)属性字符串
属性字符串用来指定关于属性的其他信息。 任何希望添加在属性定义字符串值但又没有合适
地方可以加入的规则,都可以放在属性字符串里。
常用属性字符串
属性字符串 {readOnly} 语义说明
只读属性
表明可派生属性是由其他属性 联合的结果 表明属性是一个继承得到的属 性的子集 改变一个继承得到的属性的名 称 某类型的一个有序集合,集合 中的元素不能重复 集合中的元素可以重复
相关文档
最新文档