没有合适的资源?快使用搜索试试~ 我知道了~
首页SysML实践指南第二版第七章使用模块图(BDD)建模
SysML实践指南第二版第七章使用模块图(BDD)建模
209 浏览量
更新于2023-05-27
评论
收藏 2.16MB PDF 举报
本章讨论建模系统的结构根据它们的层次和互联。描述模块—SysML的主要的结构构件,被使用来表示两种类型的结构图:模块定义图和内部模块图。这些表示方法是一种系统工程模块图的传统形式,并使能接口和系统结构其它方面的更准确一种表示方式。注:本章包含介绍在SysML版本1.3中的端口的明显变化。第7.1节包含一个变化的概述和第7.9节描述已经被丢弃在这个版本中的特征。在SysML中,模块(block)是模块化的结构单元,被使用来定义系统的一种类型、组件、或在系统中流动的项、外部实体、概念实体或其它逻辑抽象。模块描述共享模块的定义的一组唯一的可标识的实例。模块被定义通过它拥有的特征,可以被划分为结构特征
资源详情
资源评论
资源推荐

SysML实践指南第二版第七章使用模块图(实践指南第二版第七章使用模块图(BDD)建模)建模
使用模块图建模
本章讨论建模系统的结构根据它们的层次和互联。描述模块—SysML的主要的结构构件,被使用来表示两种类型的结构图:
模块定义图和内部模块图。这些表示方法是一种系统工程模块图的传统形式,并使能接口和系统结构其它方面的更准确一种表
示方式。
注:本章包含介绍在SysML版本1.3中的端口的明显变化。第7.1节包含一个变化的概述和第7.9节描述已经被丢弃在这个版本
中的特征。
概述
在SysML中,模块(block)是模块化的结构单元,被使用来定义系统的一种类型、组件、或在系统中流动的项、外部实体、
概念实体或其它逻辑抽象。模块描述共享模块的定义的一组唯一的可标识的实例。模块被定义通过它拥有的特征,可以被划分
为结构特征和行为特征。
模块定义图使用来定义模块和模块之间的关系,诸如,它们的层次关系。也可以被用来指定模块实例,包含它们的配置和数据
值。内部模块图被使用来描述模块的内部结构,根据它的组成部分之间的关系。
属性是模块的主要结构特征。本章描述属性的不同形式包含那些组成部分(part)、引用(reference)和值(value)属性。组成部分
属性被使用来描述一个模块的组合层次并定义一个整体一部分语境。数值属性描述一个模块可量化的物理、性能、和模块的其
它特征,诸如,它的重量或速度。数值属性被定义通过一种数值类型,描述它的值的有效范围,带有数量类型(例,长度)和单
位制(例,英尺或米)。数值属性可以关联到参数化约束,随后讨论在第8章。
行为与一个模块的关联定义模块如何响应激励。不同的行为形式,包含活动、交互、和状态机,分别论在第9章到第11章。模块
的行为特征包含操作和接收,提供一个机制对应外部激励来调用这些行为。
组成部分可以被连接在一个内部模块图中,使用连接器使能发生在它们之间的交互,包含流入和流出它们并调用行为的中继
项。端口是一个模块的结构特征,指定模块可以与其它模块交互的令牌存取点。
SysML v1.3丢弃流端口和流说明,支持两种新的类型的端口,完整端口(full port)和代理端口(proxy port)。SysML v1.3
保留这些以前的功能,并也增加了功能对应端口,诸如,内嵌端口的功能,并指定其它类型接口交互的功能,诸如,配合面。
除了组合层次,模块可以被管理在分类层次中,分类层次允许模块将根据它们的相似之处和不同之处被定义。在一个分类层次
内部,一个模块可以指定另外一种更通用的模块,允许它继承特征来自通用模块并添加特定新特征到它。
实例规范(Instance specifications)可以被用来标识模块的特定配置, 包含它的数值属性的值。
模块定义图
模块定义图(block definition diagram)使用来定义模块根据它们的特征,和它们与其它模块的关系。模块定义图的标题如下:
bdd [model element kind] model element name [diagram name]
图的类型是:bdd
模型元素类型可以是一个包、一个模块、或一个约束模块。
图7.1显示一个模块定义图的一个例子,包含一些通用的标志。图显示一个ACME公司的摄像头产品的组合层次的两个层级。
符号使用在模块定义图来描述模块和它们的联系被显示在附录,表A.3到A.6。

