《SysML精粹》学习记录

  • 第四章:内部模块图(Internal Block Diagram,IBD)
    • IBD介绍
    • 组成部分属性
    • 引用属性
    • 连接器
    • 项目流
    • 内嵌组成部分和引用
    • 小结

第四章:内部模块图(Internal Block Diagram,IBD)

  (由于知识储备与软件因素,有些图出现错误敬请谅解)。

IBD介绍

  和 BDD一样,IBD是系统或者系统一个组成部分的静态(结构化)视图。和BDD不同的是,IBD不会显示模块;它会显示对模块的使用——在IBD头部命名的模块的组成部分属性和引用属性。
  在BDD中可以显示组成部分属性和引用属性——或者是作为模块分隔框中的字符串,或者是作为关联一端的角色名称。但是IBD可以表达在BDD中无法表达的信息:组成部分属性和引用属性之间的连接;在连接之间流动的事件、能量和数据的类型;以及通过连接提供和请求的服务。
  SysML没有提供对系统的空间结构建模的方法。IBD可以对那些彼此相连的组成部分建模,但是无法对它们的形状或者彼此之间合适的空间建模。则可能需要使用(非SysML)计算机辅助设计(Computer Aided Design,CAD)工具来完成那个目标。
  IBD 和 BDD互相补充,提供了模块的信息。首先创建BDD定义模块和它的属性。然后创建IBD来显示对那个模块的合法配置——模块属性之间特定的一系列连接。
  模块是出现在IBD中的模型元素的类型。而模块不能出现在IBD中,它们只在BDD中出现。IBD中出现的是模块的实例。从而,BDD 和IBD提供了相互补充的模块视图。
  内部模块图的图类型缩写是ibd。IBD中唯一允许的模型元素类型就是模块,IBD的外框总是代表你在系统模型某处定义的模块。如下图所示,在外框之中,可以显示模块的组成部分属性和引用属性,以及把它们连接在一起的连接器。

  BDD和IBD是相互补充的模块视图:除了属性之间的连接器之外,IBD还能够表示在属性之间流动的项目,以及属性能够通过那些连接器彼此调用的服务。

组成部分属性

  IBD中的组成部分属性和 BDD中模块的组成部分分隔框中的组成部分属性有着相同的意义:组成部分属性代表一种结构,位于在IBD头部显示名称的模块内部——也就是组成模块的结构。IBD中组成部分的标识法是带有实线边框的矩形。显示在矩形中的名称字符串的格式和 BDD中模块的组成部分分隔框中显示的字符串相同:“<part name> : <type>[<multiplicity>]”。可以选择在矩形的右上角显示组成部分属性的多重性,或者在字符串末尾的方括号中显示。建议:在日常工作中创建图时使用一种一致的标识法。

引用属性

  IBD中的引用属性和 BDD中模块的引用分隔框中的引用属性有着同样的意义:引用属性代表IBD头部显示的名称代表的模块外部的结构——模块因为某种目的而需要的模块,或者是为了触发行为,或者是为了交换事件、能量和数据。IBD中引用属性的标识法是带有虚线边框的矩形。显示在矩形中的名称字符串和BDD中模块的引用分隔框中显示的字符串格式相同:“<reference name> :<type>[<multiplicity>]”。和组成部分属性一样,可以选择在矩形的右上角显示引用属性的多重性。

