📅  最后修改于: 2020-12-14 04:10:57             🧑  作者: Mango
UML结构图的分类如下:类图,对象图,组件图和部署图。
类图为系统的静态视图建模。它由系统的类,接口和协作组成;以及它们之间的关系。
让我们考虑一个简化的银行系统。
银行有很多分行。在每个区域中,一个分支机构被指定为区域总部,负责监督该区域中的其他分支机构。每个分支机构可以有多个帐户和贷款。帐户可以是储蓄帐户或活期帐户。客户可以同时开立储蓄账户和活期账户。但是,客户不得拥有多个储蓄帐户或活期帐户。客户也可以从银行获得贷款。
下图显示了相应的类图。
银行,分行,帐户,储蓄帐户,活期帐户,贷款和客户。
银行“拥有”许多分支机构-组成,一对多
一个具有区域总部职能的分支机构监督其他分支机构-一元协会,一对多
分支机构“拥有”多个帐户-汇总,一对多
从“帐户”类继承了两个类,即“储蓄帐户”和“活期帐户”。
客户可以一对一拥有一个往来帐户-关联
客户可以一对一拥有一个储蓄帐户-关联
分支机构“拥有”一笔贷款-汇总,一对多
客户可以接受许多贷款–一对多关联
对象图在某个时间点对一组对象及其链接建模。它在类图中显示了事物的实例。对象图是交互图的静态部分。
示例-下图显示了银行系统类图一部分的对象图。
组件图显示了一组组件之间的组织和依赖性。
组件图包括-
组件图用于-
通过正向和反向工程构建系统。
在使用面向对象的编程语言开发系统时,对源代码文件的配置管理进行建模。
在建模数据库中表示模式。
动态系统的建模行为。
例
下图显示了用于对使用C++开发的系统源代码进行建模的组件图。它显示了四个源代码文件,即myheader.h,otherheader.h,priority.cpp和other.cpp。显示了myheader.h的两个版本,从最新版本到其祖先。文件priority.cpp对other.cpp具有编译依赖性。文件other.cpp对otherheader.h具有编译依赖性。
部署图着重于运行时处理节点及其上存在的组件的配置。它们通常由节点和依赖性或节点之间的关联组成。
部署图用于-
嵌入式系统中的设备模型,通常由软件密集型硬件集合组成。
代表客户端/服务器系统的拓扑。
模拟完全分布式的系统。
例
下图显示了遵循客户端/服务器体系结构的计算机系统的拓扑。该图图示了被构造为服务器的节点,该节点包含处理器。该图表明系统上已部署了四个或更多服务器。客户端节点连接到服务器,其中每个节点代表一个终端设备,例如工作站,便携式计算机,扫描仪或打印机。节点用图标表示,这些图标清楚地描述了现实世界中的等效对象。