首页> 中国专利> 程序分析装置、程序分析方法及程序分析程序

程序分析装置、程序分析方法及程序分析程序

摘要

应用列表读入部(220)读入应用列表(122)。应用收集部(230)取得应用列表(122)中示出的搭载应用的源代码(111)。并且,应用收集部(230)取得追加应用的源代码(111)。程序分析部(240)使用各个源代码(111)进行与新执行程序(123)有关的程序分析。在新执行程序(123)没有产生问题的情况下,程序生成部(250)生成新执行程序(123)。然后,程序更新部(260)将新执行程序(123)写入到电子控制装置(121),将追加应用名称追加到应用列表(122)。

著录项

  • 公开/公告号CN105210044A

    专利类型发明专利

  • 公开/公告日2015-12-30

    原文格式PDF

  • 申请/专利权人 三菱电机株式会社;

    申请/专利号CN201380076507.9

  • 发明设计人 伊藤益夫;

    申请日2013-05-15

  • 分类号G06F11/36(20060101);

  • 代理机构11127 北京三友知识产权代理有限公司;

  • 代理人李辉;马建军

  • 地址 日本东京都

  • 入库时间 2023-12-18 13:23:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-04-26

    未缴年费专利权终止 IPC(主分类):G06F11/36 专利号:ZL2013800765079 申请日:20130515 授权公告日:20181113

    专利权的终止

  • 2018-11-13

    授权

    授权

  • 2016-01-27

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20130515

    实质审查的生效

  • 2015-12-30

    公开

    公开

说明书

技术领域

本发明涉及程序分析装置、程序分析方法及程序分析程序。

背景技术

为了检测研发出的程序的问题部位,对程序的源代码或者执行形式的程序执行分 析工具。

程序的设计者根据分析结果判定程序有无问题,将判定结果反馈在程序的设计 中。

但是,如果构成程序的全部源代码不齐全,则不能进行充分的程序分析。

即,在将用于提供追加功能的程序插入在已有的程序中的情况下,需要对插入的 程序与已有的程序的全部组合实施程序分析。

因此,在插入的程序增加时,分析对象的组合非常巨大,导致程序分析花费非常 多的工时。

另外,在程序的分析工具输出的警告内容中,除了与程序的问题有关的内容以外, 还包含设计者意识到的内容即与程序的问题无关的内容。但是,不能自动地区分与程 序的问题有关的内容和与程序的问题无关的内容。

现有技术文献

专利文献

专利文献1:日本特开平7-210424号公报

发明内容

发明要解决的问题

本发明的目的在于,例如能够容易地进行与追加新部分程序后的新执行程序有关 的程序分析。

用于解决问题的手段

本发明的程序分析装置具有:

列表取得部,其从存储待执行的执行程序和表示构成所述执行程序的部分程序的 部分程序列表的程序执行装置,取得所述部分程序列表;

源代码取得部,其取得由所述列表取得部取得的所述部分程序列表中示出的所述 部分程序的源代码和在所述执行程序中追加的新部分程序的源代码;以及

程序分析部,其使用由所述源代码取得部取得的所述部分程序的所述源代码和所 述新部分程序的所述源代码,判定包含所述新部分程序的新执行程序是否产生问题。

发明效果

根据本发明,能够通过取得部分程序的源代码和新部分程序的源代码,容易地进 行与追加新部分程序后的新执行程序有关的程序分析。

附图说明

图1是实施方式1的程序管理系统100的结构图。

图2是实施方式1的外部终端200的功能结构图。

图3是表示实施方式1的程序管理方法的处理流程的流程图。

图4是表示实施方式1的外部终端200的硬件结构的一例的图。

图5是实施方式2的应用服务器110的功能结构图。

图6是表示实施方式2的程序管理方法的处理流程的流程图。

图7是实施方式3的程序管理系统100的功能结构图。

图8是表示实施方式3的程序管理方法的处理流程的流程图。

图9是实施方式4的应用文件118的结构图。

图10是实施方式4的外部终端200的功能结构图。

图11是表示实施方式4的程序管理方法的处理流程的流程图。

图12是实施方式4的程序分析处理(S200)的流程图。

图13是实施方式4的主程序生成处理(S210)的流程图。

图14是表示实施方式4的第一构造设计文件291的一例的图。

图15是表示实施方式4的第二构造设计文件292的一例的图。

图16是表示实施方式4的应用的测试方法的概要图。

图17是实施方式5的程序分析处理(S200)的流程图。

图18是表示实施方式6的第一构造设计文件291的一例的图。

图19是表示实施方式6的第二构造设计文件292的一例的图。

图20是表示实施方式6的第三构造设计文件293的一例的图。

图21是实施方式7的主程序生成处理(S210)的流程图。

图22是表示实施方式7的第一构造设计文件291的一例的图。

图23是表示实施方式7的第一构造设计文件291的一例的图。

图24是表示实施方式7的第一构造设计文件291的一例的图。

具体实施方式

实施方式1

对进行与追加新部分程序后的新执行程序有关的程序分析的方式进行说明。

图1是实施方式1的程序管理系统100的结构图。

根据图1说明实施方式1的程序管理系统100的结构。

程序管理系统100具有应用服务器110、车辆120和外部终端200(程序分析装 置的一例)。并且,车辆120具有控制车辆120的电子控制装置121(程序执行装置 的一例)。但是,电子控制装置121也可以是进行车辆控制以外的信息处理的装置。

外部终端200以有线或者无线的方式与应用服务器110和车辆120进行通信。

电子控制装置121存储应用列表122(部分程序列表的一例)和执行程序123。

执行程序123例如是用于控制车辆120的执行形式的程序。

应用列表122是表示构成执行程序123的应用程序(部分程序的一例)的名称的 数据。

下面,将构成执行程序123的应用程序称作“搭载应用”。

在对电子控制装置121追加应用程序的情况下,即插入(addon)或者加入(plug in)应用程序的情况下,外部终端200按照下面所述进行动作。

下面,将追加的应用程序称作“追加应用”,将追加应用程序后的执行程序123称 作“新执行程序123”。

(1)外部终端200从电子控制装置121取得应用列表122。

(2)外部终端200从应用服务器110取得根据在应用列表122中示出的应用名 称识别出的搭载应用的源代码111。

并且,外部终端200从应用服务器110取得追加应用的源代码111。

(3)外部终端200使用追加应用的源代码111和搭载应用的源代码111,进行与 新执行程序123有关的程序分析。在程序分析中判定新执行程序123是否产生问题。

(4)在判定为新执行程序123没有产生问题的情况下,外部终端200生成新执 行程序123,利用新执行程序123更新电子控制装置121中存储的执行程序123。并 且,外部终端200将追加应用的应用名称追加到应用列表122。

通过以上的动作,能够判定在追加了应用程序时新执行程序123是否产生问题。

图2是实施方式1的外部终端200的功能结构图。

根据图2说明实施方式1的外部终端200的功能结构。

外部终端200具有追加应用受理部210、应用列表读入部220(列表取得部的一 例)和应用收集部230(源代码取得部的一例)。

外部终端200具有程序分析部240、程序生成部250、程序更新部260和终端存 储部290。

追加应用受理部210受理针对电子控制装置121的应用程序的追加请求。

应用列表读入部220从电子控制装置121读入应用列表122。

应用收集部230从应用服务器110下载根据在应用列表122中示出的应用名称识 别出的搭载应用的源代码111。并且,应用收集部230从应用服务器110下载追加应 用的源代码111。

程序分析部240使用追加应用的源代码111和搭载应用的源代码111,进行与新 执行程序123有关的程序分析。

程序生成部250在判定为新执行程序123没有产生问题的情况下,生成新执行程 序123。

程序更新部260将电子控制装置121中存储的执行程序123更新成新执行程序 123。并且,程序更新部260将追加应用的应用名称追加到应用列表122。

终端存储部290存储由外部终端200使用的数据。

例如,终端存储部290存储应用列表122、追加应用的源代码111、搭载应用的 源代码111和新执行程序123等。

图3是表示实施方式1的程序管理方法的处理流程的流程图。

根据图3说明实施方式1的程序管理方法。

在此,假设在应用服务器110中预先存储有研发出的应用的源代码111。

在源代码111利用C语言记述的情况下,记述源代码111的文件的扩展符是“.c” 或者“.h”。

在S110中,用户将针对电子控制装置121的应用的追加请求输入到外部终端 200。例如,车辆120的经营商(用户的一例)将应用的追加请求输入到外部终端200。

然后,外部终端200的追加应用受理部210受理应用的追加请求。

另外,应用的追加请求包含想要对电子控制装置121追加的追加应用的应用名称 (识别符的一例)。

在S110之后,处理进入S120。

在S120中,应用列表读入部220与电子控制装置121进行通信。然后,应用列 表读入部220从电子控制装置121读入应用列表122。

在S120之后,处理进入S130。

