面向对象分析强调的是对一个系统中对象的特征和行为的定义。目前,国际上已经出现了多种面向对象的方法。业界普遍接受的为 UML (Unified Modeling Language, 统一建模语言)
统一建模语言是面向对象软件的标准化建模语言。由于其简单、统一,又能够表达软件设计中的动态和静态信息,目前已经成为可视化建模语言事实上的工业标准
UML 由 3 个要素构成:UML 的基本构造块、支配这些构造块如何放置在一起的规则和运用与整个语言的一些公共机制
UML 的词汇表包含 3 种构造块:事物、关系和图。事物是对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图凝聚了相关的事物
事物
UML 中有 4 种事物:结构事物、行为事物、分组事物和注释事物
(1) 结构事物 (Structural Thing)
结构事物是 UML 模型中的名词。它们通常是模型的静态部分,描述概念或物理元素
结构事物包括:
- 类 (Class)
- 接口 (Interface)
- 协作 (Collaboration)
- 用例 (Use Case)
- 主动类 (Active Class)
- 构件 (Component)
- 制品 (Artifact)
- 结点 (Node)
(2) 行为事物 (Behavior thing)
行为事物是 UML 模型的动态部分。它们是模型中的动词,描述了跨越时间和空间的行为
行为事物包括:
- 交互 (Interaction)
- 状态机 (State Machine)
- 活动 (Activity)
(3) 分组事物 (Grouping Thing)
分组事物是 UML 模型的组织部分,是一些由模型分解成的 “盒子” 。在所有的分组事物中,最主要的分组事物是包 (Package) 。包是把元素组织成组的机制,这种机制具有多种用途。结构事物、行为事物甚至其他分组事物都可以放进包内。包与构件 (仅在运行时存在) 不同,它纯粹是概念上的 (即它仅在开发时存在)
(4) 注释事物 (Annotational Thing)
注释事物是 UML 模型的解释部分。这些注释事物用来描述、说明和标注模型的任何元素。注解 (Note) 是一种主要的注释事物。注解是一个依附于一个元素或者一组元素之上,对它进行约束或解释的简单符号
关系
UML 中有 4 种关系:依赖、关联、泛化和实现
依赖 (Dependency)
依赖是两个事物间的语义关系,其中一个事物 (独立事物) 发生变化会影响另一个事物 (依赖事物) 的语义。在图形上,把一个依赖画成一条可能有方向的虚线
关联 (Association)
关联是一种结构关系,它描述了一组链,链是对象之间的连接。聚集 (Aggregation) 是一种特殊类型的关联,它描述了整体和部分间的结构关系。在关联上可以标注重复度 (Multiplicity) 和角色 (Role)
关联、聚合、组合
关联:关联是一种结构关系,它描述了一组链,链是对象之间的连接。在关联上可以标注重复度 (多重度) 和角色 例:雇主与员工
聚合:部分和整体的生命周期不一致,整体消失了,部分仍然存在,部分可以脱离整体存在 例:班级与学生,公司与员工
组合:部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体存在 例:人与大脑
依赖与单向关联
依赖较偶然,临时。例如:人与食物,仅饿时依赖,饱了便不依赖
单向关联,比较强烈,用单向线表示。例如:人与氧气,鱼与水
泛化 (Generalization)
泛化是一种特殊/一般关系,特殊元素 (子元素) 的对象可替代一般元素 (父元素) 的对象。用这种方法,子元素共享了父元素的结构和行为。图形上指向父元素
实现 (Realization)
实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。在两种情况下会使用实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间