第三章 模块定义图:模块

  在BDD中出现的元素叫做定义元素。定义元素形成了其它内容的基础,定义元素之间存在三种结构关系:关联、泛化和依赖

  BDD的外框代表的模型元素:

  • 包 package
  • 模型 model
  • 模型库 modelLibrary
  • 视图 view
  • 模块 block
  • 约束模块 constraintBlock

命名空间只是一种模型元素,这种模型元素可以在其中包含其它模型元素。也就是,命名空间可以包含其它模型层次中元素。A namespace is simply a model element that’s allowed to contain other model elements; that is, it can have other elements nested under it within the model hierarchy.

1. 模块

  模块,为系统中或系统外部环境中任意一种感兴趣的实体类型创建模型。 定义和实例的区别:某些模型元素(模块、值类型、约束模块)表示对类型的定义;某些模型元素(组成部分属性、值属性、约束属性)代表类型的实例。元素的定义只有一个名称(如Fight Computer),元素的实例有名称和类型(如primaryComputer:Fight Computer,前面的primaryComputer表示实例名称,后面的Fight Computer表示实例类型;memoryCapacity:Mb),
图1
  模块的特性:结构特性(属性)和行为特性。

1.1 结构特性

  模块结构特性包括:

  • 组成部分属性 Part properties
  • 引用属性 Reference properties
  • 值属性 Value properties
  • 约束属性 Constraint properties
  • 端口 Ports

  前四种属性会列举显示在模块相应的分隔框中,如上图中的值属性,会列举显示在值属性分隔框中。显示格式类似,< property name> : < type> [<multiplicity>]。如下图所示的组成部分属性和值属性:
在这里插入图片描述

1.1.1 约束属性

  约束属性一般代表一种属性关系(一个等式或者不等式),会使用一些列的值属性。使用格式< constraint name> : < type> [<multiplicity>],实例如下:
在这里插入图片描述
  如上图sm : Sufficient Memory,Sufficient Memory表示类型type,这里的type必须是已经在系统某处创建的约束模块的名称。约束模块是一种特殊的模块,创建它是为了封装可重用的约束表达式,如下图所示。
在这里插入图片描述
如果约束不需要重用,只有一个模块使用的时候,可以直接在模块的约束分隔框中制定约束表达式,如下图。
在这里插入图片描述

1.1.2 端口

  端口代表结构边缘不同交互点的一种属性,通过端口外部实体可以和端口所在结构进行交互。A port is a kind of property that represents a distinct interaction point at the boundary of a structure through which external entities can interact with that structure—either to provide or request a service or to exchange matter, energy, or data.

  当为模块添加端口的时候,就是把结构针对它的环境建模为一个黑盒。用端口封装模块,当我们重新设计模块的内部实现的时候,不会影响其它部分的设计。端口可以代表物理对象(HDMI接口、水龙头、仪表),也可以表示软件对象边界交互点(TCP/IP插槽、消息队列),还可以表示商业组织间的交互点(支付订单、邮箱)。

标准端口和流端口

标准端口是模块在交互点上提供或者请求的服务(行为)的模型。标准端口可以拥有一种或多种类型;类型是建模者赋予的接口(如Power Generation、Status Reporting),提供接口使用圆形标识(Power Generation),请求接口使用槽状标识(Status Reporting)。
在这里插入图片描述
接口
在这里插入图片描述

流端口包括非原子端口原子端口两类。非原子流端口的类型必须是在系统模型某处创建的流类别名称,流类别也是一种模型元素——会定义一系列流属性。
在这里插入图片描述
 每个流属性都有自身的方向,包括in、out、inout三类,显示格式:< direction> <name>: < type>如下图表示(in temp:℃)
在这里插入图片描述
原子流端口,类型必须是在系统模型某处定义的值类型、模块或者信号名称
在这里插入图片描述

1.2 行为特性

 SysML包含两类行为特性:操作operations接收receptions, 操作是由调用事件触发,接收是由信号事件触发。

1.2.1 操作

 SysML可以把任何行为表示为操作。在BDD中把操作表示为模块操作分隔框中的字符串,格式(< operation name> (<parameter list>): < return type>),参数列表格式(< direction> <parameter name>: < type>[<multiplicity>]=<default value>)。
在这里插入图片描述

1.2.2 接收

  接收是由信号事件触发,接收与操作的关键区别:

  1. 接收总是代表一种异步行为。客户端发送信号——触发接收操作接收它——然后立刻继续客户端自身的执行。
  2. 信号本身也是一种模型元素。可以用信号代表任意类型的事件、能量和数据。
  3. 接收没有返回值,接收的参数只能是输入,不可能是输出。
    在这里插入图片描述
    在这里插入图片描述

如上图所示,当在模块接收分隔框中显示接收的时候,会显示如下格式字符串:

«signal» <reception name> ( <parameter list> )
关键字 «signal»必须总是作为接收名称的前缀。

参数列表显示格式:

< direction> <parameter name>: < type>[<multiplicity>]=<default value>


end

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值