一种基于SysML模型的代码自动生成方法技术

技术编号:39161666 阅读:12 留言:0更新日期:2023-10-23 15:02
一种基于SysML模型的代码自动生成方法,属于计算机技术领域,所述方法包括如下步骤:一、根据SysML规范,对建立的SysML模型进行多层次模型校验,确保SysML模型是合法有效的;二、依据所建立的模型内容文件,结合模型内的多种视图,对SysML模型进行转换与解析;三、进行组件定义与管理;四、规格化代码映射模板构建;五、进行层次化代码自动生成,生成最终的目标语言代码。本发明专利技术可将MBSE和MDA方法进行统一协作,为SysML模型的实现提供了具体的手段,有效降低模型设计开发难度,提升了在MBSE方法中模SysML模型的设计开发能力,保障了系统模型开发实现的效率和质量。型开发实现的效率和质量。型开发实现的效率和质量。

【技术实现步骤摘要】
一种基于SysML模型的代码自动生成方法


[0001]本专利技术属于计算机
,涉及一种代码的自动生成方法,具体涉及一种基于SysML模型的目标语言代码自动生成方法。

技术介绍

[0002]基于模型的系统工程(MBSE)是一种应用建模方法的正式方式,用于支持系统需求、设计、分析、检验和验证活动,这些活动从概念设计阶段开始,贯穿整个开发过程及后续的生命周期阶段。在MBSE方法中,系统模型是设计的中心,设计中做出的每个决定都被捕获为一个模型元素(或者元素之间的关系),其位于系统模型的单一位置。能够构建和阅读形式良好的模型,是MBSE方法的核心,在构建模型的过程中,每种建模语言都是用于沟通的标准化媒介,其定义的规则会赋予模型的元素和关系清晰的意义。
[0003]系统建模语言(SysML)是MBSE方法中常用到的一种用来创建系统结构、行为、需求和约束的模型的建模语言,可以进行许多系统及超系统的规格、分析、设计及验证与确认的工作。SysML支持的系统可能包括硬件设备、软件输入、人员、规程、设施以及其它人造和自然系统元素。SysML能够帮助实现系统的规范定义和架构设计,从内容上看,SysML支持从结构模型、行为模型、需求模型和参数模型四个方面来构建系统模型,其中结构模型强调系统的层次以及对象之间的相互连接关系;行为模型强调系统中对象的行为,包括它们的活动、交互以及状态;需求模型强调需求之间的追溯关系以及设计对需求的满足关系;参数模型强调系统或部件的属性之间的约束关系。
[0004]模型驱动架构(MDA),是一种软件设计方法,用于将业务逻辑从底层平台分离出来,以提高软件的可移植性、互操作性和重用性。MDA基于模型的转换技术,将不同层次的抽象模型(如计算无关模型、平台无关模型和平台相关模型)相互转换,从而实现软件的自动化开发。基于MDA的开发过程,业务人员首先通过业务领域的分析和建模构造计算无关模型(CIM)以描述需求;之后结合相关的标准规范将计算无关模型(CIM)转为平台无关模型(PIM);在平台无关模型(PIM)的基础上,针对不同的实现环境,可以构造出不同的平台相关模型(PSM),最后将平台相关模型(PSM)转为目标代码,完成开发过程。
[0005]基于模型的系统工程(MBSE)与模型驱动架构(MDA)的关系紧密。MBSE和MDA都使用了建模技术,但MBSE更注重系统层面的建模,而MDA更注重软件层面的建模。MBSE和MDA可以相互协作,例如在MBSE中使用MDA作为软件子系统的开发方法,或者在MDA中使用MBSE作为软件需求分析和架构设计的方法。特别的,实现MBSE方法中SysML语言模型到MDA中的目标代码生成过程,是将MBSE和MDA方法统一协作的重要实现方式,能够利用模型的形式化、可视化、可验证和重用性等特性,提升系统模型的设计、开发和实现的效率和质量,实现复杂系统的动态建模和控制。
[0006]因此在进行基于MBSE方法的模型开发实现过程中,需要一种可靠高效的基于SysML模型的目标代码自动生成方法,减少代码开发人员的工作量,避免开发过程引入不必要的歧义,保证系统模型实现的质量和效率。

技术实现思路

