求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
目录
系统建模语言(SysML) 教程
1.SysML 的图:SysML概览
2.SysML 的图:包图
3.SysML 的图:需求图
4.SysML 的图:用例图
5.SysML 的图:模块定义图
6.SysML 的图:内部模块图
7.SysML 的图:参数图
8.SysML 的图:活动图
9.SysML 的图:序列图
10.SysML 的图:状态机图
 
 
SysML 的图:内部模块图
来源: www.85kf.com      翻译:Delores(火龙果软件)
738 次浏览
5次  

内部模块图

内部模块图(Internal Block Diagram, IBD)和BDD的关系非常密切。你可以在 IBD中显示各种元素来说明系统结构的各个方面,那会对BDD中表达的内容做补充。 IBD还有其独特的能力,它是建模工具箱中的重要部分。

1、目的

你创建IBD是为了指定单个模块的内部结构。和BDD—样,IBD是系统或者系 统一个组成部分的静态(结构化)视图。和BDD不同的是,IBD不会显示模块;它 会显示对模块的使用——也就是在IBD头部命名的模块的组成部分属性和引用属性。

回顾一下第3章的内容,在BDD中也可以显示组成部分属性和引用属性——或 者是作为模块分隔框中的字符串,或者是作为关联一端的角色名称。但是IBD可以 表达在BDD中无法表达的信息:组成部分属性和引用属性之间的连接;在连接之间 流动的事件、能量和数据的类型;以及通过连接提供和请求的服务。

IBD会表达模块的组成部分必须如何组合才能够创建有效实例。它还会显示模块 的实例必须如何与外部实体(引用属性)连接,以在整体上创建系统的有效实例。

这是一种强大的功能。然而,了解SysML的局限性也很重要。SysML没有提供 对系统的空间结构建模的方法。IBD可以对那些彼此相连的组成部分建模,但是无法 对它们的形状或者彼此之间合适的空间建模。你可能需要使用(非SysML)计算机辅 助设计(Computer Aided Design, CAD)工具来完成那个目标。

2、何时创建IBD

IBD和BDD互相补充,提供了模块的信息。BDD让你首先定义模块和它的属性。

然后你可以使用IBD来显示对那个模块的合法配置一模块属性之间特定的一系列 连接。因为这种紧密的关系,你通常会在系统的生命周期中不同的时间点为各种利益 相关者依次创建IBD和BDD。

3、对模块的回顾

我在4.5节中提供了 IBD的例子。然后,本章剩余的内容会详细讨论能够在IBD 中出现的元素和标识法的类型。然而,在那之前,让我们重新回顾一下模块这个主题。

你应该还记得,模块是出现在IBD中的模型元素的类型。然而,模块不能出现在 IBD中,它们只在BDD中出现。因此,首先会在4.5节中展示一幅BDD,它显示了 用于创建IDB的模块的子集。图4.1中的BDD是图3.1 (出现在第3章的开篇)中大 型BDD的节选。注意模块的名称以及它们之间的关系,你会在图4.2的IBD中再次 看到那些模块的名称。

关键是:BDD和IBD提供了相互补充的模块视图。

4、IBD外框

内部模块图的图类型缩写是ibd。对于IBD,唯一允许的模型元素类型就是模块。 IBD的外框总是代表你在系统模型某处定义的模块。在外框之中,你可以显示模块的 组成部分属性和引用属性,以及把它们连接在一起的连接器。

图4.2中的IBD的名称是“面向流的视图”。这幅IBD代表系统模型中的 Communication and Data Handling Subsystem模块。因此,模块是显不在图中的组成 部分属性和引用属性的所有者。

5、BDD和IBD:相互补充的模块视图

图4.1 中的 BDD 表7K Communication and Data Handling Subsystem 模块有七个组成 部分属性:demod、rx、ant、primaryComputer、backupComputer、mod 和 tx。它有 一个引用属性:eps。同样的8个属性也出现在图4.2的IBD中,这8个属性的名称、 类型和多重性在两幅图之间都是对应的。这样,这两幅图就表现了 Communication and Data Handling Subsystem模块一致而互补的视图。

图4.2中的IBD提供的信息大多数和图4.1中的BDD所提供的一样,但它还提 供了一些BDD无法提供的额外信息:内部组成部分属性之间的特殊连接,以及它们 与外部引用属性eps之间的连接。你使用属性之间的连接来表示那种组合关系。

除了属性之间的连接器之外,IBD还能够表示在属性之间流动的项目,以及属性 能够通过那些连接器彼此调用的服务。你会在接下来的小节中看到这个IBD每个部 分的详细信息。

6、组成部分属性

IBD中的组成部分属性和BDD中模块的组成部分分隔框中的组成部分属性有着 相同的意义:它代表一种结构,位于在IBD头部显示名称的模块内部——也就是组成 模块的结构。IBD中组成部分的标识法是带有实线边框的矩形。显示在矩形中的名称 字符串的格式和BDD中模块的组成部分分隔框中显7K的字符串相同:

可以选择在矩形的右上角显示组成部分属性的多重性,而不是在字符串末尾的方 括号中显示。在图4.2中为了介绍显示了这两种标识法。然而,建议在日常工作中创 建图时使用一种一致的标识法。

7、 引用属性

IBD中的引用属性和BDD中模块的引用分隔框中的引用属性有着同样的意义: 它代表IBD头部显示的名称代表的模块外部的结构——也就是模块因为某种目的而 需要的模块,或者是为了触发行为,或者是为了交换事件、能fl和数据。IBD中引用 属性的标识法是带有虚线边框的矩形。显示在矩形中的名称字符串和BDD中模块的引用分隔框中显示的字符串格式相同:

和组成部分属性一样,你可以选择在矩形的右上角显示引用属性的多重性。

8、连接器

IBD中两个属性之间的连接器表示,那两个结构在正确组装且可操作的系统中, 拥有某种方式可以互相访问。你可以选择为一个连接器指定名称和类型,以传达更多 关于连接那两个结构的媒介的额外信息。名称字符串的格式如下:

连接器的名称是可选的,并且是建模者定义的。类型也是可选的,但是,如果你 选择指定一种类型,那么它必须是你在系统模型两个模块之间某处创迚的关联的名称。 关联必须连接同样的两个模块,而那两个模块会指定连接器两端的两个属性的类型。

图4.3中的IBD表示飞行计算机(它是通信和数据处理子系统的组成部分)和电 子电力子系统(它是通信和数据处理子系统的引用)连接。连接器的名称是pcPower, 类型是Power Cable。指定名称和类型会传达更多关于两个结构之间关联的信息。类 型Power Cable与电子电力子系统模块和飞行计算机模块之间的关联相关,正如前面 图4.1中的BDD所示。

两个相互连接的属性可以都是组成部分属性、引用属性,或者一样一个。如果两 个相互连接的属性拥有兼容的端口——标准端口或者流端口——你就可以选择把连接 器与那些端口连接,而不是直接与属性连接。这样做表示那些属性是在边界的特殊交 互点处连接的。

如果你通过流端口连接两种属性,那么就可以通过那些端口传递能够在属性之间 流动的事件、能量或者数据的类型。例如,在图4.4中,连接器通过边界上的非原子流端口连接了 eps引用属性和primaryComputer组成部分属性。这些非原子流端口都 彼此兼容,因为他们的类型都由同样的流规格Housekeeping Data以及共扼的两个端 口之一dataOut决定的(在它的类型之前有个波浪线[?])。第3章讲过,共轭意味着 流规格中的流属性的方向和端口相反。

如果你通过标准端口连接两种属性,那么就可以传递一种属性在那些端口提供, 另一种属性需要的服务。例如,在图4.5中,连接器会把eps组成部分属性和cdhs组 成部分属性通过边界上的标准端口连接起来。这幅IBD表示电子电力子系统提供了 Power Generation接口,需要Status Reporting接口。相反,通伯和数据处理子系统 提供/ Status Reporting接口,需要Power Generation接口。这些标准端口都是兼容 的,那些结构可以在系统操作过程中通过这个连接器来交换服务。

你还可以在丨BD的外框上显示端口。这样的端口代表IBD代表的模块(其名称 在图的头部显示)边界上的交互点。为了表示复合模块的一个内部组成部分通过边 界上的交互点与组合连接,你可以把边框上的端口和组成部分属性的一个端口连接 起来。这种设计表示复合结构的一个实例可以为行为和项目流传递请求,或者是从 外部客户端到那个内部组成部分,或者是从那个内部组成部分到外部的提供者。

图4.6中的IBD显示(DellSat-77卫星模块的)eps组成部分属性通过solarPanel标准端口与那个模块的边界相连。这幅图还显示,这些标准端口拥有请求接口 Light Source。这个模型表示卫星的电子电力子系统需要一个光源,它会通过卫星边界上的 两个太阳能板访问卫星的外部环境。

9、项目流

项目流代表在系统中两种结构之间流动的事件、能量或者数据的类型。IBD中 项目流的标识法是实心的三角箭头,它位于连接两个流端口的连接器上(如图4.7所 示)。项目流的类型显示在连接器箭头旁边的标签上;标签必须包含系统模型中某处 存在的模块、值类型或者信号的名称。

项目流代表的类型必须和连接器两端流端口的类型兼容。如果两端的流端口都是 原子流端口,那么对于连接器上的项目流类型,那些端口的类型通常是唯一的。如果 两端的流端口是非原子流端口,那么它们的类型会由流规格指定。流规格必须包含一 个流属性,它的类型和方向要和连接器上的项目流相匹配。

图4.7中的IBD本质上和图4.4中的类似。然而,这个图传达了额外的信息: 在两个非原子流端口之间沿着连接器流动代表丈值的项目流,从eps引用属性流 向primaryComputei?组成部分属性。这个项目流与这些非原子的流端口兼容,因为 Housekeeping Data流规格拥有类型1^:的流属性,且方向与之相符合。(如果你对此怀 疑,那么可以查看图3.12。)