图7.1模块定义图示例
内部模块图
内部模块图(internal block diagram)或ibd类似于一个传统的系统模块图,并显示一个模块的组成部分之间的连接关系。内
部模块图的标题如下:
Ibd [Block] block name [diagram name]
一个内部模块图的框架常常表示一个模块,所以模型元素类型常常被省略在标题中。模块名称是模块的名称,其被设计通过框
架。
图7.2显示内部模块图包含一些通用标志的一个例子。图描述Camera的内部结构的组成部分,光线如何流动并通过中间组成部
分最终到Optical Assembly。
使用在内部模块图中的符号描述模块的用法,称为组成部分,和它们的互联被显示在附录表A.6、A.11和A.12中。内部模块图符
号也可被显示在一个模块定义图中的一个模块的结构化舱段中。图7.26和图7.27提供相应的示例。
图7.2 内部模块图示例
构建模块在一个模块定义图上
在SysML中,模块是描述系统结构的基础模块单元。可以定义一个逻辑或概念实体的类型、一个物理实体(例,一个系统)、一
个硬件、软件、或数据组件、一个个人、一个设施;一个流动通过系统实体 (例,水)、或自然环境中的一个实体(例,大气或
海洋)。模块常常使用来描述可重用的组件在许多不同系统中。模块特征的不同分类用来定义模块,被广泛分类为结构特征、
行为特征、和约束描述在后续的章节中。
模块是一种类型,也即是一组相似实例(instances)或对象(objects)的一个描述,所有这些表现出共同的特征。一个模块
拥有描述它的实例的一组特征集。结构特征定义它的内部结构和属性;行为特征定义它如何与环境交互或者它的状态如何变
化。例如,一个汽车模块,模块包含汽车的物理和性能以及其它属性(例,它的重量、速度、仪表读数)、车辆注册编号、和也
可包含定义它如何响应转向和油门指令。汽车模块的每个实例将包含这些特征并唯一标识通过它的属性的值。所以,例如,一辆
Honda Civic可以被建模作为一个模块,而一辆特定的Honda Civic是Honda Civic模块的一个实例,它的值A1F R3D对应它的注
册属性。在SysML中,一个模块的实例可以显式地被建模作为一个唯一的设计配置,正如描述在第7.7.6节。一个实例可以包含
数值属性,它的值随着时间变化,诸如,速度和里程表读数。
模块的标志是一个矩形,内部划分成一系列舱段。名称舱段出现在标志的顶部并且是强制舱段。模块特征的其它分类,诸如,
组成部分(part)、操作(operation)、数值属性(value properties)、和端口(port),可以表示在模块标志的其它舱段。所有舱段,
除了名称舱段外都有标签,标签说明它包含特征的分类,并被描绘以小写、斜体、复数、并且词之间有空格。
在模块定义图中,名称遵循与包图相同的约定。模型元素或直接包含或导入到命名空间中通过图表示,被设计仅通过它们的名

称。为了突出显示它们在模型层次中的位置,其它模型元素必须被设计通过它们的限定名称。
在模块定义图上,一个矩形标志被默认解释为一个模块的表示,但可选的?block?关键字可以被使用,如果期望可以有前缀名称在
名称舱段中。为了减少混乱,约定在本章如果模块出现在相同的模块定义图上,?block? 关键字被使用,正如其它模型元素表示
通过矩形。
图7.3显示一个模块定义图,其中有三个模块在公司企业模型中,称为ACME Surveillance Systems Inc。模块的名称使用包含路
径的限定名称,显示它们在模型的包层次内部的定位,显示在图6.4。模块显示包含了使用范围:Camera是一个ACME产品的一
个描述;Stepper Motor模块是一个现成的组件使用在ACME的摄像头中;和Video被使用来描述摄像头生成的视频图像,。
图7.3 在一个模块定义图上的模块
使用属性建模块的结构和特征
属性是一个模块的结构特征,属性定义了它的特征的类型,可以是另外一个模块, 或一些更基础的类型,诸如,一个整数。本
节描述模块使用的三个属性分类。
组成部分属性(part properties)(简称组成部分)描述一个模块分解到它的构成元素。这些被描述在第7.3.1节。
引用属性(Reference properties)是它的值引用其它模块的组成部分的属性,被描述在第7.3.2.节。
数值属性(Value properties)描述一个模块的量化特征,诸如,它的重量或速度,描述在第7.3.4节。
更高级的主题关联到属性包含在下面:
属性偏离、静态属性和只读属性,描述在第7.3.4节。
属性重定义和构造子集(subsetting)分别定义在第7.7.1和7.7.6节
属性顺序和唯一性被定义在第8.3.1节。
使用组成部分属性建模块的组合层次
组成部分属性(Part),简称为组成部分,用来描述模块之间的组合关联。这种模块组合层次的类型常常被视作BOM结构(也称为
零件列表或装备树)。组合关系也称为一个整体-部分关系,其中,模块表示整体,组成部分属性表示部分。组成部分属性通常是
一个模块,尽管也可以是参与者(actor),正如描述在第12.5.1节。
组成部分属性标识它的类型在一个语境中的用法。一个组成部分和一个模块的一个实例之间关键区别是:组成部分描述一个实
例或一个模块的一个实例在它的组合模块的一个实例的语境中,而作为一个实例不需要一个语境。
组合模块的一个实例可以包含一个组成部分属性的多个实例,潜在的实例数目被指定通过组成部分属性的多重性,定义如下:
下限(实例的最小数目)可以是0或任何正整数。术语可选的常常用来对应当下限是0时的多重性,当下限值是0时,整体的实例
没有义务来包含任何组成部分实例。
上限(实例的最大数目)可以是1,许多(用“*”),或任何正整数等于或大于下限值。
一个组成部分属性是模块的一个特征,并且此类特征可以被列举在模块独立的组成部分舱段中。组成部分舱段头部使用关键字
parts标识,包含一个入口对应模块中的每个组成部分。每个入口有下面的格式:
part name: block name [multiplicity]
多重性([multiplicity])的上限值和下限值典型的组合在‘lower bound..upper bound’表达式中,除了它们有相同的值,在这种情
况下,多重性仅显示上限值。如果没有显示多重性,值:‘1..1’被假定。
图7.4显示一辆汽车有四个车轮的一个简单的例子,图中,Wheel的每个使用通过一个唯一标识的组成部分属性。在这种情况下
Automobile是整体,而Wheel被表示作为部分。4个车轮有一个通用的Wheel模块定义,带有一些特征 (例,尺寸、压力、等
等),在一个特定的车辆语境中,每个车轮可以有一个唯一的用法或功能。前轮有一个不同的功能与后轮区别,并可以有不同的