在S130中,应用收集部230与应用服务器110进行通信。

然后,应用收集部230从应用服务器110下载根据在S110中输入的追加请求包 含的应用名称识别出的追加应用的源代码111。

并且,应用收集部230从应用服务器110下载根据在S120中读入的应用列表122 中示出的应用名称识别出的搭载应用的源代码111。

在S130之后,处理进入S140。

在S140中,程序分析部240使用在S130中下载的追加应用的源代码111和搭载 应用的源代码111,进行与新执行程序123有关的程序分析。然后,程序分析部240 得到表示新执行程序123是否产生问题的分析结果。

例如,程序分析部240通过执行现有的程序分析工具,静态地或者动态地进行程 序分析。

有无上溢、下溢、零相除或者例外访问、有无模块(也称作程序(routine))的 递归调用、中断限制的不匹配等是分析内容的一例。

在S140之后,处理进入S150。

在S150中,按照S140的分析结果分开进行处理。

在得到新执行程序123产生问题的分析结果的情况下(是),追加应用受理部210 显示表示不能追加应用的错误消息,程序管理方法的处理结束。

在得到新执行程序123没有产生问题的分析结果的情况下(否),处理进入S160。

在S160中,程序生成部250生成新执行程序123。

例如,程序生成部250对追加应用的源代码111和搭载应用的源代码111进行编 译。然后,程序生成部250对通过编译而生成的各个目标文件建立链接。通过对各个 目标文件建立链接,生成新执行程序123。

在S160之后,处理进入S170。

在S170中,程序更新部260与电子控制装置121进行通信。

然后,程序更新部260将电子控制装置121中存储的执行程序123更新成在S160 中生成的新执行程序123。

并且,程序更新部260将追加应用的应用名称追加到电子控制装置121中存储的 应用列表122。

追加应用受理部210在外部终端200的显示部显示表示应用的追加已结束的结束 消息。

在S170之后,程序管理方法的处理结束。

图4是表示实施方式1的外部终端200的硬件结构的一例的图。

根据图4说明实施方式1的外部终端200的硬件结构的一例。

外部终端200是具有运算装置901、辅助存储装置902、主存储装置903、通信 装置904和输入输出装置905的计算机。

运算装置901、辅助存储装置902、主存储装置903、通信装置904和输入输出 装置905与总线909连接。

运算装置901是执行程序的CPU(CentralProcessingUnit)。

辅助存储装置902例如是ROM(ReadOnlyMemory)、闪存或者硬盘装置。

主存储装置903例如是RAM(RandomAccessMemory)。

通信装置904以有线或者无线的方式通过互联网、LAN(局域网)、电话线路网 或者其它网络进行通信。

输入输出装置905例如是鼠标、键盘、显示装置。

程序通常存储在辅助存储装置902中,被安装于主存储装置903,被读入到运算 装置901,并由运算装置901执行。

例如,操作系统(OS)被存储在辅助存储装置902中。另外,实现作为“~部” 而说明的功能的程序(程序分析程序的一例)被存储在辅助存储装置902中。并且, OS以及实现作为“~部”而说明的功能的程序被安装于主存储装置903,由运算装置 901执行。

表示“~的判断”、“~的判定”、“~的提取”、“~的检测”、“~的设定”、“~的登 记”、“~的选择”、“~的生成”、“~的输入”、“~的输出”等处理的结果的信息、数据、 信号值或者变量值,作为文件被存储在主存储装置903或者辅助存储装置902中。另 外,外部终端200使用的其它数据被存储在主存储装置903或者辅助存储装置902 中。

另外,图4示出实施方式1的外部终端200的硬件结构的一例,外部终端200 的硬件结构也可以是与图4所示的结构不同的结构。

另外,实施方式1的方法(程序分析方法的一例)能够按照使用流程图等说明的 步骤或者一部分不同的步骤实现。

根据实施方式1,能够通过收集搭载应用的源代码111和追加应用的源代码111, 容易地进行与新执行程序123有关的程序分析。

另外,由于是在安装新执行程序123所需要的源代码齐全的状态下进行程序分 析,因而程序分析一次即可完成。即,能够削减程序分析的工时。

实施方式2

对利用过去的程序分析结果的方式进行说明。

下面,主要说明与实施方式1不同的事项。省略说明的事项与实施方式1相同。

图5是实施方式2的应用服务器110的功能结构图。

根据图5说明实施方式2的应用服务器110的功能结构。

应用服务器110具有源代码请求受理部113、分析结果检索部114、源代码响应 部115和服务器存储部119。

服务器存储部119存储由应用服务器110使用的数据。

例如,服务器存储部119存储源代码111和分析结果表112。

分析结果表112是将程序的分析结果和构成程序的多个应用各自的应用名称关 联起来的表。

源代码请求受理部113、分析结果检索部114、源代码响应部115各自的动作将 在以后进行说明。

图6是表示实施方式2的程序管理方法的处理流程的流程图。

根据图6说明实施方式2的程序管理方法。

外部终端200执行S131和S132以取代在实施方式1(参照图3)中说明的S130。

在S131中,外部终端200的应用收集部230向应用服务器110发送用于请求追 加应用和搭载应用各自的源代码111的源代码请求。源代码请求包含构成新执行程序 123的追加应用和搭载应用各自的应用名称。

应用服务器110的源代码请求受理部113从外部终端200接收源代码请求。

应用服务器110的分析结果检索部114从源代码请求取得追加应用的应用名称和 搭载应用的应用名称。然后,分析结果检索部114判定在分析结果表112中是否设定 有与追加应用的应用名称和搭载应用的应用名称对应的分析结果。

当在分析结果表112中设定有相应的分析结果的情况下,应用服务器110的源代 码响应部115将相应的分析结果、追加应用的源代码111、搭载应用的源代码111发 送给外部终端200。然后,外部终端200的应用收集部230接收从应用服务器110发 送的分析结果和源代码111。但是,在分析结果表示产生问题的情况下,也可以不进 行源代码111的通信。

当在分析结果表112中没有设定相应的分析结果的情况下,应用服务器110的源 代码响应部115向外部终端200发送追加应用的源代码111和搭载应用的源代码111。 然后,外部终端200的应用收集部230接收从应用服务器110发送的源代码111。

在S131之后,处理进入S132。

在S132中,外部终端200的程序分析部240判定在S131中是否已取得分析结果。

在已取得分析结果的情况下(是),处理进入S150。

在未取得分析结果的情况下(否),处理进入S140。

在S140中,外部终端200的程序分析部240使用在S131中取得的源代码111 进行程序分析(与实施方式1相同)。

在S140之后,处理进入S150。

在S150中,按照在S140中得到的分析结果或者在S131中得到的分析结果分开 进行处理。

其它处理与实施方式1相同。

根据实施方式2,能够省略重复的程序分析,减轻外部终端200的负荷。

另外,也可以取代应用服务器110而由外部终端200存储分析结果表112。并且, 当在分析结果表112中设定有相应的分析结果的情况下,外部终端200不进行程序分 析(S140),而是利用在分析结果表112中设定的分析结果。

实施方式3

对取代外部终端200而由应用服务器110进行程序分析和程序生成的方式进行说 明。

下面,主要说明与实施方式1不同的事项。关于省略说明的事项,与实施方式1 相同。

图7是实施方式3的程序管理系统100的功能结构图。

关于实施方式3的程序管理系统100的功能结构,根据图7进行说明。

应用服务器110(程序分析装置的一例)取代外部终端200而具有应用收集部230、 程序分析部240和程序生成部250。

应用服务器110具有对外部终端200提供新执行程序123的程序提供部116。

应用服务器110具有存储在应用服务器110中使用的数据(例如源代码111)的 服务器存储部119。

外部终端200具有从应用服务器110取得新执行程序123的程序取得部270。

图8是表示实施方式3的程序管理方法的处理流程的流程图。

关于实施方式3的程序管理方法,根据图8进行说明。

外部终端200执行S133和S134来取代在实施方式1(参照图3)中说明的S130~ S160。

在S133中,外部终端200的程序取得部270向应用服务器110发送用于请求新 执行程序123的程序请求。程序请求包含构成新执行程序123的追加应用和搭载应用 各自的应用名称。

应用服务器110的程序提供部116从外部终端200接收程序请求。

应用服务器110的应用收集部230根据程序请求中包含的各个应用名称,从服务 器存储部119收集追加应用的源代码111和搭载应用的源代码111。

应用服务器110的程序分析部240使用收集到的源代码111进行与新执行程序 123有关的程序分析(与实施方式1相同)。

在得到新执行程序123没有产生问题的分析结果的情况下,应用服务器110的程 序生成部250生成新执行程序123(与实施方式1相同)。然后,应用服务器110的 程序提供部116发送新执行程序123,外部终端200的程序取得部270接收新执行程 序123。

在得到新执行程序123产生问题的分析结果的情况下,应用服务器110的程序提 供部116发送表示不能提供新执行程序123的错误消息,外部终端200的程序取得部 270接收错误消息。

在S133之后,处理进入S134。

在S134中,按照S133的处理结果分开进行处理。

在已取得新执行程序123的情况下(是),处理进入S170。

在未取得新执行程序123的情况下,即已取得错误消息的情况下(否),外部终 端200的追加应用受理部210显示表示不能追加应用的错误消息,程序管理方法的处 理结束。

其它处理与实施方式1相同。

根据实施方式3,由应用服务器110执行程序分析和程序生成,能够减轻外部终 端200的负荷。

另外,也可以是,由应用服务器110执行程序分析和程序生成中的任意一种处理, 由外部终端200执行另一种处理。

实施方式4

对根据构成新执行程序123的各个应用的变量信息进行与新执行程序123有关的 程序分析的方式进行说明。

下面,主要说明与实施方式1不同的事项。关于省略说明的事项,与实施方式1 相同。

图9是实施方式4的应用文件118的结构图。

关于实施方式4的应用文件118的结构,根据图9进行说明。

应用服务器110按照每个应用存储应用文件118。

应用文件118包含应用的源代码111和应用的构造设计信息117(变量信息的一 例)。构造设计信息117是与在应用中使用的变量有关的信息。

在实施方式4中,构造设计信息117将应用的源代码111中包含的子程序(也称 作函数)的名称、在子程序内使用的变量的名称和变量具有的属性的值对应起来示出。

在实施方式4中,假设应用服务器110存储应用(a)(b)(c)各自的应用文件 118。

应用(a)的源代码111包含使用变量X的子程序(a),应用(a)的构造设计信 息117表示在子程序(a)中使用的变量X的属性值作为属性(3)。

应用(b)的源代码111包含使用变量X的子程序(b),应用(b)的构造设计 信息117表示在子程序(b)中使用的变量X的属性值作为属性(2)。

应用(c)的源代码111包含使用变量X的子程序(c),应用(c)的构造设计信 息117表示在子程序(c)中使用的变量X的属性值作为属性(1)。

例如,变量X是用于确认电子控制装置121的内部状态的变化或者被输入到电 子控制装置121的输入信号的变化的状态变量(也称作标志)。

属性(1)表示“滞后一个周期读出属性(也称作更新前读出属性)”,属性(2) 表示“写入属性”,属性(3)表示“通常周期读出属性(也称作更新后读出属性)”。

滞后一个周期读出属性表示读出经过更新周期前的变量值。换言之,滞后一个周 期读出属性是用于读出更新前的变量值的属性。

写入属性表示写入变量值。换言之,写入属性是用于更新变量值的属性。

通常周期读出属性表示读出经过更新周期后的变量值。换言之,通常周期读出属 性是用于读出更新后的变量值的属性。

图10是实施方式4的外部终端200的功能结构图。

关于实施方式4的外部终端200的功能结构,根据图10进行说明。

外部终端200如在实施方式1(参照图2)中说明的那样具有程序分析部240。

程序分析部240具有主程序生成部241、程序组装部242和程序分析执行部243。

主程序生成部241生成新执行程序123的主程序的源代码。

程序组装部242使用主程序的源代码、追加应用的源代码111和搭载应用的源代 码111,生成新执行程序123的源代码。

程序分析执行部243对新执行程序123的源代码执行程序分析。

图11是表示实施方式4的程序管理方法的处理流程的流程图。

关于实施方式4的程序管理方法,根据图11进行说明。

外部终端200执行S135和S200来取代在实施方式1(参照图3)中说明的S130 和S140。

在S135中,应用收集部230收集各个应用的应用文件118(包含源代码111), 以取代构成新执行程序123的各个应用的源代码111。

在S135之后,处理进入S200。

在S200中,程序分析部240使用各个应用的应用文件118取代各个应用的源代 码111,进行与新执行程序123有关的程序分析。

其它处理与实施方式1相同。

图12是实施方式4的程序分析处理(S200)的流程图。

关于实施方式4的程序分析处理(S200),根据图12进行说明。

在S210中,主程序生成部241根据构成新执行程序123的各个应用的应用文件 118,生成新执行程序123的主程序的源代码。

新执行程序123的主程序是用于按照恰当的顺序调用各个应用中包含的子程序 的函数。

关于主程序生成处理(S210)的详情,将在后面进行说明。

在S210之后,处理进入S220。