连接器

  IBD中两个属性之间的连接器表示,那两个结构在正确组装且可操作的系统中, 拥有某种方式可以互相访问。可以选择为一个连接器指定名称和类型,以传达更多 关于连接那两个结构的媒介的额外信息。名称字符串的格式如下:“<connector name> : <type>”。;连接器(connector name)的名称是可选的,并且是建模者定义的。类型(type)也是可选的,但是,如果选择指定一种类型,那么它必须是你在系统模型两个模块之间某处创迚的关联的名称。关联必须连接同样的两个模块,而那两个模块会指定连接器两端的两个属性的类型。
  两个相互连接的属性可以都是组成部分属性、引用属性,或者一样一个。如果两 个相互连接的属性拥有兼容的端口——标准端口或者流端口——可以选择把连接器与那些端口连接,而不是直接与属性连接。这样做表示那些属性是在边界的特殊交互点处连接的。如果通过流端口连接两种属性,那么就可以通过那些端口传递能够在属性之间流动的事件、能量或者数据的类型(其中:共轭意味着流规格中的流属性的方向和端口相反)。如果通过标准端口连接两种属性,那么就可以传递一种属性在那些端口提供, 另一种属性需要的服务。还可以在IBD的外框上显示端口。这样的端口代表IBD代表的模块(其名称在图的头部显示)边界上的交互点。为了表示复合模块的一个内部组成部分通过边 界上的交互点与组合连接,可以把边框上的端口和组成部分属性的一个端口连接起来。这种设计表示复合结构的一个实例可以为行为和项目流传递请求,或者是从 外部客户端到那个内部组成部分,或者是从那个内部组成部分到外部的提供者。

项目流

  项目流代表在系统中两种结构之间流动的事件、能量或者数据的类型。IBD中项目流的标识法是实心的三角箭头,它位于连接两个流端口的连接器上。项目流的类型显示在连接器箭头旁边的标签上;标签必须包含系统模型中某处存在的模块、值类型或者信号的名称。项目流代表的类型必须和连接器两端流端口的类型兼容。如果两端的流端口都是原子流端口,那么对于连接器上的项目流类型,那些端口的类型通常是唯一的。如果两端的流端口是非原子流端口,那么它们的类型会由流规格指定。流规格必须包含一个流属性,它的类型和方向要和连接器上的项目流相匹配。

内嵌组成部分和引用

  IBD可以显示内嵌在其他属性中的属性。内嵌使得可以在单独视图中表示系统层级结构的多个层级。利:可以看到内嵌组成部分之间的关联关系,弊:IBD可读性变差。
  SysML没有限制在IB D中对属性可以进行多少层内嵌:唯一的限制是画布的维度,以及图的可读性。属性中的内嵌属性会占据图的很大空间,SysML为了克服空间限制,提供了另一种表达内嵌属性的标识法:点标识法。点标识法使得建模者能够以字符串的形式简洁地表示结构化层级关系。内嵌可以有任意深度,使得点标识法的字符串也可以任意长。对于表示系统层级关系的大量信息以及不同层级上组成部分之间的关联,这是一种非常高效的方式(点标识法存在缺陷:不能正确表达组成部分所属类型的模块名称;不能很好表达组成部分属性的多重性)。
  当需要为内嵌属性添加连接器的时候,有两种选择:跨越封装内嵌属性的边界绘制连接器,或者在那个边界的端口处停止,并从指向内嵌属性的那个端口再绘制一 条连接器。基于对设计原则决定是跨边界绘制连接器,还是在边界上的端口处停下。

小结

  IBD可以很好地展示在构建的系统中存在的特殊部分,以及那些组成部分之间的关联。同时很好地补充了在BDD中表达的信息,所以通常会依次创建BDD和IBD。IBD可以表示特定组成部分为另一部分提供的服务,以及能够通过它们的关联流动的事件、能量和数据。这对于系统利益相关者而言非常有价值。

