仅供个人学习记录
概述
包是容器的一个例子。包中的模型元素称为可封装元素,这些元素可以是包、用例和活动。由于包本身也是可封装元素,因此可以支持包层级。
每个有名称的模型元素也必须是命名空间的一份子,命名空间使得每个元素均能够通过名称被唯一识别。
有效的模型组织包含了模型元素的重用,并能在模型元素间方便访问与导航。
包图
标题
pkg [model element kind] package name [diagram name]
pkg:图类型
model element kind:模型元素类型可以是模型、包或模型库
应用包图定义包
包package是其他模型元素的容器,有一个名称和可选URI,将包作为可访问的web资源唯一识别。
包内的模型元素被称为可封装元素packageable element
SysML 包含了模型库model library的概念,包可以设计为包含可重用元素
包层级的组织
模型层级应当给予一系列组织原则。
- 系统层级
- 生命周期过程,每个模型子包均代表过程某个阶段
- 团队划分,如需求团队、集成产品团队
- 包含的模型元素类型,如模型库
- 根据已定义的模型划分准则,形成的具有其他逻辑或内聚分组的模型元素
包容containment:带交叉十字圈㊉的直线表示,交叉十字圈连接包容端(父端)
包图可封装元素的表示
包图可用于展示可封装元素,可封装元素通常用节点标识或相应图标。
比如包Component里面包含一组成品部件,全部用《block》表示
作为命名空间的包
包是可封装元素的容器,也是其中所有元素的命名空间namespace
大多数SysML模型元素均有名称,但少数没有,如注释。
命名空间定义了一组唯一性准则,以区分命名空间内不同的已命名元素。
包中给定元素类型的每个元素都必须有唯一名称
模型元素可以出现在某个图中,但该图的框架不一定指定其父命名空间,容易造成错误。
解决办法是在标识中为模型元素给出一个限定名称qualified name,表示相对路径或者完整路径
限定名称均是以模型元素名称结尾,前面为路径,并以双冒号::划界,如模型元素X包含于包B内,而包B包含于包A,则表示为A::B::X
例子:包Standard Definition
- Basic Definitions::Waypoint
- 标识表示一个值类型,类型名称Waypoint,包含于名称为Basic Definitions的包里,而此包又包含于Standard Definition
- ACME Surveillance Systems::Components::Stepper Motor
-
- 标识表示包Standard Definition的外部模型元素,有完整的限定名称,即由ACME Surveillance Systems而来
-
为减少图的混乱,许多SysML工具都默认隐藏了限定名称
包中模型元素的引进
引进关系用于将属于某个源命名空间的单个或多个元素集合放至目标空间中。被引进元素的名称称为目标命名空间的一部分,被引进元素的限定名称基于元素在目标命名空间中的位置。因此,在已指定目标命名空间的图中显示时,不需要限定名称了
包引进package import:源包所有模型元素均被引进至目标命名空间
元素引进element import:应用于单个元素,无需引入包内全部元素且引进可能带来混淆的情况下可以采用
引进而导致目标命名空间的两个或多个模型元素拥有相同的名称,会引起名称冲突。元素引进有一个别名区域,可用于提供该模型元素的另一个名称。
名称冲突规则:
- 如果被引进元素名称与目标空间的子元素冲突,则不会引进该元素,除非应用别名来提供唯一名称
- 如果两个或多个引入元素名称冲突,则任何一个都不能引入目标命名空间
命名空间的元素通过直接包容关系或引进关系确定,都为成员member。成员具有可视性visibility,默认为公开。成员的可视性确定了其是否能被引进至另一命名空间。
引进关系用虚线箭头表示,并标注关键词《import》。箭头端指向被引入的源,箭头尾部指向引入的目标命名空间。当元素作为目标空间的私有成员引进时,用关键词《access》替代《import》
package私有引进的时候操作的时候选import,Visibility选private就变成《access》了
element引进,有重名可以正常引进,没有显示错误,可以通过属性Alias进行新命名
目前还不知道在哪设置block可视性
Visibility representation
In SysML, properties and operations of the Block are public.
Visibility representation literals, like +, #, ~, -, are not displayed in the Containment tree or in the element symbol on a diagram.
书上通过创建P3的pkg然后可以看到如下:
NewC、C、B正常的block
P2:F、Child of P2::E、Model::P1::A
但是我在实际操作中,不知道如何呈现,都是正常显示-。-,可能是SysML语言的更新或者是CSM的更新原因。
可封装元素间的依赖关系表示
依赖dependency的通用类型:文章来源:https://www.toymoban.com/news/detail-744449.html
- 应用use:表示客户端将使用供应端作为其定义的一部分。
- 精化refine:表示客户端相较于供应端规范增加了细节,如在部件定义中包括了更详细的物理和性能特性。通常用于需求分析
- 实现realization:客户端实现了供应端中所描述的规则,如一个实施包实现了设计包时。
- 跟踪trace:存在联系,但并未施加更为明确的精确关系语义约束。通常用于需求分析
- 分配allocate:某个模型元素被分配至另一个元素。十四章描述
依赖关系用虚线带开放的箭头表示,由客户端指向供应端
我反正是一个dependency的类型都打不出来,显示stereotype不存在,不知道是不是已经不注重区分了文章来源地址https://www.toymoban.com/news/detail-744449.html
总结
- 包概念、层级构建
- 包是成员元素的命名空间,唯一识别单个成员
- 限定名称,表示路径
- 引进的机制
- 包依赖关系
到了这里,关于第六章 包图组织模型|系统建模语言SysML实用指南学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!