《系统架构:复杂系统的产品设计与开发》——第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
相关文章
|
8天前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
109 3
|
11天前
|
存储 缓存 前端开发
Django 后端架构开发:存储层调优策略解析
Django 后端架构开发:存储层调优策略解析
30 2
|
11天前
|
存储 安全 数据安全/隐私保护
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
Django 后端架构开发:富文本编辑器权限管理与 UEditor 、Wiki接入,实现 Markdown 文本编辑器
53 0
|
4天前
|
设计模式 开发框架 前端开发
在开发框架中实现事件驱动架构
【9月更文挑战第2天】事件驱动架构(EDA)通过事件机制让组件间解耦交互,适用于动态扩展和高响应性的系统。本文提供一个基于Beego框架实现事件驱动的示例,通过事件管理器注册和触发事件,实现用户注册和登录时的不同处理逻辑,展示了其在Web应用中的灵活性和高效性。
28 5
|
9天前
|
设计模式 存储 前端开发
揭秘.NET架构设计模式:如何构建坚不可摧的系统?掌握这些,让你的项目无懈可击!
【8月更文挑战第28天】在软件开发中,设计模式是解决常见问题的经典方案,助力构建可维护、可扩展的系统。本文探讨了.NET中三种关键架构设计模式:MVC、依赖注入与仓储模式,并提供了示例代码。MVC通过模型、视图和控制器分离关注点;依赖注入则通过外部管理组件依赖提升复用性和可测性;仓储模式则统一数据访问接口,分离数据逻辑与业务逻辑。掌握这些模式有助于开发者优化系统架构,提升软件质量。
25 5
|
6天前
|
Web App开发 编解码 Linux
FFmpeg开发笔记(四十八)从0开始搭建直播系统的开源软件架构
音视频技术广泛应用于直播系统,涵盖电视、电脑、手机直播等多种形式,并延伸至在线教育、医疗咨询和安全监控等领域。直播系统涉及实时编解码与传输,技术实现较复杂。从用户角度看,直播系统分为来源方和观看方,但在开发者视角下还需加入云平台作为中转。本文提出一套基于全开源软件的直播系统架构,分为三层:开源直播录制软件(如OBS Studio、RTMP Streamer),开源流媒体服务器(如SRS、ZLMediaKit),以及开源音视频播放器(如VLC media player、ExoPlayer)。这些组件共同构成一个高效、灵活且成本低廉的直播解决方案。
27 0
FFmpeg开发笔记(四十八)从0开始搭建直播系统的开源软件架构
|
11天前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
28 2
|
11天前
|
消息中间件 存储 监控
Django后端架构开发:Celery异步调优,任务队列和调度
Django后端架构开发:Celery异步调优,任务队列和调度
28 1
|
6天前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
19 0
|
6天前
|
微服务 API Java
微服务架构大揭秘!Play Framework如何助力构建松耦合系统?一场技术革命即将上演!
【8月更文挑战第31天】互联网技术飞速发展,微服务架构成为企业级应用主流。微服务将单一应用拆分成多个小服务,通过轻量级通信机制交互。高性能Java Web框架Play Framework具备轻量级、易扩展特性,适合构建微服务。本文探讨使用Play Framework构建松耦合微服务系统的方法。Play采用响应式编程模型,支持模块化开发,提供丰富生态系统,便于快速构建功能完善的微服务。
15 0

热门文章

最新文章

下一篇
DDNS