在S220中,程序组装部242使用在S210中生成的主程序的源代码和各个应用文 件118中包含的源代码111,生成新执行程序123的源代码。

例如,新执行程序123的源代码包含主程序的源代码、追加应用的源代码111和 搭载应用的源代码111。

在S220之后,处理进入S230。

在S230中,程序分析执行部243对在S220中生成的新执行程序123的源代码执 行程序分析。

例如,程序分析执行部243将新执行程序123的源代码输入到程序分析工具,执 行程序分析工具。

在S230之后,程序分析处理(S200)结束。

图13是实施方式4的主程序生成处理(S210)的流程图。

关于实施方式4的主程序生成处理(S210),根据图13进行说明。

在S211中,主程序生成部241从构成新执行程序123的各个应用的应用文件118 中选择一个未选择的变量。

例如,主程序生成部241从各个应用文件118中包含的构造设计信息117中选择 一个未选择的变量。

在S211之后,处理进入S212。

在S212中,主程序生成部241选择各个应用文件118中包含的构造设计信息117 中、被设定有在S211中选择出的变量的属性值的构造设计信息117。

然后,主程序生成部241从构造设计信息117取得在S211中选择出的变量的属 性值。

例如,当在S211中选择在应用(a)的子程序(a)中使用的变量X的情况下, 主程序生成部241选择应用(a)的应用文件118中包含的构造设计信息117。然后, 主程序生成部241从构造设计信息117中取得与子程序(a)和变量X对应的属性值。

在S212之后,处理进入S213。

在S213中,主程序生成部241将子程序名称、变量名称和属性值对应起来设定 到第一构造设计文件291中。

例如,当在S211中选择出子程序(a)的变量X,在S212中取得属性(3)的情 况下,主程序生成部241按照图14的(1)所示进行第一构造设计文件291的设定。

图14是表示实施方式4的第一构造设计文件291的一例的图。

在S213之后,处理进入S214。

在S214中,主程序生成部241判定是否具有在S211中未选择的变量。

在具有未选择的变量的情况下(是),处理返回S211。

在没有未选择的变量的情况下(否),处理进入S215。

通过反复进行S211~S214,例如生成图14的(2)所示的第一构造设计文件291。

在S215中,主程序生成部241根据第一构造设计文件291生成第二构造设计文 件292。

第二构造设计文件292是按照每个变量将变量名称、变量的属性值和使用变量的 子程序的名称关联起来的数据。

例如,主程序生成部241根据图14的(2)所示的第一构造设计文件291,生成 图15所示的第二构造设计文件292。

图15是表示实施方式4的第二构造设计文件292的一例的图。

在S215之后,处理进入S216。

在S216中,主程序生成部241根据在S215中生成的第二构造设计文件292,决 定调用各个子程序的顺序。

例如,主程序生成部241按照使用属性(1)的变量的子程序、使用属性(2)的 变量的子程序、使用属性(3)的变量的子程序的顺序,决定子程序的调用顺序。

例如,主程序生成部241根据图15所示的第二构造设计文件292,决定子程序 的调用顺序“(c)→(b)→(a)”。

在S216之后,处理进入S217。

在S217中,主程序生成部241生成用于按照在S216中决定的调用顺序调用各个 子程序的主程序的源代码。

例如,主程序生成部241生成用于按照(c)(b)(a)的顺序调用子程序(a)(b) (c)的主程序的源代码。

在S217之后,主程序生成处理(S210)结束。

图16是表示实施方式4的应用测试方法的概要图。

关于实施方式4的应用测试方法的概要,根据图16进行说明。

首先,决定应用的规格而生成应用规格书131。

应用规格书131包含作为与应用中包含的子程序有关的信息的、在子程序中使用 的变量的信息。

然后,根据应用规格书131生成应用的源代码111。

并且,根据应用规格书131生成用于测试应用的测试规格书132。在生成测试规 格书132时,从应用规格书131提取子程序的变量信息。此时提取的子程序的变量信 息能够作为构造设计信息117使用。

然后,根据测试规格书132生成用于测试应用的测试用程序133。

然后,通过执行测试用程序133,测试应用的源代码111(或者对源代码111进 行编译而得到的目标代码)。另外,测试用程序133是在研发用平台134中执行的。

如上所述,在测试应用时得到源代码111和构造设计信息117。即,应用文件118 能够使用在测试应用时得到的源代码111和构造设计信息117生成。

根据实施方式4,能够根据构成新执行程序123的各个应用的变量信息生成新执 行程序123的主程序的源代码,生成新执行程序123整体的源代码。并且,能够使用 新执行程序123整体的源代码进行与新执行程序123有关的程序分析。

