在架构语言ArchiMate - 语言结构(Language Structure)中对语言结构进行了介绍,最后列出下面的ArchiMate框架图:业务、应用和技术三个层次(Layer),对象、行为和主体三个方面(Aspect),在架构语言ArchiMate -业务层(Business Layer)、架构语言ArchiMate -应用层(Application Layer)、架构语言ArchiMate -技术层(Technology Layer)中分别介绍了这三层的概念,在之前的介绍中都出现过各个元素间的关系,本篇将专门介绍一下ArchiMate在这些层次中使用到的关系。
关系(Relationships)总体说明
静态结构关系(Structural Relationships) | 图例 | |
关联 Association |
对象间的一组相关链接的关系 | |
访问 Access |
行为概念元素访问业务对象或数据对象的一种关系 |
|
被使用 Used by |
表示流程、功能、交互使用服务的关系,角色、组件或协作对接口、服务的访问关系 | |
实现 Realization |
一个具体的实体实现逻辑实体的关系 | |
分配 Assignment |
角色、组件等行为元素的执行关系 | |
共享聚集(聚合) Aggregation |
一个对象由其他对象组合而成,其他对象存在多个实体 | |
组合聚集(组合) Composition |
一个对象由其他对象组成,其他对象是这一个对象的一部分 | |
动态关系(Dynamic Relationships) | 图例 | |
流 Flow |
流程、功能、交互和事件之间的信息或价值传递或转换 | |
触发 Triggering |
在流程、功能、交互和事件中临时的或持久的触发关系 | |
其他关系 | 图例 | |
分组 Grouping |
基于共同的特征对对象进行分组 | |
联结点 Junction |
连接相同类型的关系,例如作为分支流程的关联点 | |
特殊化 Specialization |
一个对象是另一对象的特殊化类型 |
Structural Relationships
聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。
组合(Composition)
一个对象由其他对象组成,其他对象是这一个对象的一部分
- 相对于聚合关系,组合对象只能是一个组合的一部分
- 组合只能是在两个相同概念的实例之间存在关系
- 图例
- 示例
下面通过两种方式表达组合关系,Financial application应用组件由三个其他应用组件组合而成,类似系统划分子系统
聚合(Aggregation)
一个对象由其他对象组合而成,其他对象存在多个实体
- 相对于组合关系,聚合对象可以是多个聚合的一部分
- 聚合只能是在两个相同概念的实例之间存在关系
- 图例
- 示例
下面通过两种方式表达聚合关系,Car insurance 产品聚合了一个契约(Policy)和两个业务服务
分配(Assignment)
角色、组件等行为元素的执行关系
可以分配业务角色给业务流程或功能、应用组件给应用功能、业务协作给业务交互、应用协作给应用交互。业务接口给业务服务、应用接口给应用服务、业务参与者给业务角色
- 图例
- 示例
下面通过两种方式表达分配关系,Payment function 应用功能部属在Financial application应用组件中,Payment service 应用服务通过Application interface接口进行访问
实现(Realization)
一个具体的实体实现逻辑实体的关系
- 实现关系表示逻辑实体(“what”,如服务)被具体实体(“how”,如功能)等实现
- 实现关系还可以表示数据对象实现业务对象,工件实现应用组件