[0007]为了解决上述问题,本专利技术提供了一种基于SysML模型的代码自动生成方法。该方法基于建模人员所构建的SysML模型自动生成能够准确表达模型信息的高效率目标代码,生成的目标代码考虑到模型元素之间的层次嵌套关系,利用组件管理概念,生成的目标代码结构设计合理、层次清晰,支持代码的复用和具有高可扩展性;同时在生成目标语言代码的过程中,代码生成所依据的映射模板严格遵守行业内相关的代码规范标准,保证了代码的安全性、可用性和高可靠性。本专利技术能够在任何支持SysML模型建模的平台上使用,生成的目标语言代码安全、高效、准确,为SysML模型的实现提供了具体的手段,可以有效降低模型设计开发难度,提升了在MBSE方法中模型的设计开发能力,保障了系统模型开发实现的效率和质量。
[0008]本专利技术的目的是通过以下技术方案实现的:
[0009]一种基于SysML模型的代码自动生成方法,包括如下步骤:
[0010]步骤一、根据SysML规范,对建立的SysML模型进行多层次模型校验,确保SysML模型是合法有效的;
[0011]步骤二、依据所建立的模型内容文件,结合模型内的多种视图,对SysML模型进行转换与解析;
[0012]步骤三、进行组件定义与管理;
[0013]步骤四、进行规格化代码映射模板构建;
[0014]步骤五、进行层次化代码自动生成,生成最终的目标语言代码。
[0015]在进一步的实施方案中,所述步骤一具体为:结合SysML模型中的包图、模块定义图、内部模块图、参数图、时序图、活动图和状态机图这七种视图进行模型的校验;校验的规则包括模型自校验一致性和阶段一致性。
[0016]在进一步的实施方案中,所述步骤二中模型内容文件包括SysML模型建模元素内容文件和SysML模型视图内容文件:SysML模型建模元素内容文件只包含与SysML模型有关的基础数据,如各建模元素的定义信息、建模元素之间的连接关系和建模元素之间的层级关系;SysML模型视图内容文件包含与模型视图、模型元素的图形化的表示有关信息。步骤二具体为:
[0017]步骤二一、进行SysML模型结构图层次分析,获取模型建模元素之间的层次结构关系;
[0018]步骤二二、进行SysML模型活动图同步处理,解析活动图所包含的活动图节点以及各节点之间连接关系;
[0019]步骤二三、进行SysML模型状态机图的流程处理,解析状态机图所表示的模块的状态,以及在响应事件时,状态之间的可能转换;
[0020]步骤二四、进行SysML模型时序图的流程处理,解析时序图中所表示模块的各组成部分之间的消息交互序列,以及各组成部分如何通过操作调用和异步信号进行交互。
[0021]在进一步的实施方案中,所述步骤三中,组件指的是在对模型系统建模的过程中,能够在不同软件系统中被使用的封装好的、抽象的、可重用的、可替换的单元,代码生成过程中可以直接以组件单元为粒度。为便于不同建模工具对组件模型的交换和集成,组件以符合XMI标准的XML文件格式表示和存储。步骤三的流程具体为:
[0022]步骤三一、组件定义。实现组件属性、组件的接口信息、组件的依赖关系、适用位置、进入和退出条件、组件所需要的基础框架信息的描述定义,生成组件描述项;
[0023]步骤三二、组件管理。将组件描述项插入到组件描述文件中,并在系统中建立该组件的图元符号,以支持SysML模型的图形化建模。组件管理不仅管理组件的本身描述信息,还管理组件所对应的目标语言代码的生成信息,其在SysML模型的代码自动生成之前,提前准备组件模块所对应的高效率代码,在代码生成过程中直接组合粘贴。高效率代码是指能够在满足功能需求的同时,尽可能地减少运行时间、内存占用、能耗等资源消耗的代码,具有低冗余性、符合行业编码标准的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SysML模型的代码自动生成方法,其特征在于,所述方法包括如下步骤:步骤一、根据SysML规范,对建立的SysML模型进行多层次模型校验,确保SysML模型是合法有效的;步骤二、依据所建立的模型内容文件,结合模型的多种视图,对SysML模型进行转换与解析;步骤三、进行组件定义与管理;步骤四、进行规格化代码映射模板构建;步骤五、进行层次化代码自动生成,生成最终的目标语言代码。2.根据权利要求1所述的基于SysML模型的代码自动生成方法,其特征在于:步骤一的模型校验是基于SysML模型中的包图、模块定义图、内部模块图、参数图、时序图、活动图和状态机图这七种视图进行的,校验的内容包括模型自校验一致性和阶段一致性。3.根据权利要求1所述的基于SysML模型的代码自动生成方法,其特征在于:步骤二中,模型内容文件包括SysML模型建模元素内容文件和SysML模型视图内容文件。4.根据权利要求1所述的基于SysML模型的代码自动生成方法,其特征在于,所述步骤二的具体步骤如下:步骤二一、进行SysML模型结构图层次分析,获取模型建模元素之间的层次结构关系;步骤二二、进行SysML模型活动图同步处理,解析活动图所包含的活动图节点以及各节点之间连接关系;步骤二三、进行SysML模型状态机图流程处理,解析状态机图所表示的模块的状态,以及在响应事件时,各状态之间的可能转换;步骤二四、进行SysML模型时序图流程处理,解析时序图中所表示模块的各组成部分之间的消息交互序列,以及各组成部分如何通过操作调用和异步信号进行交互。5.根据权利要求1所述的基于SysML模型的代码自动生成方法,其特征在于,所述步骤三中的组件指的是在对模型系统建模的过程中,能够在不同软件系统中被使用的封装好的、抽象的、可重用的、可替换的单元,代码生成过程中可以直接以组件单元为粒度。6.根据权利要求1所述的基于SysML模型的代码自动生成方法,其特征在于,所述步骤三的具体步骤如下:步骤三一、组件定义:实现组件属性、组件的接口信息、组件的依赖关系、适用位置、进入和退出条件、组件所需要的基础框架信息的定义,生成组件描述项;步骤三二、组件管理:将组件描述项插入到组件描述文件中,并在系统中建立该组件的图元符号,以支持SysML模型的图形化建模,组件管理不仅管理组件的本身描述信息,还管理组件所对应的目标语言代码的生成信息,其在SysML模型的代码自动生成之前,提前准备组件模块所对应的高效率代码,在代码生成过程中直接组合粘贴。7.根据权利要求6所述的基于SysML模型的代码自动生成方法,其特征在于,组件定义的具体方式包括A1、A2和A3中的一种或多种的组合,其中,A1、利...

【专利技术属性】
技术研发人员:王甜甜杨培豪金勤超吴翔虎王亦平苏小红王克朝
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1