《系统架构:复杂系统的产品设计与开发》——第3章,第3.6节架构展示工具:SysML与OPM

简介:

本节书摘来自华章出版社《系统架构:复杂系统的产品设计与开发》一书中的第3章,第3.6节架构展示工具:SysML与OPM,作者[美]布鲁斯·卡梅隆,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.6架构展示工具:SysML与OPM
3.6.1视图与投射
对复杂系统的架构所做的描述,包含着巨量的信息,其信息量远远超过了人的理解能力。那么,这些信息应该如何展示才好呢?主要办法有两种。一种是维护一个集成模型,并根据需要对其进行投射。另一种是在模型中维护多个视图。
这两种方法在传统的民用建筑中都有所体现。3D计算机渲染工具尚未发明之前,建筑师会绘制许多视图(view,例如建筑物某一层的平面图、外立面及各个剖面等),这些视图可以用作盖楼时的指导文档。但是这些视图之间未必能够保证彼此一致,而且也不能保证楼房盖好之后,所有的部分都正确地连在一起。
3D渲染技术发明之后,建筑师就可以构建集成的3D模型了。当建筑师需要某个特定的视图时,软件会把模型投射(project)到2D平面上,以展示我们想要突出的那一部分,例如某个楼层、某个外立面或某个剖面。由于这些投射都是从同一个3D模型中做出来的,因此它们必然能够保持彼此一致。
这两种办法也用在系统架构中。我们可以构建一个比较大的集成模型,然后在必要时对其进行投射,以获取视图。也可以先构建视图,然后看看它们能不能形成协调一致的整体。这两种做法都是较为常见的。
在当前的各种架构展示工具中,对象过程方法(Object Process Methodology,OPM)采用集成模型[4],也就是把与形式、功能、实体及关系有关的信息全都融入同一个模型中。另外一种架构展示方式是采用不同的视图来表示这些信息。系统建模语言(Systems Modeling Language,SysML)[5]及美国国防部架构框架(Department of Defense Architecture Framework,DoDAF)[6]采用的都是这种方式。
下面将要讲述SysML与OPM这两种工具。它们几乎同时出现在21世纪第1个十年的早期,并且都是广为使用的工具。本书只会概述这两种工具,而不会详细描述各种视图及图表。若想了解详情,请查阅参考文档。本书第二部分将深入讲解这两种架构展示方式。

3.6.2SysML
SysML是在2003年由对象管理组织(Object Management Group,OMG)和系统工程国际委员会(International Council on Systems Engineering,INCOSE)联合开发的,它对软件工程中的统一建模语言(Unified Modeling Language,UML)[7]进行了改编,使其能够适应系统工程师的需求。SysML使用UML的一个子集,并添加了一些有助于对系统需求及系统效能进行建模的新特性。
原版的UML包含13种图或视图。其中,有6种用来描述软件的结构(类图、包图、对象图、组件图、复合结构图及部署图)。其他7种用来描述软件的行为(状态机图、活动图、用例图、时序图、通信图、时间图、交互概述图)。
如图3.5所示,最新版的SysML(2009年)含有9种视图。其中7种直接取自UML,它们是:类图(改名为框定义图)、包图、复合结构图(改名为内部框图)、活动图、状态机图、用例图及序列图。新加入的两种图是参数图和需求图。
有关这9种图的详细讨论,请查阅Holt和Perry在2008年所写的《SysML for Systems Engineering》一书[8]。图3.5中的框定义图和内部框图,所表现的是系统的形式。框定义图展示系统中的元素,而内部框图则展示这些元素的结构。第4章会深入阐述这些概念。
需求图用来撰写与需求有关的文字,同时还用来表示各项需求之间的关系。(这与第11章对利益相关者及目标的讨论有些相似。)参数图用来表示属性的值及属性所受的约束,它所包含的细节,一般要比架构分析中遇到的细节更多一些。包图用来对模型中的各个元素进行规整。
四种行为图用来描绘功能领域及相关行为。用例图所描述的内容就是对外体现的功能及价值,这将在第5章中谈到。而其他三种图则用来从多个方面展示与功能或时间有关的行为,这两种行为将在第5章和第6章中分别讲述。

