如何基于Papyrus进行模型校验的扩展

如何基于Papyrus进行模型校验的扩展

概述

Eclipse Papyrus是一个工业级的开源基于模型的工程工具。Eclipse Papyrus已成功用于工业项目,并且已经是几种工业建模工具的基础平台。支持对于SysML的画图和开发。对于Papyrus本身项目来说,已经有了一部分的模型校验功能,但是Papyrus现在已经实现的模型校验仅仅只包含各个视图元素自身的正确性校验,而SysML拥有多个视图,包含(需求图、用例涂、活动图、状态图、时序图、模块定义图、内部模块图、包图、参数图),而在MBSE系统开发的过程中,这些视图是对同一个系统进行各个视角的描述,因此他们之间往往是密切相关的,针对这方面Papyrus并没有做出相关校验,即使在同一个系统开发中,两个对系统整体描述的视图相互对应不上也不会给出任何提示。因此,本文在基于Papyrus的基础上,对模型校验进行了各个视图相互关联部分的扩展,并且完善了自身校验,最后成功应用于eclipse软件当中。

方法

扩展点技术

Plugin的扩展点技术是一种在软件中提供可扩展性和灵活性的方法,允许开发者通过插件(或称为扩展)来增强或修改软件的功能。这些插件可以被动态地加载和卸载,从而使软件具有更高的可定制性和适应性。

主要概念:

扩展点(Extension Point):
扩展点是软件中定义的一种接口或标记点,用于指示插件可以扩展的位置或功能。扩展点定义了插件可以添加自定义功能的地方。

插件(Plugin):
插件是一种独立的软件组件,它们可以被动态地加载到主程序中,并通过扩展点来增强或修改软件的功能。每个插件通常包含一个或多个扩展,用于扩展软件的特定功能。

扩展(Extension):
扩展是插件中的一段代码或配置,它扩展了软件中定义的扩展点。扩展点定义了扩展的位置和结构,插件可以在这些位置添加自定义的功能或行为。

工作原理:

扩展点定义:
软件开发者定义并实现扩展点,确定插件可以扩展的位置和接口。这些扩展点通常通过接口、抽象类或配置文件进行定义。

插件注册:
插件开发者编写插件,并将插件注册到软件中。注册过程通常包括在配置文件中声明插件信息,以及指定插件要扩展的扩展点。

扩展加载:
当软件启动时,它会动态地加载已注册的插件,并扫描插件中定义的扩展点。然后,它会在每个扩展点上查找并加载相应的扩展。

扩展执行:
软件在运行时执行插件中的扩展。这些扩展可以添加新的功能、修改现有功能,或者在软件的不同部分之间建立连接。

优势和应用:

灵活性和可定制性:插件的扩展点技术使软件具有更高的灵活性和可定制性,可以根据用户或客户的需求动态地扩展和定制软件的功能。

模块化开发:插件机制促进了软件的模块化开发,不同的功能可以被分解为独立的插件进行开发和管理,降低了软件的复杂性。

生态系统发展:插件机制有助于建立丰富的插件生态系统,吸引更多的开发者和合作伙伴参与软件的开发和扩展,推动软件的生态系统发展。

具体方法

papyrus的模型校验利用插件开发环境中的扩展点技术对Eclipse Modeling Framework(EMF)的模型校验进行扩展,在EMF当中,编写验证规则的方法时,需要考虑很多细节,比如校验结果、校验规则类型等。考虑到这一点,EMF的验证框架包括一个名为diagnostic的助手类,它是推荐的验证入口点,拥有severity、source、code、message、data等属性,分别代表着验证结果、元素地址、验证结果、规则描述信息、校验的元素对象。

因此在diagnostic助手类和相关的实现技术的基础上,本文实现了如何对模型校验规则进行扩展,具体方法流程如图1所示,相关步骤如下:
模型校验方法活动图
Step 1:在papyrus的validation新增一个规则类,该类仅仅提供一个validate入口,负责对所要进行扩展的模型校验相对应的具体校验逻辑,返回结果只有成功和失败两个结果。

Step 2:在plugin.properties文件下新增一条message代表对该规则的具体信息。

Step 3:添加一个selector类,该类负责对扩展的模型校验规则所校验的模型元素进行筛选,也可以用已有的selector类或者选择无论什么模型元素都返回正确的selector将筛选逻辑写在步骤1中的规则类中。

Step 4:在plugin.xml配置文件中配置该规则的具体信息,包括例如是对EMF validation内容的扩展点、是否默认校验开启,以及该规则如果校验出有问题所显示的相关信息,包括severity、source、code、message、data等信息,与diagnostic属性相互对应。最后将每一个selector类与要进行的rule类们绑定在一起。

Step 5:重新构建该项目并导入eclipse软件当中。

通过上述流程,我们就可以成功对papyrus的模型校验规则进行了扩展。
在这里插入图片描述
在这里插入图片描述

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值