SysML包图提供了一种直观的方法,可以将复杂的模型划分到一个个清晰可辨的“容器”中。这不仅能帮你把模型里的各种结构分门别类地组织起来,还能让你定义这些分组之间的高层级关系。这些被分组的结构,既可以是命名空间及其子包,也可以是其他定义没那么严格的元素组合。至于到底按什么标准把结构分配进包里,其实很灵活,比如可以基于访问权限控制、配置管理、方便查找导航,或者是依赖程度等来划分。
包图中最核心的元素就是“包”本身。它可以用来代表一个完整的模型,也可以是一个包含常用对象(比如各种定义和数值)的模型库,或者仅仅作为一个容器来使用。此外,这张图还能展示两种带有特定构造型的类元素:其中一种是 SysML 视图,它用来定义系统的某个特定方面,而这个方面是基于 SysML 视点所规定的视角来确定的。在画包图时,你可以选择完全不画任何关系线,只单纯展示对象是如何被分组的;也可以添加多种关系,来表明这些包之间是如何相互关联的。
图中出现的那些包也可以在浏览器窗口中查看,只需要通过展开或折叠树,就能浏览它们的层级结构了。
可以利用 SysML 的图功能,以不同的方式来展示模型的结构。最简单直接的方法,就是直接把包当作容器,将它内部的所有内容完整地展示出来。比如:
这种显示效果是通过设置图和包元素来显示“分区”实现的,具体来说,就是开启了“包内容”这个分区。虽然这样能把包里的内容一股脑儿全展示出来,但缺点也很明显:它看不出内部的结构层次,也体现不出哪些元素更重要。
如果只想展示与当前图目的相关的特定结构,而不想把所有内容都一股脑儿地显示出来,可以先把那个自动分区关掉,然后手动把需要的元素拖拽到图上的包里。
这种格式虽然能展示出对特定目的而言很重要的包内容,但它依然看不出内部的结构或关系。如果想清晰地展现结构,可以采用第三种格式:把内容元素独立分开放置,然后用带有标签的连接线把它们关联起来。
根据要在图中表示的内容,可以在同一张图里给不同的元素混用这几种格式。
元素
包图中创建的主要元素有:
包图中使用的主要关系有: