目录
内部模块图(IBD)
1 IBD介绍
内部模块图(Internal Block Diagram,IBD)系统或者系统一个组成部分的静态(结构化)视图。
IBD和BDD区别如下:
- 在BDD中可以显示组成部分属性和引用属性
- IBD可以表达在BDD中无法表达的信息:组成部分属性和引用属性之间的连接;在连接之间流动的事件、能量和数据的类型;以及通过连接提供和请求的服务。
- 创建IBD是为了指定单个模块的内部结构
IBD的一些细节如下:
- IBD 和 BDD互相补充,提供了模块的信息。首先创建BDD定义模块和它的属性。然后创建IBD来显示对那个模块的合法配置
- 模块只出现在BBD中,IBD中出现的是模块的实例
- 内部模块图的图类型缩写是ibd。IBD中唯一允许的模型元素类型就是模块,IBD的外框总是代表你在系统模型某处定义的模块
如下图所示:这是一个ibd图,代表模型Communication and Data Handing Subsystem的内部结构,在外框之中,可以显示模块的组成部分属性和引用属性,以及把它们连接在一起的连接器。
- 这里的小正方形分别是非原子流端口和原子流端口(单箭头的是原子流端口)
如下图所示:这是一个BBD图,代表了Communication and Data Handing Subsystem有七个组成部分属性:demod、rx、ant、primaryComputer、backupComputer、mod、tx;有一个引用属性:eps。同样的属性可以在上述的IBD图中体现
2 组成部分属性
IBD中的组成部分属性和 BDD中模块的组成部分分隔框中的组成部分属性有着相同的意义
IBD中组成部分的标识法是带有实线边框的矩形,显示在矩形中的名称字符串的格式和 BDD中模块的组成部分分隔框中显示的字符串相同:
“<part name> : <type>[<multiplicity>]”
- 可以选择在矩形的右上角显示组成部分属性的多重性,或者在字符串末尾的方括号中显示。
3 引用属性
IBD中的引用属性和 BDD中模块的引用分隔框中的引用属性有着同样的意义
IBD中引用属性的标识法是带有虚线边框的矩形。显示在矩形中的名称字符串和BDD中模块的引用分隔框中显示的字符串格式相同:
“<reference name> :<type>[<multiplicity>]”
- 可以选择在矩形的右上角显示组成部分属性的多重性,或者在字符串末尾的方括号中显示。
4 连接器
IBD中两个属性之间的连接器表示,那两个结构在正确组装且可操作的系统中, 拥有某种方式可以互相访问。可以选择为一个连接器指定名称和类型,以传达更多关于连接那两个结构的媒介的额外信息。
名称字符串的格式如下:
“<connector name> : <type>”
- 连接器(connector name)的名称是可选的,并且是建模者定义的
- 类型(type)也是可选的,但是,如果选择指定一种类型,那么它必须是你在系统模型两个模块之间某处创建的关联的名称。
如下图所示,表示飞行计算机和电子电力系统之间的连接,连接器的名称是pcPower,类型是Power Cable。指定名称和类型会传达更多关于两个结构之间关联的信息
如果两个相互连接的属性(如组成部分属性、引用属性)有兼容的端口,如标准端口和流端口,就可以使用连接器与那些端口连接
(1)流端口的连接
如下图所示:连接器通过流端口连接了eps引用属性和primaryComputer组成部分属性,这些非原子流端口彼此兼容,因为它们的类型都是Housekeeping Data
(2)标准端口的连接
如下图所示,连接器会把eps组成部分属性和cdhs组成部分属性通过边界上的标准端口连接起来
如下图所示,eps组成部分通过solarPanel与模块边界相连(即可以在ibd外框上显示端口),这个模型表示卫星电子电力系统需要一个光源,它通过卫星边界上的两个太阳能板访问卫星的外部环境
5 项目流
项目流代表在系统中两种结构之间流动的事件、能量或者数据的类型。
如下图所示,它必须遵循一下规则:
- IBD中项目流的标识法是实心的三角箭头,它位于连接两个流端口的连接器上
- 项目流的类型显示在连接器箭头旁边的标签上,标签必须包含系统模型中某处存在的模块、值类型或者信号的名称
- 项目流代表的类型必须和连接器两端流端口的类型兼容
- 如果两端的流端口都是原子流端口,对于连接器上的项目流类型,那些端口的类型通常是唯一的
- 如果两端的流端口是非原子流端口,那么它们的类型会由流规格指定。流规格必须包含一个流属性,它的类型和方向要和连接器上的项目流相匹配。
图中的两个非原子流端口之间沿着连接器流动代表℃值的项目流,从eps流向primaryComputer,由于Housekeeping Data流规格拥有类型℃的流属性,且方向相符,所以与项目流兼容
6 内嵌组成部分和引用
6.1 基本介绍
IBD可以显示内嵌在其他属性中的属性。内嵌使得可以在单独视图中表示系统层级结构的多个层级。
- 优点:可以看到内嵌组成部分之间的关联关系
- 缺点:IBD可读性变差。
- 建议慎用这个功能
6.2 点标识法
SysML没有限制在IBD中对属性可以进行多少层内嵌:唯一的限制是画布的维度,以及图的可读性。属性中的内嵌属性会占据图的很大空间,SysML为了克服空间限制,提供了另一种表达内嵌属性的标识法:点标识法。
- 点标识法使得建模者能够以字符串的形式简洁地表示结构化层级关系。内嵌可以有任意深度,使得点标识法的字符串也可以任意长。
如下图所示,字符串sensorPayload.x-axisSS:Star Sensor表达了多项信息:
- DellSat-77卫星模块有名为sensorPayload的组成部分属性
- sensorPayload组成部分属性有名为x-axisSS的属性
- x-axisSS的属性的类型由名为Star Sensor的模块决定
- x-axisSS的多重性是1...1(默认值)
6.3 连接内嵌属性
连接内嵌属性,有两种选择:
- 跨越封装内嵌属性的边界绘制连接器
- 绘制连接器时,在那个边界的端口处停止,并从指向内嵌属性的那个端口再绘制一条连接器
如图所示:
- 为显示星球传感器和飞行计算机之间的关联,直接创建从x-axisSS属性到内嵌的primaryComputer和backupComputer的连接器,跨越了cdhs的边界
- 为显示电子电力子系统和飞行计算机之间的关联。先创建了eps的标准端口到cdhs的标准端口的连接器;后创建从cdhs的标准端口到两个内嵌组成部分属性(即primaryComputer和backupComputer)的连接器