值对应它们的压力。每个车轮也可以有不同的行为,汽车加速或减速和受不同的约束情况时。类似的,一辆前轮驱动的车辆的
前轮与后轮驱动的车辆的前轮功能是不同的。
图7.4 一辆汽车带有4个车轮描述作为独立的组成部分
组成部分属性定义一组实例集,其属于整体或组合模块的一个实例。如果一个模块由一个以上的组成部分组合而成时,SysML
语义是,在任何时刻,每个组成部分实例最多是一个模块实例的部分。一个例子是一台发动机可以是两个不同类型车辆模块的
组成部分,诸如,一辆轿车和和一辆卡车。然而,发动机组成部分在一个时刻任何特定实例仅对应某一个车辆模块的实例。这条
规则意味着在实例级别,组合层次是一个严格的树,一个实例可以有最多一个父。
典型的,整体-部分关系意味着,特定的操作应用到整体,也应用到它的每个组成部分。例如,如果一个整体表示的一个物理对
象,它的位置发生变更时,它的每个的组成部分的位置也跟着发生变更。整体的属性,诸如,它的质量,也可以推断根据它的组
成部分。然而,这些推断的特征必须被指定,在模型中通常使用约束进行表示,参考第8章相关章节。
当模块表示物理系统的组成时,整体-部分关系常常被认为是一个装配关系。在其中,一个模块的实例在整体的终点被制作根据
来自组成部分终点的模块实例。整体-部分关系对应软件,与计算关联表示使用和销毁的内存位置,也可以应用到操作,定义
对应部分和整体的操作。对应软件对象,对应整体/部分关系的一个典型的解释‘整体被生成、删除和拷贝操作也应用到所有它的
组成部分’。例如,整体-部分语义指定:当一个实例在整体终点被销毁时,实例在组成部分终点也将被销毁。
组合关联
组合关联(composite association)关联两个模块在一个整体-部分关系中。它有两个端点,一个描述整体,另一个描述组成部
分。关联的组成部分终点是一个组成部分属性的视图。关联的整体终点提供附加的信息,诸如,它的多重性不能仅仅被表示通
过组成部分属性。由于一个组成部分的实例仅在某个时刻存在于整体中,多重性的上限在整体终点常常是1。然而,多重性的下
限在整体终点可以是0或1。值1意味着,组成部分的实例终点必须一直有模块的实例在整体的终点内部;值 0意味着模块的一
个实例在组成部分的终点可以存在即使没有整体存在。在随后情形中,一个模块的一个实例在组成部分终点可以被组成在许多
其它模块的内部随着时间,但它一直授权,实例仅是一个组成部分的实例在任何给定的时间。例如,一个发动机的一个实例可以
自身物理存在的,或实例可以是一辆汽车或卡车的一个实例的组成部分在任何给定的时间。
组合关联被显示通过两个模块之间的一条线,终点带有多个修饰。组合关联的整体终点被修饰通过一个黑色钻石。一个速记符
号可以被用来表示一个模块,许多组合关联显示通过一个单一的黑色钻石带有一系列直线连接到每个组合关联的组成部分终
点。
组合关联的每个终点可以在其它修饰之间显示一个名称和一个多重性。当终点的多重性没有显示时,默认的解释是一个整体
的‘0..1’多重性终点和一个组成部分终点多重性1。如果一个名称出现作为一个修饰在组成部分终点时,它是组成部分属性相应的
名称,尽管组成部分属性不经常命名。关联的终点也可以显示修饰对应到它们表示属性的其它特征,正如描述在本章的后面。在
大多数组合关联的通用使用中,组合关联的整体终点通常没有命名和组成部分终点有一个在组成部分上的终点箭头。部分终点
箭头的缺乏说明是一种引用属性的表示,正如定义在第7.3.2节。
在一个组合关联的组成部分终点表示的模块,组成部分舱段可以显示组成部分属性,但典型的在任何给定的图上,组成部分属性
被显示或在一个组成部分舱段或作为一个关联终点,但不是两者。
图7.5显示一个摄像头的一个组合层次的顶层两个层级的部分。Camera的组合关联Mount Assembly被显示。Camera Module
和Electronics Assembly的组成部分被显示在舱段中。尽管多层级分解可以显示在一个单一的图上,这可能引起混乱,即使对应
简单的系统。作为一个结果,通常一个实例仅显示一个特定图的一个单一的层级的分解。注:图框架说明在标题表示包名称为
Structure,其包含所有模块。
关于那个组成部分属性的名称有许多不同的哲理。在本章中,除了陈述的,下面的命名哲理被使用:

名称使用来区分2个组成部分使用相同的类型(模块)的属性。一个例子是Stepper Motor Module的使用,使用名称 elevation
motor(高度电机)和azimuth motor(方位电机)区分两个组成部分属性。
图7.5在一个模块定义图显示一个模块的组合层次
当类型(模块)的名称不能充分描述组成部分扮演的角色时,组成部分属性被给定一个名称。例子是模块名称Tilt Gimbal和
Pan Gimbal不能明显描述移动摄像头的功能时,使用名称elevation gimbal和azimuth gimbal。 组成部分属性没有命名,类型
(模块)的名称提供充分信息来推断组成部分的角色。这种的例子是Protective Housing、Camera Module和Electronics
Assembly。这是常规的情形,当一个模块已经被明确生成表示这个组成部分时。这应该也应用到Mount Assembly,但一个名称
被需要来说明一个附加符号形式在图7.8中。
如果存在一个组成部分名称,当描述图时,它可以被引用;否则模块名称被使用。
在这个图中,所有组成部分终点的多重性修饰的缺乏,说明每个组成部分有一个具体的实例对应摄像头的组合层次。修饰它们
的整体终点的多重性说明:Electronics Assembly,ma和Camera Module是摄像头的组成部分,模块Protective Housing可以被使
用在其它模块中。ma的所有组成部分类型化使用可重用的模块,其已经使用在许多其它语境中。Electronics Assembly和
Electronics Assembly都带有一个组成部分舱段,其列举它们的组成部分属性。没有组成部分有一个名称,并它们都有默认的多
重性1。
在一个内部模块图中建模组成部分
除了出现在一个模块定义图上,组成部分属性也可以显示在另外一种图称为内部模块图,表示模块组成的不同可视性。内部模
块图中的组成部分连接使用连接器和端口,正如随后描述的。
组合关联之间的关系,正如显示在一个模块定义图和在一个内部模块图,如下:
整体终点或组合模块(block)被设计通过图框架在内部模块图带有模块名称在图的标题中。它提供语境对应所有图元素在图上。
组成部分属性,显示作为一个组合关联的组成部分终点,它的整个终点是组合模块,或在组合模块的组成部分舱段中,出现作为一
个盒子标志带有一个实体边界在内部模块图的框架内。盒子的名称字符串标志由组成部分名称组成,紧跟提供一个冒号跟随通
过组成部分的类型。或组成部分的名称或类型名称可以被忽略。
每个组成部分属性的多重性可以被显示在组成部分标志的右角落或在方括号中,类型名称之后。如果没有多重性被显示,随后
一个多重性1被假定。
图7.6 是一个内部模块图衍生自组合关联,其整体的终点是Mount Assembly来自图7.5。标题标识符Mount Assembly作为封闭
的模块,为显示在图中的五个组成部分提供语境。在这种情况下,多重性没有显示,说明多重性默认值是1。(参考图7.1对应一个
例子没有默认的多重性。)注:这是内部模块图的一个简单形式的示意图。
剩余35页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0