本文主要是介绍第七章 块为结构建模 P3|系统建模语言SysML实用指南学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
仅供个人学习记录
块行为建模
块提供了行为情境,行为这个 SysML 词条覆盖了块如何处理输如/输出和其内部状态改变的所有描述。
块可以指定某个行为作为其主行为或者分类器行为,该行为在块实例化后启动执行。其他行为可以指定为方法,提供了处理服务请求的细节。这两类行为也可以反过来引发块的其他行为。
行为拥有参数,这些参数用于行为执行之前 、之后、正在执行时将项传人行为或传出行为。
SysML中有如下三种主要行为形式:
- 活动:将输人转换为输出
- 状态机:用于描述块如何响应事件
- 交互:描述了块组成间如何通过消息相互作用
SysML 识别了语言中的其他两种行为形式
- 非透明行为opaque behavior在一些 SysML 外部语言中以文本形式表示。
- 功能行为function behavior与非透明行为类似,增加了不允许直接影响归属块状态且仅能通过参数通信的约束。功能行为通常用于定义数学函数。
块主行为建模
块的主行为main behavior也成为分类器行为classifier behavior,起始于块生命周期的开始,通常在块生命周期的终点终止(也可以在终点前终止)。依赖于块的性质,分类器行为的形式选择可以是状态机(如果块主要是由事件驱动),也可以是活动(如果块主要用于将输入项转换成输出项)。
具体什么意思没看懂
块行为特性规范
块拥有描述能够响应何种请求的行为特性behavioral features,可以有关联的方法,该方法是当块处理对特征的请求时调用的行为。行为特征有操作和接受两种类型
操作operation是由同步请求触发的行为特性(当请求者等待响应时),每个操作定义一组描述请求发出时传入自变量的参数parameter,或请求处理后传回自变量的参数/
操作可以由异步请求触发(请求者不等待响应时),可以没有自变量传回给请求方
接收reception与信号signal相关联,信号定义了集的某个消息。信号的属性集表示消息的内容;接收的参数必须与相关联信号的属性相同。
操作和接收之间的主要区别时,操作可以由同步请求和异步请求触发,而接收只能由异步请求触发,
信号是用一个具有实线轮廓的矩形标识定义,在信号名称之前有关键词《signal》,如下形式标识属性:attribute name:attribute type [multiplicity]
Status Report状态报告信号有三个属性report报告,他直接定义;log time日志时间,由它与Status Message关系得到;id由它到System Message系统消息得到
操作和接收显示在标记为operations的块单独分区中。操作表示为名称与参数的组合,以及可选的的返回类型,形式如下:
operation name(parameter list):return type
参数列表以冒号分隔,形式如下:
direction parameter name:parameter type
参数方法可以是输入输出
接收是其名称和参数列表的组合(接收的名称总是其关联信号的名称),表示为:
《signal》reception name(parameter list)
对于SysML1.3,块必须指定它对其定义的行为特性是提出请求还是处理请求。提供行为特性provided behavioral feature请求由定义块自己处理,由特性名前的关键词prov,提供行为特性provided behavioral feature表示它期望某个外部实体处理其对该特性所做的任何要求,特性名前的关键词reqd。关键词provreqd表示特性既是提供又是请求。行为特性既可以是请求也可以是提供。
我在实现的时候,体现不出来提供prov还是请求reqd
《signal》这个我也在operations里面加不出来
下图表示由Surveillance System和Command Center提供和请求的服务视图。它们都具有相同的接收集合,对应于上面的信号。
块定义方法建模
某些块的行为仅对特殊激励响应,尤其是在请求是由提供行为特性产生情况下,这种行为称作方法method。
SysML支持多态性polymorphism,多态性至多个不同的块可以响应相同激励,但每个都采用特殊的方法,按照特定的方式完成。
跨连接器的路由请求
行为特性的请求可以跨组成间和引用间的连接器通信。当某个块行为产生针对请求行为特性的请求时,请求跨连接器与另一端通信。
任何目标端都必须有一个带有兼容标志的同类型提供行为特性(如操作或接收)
然后讲了两个特性的信号必须满足一些准则
连接器可以跨链接路由
这篇关于第七章 块为结构建模 P3|系统建模语言SysML实用指南学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!