架构语言ArchiMate - 关系(Relationships)
本文更新版本已挪至 http://www.zhoujingen.cn/blog/4099.html
--------------------------------------
在架构语言ArchiMate - 语言结构(Language Structure)中对语言结构进行了介绍,最后列出下面的ArchiMate框架图:业务、应用和技术三个层次(Layer),对象、行为和主体三个方面(Aspect),在架构语言ArchiMate -业务层(Business Layer)、架构语言ArchiMate -应用层(Application Layer)、架构语言ArchiMate -技术层(Technology Layer)中分别介绍了这三层的概念,在之前的介绍中都出现过各个元素间的关系,本篇将专门介绍一下ArchiMate在这些层次中使用到的关系。
关系(Relationships)总体说明
静态结构关系(Structural Relationships) |
图例 |
|
关联 |
对象间的一组相关链接的关系 |
|
访问 |
行为概念元素访问业务对象或数据对象的一种关系 |
|
被使用 |
表示流程、功能、交互使用服务的关系,角色、组件或协作对接口、服务的访问关系 |
|
实现 |
一个具体的实体实现逻辑实体的关系 |
|
分配 |
角色、组件等行为元素的执行关系 |
|
共享聚集(聚合) |
一个对象由其他对象组合而成,其他对象存在多个实体 |
|
组合聚集(组合) |
一个对象由其他对象组成,其他对象是这一个对象的一部分 |
|
动态关系(Dynamic Relationships) |
图例 |
|
流 |
流程、功能、交互和事件之间的信息或价值传递或转换 |
|
触发 |
在流程、功能、交互和事件中临时的或持久的触发关系 |
|
其他关系 |
图例 |
|
分组 |
基于共同的特征对对象进行分组 |
|
联结点 |
连接相同类型的关系,例如作为分支流程的关联点 |
|
特殊化 |
一个对象是另一对象的特殊化类型 |
|
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”,如功能)等实现
- 实现关系还可以表示数据对象实现业务对象,工件实现应用组件
更多内容参考:企业架构语言ArchiMate.pdf 企业架构框架-TOGAF.pdf
开源信息系统开发平台之OpenExpressApp框架 1.1 春节飞虎版发布
欢迎转载,转载请注明:转载自周金根 [ http://zhoujg.cnblogs.com/ ]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架