类图改了几轮以后,继承线接错、嵌套关系对不上这类问题,单看图有时很难发现。尤其是几个包共用一批元素时,一处修改还可能影响其他图。Enterprise Architect的模型验证可以按已启用的规则检查元素、图或包,并把发现的问题写到系统输出窗口。界面操作以17.2版为例,菜单采用中文名称表述。
一、Enterprise Architect怎么做模型验证
开始前要确定两件事,一是这次查哪些对象,二是按哪些规则查。刚改完一条关系时,可以从单个元素或一张图查起,到了包级评审,再把子包一起纳入范围。
1、选定本次要检查的对象
①、只查一个类时,在【浏览器】中选中该【元素】,也可以在打开的图中单击它。元素级验证会检查该元素、子元素、属性、操作及相关连接器。
②、要检查整张类图或活动图时,在【浏览器】中选中对应的【图】。图级验证会检查图本身,以及图中的元素和连接器。
③、要核对一个模块的模型时,在【浏览器】中选中该模块对应的【包】。包级验证会纳入下属子包,以及其中的图、元素和连接器。若本轮只审查一个子模块,直接选中对应的【子包】。
2、按检查目的配置规则
平时改类图,先关注元素和关系是否合法。若这次还要查元素内部是否缺少必需的组成部分,可以把元素组成规则一并打开。
①、依次点击【设计】→【包】→【管理】→【验证】→【配置验证规则】,打开【模型验证配置】。
②、检查元素类型或连接是否合法时,勾选对应的【格式良好性】规则。检查元素是否缺少必需的子元素时,勾选【元素组成】。检查属性设置是否有误或冲突时,选择对应的【属性有效性】规则。
③、如果模型定义了对象约束语言约束,在相应的元素、关系或特征类别中勾选【OCL一致性】,然后点击【确定】。
3、运行验证并打开结果窗口
①、确认选中的是本轮要检查的【元素】、【图】或【包】,依次点击【设计】→【包】→【管理】→【验证】→【验证当前包】,也可以按【Ctrl+Alt+V】。
②、等待进度窗口结束,在【系统输出】中查看【模型验证】选项卡。窗口未弹出时,依次点击【开始】→【所有窗口】→【设计】→【探索】→【系统】。
入口虽然叫“验证当前包”,实际检查范围取决于运行时选中的对象。只想检查某个类时,点完规则配置窗口后,可以回到浏览器确认一下选中项。
二、Enterprise Architect模型验证结果怎么看
读输出时,可以把消息拆成三部分看,分别是违规编号、涉及的对象和具体说明。编号适合查规则,同名对象较多时,则要靠双击定位和对象所在的包来确认。
1、用违规编号判断检查方向
①、在【系统输出】的【模型验证】选项卡中找到违规行,记下以【MVR】开头的编号,同时查看行内提到的元素、关系及提示内容。
②、如果看到【MVR050002】,核对消息中列出的起点、终点和连接器类型。这条规则报告的是该连接关系不能用于这对元素。
③、如果看到【MVR050005】,检查【泛化】连接器的两端是否指向同一元素。如果看到【MVR050006】,对照图上的【嵌套】连接器和【浏览器】中的实际父子层级。
同样以MVR05开头的消息,都与关系是否合法有关,但处理方式可能相差很大。自泛化要核对继承线的端点,嵌套不一致则要对照模型树。只记编号前缀,容易把这两类问题混在一起。
2、双击消息,核对具体出错对象
包级验证可能一次列出好几条问题。同一个类出现在多张图里时,图上的位置只能帮忙找到它,修正前还要核对模型里保存的关系。
①、在【系统输出】中双击一条错误记录。如果对应元素能在图中定位,查看图中被选中或高亮的【元素】。
②、消息涉及关系时,核对相关【连接器】的类型和两个端点。遇到同名元素时,在【浏览器】中查看各自所属的包,再确定实际出错的对象。
③、若消息指向顺序图中的调用,打开对应【消息】的属性,对照接收端【生命线】及其操作,检查消息选择的操作是否属于该生命线。
三、Enterprise Architect模型验证问题怎么修正和复查
处理一条记录时,可以先确认设计原意,再决定是改关系、补充模型内容,还是检查验证范围。特别是整包验证,同一条规则可能在多处触发,逐条定位比按编号成批修改更稳妥。
1、修正一条自泛化错误
①、在【模型验证】中定位【MVR050005】对应的类,选中报错的【泛化】连接器,核对两端是否确实落在同一个类上。
②、对照设计说明确认该类是否应继承其他类。如果存在预期父类,把【泛化】关系的父类端改到正确对象。如果这条关系原本就是误连,删除该【泛化】连接器。
③、选中修改后的【元素】,按【Ctrl+Alt+V】复查。局部问题消失后,再选中原先执行验证的【包】复跑,核对这条记录是否消失,以及同批是否出现新的问题。
2、用相同范围和规则核对修正结果
如果本轮跑完没有列出违规,可以回头核对两项设置。比如,上次跑的是整个模块,这次只选中了类图,两次结果就无法直接对照。
①、在【浏览器】中重新选中评审记录里约定的【包】或【图】,确认位置和名称与上一次一致。
②、打开【配置验证规则】,核对启用的规则类别。若项目使用带有验证规则的【MDG技术】或插件,也检查相应规则是否已纳入本次验证。
③、重新运行验证,在【系统输出】的【模型验证】选项卡中对照原有记录。需要留档时,右键单击输出记录,使用【保存到文件】,并一并记录本轮的验证对象和启用规则。
总结
模型验证适合在评审前找出容易漏看的建模问题,尤其是关系端点接错、图与模型树不一致,以及元素缺少必需组成部分。评审时可以把检查范围和规则设置随结果一起记录,方便同事在同一条件下复核。业务含义仍要结合设计说明判断,欢迎交流你在类图或顺序图中遇到的验证提示。