《SysML精粹》学习记录--第四章相关推荐

  1. Solidity学习记录——第四章

    Solidity学习记录 第一章 创建生产僵尸的工厂 第二章 设置僵尸的攻击功能 第三章 编写DAPP所需的基础理论 第四章 完善僵尸功能 第五章 ERC721 标准和加密资产 文章目录 Solidi ...

  2. 广义相对论-学习记录9-第四章-相对论性的引力理论2

    第四章:相对论性的引力理论 6.变分原理推导场方程   场方程的左边为IGI_GIG​,右边为IMI_MIM​,作用量I=IG+IMI=I_G+I_MI=IG​+IM​   在平直时空中,作用量为: ...

  3. C语言深度剖析书籍学习记录 第四章 指针和数组

    p 称为指针变量,p 里存储的内存地址处的内存称为 p 所指向的内存. 指针变量 p 里存储的任何数据都将被当作地址来处理 一个基本的数据类型(包括结构体等自定义类型)加上"*" ...

  4. 《SysML精粹》学习记录--第七章

    <SysML精粹>学习记录 第七章:序列图 序列图简介 序列图元素 消息 约束 组合片段 交互使用 小结 第七章:序列图 序列图简介   序列图是另一种可以用来说明系统动态行为信息的Sys ...

  5. 《SysML精粹》学习记录--第六章

    <SysML精粹>学习记录 第六章:活动图 活动图简介 活动图外框 活动图的关键元素   动作   对象节点   边   动作详述   控制节点 活动分区 小结 第六章:活动图 活动图简介 ...

  6. 《SysML精粹》学习记录--第十一章

    <SysML精粹>学习记录 第十一章:需求图 需求图简介 需求图元素 需求关系 需求关系标识法 小结 第十一章:需求图 需求图简介   需求图是SysML中的主要媒介,可用于向利益相关者传 ...

  7. 《SysML精粹》学习记录--第五章

    <SysML精粹>学习记录 第五章:用例图(Use Case Diagram) 用例图简介 用例图外框 小结 第五章:用例图(Use Case Diagram) 用例图简介   用例图可以 ...

  8. 《Go语言圣经》学习笔记 第四章 复合数据类型

    <Go语言圣经>学习笔记 第四章 复合数据类型 目录 数组 Slice Map 结构体 JSON 文本和HTML模板 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. ...

  9. 三维荧光平行因子学习记录--(四)平行因子组件导出--(一)

    三维荧光平行因子学习记录–(四)平行因子组件导出–(一) 注:本文仅作为自己的学习记录以备以后复习查阅 本文参考博客链接: https://zhuanlan.zhihu.com/p/377996430 ...

最新文章

  1. 解耦的故事(一)-tmfc的开关(转)
  2. linux 快捷matlab_Linux命令 笔记(一)
  3. struts2 action间跳转传值
  4. 互联网公司为啥都不用MySQL分区表?
  5. 倡导国际农民丰收节贸易会-万祥军:中国-中东欧谋定启动
  6. python自带的函数有哪些_为什么说 Python 内置函数并不是万能的?
  7. 老生常谈session,cookie的区别,安全性
  8. python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!
  9. 探索比特币源码9-顺藤摸瓜之通过RPC读源码
  10. python 抽象类和接口
  11. Linux-dmidecode 下面查看主机BIOS信息命令
  12. C#网络编程概述 二
  13. php开发h5游戏教程,HTML5游戏框架cnGameJS开发实录-实现动画原理
  14. Python 鸡肋面试题总结
  15. 知到智慧树君子学堂智慧树章节答案
  16. 2023年2月京东手机品牌销量数据查询(京东电商数据平台)
  17. 汉诺塔模拟器java
  18. android 采集音频输出,Android系统分析之Audio音频流, 音频策略, 输出设备之间的关系...
  19. FastDB 很难得的一篇分析
  20. c函数 postgres_C-语言函数

热门文章

  1. EXCEL多列内容合并且中间加字符串
  2. matlabadftest_怎样用matlab做时间序列平稳性检验
  3. SMB2协议特性之oplock与lease(下)
  4. ​包载紫杉醇的tpgs还原性白蛋白纳米粒/GA-HSA 藤黄酸人血清蛋白纳米粒​
  5. linux软raid mdadm命令详讲
  6. php发布编辑删除功能,php实现添加修改删除
  7. GNP/CMC(纳米石墨片/羧甲基纤维素钠)和GNP/rGO(纳米石墨片/还原氧化石墨烯)复合石墨膜-供应硫化锗玻璃/ 硒化镓GaSe/硫化镓GaS/碘化铬CrI3/鈣鈦礦/二硫化钛TiS2薄膜定制
  8. 学计算机选择什么编程语言好一些?
  9. 展讯平台 LCD(Mipi)移植步骤及问题归纳
  10. 全球与中国网络漫画市场行业市场规模分析及发展规划研究报告2022~2028年