用于验证软件程序的方法和系统技术方案

技术编号:22821778 阅读:26 留言:0更新日期:2019-12-14 14:51
公开了用于在集成开发环境(113)中验证软件程序的方法和系统。在一个实施例中,在集成开发环境(113)中验证软件程序的方法包括基于软件程序的规范生成包括日志记录语句的软件程序的源代码。此外,该方法包括执行具有日志记录语句的源代码,以及基于日志记录语句在源代码的执行期间生成一个或多个日志文件。此外,该方法包括基于一个或多个日志文件以建模语言来生成源代码(500)的表示。该方法包括通过将以建模语言的源代码(500)的表示与以建模语言的规范进行比较来验证源代码与规范的符合性。

Methods and systems for verifying software programs

【技术实现步骤摘要】
【国外来华专利技术】用于验证软件程序的方法和系统本公开一般地涉及模型驱动软件开发的领域,并且更具体地涉及用于在集成开发环境中验证软件程序的方法和系统。集成开发环境(IDE)是软件应用,其向软件工程师提供用于软件开发的综合设施。一些集成开发环境使能使用正式的结构化、自上而下的开发方法(诸如模型驱动软件开发)来开发软件。基于模型驱动软件开发方法,软件工程师可以使用集成开发环境来使用统一建模语言(UML)图按照规范对软件进行建模。示例性统一建模语言图可以包括顺序图,该顺序图以响应于外部事件构成系统的各种元素之间的交互的时间顺序来指定系统的行为。软件工程师使用顺序图来开发软件程序。同行评审者可以检查软件程序的源代码并确认软件程序符合规范。通常,软件程序是使用过程编程语言(诸如‘C’编程语言)来开发的。在这样的情况下,软件工程师理解顺序图并以‘C’编程语言将期望的行为实现为软件程序。然而,软件程序可能没有与顺序图的一对一的对应关系。因此,对同行评审者来说,检查软件程序的源代码并确认符合顺序图变成耗时且麻烦的任务。公开了用于在集成开发环境中验证软件程序的方法和系统。在一个方面中,一种在集成开发环境中验证软件程序的计算机实现的方法,包括由数据处理系统基于软件程序的规范生成包括日志记录语句的软件程序的源代码。该方法包括执行具有日志记录语句的源代码;以及基于日志记录语句在源代码的执行期间生成一个或多个日志文件。该方法包括使用一个或多个日志文件以建模语言生成源代码的表示。此外,该方法包括使用以建模语言的源代码的表示来验证软件程序的源代码。在另一方面中,一种数据处理系统,包括:处理单元;以及存储器,其耦合到处理单元。存储器包括以机器可读指令的形式存储并且可由处理单元执行的模型驱动开发模块。模型驱动开发模块被配置成基于软件程序的规范来生成包括日志记录语句的软件程序的源代码。模型驱动开发模块被配置成执行具有日志记录语句的源代码,以及基于日志记录语句在源代码的执行期间生成一个或多个日志文件。此外,模型驱动开发模块被配置成使用一个或多个日志文件以建模语言来生成源代码的表示。在又一方面中,一种非暂时性计算机可读存储介质,其具有存储在其中的指令,所述指令在由数据处理系统执行时,使得数据处理系统执行在上述集成开发环境中验证软件程序的方法。提供该
技术实现思路
来以简化的形式引入以下在随后的描述中进一步描述的概念的选择。其不旨在标识所要求保护的主题的特征或必要特征。另外,所要求保护的主题不限于解决在本公开的任何部分中指出的任何或全部缺点的实现。本公开及其许多的伴随方面的更完整理解将容易地获得,因为在结合附图考虑时通过参考以下描述,本公开及其许多的伴随方面的更完整理解变得更好理解:图1图示了其中可以实现实施例的数据处理系统的框图;图2是图示根据实施例的图1的模型驱动开发模块的各种模块的框图;图3图示了根据实施例的在集成开发环境中验证软件程序的示例性方法的过程流程图;以及图4图示了其中可以实现实施例的另一数据处理系统的框图。图5是示例性顺序图的示意性表示,该顺序图是基于在针对票务系统的C代码的执行期间日志记录的信息生成的。公开了用于在集成开发环境中验证软件程序的方法和系统。参考附图描述各种实施例,其中相同的参考标号自始至终被用于指代相同的元素。在以下描述中,阐述多个具体细节以便提供对本公开的实施例的透彻理解。对于本领域技术人员将显而易见的是,不需要采用这些具体细节来实施本公开的实施例。在其他实例中,尚未详细描述公知的材料或方法以便避免不必要地模糊本公开的实施例。虽然本公开容许(susceptible)各种修改和替代形式,但其具体实施例通过示例的方式在附图中示出,并且将在本文中被详细描述。然而,应当理解的是,不存在将本公开限制到所公开的特定形式的意图,而是相反,本公开要覆盖落在本公开的精神和范围内的所有修改、等同物和替代物。图1图示了其中实施例可以例如被实现为特别地由软件配置或以其他方式来执行如在本文中描述的过程的数据处理系统的数据处理系统100的框图。数据处理系统100可以是个人计算机、膝上型计算机、平板计算机、智能电话以及诸如此类。在图1中,数据处理系统100包括处理单元102、可访问存储器104、存储单元106、输入单元108、输出单元110和总线112。如本文中使用的处理单元102意指任何类型的计算电路,诸如但不限于微处理器单元、微控制器、复杂指令集计算微处理器单元、精简指令集计算微处理器单元、超长指令字微处理器单元、显式并行指令计算微处理器单元、图形处理单元、数字信号处理单元或任何其他类型的处理电路。处理单元102还可以包括嵌入式控制器,诸如通用或可编程逻辑器件或阵列、专用集成电路、单芯片计算机以及诸如此类。存储器104可以是非暂时性易失性存储器和非易失性存储器。存储器104可以被耦合以用于与处理单元102通信,诸如是计算机可读存储介质。处理单元102可以执行存储在存储器104中的机器可读指令和/或源代码。各种机器可读指令可以被存储在存储器104中并从存储器104访问。存储器104可以包括用于存储数据和机器可读指令的任何合适的元素,诸如只读存储器、随机存取存储器、可擦除可编程只读存储器、电可擦除可编程只读存储器、硬盘驱动器、用于处置压缩盘、数字视频盘、软盘、磁带盒、存储器卡的可移动介质驱动器以及诸如此类。在本实施例中,存储器104包括集成开发环境(IDE)113。IDE113包括以机器可读指令的形式存储在上述存储介质中的任何存储介质上的模型驱动开发模块114,并且可以与处理单元102通信并由处理单元102执行。当由处理单元102执行时,模型驱动开发模块114使得处理单元102使用软件程序的规范生成包括日志记录语句的软件程序的源代码。软件程序的规范以建模语言来表示。例如,使用域特定语言(DSL)来表示软件程序的规范。例如,可以为系统(例如,汽车)的嵌入式系统(例如,巡航控制系统)开发软件程序。软件程序在部署时将使得系统能够执行期望的功能(例如,在汽车中使能自动巡航模式)。模型驱动开发模块114使得处理单元102基于日志记录语句在源代码的执行期间生成日志文件,并使用日志文件以建模语言生成源代码的表示。此外,模型驱动开发模块114通过将以建模语言的源代码的表示与以建模语言的规范进行比较,使得处理单元102验证源代码与规范的符合性。模型驱动开发模块114使得处理单元102基于验证的结果来更改软件程序的源代码。在图3中更详细地描述了由处理单元102执行以实现上述功能的方法步骤。存储单元106可以是存储规范数据库116和日志文件数据库118的非暂时性存储介质。规范数据库116存储软件程序的规范。例如,使用统一建模语言图(诸如顺序图)来表示软件程序的规范。日志文件数据库118存储在软件程序的源代码的执行期间生成的日志文件。每个日志文件包含表示使用软件程序操作的系统(例如,汽车)的元素(即,组件和/或对象)之间的交互的时间顺序的信息。输入单元108可以包括能够接收一个或多个输入信号的输入设备键盘、触敏显示本文档来自技高网
...

