模块是分类器,用于描述一组元素的特征,这些元素体现了该模块在特定上下文中的使用方式。当模块具有定义的属性(值属性)时,这些属性在模块的实例中会被赋予特定值。实际上,每个模块实例都有其唯一标识,并通常会分配不同的值来定义该模块的状态。Enterprise Architect允许通过上下文菜单中的“设置运行状态”选项来指定这些值。
内部模块图通常显示了某个模块的组成部分在使用场景中的连接方式。Enterprise Architect 允许用户将模块从浏览器窗口拖拽到图中,并作为部件属性(Part Properties)放置。这些部件本质上是“部件”,代表了模块分类器的实例。工程师可以在图上下文中为这些部件命名。例如,此图示一个已建模的制动总成,在图框架中以这种格式表示:
ibd [block] Brake Assembly [Master and Wheel Cylinder Parts]
工程师为每个轮缸部件(前左、前右、后左、后右)命名,因为它们需要根据在车辆中的位置进行标识;但决定不为主缸命名,因为无需进一步说明。
11.1 内部模块图
内部模块图提供了一种可视化模块内部结构的方法,包括其属性和部件,以及这些部件之间的关系。图不必显示该模块的所有部件,工程师通常会绘制聚焦系统或子系统某一方面的图。
内部模块图的框架表示所属的模块,因此会以此命名,图中出现的元素则是构成该所属模块的各个部件模块的实例。此内部模块图展示了在特定情境下的一辆汽车实例;它采用多幅图像替代了传统的SysML语言符号,以增强视觉吸引力,使非工程领域的观众更容易理解和接受该图。
创建内部模块图
可以从用户界面中的多个位置创建内部块图,例如:
我们将使用设计功能区来创建内部块图。首先,在浏览器窗口中选择要放置该图的位置。与大多数其他 SysML 图不同,内部块图通常插入到其所属模块下方。在浏览器窗口中选择位置后,选择功能区项:
设计>图>添加图
选择此选项将打开模型构建器对话框,并显示“图构建器”标签页,您可以在其中为图命名;图名称默认为包含该图的模块名称。在选择SysML视图并指定SysML版本后,系统会显示一系列图类型,您可以从中选择“内部模块图”。单击“创建图”按钮,即可在浏览器窗口中选定的位置创建一个新的内部模块图。图画布将被打开,允许您开始添加描述模块内部结构的元素和连接器。Enterprise Architect 还会显示工具箱中的“内部模块”页面,其中包含由SysML规范定义的、适用于此类图构建的元素和关系。根据需要,还可以打开其他任意数量的工具箱页面,此外,“通用元素”和“通用关系”页面始终可用。
11.2 建模与连接部件
当一个模块由多个其他模块组成时,通常在系统实例化时,所包含的模块会执行大部分属于父模块所需的工作。内部模块图提供了一种语言机制,用于可视化各部分之间的交互关系,展示模块在上下文中的结构,并呈现所属模块所定义的整体行为。在之前的主题中,我们曾查看过一辆卡车底盘的模块定义图,该图基于模块描述了构成底盘的各种模块。
该图在关联的部分末端包括多重性,显示有多少特定部分可以包含在所属模块的单个实例中。这些数字表示以上限和下限表示的基数,可以在连接器的属性窗口中定义。此屏幕截图显示了属性窗口的一部分,用于定义关联端的多重性和其他属性,所有这些都为关联添加了丰富的语义。
该底盘内部模块图展示了底盘组成部件的实际构成。车轴的数量根据卡车的具体情况确定。
Enterprise Architect 允许工程师创建包含嵌套到任何级别的部件图,有助于展示模块的结构以及这些部件在实际应用中的连接方式。
该图示展示了两层嵌套的部件,但也可以创建任意层级的结构。此类表达方式可生成相当大的图,而Enterprise Architect支持A0尺寸的纸张,便于创建和打印大型图。
图中详细展示了后主轴和次轴组件,每个车轴由左右轮组件组成,这两个轮组合本身可作为嵌套结构表示,包含制动组件,制动组件又可显示轮缸组件。
如果部件已添加到图中,但建模者出于某种原因需要更改类型模块的模块分类器,这可以从“部件”上下文菜单中完成,该菜单为属性类型提供选项改变了。这在创建了复杂图的情况下很方便,并且更容易将视觉元素留在原地并更新它所基于的模块。