3.6.3OPM
OPM是由以色列理工学院(Technion)的Dov Dori教授研发的,它旨在将面向对象的图表与面向过程的图表合并到同一套方法中,以便对系统进行描述。

图3.5 SysML图


c0d76acc46a0225cc3d2a8b13158e3e76e90d21e

在OPM中,对象用方框表示(在SysML中,对象出现在结构性的图表中),过程用椭圆表示(在SysML中,过程出现在行为图中),第4章和第5章会分别讨论对象与过程。与SysML不同,OPM会把对象及过程合起来放在同一张图中,并且用不同类型的关系对其进行连接。有些对象充当某种过程的工具,而另一些对象则是过程所要改变的物体(参见图3.6)。这些关系将在第6章中讨论。
OPM的一个重要特点,就是它并不会针对系统创建多个不同的视图,或多种不同类型的图表,而是只会为系统创建一个集成模型。多张SysML图所表示的信息可以融合到一张含有对象、过程及关系的OPM图中。
图3.6OPM图用同一张视图来展示对象、过程及其关系。该图由OPM的发明者、系统架构师Dov Dori所绘制


91409f80c6d4a459df00328de3ae960e90681d51

SysML与OPM都可以很好地展示系统架构,而且它们之间有很多共同之处。比如,表3.2中就列出了如何用这两种图来展示同一种系统分解方式,或展示实体之间的同一种逻辑关系。若想把整个系统的SysML图都转换成OPM图,或把整个系统的OPM图都转换成SysML图,那将会比较复杂。可以查阅本章的参考资料[9],以了解如何从OPM模型中生成SysML视图。笔者在书中主要使用OPM图来表示系统架构,在必要时,也会给出相应的SysML图。
表3.2 用SysML和OPM来表示实体的体系及实体间的逻辑关系