实施方式5

对根据构成新执行程序123的各个应用的变量信息进行与新执行程序123有关的 程序分析的方式进行说明。

下面,主要说明与实施方式4不同的事项。关于省略说明的事项,与实施方式4 相同。

图17是实施方式5的程序分析处理(S200)的流程图。

关于实施方式5的程序分析处理(S200),根据图17进行说明。

程序分析处理(S200)包含作为在实施方式4(参照图12)中说明的S230的具 体处理的S231~S235。

在S231中,程序分析执行部243对新执行程序123的源代码执行分析工具。

在具有属性(1)(滞后一个周期读出属性)的变量包含在新执行程序123的源代 码中的情况下,分析工具检测(警告)具有属性(1)的变量作为新执行程序123的 问题。

在S231之后,处理进入S232。

在S232中,程序分析执行部243根据分析工具的执行结果,判定是否检测出具 有属性(1)的变量以外的变量的问题。

在作为问题仅检测出具有属性(1)的变量的情况下,处理进入S233。

在检测出具有属性(1)的变量以外的变量的问题的情况下,处理进入S234。

在未检测出问题的情况下,处理进入S235。

在S233中,程序分析执行部243判定作为问题被检测出的变量在构成新执行程 序123的至少任意应用的构造设计信息117中是否被定义成具有属性(1)的变量。

在作为问题被检测出的变量被定义成具有属性(1)的变量的情况下(是),处理 进入S235。在这种情况下,可认为作为问题被检测出(警告)的变量是基于设计的 变量而没有问题。

在作为问题被检测出的变量未被定义成具有属性(1)的变量的情况下(否),处 理进入S234。在这种情况下,可认为作为问题被检测出(警告)的变量是设计失误 的变量而有问题。

在S234中,程序分析执行部243判定为新执行程序123有问题。

在S234之后,程序分析处理(S200)结束。

在S235中,程序分析执行部243判定为新执行程序123没有问题。

在S235之后,程序分析处理(S200)结束。

根据实施方式5,能够结合分析工具的分析结果和构造设计信息117来判定新执 行程序123有无问题。

实施方式6

对存在使用具有不同属性的多个变量的子程序,并且该子程序包含在新执行程序 123中的方式进行说明。

下面,主要说明与实施方式4、5不同的事项。关于省略说明的事项,与实施方 式4、5相同。

外部终端200如在实施方式4(参照图10)中说明的那样具有主程序生成部241。

主程序生成部241如在实施方式4(参照图13)中说明的那样生成新执行程序 123的主程序的源代码。

但是,主程序生成部241按照以下所述决定在主程序中调用的子程序的顺序 (S216)。

图18是表示实施方式6的第一构造设计文件291的一例的图。

图19是表示实施方式6的第二构造设计文件292的一例的图。

图20是表示实施方式6的第三构造设计文件293的一例的图。

第三构造设计文件293是按照每个变量将变量名称、一个或者多个属性值和使用 变量的子程序的名称对应起来的数据。

在S211~S214(参照图13)中生成图18所示的第一构造设计文件291。

在S215中,主程序生成部241根据图18所示的第一构造设计文件291,生成图 19所示的第二构造设计文件292。

图19所示的第二构造设计文件292表示变量X和变量Y在子程序(e)中使用, 变量X的属性(2)和变量Y的属性(3)不同。

在S216(参照图13)中,主程序生成部241参照第二构造设计文件292,判定 是否具有使用属性不同的多个变量的子程序。

在图19所示的第二构造设计文件292中,子程序(e)与使用属性不同的多个变 量的子程序相应。

在没有相应的子程序的情况下,主程序生成部241根据第二构造设计文件292 决定子程序的调用程序(与实施方式4相同)。

在具有相应的子程序的情况下,主程序生成部241根据第二构造设计文件292 生成第三构造设计文件293。然后,主程序生成部241根据第三构造设计文件293决 定子程序的调用程序。

例如,主程序生成部241根据图19所示的第二构造设计文件292生成图20所示 的第三构造设计文件293。

即,主程序生成部241通过将子程序(e)与属性(2)和属性(3)的组合“属性 (2)/(3)”对应起来而生成第三构造设计文件293(参照图20)。因为子程序(e) 与属性(2)和属性(3)分别对应地设定在第二构造设计文件292(参照图19)中。

