本人看的实在是太枯燥了,很多都是机翻过了一遍
后面复习的时候,我再用chatgpt润色一下
一、综述
块是系统描述的模块化单元。每个块定义了一组特征来描述系统或其他感兴趣的元素。这些可能包括结构和行为特征,例如属性和操作,以表示系统可能表现出的系统和行为的状态。
块提供了将系统建模为模块化组件树的通用功能。组件的特定种类、它们之间的连接种类,以及这些元素组合起来定义整个系统的方式,都可以根据特定系统模型的目标进行选择。SysML模块可以用于系统规范和设计的所有阶段,并且可以应用于许多不同类型的系统。这些包括对系统的逻辑或物理分解进行建模,以及对软件、硬件或人员元素进行规范。这些系统中的部分可以通过许多不同的方式进行交互,例如软件操作、离散状态转换、输入和输出流或连续交互。
SysML中的块定义图定义了块的特征和块之间的关系,如关联、泛化和依赖关系。它根据属性和操作以及诸如系统层次结构或系统分类树之类的关系捕获块的定义。SysML中的内部框图根据属性和属性之间的连接器捕获块的内部结构。块可以包含属性来指定它的值、部分和对其他块的引用。端口是一种特殊的属性,用于指定块之间允许的交互类型,在第9章“端口和流”中进行了描述。约束属性是一类特殊的属性,用于约束块的其他属性,在第10章“约束块”中描述。可以使用各种属性符号来区分内部框图上的这些特定类型的属性。
属性可以在其封闭块的上下文中表示角色或用法。属性具有提供其定义的类型。例如,属于一个块的部件可以由另一个块输入。部件在其所属的特定上下文中定义其定义块的局部用法。例如,一个代表轮子定义的块可以有不同的用法。前轮和后轮可以代表同一车轮定义的不同用法。SysML还允许每种用法定义与个别用法相关的上下文特定值和约束,例如前轮为25 psi,后轮为30 psi。
块还可以指定描述系统行为的操作或其他特征。除了操作之外,本章严格处理属性的定义,以描述系统在任何给定时间点的状态,包括定义其结构的元素之间的关系。
在后面章节中,“Ports 和 Flows”指定了块之间特定形式的交互,Behavioral Constructs包括活动、交互和状态机可以应用于块来指定它们的行为。"Allocations"描述了将行为分配给部分和块的方法。
SysML 块基于 UML 类,由 UML 复合结构扩展。UML 类的一些功能,例如更专门的关联形式,已被 SysML 块排除以简化语言。SysML 块总是包含一个定义内部连接器的能力,而不管特定块是否需要此功能。SysML 块还扩展了 UML 类和连接器的能力,具有可重用的约束形式、连接器端的多层嵌套、复合关联类的参与者属性以及连接器属性。SysML 块包括这一张章节会指定的几个符号扩展。
二、Diagram Elements
(一)Block Definition Diagram
Table 1 - Graphical nodes defined in Block Definition diagrams
Table 2 - Graphical paths defined by in Block Definition diagrams
Table 3 - Graphical nodes defined in Internal Block diagrams
Table 4 - Graphical paths defined in Internal Block diagrams
三、UML Extensions
(一)Diagram Extensions
Block Definition Diagram
块(Block)定义图基于UML类图,其限制和扩展由SysML定义。
Block and ValueType 定义
- SysML Block定义了一组特征来描述系统或其他关注的元素。SysML ValueType 定义了模型中使用的值。SysML blocks基于 UML 类,由 UML 复合结构扩展。SysML 值类型基于 UML 数据类型。
Default «block» stereotype on unlabeled box
- 如果在块定义图(包括任何stereotype属性分区)上的定义框中没有出现stereotype关键字,则假设定义是 SysML 块,就像 «block» 关键字出现在定义的顶部隔间的名称之前一样。
Labeled compartments 标签
- SysML允许块具有多个分区,每个分区可选地使用自己的分区名称标识。分区可以根据各种标准对所显示的特征进行分区。一些标准分区是由SysML自己定义的,其他的可以由用户使用特定于工具的工具来定义。车厢可以按任何顺序出现。
- SysML定义了两个额外的分区,名称空间和结构分区,它们可能包含图形节点,而不是文本约束或特性定义。请参阅本节的单独子节,以了解这些隔间的描
Constraints compartment 约束
-
SysML定义了一种特殊形式的分区,标签为“约束”,它可以包含块拥有的一个或多个约束。块拥有的约束可以使用约束的标准基于文本的表示法显示在这个分区中,该约束由用大括号括起来的字符串组成。使用隔区来显示约束是可选的。基于注释的符号,约束显示在块外部的注释框中,并通过虚线链接到它,也可以用于显示块拥有的约束。
-
constraints compartment还可以包含块所拥有的约束属性的声明。约束属性是由ConstraintBlock类型的块的属性,在第10章“约束块”中定义。在隔室中只能显示约束属性的声明,而不能显示其参数的详细信息或将它们链接到其他属性的绑定连接器。
Namespace compartment 命名空间
- 带有“namespace”标签的分区可以作为块定义的一部分出现,以显示在包含块的命名空间中定义的块。这个分区可以包含块定义图中的任何图形元素。在此分区中定义的所有块或其他命名元素都属于包含块的namespace。
Structure compartment 结构
带有“structure”标签的分区可能作为块定义的一部分出现,以显示所定义的块的连接器和其他内部结构元素。这个分区可能包含internal block的任何图形元素。
- 由于此分区包含图形元素,因此比通常用于特征定义的分区更宽的分区可能更有用。由于相同的块可以在同一个图中出现多次,因此将此分区作为单独定义框的一部分显示可能比仅显示特征分区的框更有用。namespace和structure分区都可能需要一个宽的分区来容纳图形元素,它们也可以显示在一个公共定义框中。
Unit and QuantityKind definitions 单位和数量类型
- Unit和QuantityKind元素使用类似于块的矩形框符号来定义,其中只有“Unit”或“QuantityKind”stereotype关键字,Unit或QuantityKind的名称,以及Unit的可选“quantityKind”属性值可能出现。即使Unit和QuantityKind的基本元类是InstanceSpecification, QuantityKind或Unit的名称也没有下划线,并且UML InstanceSpecification的其他图形元素也不会显示出来。Unit的可选“quantityKind”属性和ValueType的“quantityKind”和/或“Unit”属性是使用标准原型属性符号指定的,它必须通过名称引用已经单独定义的quantityKind或Unit,并且可以在本地namespace中引用。
Default multiplicities 默认关联值
- SysML在特定类型的关联末端定义了单/多性的默认值。部分关联或共享关联的默认多重性为[0…1]在黑色或白色钻石端。单向关联在其目标端上的默认多重性为1。如果没有在图表上显示,这些多样性可能是假定的。为了避免混淆,除默认值之外的任何多样性都应该始终显示在图上。
Property-specific type 特定属性
- 将属性的类型名称括在方括号中指定该类型是引用类型的局部专门化,可以重写该类型以指定该属性独有的附加值或其他自定义。重新定义或添加的新定义类型的特征可以在内部框图上的属性分区中显示。如果方括号之间没有出现类型名称,则特定于属性的类型由其自己的声明提供定义,而不专门化任何现有类型。
Internal Block Diagram
Internal block基于UML复合结构图,并具有SysML定义的限制和扩展。
Property types 属性类型
在SysML中,块的属性分为四大类:部件、引用、值属性和约束属性。部件或值属性总是显示在带有实体轮廓框的内部框图上。引用属性由虚线框显示,与UML一致。端口是属性的特殊情况,并且有各种各样的符号,如第10章,端口和流中定义的。约束属性和它们的参数也有自己的符号,在第11章约束块中定义。
Block reference in diagram frame 图框中的块引用
内部框图的图表标题名称(图表框架左上角的选项卡中包含的字符串)必须将SysML块的名称标识为其modelElementName。(参见附件A中包含modelElementName组件的图表标题名称的定义。)出现在内部框图中的所有属性和连接器都属于在图标题名称中命名的块。
Compartments on internal properties 内部属性的分区
SysML允许在内部框图上显示的任何属性也显示属性框内的分区。这些分区可以像块定义一样被赋予标准的或用户自定义的标签。在这些分区中显示的所有特征必须与输入属性的块或值类型相匹配。对于特定于属性的类型,可以使用这些分隔来指定重新定义的或本地定义类型的附加特性。默认情况下,内部属性框上未标记的隔区是结构隔区。
显示属于该属性类型的内容的属性框上显示的任何分区的标签,在分区标签前面显示一个冒号(“:”)。在其他情况下,隔间名称与在块定义图上的类型上显示的名称相同。
Compartments on a diagram frame 框图上的分区
SysML允许在内部框图上跨图框的整个宽度显示分区。这些分区必须始终遵循一个初始分区,该分区始终显示被引用块的内部结构。这些分区可能具有所有相同的内容,这些内容可以显示在图框架顶层定义的块的块定义图上。
Property path name 属性路径名
属性框内部或外部显示的属性名可以采用多级名称的形式。这种形式的名称引用一个嵌套属性,可通过引用上下文中的一系列中间属性访问。所引用属性的名称由一串以“.”分隔的名称构建,从而产生一种形式的路径名,该路径名在其本地上下文中标识该属性。冒号和属性的类型名称可选地显示在带点的名称字符串后面。如果路径名称字符串中命名的任何属性标识了引用属性,则属性框将显示为虚线框,就像内部框图上的任何引用属性一样。
这种表示法纯粹是属性的表示法简写,否则属性可以在嵌套属性框的结构中显示,虚线字符串中的名称取自每一层嵌套中出现的名称。换句话说,下图左边显示的带有路径名的内部属性相当于右边显示的最里面的嵌套框。
Nested connector end 嵌套连接器端
可以绘制跨越嵌套属性边界的连接器,以连接到其中的属性。连接器由拥有连接器两端的最直接的块拥有。UML ConnectorEnd的NestedConnectorEnd构造型自动应用于在包含上下文中嵌套超过一个层次的任何连接器端。
使用嵌套连接器端不遵循封装连接器线可能跨越的部分或其他属性的严格原则。如果可以在每个包含层的块中添加额外的属性,就可以避免嵌套连接器末端的需要。嵌套连接器端可用于引入这些中间属性不可行或适当的情况。
连接到包含块内嵌套属性的能力要在同一图上显示多级分解。
Property-specific type 特定属性类型
将内部属性的类型名称括在方括号中,指定该类型是引用类型的局部专门化,可以重写该类型以指定该属性独有的附加值或其他自定义。新定义类型的预定义或添加特征可以在属性的隔间中显示。如果属性名称本身出现,没有冒号或类型名称,或者如果方括号之间没有出现类型名称,则特定于属性的类型完全由它自己的声明提供,而无需专门化任何现有类型。
Default multiplicities 默认多重性
SysML 在连接器的两端定义了 1 的默认多重性。如果图表中没有显示这些多重性,则可以假设。为了避免混淆,除了默认值之外的任何多重性都应该始终显示在图表上。
UML Diagram Elements not Included in SysML Block Definition Diagrams 不包括在SysML块定义图中的UML图元素
已经减少了支持的各种关联和关联注释符号,以简化系统工程用户的教学、学习和解释 SysML 图的负担。SysML 排除了 n -ary关联和qualified关联的符号和元模型支持。N-ary关联,如UML中由多个分支的大型开放菱形所示,可以用一个中间块来建模,在表达能力上没有损失。Qualified关联,如 SysML 所示,在关联路径结束时由带有内部属性名称的开放框显示,是 UML 的专门特征,它指定属性值如何表示相关目标的标识符。这种能力虽然对数据建模很有用,但对于完成任何支持系统工程的 SysML 要求似乎不是必需的。通过排除两端箭头的情况,简化了在关联上使用导航箭头,并要求这种关联总是可以在两端没有箭头的情况下显示。关联的单个端点的“X”以表明终端是不可导航的类似地被删除,因为在关联的末尾使用一个小的填充点来指示终端由相关分类器拥有。不支持在值类型定义(在 UML 中指定 UML DataType 的 PrimitiveType 专业化)上使用 «primitive» 关键字。值类型定义是否具有内部结构可以从值类型本身确定。
Stereotypes
** Package Blocks **
SysML块的抽象语法表达式
SysML属性的抽象语法扩展
SysML值类型的抽象语法扩展
SysML连接器端点的抽象语法扩展
SysML属性特定类型的抽象语法扩展
Binding Connector
Description
绑定连接器是指定连接器两端的属性具有相等值的连接器。
如果绑定连接器两端的属性是由ValueType键入的,则连接器指定属性的实例必须通过连接属性中的任何嵌套属性递归地保持相等的值;如果绑定连接器末端的属性是由Block键入的,则连接器指定属性的实例必须引用相同的块实例。
与SysML块拥有的任何连接器一样,绑定连接器的末端可以嵌套在从所属块访问的属性的多级路径中。NestedConnectorEnd构造型用于表示这样的嵌套端,就像其他SysML连接器的嵌套端一样。
Constraints
绑定连接器的两端必须具有相同的类型或类型,以便可以定义它们的值相等。
Block
Description
Block 是一个模块化单元,它描述了系统或元素的结构。它可能包括结构和行为特征,例如属性和操作,它们代表了系统可能表现出的系统和行为的状态。其中一些属性可能包含系统的一部分,也可以由块描述。块可能包括其属性之间连接器的结构,以指示其部分或其他属性如何相互关联。
SysML 块提供了描述系统架构的通用能力。它们提供了表示系统层次结构的能力,其中一个级别的系统由更基本级别的系统组成。它们不仅可以在任何级别上描述系统之间的连接关系,还可以描述系统的定量值或其他信息
SysML 不限制块可能描述的系统或系统元素的类型。任何可应用于系统或一组系统特征的可重用描述形式都可以用块来描述。例如,这种可重用的描述可以应用于系统设计的纯概念方面,例如在系统的各个部分或属性之间保持的关系。
SysML 块拥有的连接器可用于定义相同包含块的部分或其他属性之间的关系。连接器或其连接端的类型可以指定特定连接器的语义解释。
SysML排除了UML中关联的变体,在这些变体中,可导航的末端可以直接由关联拥有。在SysML中,导航相当于由块直接拥有的命名属性。SysML允许关联直接拥有的唯一形式的关联末端是用于携带引用属性的反向多重性的未命名末端。这个未命名的端提供了一个元模型元素来记录反向多样性,以涵盖单向引用的特定情况,该引用没有定义用于反向导航的命名属性。SysML通过块构造型在现有UML元模型上强制的约束来强制其导航和所有权的等价性。
在块定义图上,部件属性由关联上的黑菱形符号表示。与UML一样,一个块的实例一次最多只能包含在一个部分属性中。部分属性保存属于更大整体的实例。通常,部分-整体关系意味着应用于整体的某些操作也应用于每个部分。例如,如果一个整体代表一个物理对象,那么整体位置的变化也会改变每个部分的位置。整体的性质,如质量,也可以由它的各部分来暗示。应用于部件的操作和关系通常通过任意数量的级别传递地应用于这些部件的所有部件。特定的应用领域可以跨特定模型中定义的块建立自己的部分-整体关系解释,包括应用于部分和整体的操作的定义。对于软件对象,典型的解释是删除、复制和移动操作适用于复合对象的所有部分。
SysML还支持具有共享聚合的属性,如关联上的白色菱形符号所示。与UML一样,SysML没有为具有共享聚合的属性定义特定的语义或约束,但是特定的模型或工具可能以特定的方式解释它们。
除了SysML支持的块属性的默认值规范形式(在属性定义的其余部分后面有一个可选的“=”字符串)之外,SysML还支持使用内部块图上的initialValue分隔符的属性的附加值规范形式。(参见第8.3.1.2节,“内部框图”,“初始值分区”小节)可以在包含块上指定上下文特定值的整个树,以携带内部框图中所示的嵌套属性的值。
通过 UML ValueSpecification 的 InstanceValue 子类型在 SysML 元模型中表示特定于上下文的值。这些实例值引用的 UML 实例规范的选定插槽携带初始值隔间中显示的各个值。
如果属于块的属性具有属于其类型的任何属性的初始值的规范,则该属性的默认值必须是 UML InstanceValue 元素。此元素必须参考创建的 UML 实例特定元素,以在其使用上下文中保持各个属性的初始值。实例规范必须是未命名的,并且由具有相同包拥有指定初始值的最外层包含块。
参考实例规范的选定槽必须包含相应初始值分区中指定的单个属性值的值规范。如果一个属性的值由具有自己初始值分区的嵌套属性框显示,那么包含属性的实例规范槽必须保存一个新的 InstanceValue 元素。该值引用的实例规范的选定槽必须包含任何嵌套初始值的值规范,通过任意数量的嵌套级别递归。引用实例规范的实例值树必须存在,直到在叶级达到自包含值规范为止,每个实例值树都可能依次保存承载实例值的槽。
Attributes
• isEncapsulated: Boolean [0…1]
If true则将该块视为黑盒;这个黑盒子输入的部件只能通过它的运动或直接连接到它的外部边界。If false,或者值不存在,则可以通过深嵌套的连接器端与其内部结构的元素建立连接。
Constraints
[1]对于两端都以块为类型的关联,端数必须恰好为2。
[2]一个块拥有的连接器的端数必须恰好是两个。(在SysML中,绑定连接器不是由关联来类型化的,所以这个约束并不完全是由前面的约束隐含的。)
[3]在构建SysML的UML元模型中,由块(应用了“块”构造型的类)类型化的Property元类的任何实例都可能没有名称,也可能没有被定义为关联的可导航的拥有端。(虽然Property有一个由NamedElement超类定义的“name”属性,但“name”属性的值是可选的,必须缺失)
[4]在SysML构建的UML元模型中,由块输入的Property必须被定义为关联的结束。(该关联的反向端,无论是由另一个块拥有还是由关联本身拥有,必须始终存在,以便始终有一个元模型元素来记录引用的反向多重性。)
[5] SysML删除了UML 2上层结构规范中第9.3.6节“连接器”下的约束:“[3]作为角色附加到连接器所拥有的每个ConnectorEnd上的connectableelement必须是拥有连接器的Classifier的角色,或者它们必须是这些角色的端口。”
[6]如果SysML块或SysML ValueType拥有的属性由SysML ValueType输入,则属性的聚合属性必须是“复合的”。
[7]在SysML块的一个实例中,具有复合聚合的任何属性的值(聚合=复合)不能包含其自身属性中的块,这些属性也具有复合聚合,或者在任何具有复合聚合的属性链内。(在 SysML 块的一个实例中,具有复合聚合的属性实例必须形成一个非循环图。)
[8] 任何专门化Block的分类器也必须应用Block构造型。
ConnectorProperty 连接器属性
Description
连接器可以通过关联类来类型化,这些关联类是由Block(关联块,参见章节8.3.2.6,“ParticipantProperty”)构造的。这些连接器指定在拥有连接器的块的实例中创建的关联块的实例。连接器属性的值是由于连接器属性引用的连接器而创建的关联块的实例。可以选择在内部框图中显示连接器属性,从连接器线到表示连接器属性的矩形之间用虚线表示。属性名称前的关键字«connector»表明该属性是由ConnectorProperty构造的。
Attributes
•connector: connector
block的连接器,拥有应用原型的属性。
Constraints
[1] ConnectorProperty只能应用于Block原型化的类的属性。
[2]所应用的原型的连接器属性必须引用一个连接器,该连接器由拥有该原型所应用的属性的块拥有或继承。
[3]ConnectorProperty构造的属性聚合必须是复合的。
[4]连接器属性所引用的连接器的类型必须是由Block构造的关联类。
[5]ConnectorProperty构造的属性必须具有与连接器属性引用的连接器相同的名称和类型。
DistributedProperty
DistributedProperty是Property的构造型,用于对属性的值应用概率分布。特定的分布应该被定义为DistributedProperty构造型的子类,这些构造型子类的属性代表了分布的操作数。可以应用于值属性的概率分布的样本集在附录C第C.6节“分布扩展”中给出。
Constraints
DistributedProperty构造型可能只应用于由Block或ValueType构造型的分类器的属性。
NestedConnectorEnd 嵌套连接器端
Description
UML ConnectorEnd的NestedConnectorEnd构造型扩展了UML ConnectorEnd,以便连接的属性可以通过拥有连接器的块的可访问属性的多级路径来标识。
Attributes
• propertyPath: Property [1…*] (ordered)
NestedConnectorEnd构造型的propertyPath列表必须标识一个包含属性的路径,该属性在拥有连接器的块的上下文中标识被连接的属性。属性的顺序是从拥有连接器的块的属性开始,通过输入前一个属性的每个中间块的属性,直到到达一个在其类型中包含连接器端属性的属性。connectorend属性不包含在propertyPath列表中,而是由UMLConnectorEnd元类的角色属性持有。
Constraints
[1] NestedConnectorEnd的propertyPath属性的第一个位置的属性必须由拥有连接器的块拥有。[2]propertyPath属性的每个连续位置的属性,在第一个位置之后,必须包含在Block或ValueType中,用于在紧接的位置键入属性。
[3]在应用了NestedConnectorEnd构造型的ConnectorEnd元类中,ConnectorEnd元类的角色属性必须包含在propertyPath列表最后位置的属性类型中。
[4]在应用了NestedConnectorEnd构造型的ConnectorEnd元类中,ConnectorEnd元类的“parttwithport”属性的值必须等于propertyPath列表最后位置的属性。
ParticipantProperty 参与属性
Description
Block stereotype扩展了类,因此它可以应用于任何类的专业化,包括关联类。这些非正式地称为“关联块”。关联块可以拥有属性和连接器,就像任何其他块一样。关联块的每个实例都可以链接关联的结束分类器的实例。为了引用关联块实例的链接对象和值,模型器有必要指定关联块的哪些(参与)属性标识关联末尾链接的实例。
为了引用关联块实例的链接对象和值,模型器有必要指定关联块的哪些(参与)属性标识关联末尾链接的实例。关联块实例(链接)上的参与者属性的值是与该关联末尾对应的链接末尾的值或对象。
参与属性可以是关联块拥有的连接器的末端。关联块可以是许多其他连接器的类型,用于为所有连接器重用相同的内部结构。属性名称之前的关键字 «participant» 表示属性由 ParticipantProperty stereotype。如果需要,可以省略参与属性的类型。它们总是与相应的关联结束类型相同。
Attributes
• end : Property
关联块的成员端拥有应用stereotype的属性。
Constraints
[1] ParticipantProperty 可能只应用于 Block.
[2] ParticipantProperty stereotype的关联类的属性可能不适用于关联成员端的属性。
[3] ParticipantProperty 引用的属性聚合必须是没有的。
[4] 所应用stereotype的最终属性必须是指关联块的成员端,该关联块具有应用stereotype的属性。
[5] ParticipantProperty stereotype的属性必须与最终属性引用的属性具有相同的类型。
[6] 最终引用的属性必须的多重性为 1。
PropertySpecificType 特定属性类型
PropertySpecificType stereotype自动应用于分类器,该分类器使用属性特定类型键入属性。该分类器可以包含新或重新定义的特征的定义,这些特征扩展了属性特定类型引用的原始分类器。
具有 PropertySpecificType stereotype的分类器由具有属性特定类型的属性的块拥有。具有这种stereotype的分类器必须专门处理大多数单个分类器,该分类器被称为特定属性类型的起始分类器。如果没有起始分类器(如果没有现有名称指定为特定属性类型的起始类型,就会发生这种情况),那么应用stereotype的分类器与任何其他分类器都没有专业化关系。
Constraints
[1]应用PropertySpecificType构造型的分类器必须被引用为一个且只有一个属性的类型。
[2]应用PropertySpecificType的分类器的名称必须缺失。(NamedElement元类的"name"属性必须为空。)
QuantityKind 数量属性
QuantityKind 是一种数量,可以通过定义的单元来表示。例如,长度的数量类型可以用米、公里或脚为单位来衡量。QuantityKind 定义为实例特定类型的stereotype.,但它仅使用这个元类来定义 ValueType 定义的支持元素。(InstanceSpecification 的重用来定义另一个元类类似于 UML 中的枚举Literal 元类。) QuantityKind 实例的唯一有效使用是由 ValueType 或 Unit stereotype.的“quantityKind”属性引用的。
Description
Attributes
• symbol: String [0…1]
数量类型的简短符号名称。
• description: String [0…1]
数量类型的文本描述。
• definitionURI: String [0…1]
引用数量类型外部定义的 URI。
Unit
一个单位是可以陈述具有相同数量类型的其他数量的大小的数量。一个单元通常依赖于精确和可重现的方法来测量单元。例如,诸如仪表之类的长度单位可以指定为特定波长光的倍数。一个单元还可以指定不太稳定或精确的方法来表达一些值,例如以某种货币表达的成本,或由数值尺度衡量的严重性评级。
单元被定义为实例特定类型的stereotype,但它仅使用这个元类来定义 ValueType 定义的支持元素。(InstanceSpecification 的重用来定义另一个元类类似于 UML 中的枚举Literal 元类。)
单元实例的唯一有效用途是由 ValueType stereotype.的“单元”属性引用的
Attributes
• symbol: String [0…1]
单元的简短符号名称。
• description: String [0…1]
单元的文本描述。
• definitionURI: String [0…1]
引用单元外部定义的 URI。
• quantityKind: QuantityKind [0…1]
一种可以通过定义的单元来表示的数量,由 QuantityKindon stereotype 的一个实例识别。
ValueType 值属性
ValueType 定义了可用于表达系统信息的值类型,但不能被识别为任何参考的目标。由于除了值本身之外无法识别值,因此模型中的每个这样的值是相互独立的,除非施加其他形式的约束。
Description
ValueType 定义了可用于表达系统信息的值类型,但不能被识别为任何参考的目标。由于除了值本身之外无法识别值,因此模型中的每个这样的值是相互独立的,除非施加其他形式的约束。
值类型可用于类型 SysML 中的属性、操作参数或可能其他元素。SysML 将 ValueType 定义为 UML DataType 的stereotype,为可能永远不会给出具体数据表示的系统值建立更中性的术语。例如,SysML“Real”ValueType 表示实数的数学概念,但不对表达这个概念的固定或浮点表示的精度或尺度施加任何限制。更具体的值类型可以定义数字计算机可以处理的具体数据表示,例如传统的 Float、Integer 或 String 类型。
SysML ValueType 增加了携带与值相关的度量和数量类型的单位的能力。数量类型是一种可以根据定义的单元表示的数量,但不限制单元的选择以陈述值。一个单位是一个特定的值,其中可以表达相同数量的类型。
SysML ValueType 可以定义它自己的属性和/或操作,就像 UML DataType 一样。
Attributes
• quantityKind: QuantityKind [0…1]
一种可以通过定义的单元来表示的数量,由 QuantityKindonstereotype 的一个实例识别。值类型可以选择指定没有任何单元的量类型。这样的值没有具体的表示,但可用于以独立于任何特定单元的抽象形式表达值。
• unit: Unit [0…1]
可以根据可以陈述具有相同数量类型的其他数量的大小,由单元stereotype的实例标识。
Constraints
任何专门用于 ValueType 的分类器也必须应用 ValueType stereotype
Model Libraries
Package Blocks
块模型库
Boolean
布尔值类型由预定义的值 true 和 false 组成。
Complex
Description
复值类型表示复数的数学概念。复数由一个实数定义的实部和一个由实数定义的虚部乘以-1的平方根组成。复数用于表示各种形式的数学方程的解。
Attributes
• realPart: Real
用于表达复数实部的实数。
• imaginaryPart: Real
用于表达复数虚部的实数。
Integer
整数值类型表示整数数的数学概念。整数值类型可用于类型具有负整数或正整数量的值,而无需提交特定表示,例如具有固定精度或尺度的二进制或十进制数字。
Number
数字是一种抽象值类型,其中表示数学数字概念的其他值类型是专门的。
Real
实值类型表示实数的数学概念。实值类型可用于类型具有连续数量的值,而无需提交特定的表示,例如对精度和尺度限制的浮点数据类型。
String
字符串值类型由一些合适的字符集中的字符序列组成。字符集可以包括非罗马字母和字符。
Usage Examples
Wheel Hub Assembly
块定义图显示了包含 Wheel 元素的块。块属性LugBoltJoint。torque有一个专门化的DistributedProperty,用于描述其值的均匀分布。
车轮封装框图
车轮总成内部框图
内部方框图(ibd)显示了如何使用Wheel包中定义的块。这个ibd是一个局部视图,它专注于感兴趣的特定部分,而忽略了图中的其他部分,比如“v”InflationValve和“weight”BalanceWeight,它们也是车轮的一部分。
SI Value Types SI值类型
在SI值类型包中定义了几个使用国际单位制(SI)标准度量单位的值类型。可以将此包中的值类型导入到其他上下文中,以键入SysML块的属性。因为SysML Unit已经可以标识该单元度量的数量类型,或者QuantityKind,所以值类型只需要标识该单元就可以标识数量类型。本例中的值类型指的是假定在导入包中定义的单位。
国际单位制(SI)的计量单位定义价值类型
Design Configuration for SUV EPA Fuel Economy Test SUV EPA燃油经济性试验设计配置
SysML内部框图可以用来指定具有唯一标识和属性值的块。下图显示了一个示例,用于指定具有车辆识别号码(VIN)和独特属性(如重量、颜色和马力)的唯一车辆。此概念不同于实例规范的UML概念,因为它不暗示或假设任何运行时语义,并且还可以应用于指定设计配置。
显示特定属性(序列号)的内部框图的特殊情况
Water Delivery 供水
它连接着一排水龙头(spigots)和一个水龙头(faucet)。图8.12展示了"水送达"的内部结构,定义了连接排水龙头和水龙头入口的连接器。参与者属性(participant properties)用于标识被连接的排水龙头和水龙头。在构造型(stereotype)上的端点(end property)指代了图8.11中相应的关联端。为了清晰起见,参与者属性的类型被显示出来,但实际上它们与关联端类型总是相同的,可以省略不写。它们用虚线矩形表示,因为它们是引用属性。内部结构连接了参与者的热和冷属性。
输水关联块内部结构
下图展示了一个名为"House"的块的两个视图,其中包含一种名为"Water Delivery"的连接器。在顶部视图中,该连接器会根据"水送达"的内部结构"分解"成下方视图中的子连接器。这些子连接器将":WaterSupply"的嵌套属性与":WaterClient"的嵌套属性相关联。
下图的上半部分展示了块"WaterClient"分别特化为"Bath"、“Sink"和"Shower”。这些特化后的块在下半部分的"House 2"的内部结构中被用作部分类型。"Water Delivery"的复合连接器被重用了三次,用于在水源的水龙头与浴缸、水槽和淋浴的水龙头入口之间建立连接。
图8.15对图8.11进行了修改,添加了一个名为"Plumbing"的关联块,用于表示"Spigot"和"Faucet Inlet"之间的关联。图8.16展示了"Plumbing"关联块的内部结构,其中包括一根管道和两个配件(为了简洁起见,额外的部件和连接器定义被省略了)。
图8.17对图8.12进行了修改,使用"Plumbing"作为"Water Delivery"关联块内的连接器类型。下方的连接器明确显示了它的连接器属性,使得它所包含的管道可以连接到一个安装支架(为了简洁起见,额外的部件和连接器定义被省略了)。