4400808ae27ba64d307df136266c5b2c2df10692
相关文章
|
1月前
|
机器学习/深度学习 缓存 自然语言处理
DeepSeek背后的技术基石:DeepSeekMoE基于专家混合系统的大规模语言模型架构
DeepSeekMoE是一种创新的大规模语言模型架构,融合了专家混合系统(MoE)、多头潜在注意力机制(MLA)和RMSNorm归一化。通过专家共享、动态路由和潜在变量缓存技术,DeepSeekMoE在保持性能的同时,将计算开销降低了40%,显著提升了训练和推理效率。该模型在语言建模、机器翻译和长文本处理等任务中表现出色,具备广泛的应用前景,特别是在计算资源受限的场景下。
490 29
DeepSeek背后的技术基石:DeepSeekMoE基于专家混合系统的大规模语言模型架构
|
3月前
|
监控 安全 API
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
本文详细介绍了PaliGemma2模型的微调流程及其在目标检测任务中的应用。PaliGemma2通过整合SigLIP-So400m视觉编码器与Gemma 2系列语言模型,实现了多模态数据的高效处理。文章涵盖了开发环境构建、数据集预处理、模型初始化与配置、数据加载系统实现、模型微调、推理与评估系统以及性能分析与优化策略等内容。特别强调了计算资源优化、训练过程监控和自动化优化流程的重要性,为机器学习工程师和研究人员提供了系统化的技术方案。
239 77
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
|
3月前
|
弹性计算 运维 监控
阿里云云服务诊断工具:合作伙伴架构师的深度洞察与优化建议
作为阿里云的合作伙伴架构师,我深入体验了其云服务诊断工具,该工具通过实时监控与历史趋势分析,自动化检查并提供详细的诊断报告,极大提升了运维效率和系统稳定性,特别在处理ECS实例资源不可用等问题时表现突出。此外,它支持预防性维护,帮助识别潜在问题,减少业务中断。尽管如此,仍建议增强诊断效能、扩大云产品覆盖范围、提供自定义诊断选项、加强教育与培训资源、集成第三方工具,以进一步提升用户体验。
760 243
|
1月前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
95 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
9天前
【YashanDB 知识库】如何排查 YMP 报错:”OCI 版本为空或 OCI 的架构和本地系统的架构不符“
在迁移预检查的版本检查阶段报错“OCI 版本为空”,原因是 OCI 架构与本地系统不符或依赖库缺失。排查发现 `libdrv_oracle.so` 缺少 `libnsl.so.1` 库,尽管 OCI 客户端路径已正确加入 `LD_LIBRARY_PATH`。解决方法包括下载安装相应动态库版本,或通过软链接指向更高版本库(如 `libnsl.so.2`)。总结:确保动态库路径正确配置,并使用 `ldd` 查看依赖库,必要时创建软链接以解决问题。
|
19天前
|
安全 NoSQL MongoDB
XJ-Survey:这个让滴滴日均处理1.2亿次问卷请求的开源系统,今天终于公开了它的架构密码!
嗨,大家好,我是小华同学。今天为大家介绍一款由滴滴开源的高效调研系统——XJ-Survey。它功能强大,支持多类型数据采集、智能逻辑编排、精细权限管理和数据在线分析,适用于问卷、考试、测评等场景。采用 Vue3、NestJS 等先进技术栈,确保高性能与安全性。无论是企业还是个人,XJ-Survey 都是你不可错过的神器!项目地址:[https://github.com/didi/xiaoju-survey](https://github.com/didi/xiaoju-survey)
63 15
|
2月前
|
存储 缓存 关系型数据库
社交软件红包技术解密(六):微信红包系统的存储层架构演进实践
微信红包本质是小额资金在用户帐户流转,有发、抢、拆三大步骤。在这个过程中对事务有高要求,所以订单最终要基于传统的RDBMS,这方面是它的强项,最终订单的存储使用互联网行业最通用的MySQL数据库。支持事务、成熟稳定,我们的团队在MySQL上有长期技术积累。但是传统数据库的扩展性有局限,需要通过架构解决。
78 18
|
7天前
【YashanDB 知识库】如何排查 YMP 报错:”OCI 版本为空或 OCI 的架构和本地系统的架构不符“
**问题现象**:迁移预检查时,因OCI版本为空或架构不符报错。通过查看yasdts日志发现缺少libnsl.so.1依赖库。 **排查步骤**: 1. 查看日志确认缺少的依赖库。 2. 检查OCI客户端路径是否已加入LD_LIBRARY_PATH环境变量。 3. 使用`ldd`命令检查其他缺失的依赖库。 **解决方法**: 1. 下载并安装所需的动态库版本。 2. 若无法联网,查找本地是否有相应库。 3. 如本地有高版本库,创建软链接指向所需版本(如`ln -s /lib64/libnsl.so.2 libnsl.so.1`)。
|
8天前
|
人工智能 Java 数据处理
Java高级应用开发:基于AI的微服务架构优化与性能调优
在现代企业级应用开发中,微服务架构虽带来灵活性和可扩展性,但也增加了系统复杂性和性能瓶颈。本文探讨如何利用AI技术,特别是像DeepSeek这样的智能工具,优化Java微服务架构。AI通过智能分析系统运行数据,自动识别并解决性能瓶颈,优化服务拆分、通信方式及资源管理,实现高效性能调优,助力开发者设计更合理的微服务架构,迎接未来智能化开发的新时代。
|
2月前
|
存储 消息中间件 小程序
转转平台IM系统架构设计与实践(一):整体架构设计
本文描述了转转IM为整个平台提供的支撑能力,给出了系统的整体架构设计,分析了系统架构的特性。
82 10

热门文章

最新文章