【技术保护点】
1.一种在集成开发环境(113)中验证软件程序的计算机实现的方法,包括:/n由数据处理系统(100)基于软件程序的规范来生成包括日志记录语句的软件程序的源代码;/n执行具有日志记录语句的源代码;/n基于日志记录语句在源代码的执行期间生成一个或多个日志文件;以及/n使用一个或多个日志文件以建模语言来生成源代码(500)的表示。/n

【技术特征摘要】
【国外来华专利技术】20170201 IN 2017310037031.一种在集成开发环境(113)中验证软件程序的计算机实现的方法,包括:
由数据处理系统(100)基于软件程序的规范来生成包括日志记录语句的软件程序的源代码;
执行具有日志记录语句的源代码;
基于日志记录语句在源代码的执行期间生成一个或多个日志文件;以及
使用一个或多个日志文件以建模语言来生成源代码(500)的表示。


2.如权利要求1所述的计算机实现的方法,进一步包括:
使用以建模语言的源代码(500)的表示来验证软件程序的源代码。


3.如权利要求1所述的计算机实现的方法,其中,生成包括日志记录语句的软件程序的源代码包括:
基于在软件程序的规范中标记的元数据,将日志记录语句附加在软件程序的源代码中的一个或多个位置处。


4.如权利要求3所述的计算机实现的方法,其中,以过程编程语言来生成软件程序的源代码。


5.如权利要求2所述的计算机实现的方法,其中,验证软件程序的源代码包括:
将以建模语言的源代码(500)的表示与软件程序的规范进行比较,其中,软件程序的规范是以建模语言的;
基于比较的结果来确定软件程序的源代码是否符合软件程序的规范;以及
如果软件程序的源代码不符合软件程序的规范,则更改软件程序的源代码。


6.如权利要求1所述的计算机实现的方法,其中,以建模语言的源代码(500)的表示包括统一建模语言(UML)图。


7.如权利要求1所述的计算机实现的方法,其中,软件程序的规范以与系统相关联的不同元素之间的交互的时间顺序来指定系统的行为。


8.如权利要求7所述的计算机实现的方法,其中,在软件程序的源代码的执行期间生成日志文件包括:
在源代码的执行期间基于日志记录语句来确定系统的元素之间的一个或多个交互;以及
以时间顺序将系统的元素之间的一个或多个交互日志记录在日志文件中。


9.一种数据处理系统(100),包括:
处理单元(102);以及
存储器(104),其耦合到处理单元(102),其中存储器(104)包括模型驱动开发模块(114),模型驱动开发模块(114)被配置成:
基于软件程序的规范来生成包括日志记录语句的软件程序的源代码;
执行具有日志记录语句的源代码;
基于日志记录语句在源代码的执行期间生成一个或多个日志文件;以及
使用一个或多个日志文件以建模语言来生成源代码(500)的表示。


10.如权利要求9所述的数据处理系统(100),其中,模型驱动开发模块(114)被配置成使用以建模语言的源代码(500)的表示来验证软件程序的源代码。


11....

【专利技术属性】
技术研发人员:S米什拉
申请(专利权)人:西门子工业软件有限责任公司
类型:发明
国别省市:比利时;BE

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

1