然后,主程序生成部241按照对应于属性(1)的子程序、对应于属性(1)/(2) 的子程序、对应于属性(2)的子程序、对应于属性(2)/(3)的子程序、对应于属 性(3)的子程序的顺序,决定子程序的调用顺序。

即,主程序生成部241决定子程序的调用顺序“(c)→(d)→(b)→(e)→ (a)”。但是,子程序(c)和子程序(d)都对应于属性(1),因而子程序(c)(d) 的顺序也可以更换。

根据实施方式6,即使在子程序使用具有不同属性的多个变量的情况下,也能够 决定子程序的调用顺序。

实施方式7

对子程序的调用在逻辑上不成立的方式进行说明。

下面,主要说明与实施方式4、5不同的事项。关于省略说明的事项,与实施方 式4、5相同。

图21是实施方式7的主程序生成处理(S210)的流程图。

关于实施方式7的主程序生成处理(S210),根据图21进行说明。

主程序生成处理(S210)在实施方式4(图13)中说明的处理的基础上,具有 S214-2。

在S211~S214,主程序生成部241生成新执行程序123的第一构造设计文件291。

在S214之后,处理进入S214-2。

在S214-2中,主程序生成部241根据第一构造设计文件291判定是否具有调用 顺序矛盾的子程序的组合。

其中,调用顺序矛盾的子程序的组合是指包含如下所述的2个子程序的组合。

2个子程序使用第一变量和第二变量。

在一个子程序中使用的第二变量具有与比在一个子程序中使用的第一变量的属 性“低”的调用顺序对应的属性。

在另一个子程序中使用的第二变量具有与比在另一个子程序中使用的第一变量 的属性“高”的调用顺序对应的属性。

在具有调用顺序矛盾的子程序的组合的情况下,主程序生成部241不生成主程 序,主程序生成处理(S210)结束。在这种情况下,程序分析执行部243不进行程序 分析而判定为新执行程序123有问题。

在没有调用顺序矛盾的子程序的组合的情况下,处理进入S215。S215~S217与 实施方式4相同。

图22、图23、图24是表示实施方式7的第一构造设计文件291的一例的图。

在生成图22~图24所示的第一构造设计文件291的情况下,主程序生成部241 判定为具有调用顺序矛盾的子程序的组合。在图22~图24的第一构造设计文件291 中,对应于属性(1)的调用顺序是1号,对应于属性(2)的调用顺序是2号,对应 于属性(3)的调用顺序是3号。

在图22所示的第一构造设计文件291中,子程序(e)使用属性(2)的变量Y 和属性(3)的变量X。即,变量X具有与比变量Y的属性(2)“低”的调用顺序对 应的属性(3)。

另外,子程序(f)使用属性(3)的变量Y和属性(2)的变量X。即,变量X 具有与比变量Y的属性(3)“高”的调用顺序对应的属性(2)。

因此,子程序(e)和子程序(f)的调用顺序矛盾。另外,当在子程序(f)中使 用的变量X的属性是属性(1)的情况下,调用顺序也矛盾。

对于图23或者图24的第一构造设计文件291也是同样的。

在实施方式7中,也可以是,主程序生成部241根据第一构造设计文件291生成 第二构造设计文件292(S215),根据第二构造设计文件292判定有无矛盾的子程序 的组合(S214-2)。

根据实施方式7,能够检测调用顺序矛盾的子程序的组合。

各个实施方式是程序管理系统100和外部终端200的方式的一例。

即,程序管理系统100和外部终端200也可以不具有在各个实施方式中说明的功 能或者结构的一部分。

并且,程序管理系统100和外部终端200也可以具有在各个实施方式中未说明的 功能或者结构。

另外,各个实施方式也可以在不产生矛盾的范围内对一部分或者全部进行组合。

标号说明

100程序管理系统;110应用服务器;111源代码;112分析结果表;113源代码 请求受理部;114分析结果检索部;115源代码响应部;116程序提供部;117构造设 计信息;118应用文件;119服务器存储部;120车辆;121电子控制装置;122应用 列表;123执行程序;131应用规格书;132测试规格书;133测试用程序;134研发 用平台;200外部终端;210追加应用受理部;220应用列表读入部;230应用收集部; 240程序分析部;241主程序生成部;242程序组装部;243程序分析执行部;250程 序生成部;260程序更新部;270程序取得部;290终端存储部;291第一构造设计文 件;292第二构造设计文件;293第三构造设计文件;901运算装置;902辅助存储装 置;903主存储装置;904通信装置;905输入输出装置;909总线。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号