10、内嵌组成部分和引用

IBD提供了一种强大的功能:显示内嵌在其他属性中的属性。内嵌让你可以在单 独视图中表示系统层级结构的多个层级。当看图者需要看到内嵌组成部分之间的关联 时,这就很冇必要。(但是,我还是建议你谨慎地使用这种功能;IBD可能会很快变得不可读。)

图4.8提供了带有内嵌属性的IBD例子。在这幅图中,我选择关注组成部分属 性为另一种属性所提供的服务。为了显示这一点,IBD显示了它们的标准端口,以 及赋予那些端U的接口。这幅图把图4.2中所关注的转换到系统设计的另一个方面。 图4.2敁示了流端口,以说明在属性之间流动的事物类型。

注意可以在显示流端口的IBD中显示标准端口。但我更喜欢做的是,在不同的 图中关注系统的两个不同方面。

图4.8中的1BD显示DellSat-77卫星模块拥有一个名为cdhs,类型为通信和数 据处理子系统的组成部分属性。而cdhs组成部分属性拥有名为primaryComputer和 backupComputer的组成部分属性。

模型的这个视图和图4.2中显示的视图一致。那幅IBD代表通信和数据处理子 系统模块,并显示了所有属性。相对而言,图4.8中的丨BD忽略了 cdhs的不少部分, 那些都不是这幅图的关注点所在(ant、tx、rx、mod和demod) 然而,显示的两个 部分都和图4.2中的信息一致。

10.1点标识法

SysM L没有限制在丨B D中对属性可以进行多少层内嵌:唯一的限制是你的画布 的维度,以及图的可读性。属性中的内嵌属性会占据图的很大空间SysML为了克服 空间限制,提供了另一种表达内嵌属性的标识法:点标识法。点标识法让你能够以字 符串的形式简洁地表示结构化层级关系。图4.8中IBD顶部的属性就是一个例子。字 符串 sensorPayload.xaxisSS: Star Sensor 表达了多项信息:

□ DellSat-77卫星模块拥有名为sensorPayload的组成部分属性

□ sensorPayload组成部分属性拥有名为x-axisSS的属性

□ x-axisSS属性的类型由名为Star Sensor的模块决定

□ x-axisSS的多重性是1.1 (默认值,因为没有显示任何多重性设置)

正因为内嵌可以有任意深度,所以点标识法的字符串也可以任意长。对于表示系 统层级关系的大量信息以及不同层级上组成部分之间的关联,这是一种非常高效的 方式。

但是点标识法(和内嵌方式相比)也有一些缺点。字符串sensorPayload.x-axisSS: Star Sensor不会表达以下信息:

口决定组成部分sensorPayload类型的模块名称 □组成部分属性sensorPayload的多重性如果需要看到层级关系每个级别每个属性的类型和多重性,那么你就应该使用内 嵌标识法,而不是点标识法。

10.2连接内嵌属性

当你需要为内嵌属性添加连接器的时候,有两种选择:跨越封装内嵌属性的边界 绘制连接器,或者在那个边界的端口处停止,并从指向内嵌属性的那个端口再绘制一 条迮接器两种做法的例子如图4.8所示。

为r显示电子电力子系统和飞行计算机之间的关联,我首先创建了从eps边界上 的标准端I」到cdlls边界的标准端口的连接器。然后创建了从cdhs边界上的标准端 n到网个内嵌组成部分屈性的连接器。相对地,我创建了直接从x-axisSS属性到内嵌 的primaryComputer和backupComputer属性的连接器,在这个过程中跨越了 cdhs边 界,从Ifil M示了垣球传感器和飞行计算机之间的关联。

决定是跨边界绘制连接器,还是在边界上的端口处停下,这应该基于对设计原则 的理解正如笫3章提到的,端口让你以模块化的方式指定模块,显示面向客户端的 接口,它会隐藏模块的内部实现。这是面向对象中的封装原则。这是非常好的原则, 你可以在设计的默认模式下采纳它。

你跨边界绘制连接器的时候,就违背了封装原则。这样做也有很合理的原因 (例如.需要满足要求很高的实时嵌人式系统中的性能约束),但那种情况是例外,而 不是规则。当你必须违背封装原则的时候,要让大家知道,并把理由记录在模型中。

小结

IBD表示r系统结构的一个重要方面:在构建的系统中存在的特殊部分,以及那 些组成部分之间的关联。系统设计的这个方面很好地补充了你可以在BDD中表达的 信息,所以你通常会依次创建这两种图。

IBD拥有一种独特的能力,它可以表示特定组成部分为另一部分提供的服务,以 及能够通过它们的关联流动的事件、能量和数据。系统结构的这方面内容对于系统利 益相关者而言非常有价值。

 

 

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



738 次浏览
5次