- 面向对象分析与设计 教程
- 面向对象分析与设计 - 首页
- 面向对象分析与设计 - 面向对象范式
- 面向对象分析与设计 - 面向对象模型
- 面向对象分析与设计 - 面向对象系统
- 面向对象分析与设计 - 面向对象原则
- 面向对象分析与设计 - 面向对象分析
- 面向对象分析与设计 - 动态建模
- 面向对象分析与设计 - 功能建模
- 面向对象分析与设计 - UML 分析模型
- 面向对象分析与设计 - UML 基本符号
- 面向对象分析与设计 - UML 结构图
- 面向对象分析与设计 - UML 行为图
- 面向对象分析与设计 - 面向对象设计
- 面向对象分析与设计 - 实现策略
- 面向对象分析与设计 - 测试与质量保证
- 面向对象分析与设计 有用资源
- 面向对象分析与设计 - 快速指南
- 面向对象分析与设计 - 有用资源
面向对象分析与设计 - UML 结构图
UML 结构图分为以下几类:类图、对象图、组件图和部署图。
类图
类图模拟系统的静态视图。它包含系统的类、接口和协作;以及它们之间的关系。
系统类图
让我们考虑一个简化的银行系统。
一个银行有很多分支机构。在每个区域,一个分支机构被指定为区域总部,负责监督该区域的其他分支机构。每个分支机构可以有多个账户和贷款。账户可以是储蓄账户或活期账户。客户可以同时开立储蓄账户和活期账户。但是,客户不能拥有多个储蓄账户或活期账户。客户也可以从银行获得贷款。
下图显示了相应的类图。
系统中的类
银行、分支机构、账户、储蓄账户、活期账户、贷款和客户。
关系
一个银行“拥有”多个分支机构 − 组合关系,一对多
一个分支机构(作为区域总部)监督其他分支机构 − 一元关联,一对多
一个分支机构“拥有”多个账户 − 聚合关系,一对多
从账户类继承出两个类,即储蓄账户和活期账户。
一个客户可以拥有一个活期账户 − 关联关系,一对一
一个客户可以拥有一个储蓄账户 − 关联关系,一对一
一个分支机构“拥有”多个贷款 − 聚合关系,一对多
一个客户可以获得多个贷款 − 关联关系,一对多
对象图
对象图模拟一组对象及其在某一时间点的链接。它显示类图中事物实例。对象图是交互图的静态部分。
示例 − 下图显示了银行系统类图一部分的对象图。
组件图
组件图显示一组组件之间的组织和依赖关系。
组件图包含:
- 组件
- 接口
- 关系
- 包和子系统(可选)
组件图用于:
通过正向和反向工程构建系统。
使用面向对象编程语言开发系统时,对源代码文件的配置管理建模。
在数据库建模中表示模式。
模拟动态系统的行为。
示例
下图显示了一个组件图,用于模拟使用 C++ 开发的系统的源代码。它显示了四个源代码文件,即 myheader.h、otherheader.h、priority.cpp 和 other.cpp。显示了 myheader.h 的两个版本,从最新版本追溯到其祖先版本。文件 priority.cpp 具有对 other.cpp 的编译依赖性。文件 other.cpp 具有对 otherheader.h 的编译依赖性。
部署图
部署图强调运行时处理节点及其上运行的组件的配置。它们通常由节点和依赖关系或节点之间的关联组成。
部署图用于:
模拟嵌入式系统中的设备,这些设备通常包含软件密集型硬件集合。
表示客户端/服务器系统的拓扑结构。
模拟完全分布式系统。
示例
下图显示了遵循客户端/服务器架构的计算机系统的拓扑结构。该图说明了一个被定型为服务器的节点,该节点包含处理器。该图表明在系统中部署了四个或更多个服务器。连接到服务器的是客户端节点,其中每个节点代表一个终端设备,例如工作站、笔记本电脑、扫描仪或打印机。节点使用清晰地描绘现实世界等效物的图标来表示。