变量访问一贯性检查装置、变量访问一贯性检查方法、变量访问一贯性检查程序制造方法及图纸

技术编号:12099257 阅读:92 留言:0更新日期:2015-09-23 16:56
访问一贯性检查装置确定由基于规定的条件而切换并执行多个分支处理的一组语句构成的分支程序块,检测在分支程序块内进行写入的变量(S01)。检测能够在分支程序块内切换的分支处理的数量,检测对变量进行写入的分支处理的数量(S04),判断能够在分支程序块内切换的分支处理的数量是否与对变量进行写入的分支处理的数量一致(S06)。而且,在判断为能够在分支程序块内切换的分支处理的数量与对变量进行写入的分支处理的数量不一致的情况下,将变量以及分支程序块的至少一方输出(D07)。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种变量访问一贯性检查装置、变量访问一贯性检查方法、变量访问一贯性检查程序
技术介绍
当前,已知对由编程语言所记述的源程序中的控制流、数据流以不执行该源程序的方式进行分析的静态分析方法(参照专利文献I)。专利文献1:日本特开平09-282173号公报
技术实现思路
根据专利文献I的静态分析方法,能够明确输入和输出的关系而使程序的构造可视化。但是,无法使用户注意到实现了可视化的程序构造中的有可能产生缺陷的位置。本专利技术就是鉴于上述课题而提出的,其目的在于提供能够使用户注意到程序构造中的有可能产生缺陷的位置的变量访问一贯性检查装置、变量访问一贯性检查方法、变量访问一贯性检查程序。本专利技术的一个实施方式所涉及的变量访问一贯性检查装置,对能够在分支程序块内切换的分支处理的数量进行检测,检测出对变量进行写入的分支处理的数量,判断能够在分支程序块内切换的分支处理的数量是否与对变量进行写入的分支处理的数量一致。而且,在判断为能够在分支程序块内切换的分支处理的数量与对所述变量进行写入的分支处理的数量不一致的情况下,将变量以及分支程序块的至少一方输出。【附图说明】图1是表示本专利技术的第I实施方式所涉及的变量访问一贯性检查装置的硬件结构的框图。图2是表示CPUll的功能结构的框图。图3是表示由本专利技术第I实施方式所涉及的变量访问一贯性检查装置执行的信息处理的流程、以及在信息处理过程中生成的中间数据的数据流图。图4(a)、(b)、(C)是表示作为读入的源代码DOl而由C语言记述的程序的一个例子的图。图5(a)、(b)、(C)是表示由分支程序块确定部21确定的分支程序块IDl、ID2的图。图6是表示将变量检测部22所进行的处理的结果汇总而得到的“分支程序块变量访问一览”的表。图7(a)、(b)是表示将语句编号分配处理的结果汇总而得到的“语句编号分配一览(D03) ”的表。图8是表示将变量访问顺序确定处理的结果汇总而得到的“变量访问顺序一览(D04)” 的表。图9(a)、(b)、(C)是用于说明路径数量确定处理(S04)的内容的图。图10是表示将路径数量确定处理(S04)的结果汇总而得到的“路径数量和变量访问顺序一览(D05) ”的表。图11是表示将访问比例判定(S05)的结果汇总而得到的“访问比例一览(D06) ”的表。图12是表示将访问一贯性判定处理(S06)的结果汇总而得到的“访问一贯性判定结果(D07) ”的表。图13(a)、(b)、(C)是表示图4(a)、(b)、(C)的程序修正例的图。图14(a)、(b)是表示根据规格方面的条件而将值改变并写入的情况下的例子的流程图。图15是表示变量的写入处理在确定的分支处理中遗漏的例子的流程图。图16是表示第2实施方式所涉及的CPU11’的功能结构的框图。图17是表示由本专利技术的第2实施方式所涉及的变量访问一贯性检查装置执行的信息处理的流程、以及在信息处理的过程中生成的中间数据的数据流图。图18是表示将临界值判定处理(S07)的结果汇总而得到的“临界值判定结果(D09)” 的表。图19(a)、(b)是表示由比率计算部25计算出的比率不同的情况的流程图。【具体实施方式】参照附图,对本专利技术的实施方式进行说明。在附图的记载中,对相同部分标注相同标号并省略说明。(第I实施方式)本专利技术的第I实施方式所涉及的变量访问一贯性检查装置,例如能够应用于由搭载于车辆上的电子控制装置(ECU)执行的计算机程序的变量访问一贯性检查处理。特别是对因计算机程序的规格遗漏或者编码遗漏而引起的缺陷的可能性进行检查。参照图1,对本专利技术的第I实施方式所涉及的变量访问一贯性检查装置的硬件结构进行说明。作为变量访问一贯性检查装置的硬件结构,能够使用通用的计算机。例如,变量访问一贯性检查装置具有:输入输出装置12,其从存储介质读入作为检查对象的计算机程序(源代码D01);存储装置14,其存储由输入输出装置12读入的源代码D01、分析的中间数据;CPU(中央处理装置)11,其执行各种运算并分析源代码DOl ;输入装置13,其用于使用户将分析所需的信息输入;以及显示装置15,其对从CPUll输出的检查结果进行显示。还能够利用输入输出装置12将检查结果写入至存储介质。另外,变量访问一贯性检查装置还能够作为客户服务器模型而实现。例如,经由计算机网络将通用的个人计算机(客户端)与服务器连接。由此,能够经由计算机网络而将具有图1所示的CPUll的服务器与输入输出装置12、输入装置13、存储装置14、或者显示装置15连接。在该情况下,变量访问一贯性检查装置主要由CPUll (服务器)构成,在变量访问一贯性检查装置中不包含输入输出装置12、输入装置13、存储装置14、或者显示装置15。在该情况下,只要取代存储装置14而在服务器11所具有的内部硬盘暂时存储分析的过程中所生成的中间数据即可。参照图2,对CPUlI的功能结构进行说明。在具有CPUlI的计算机中,安装并执行用于使具有CPUll的计算机作为变量访问一贯性检查装置而起作用的计算机程序(变量访问一贯性检查程序)。由此,CPUll构成以下所示的各信息处理部。此外,在这里,示出了通过软件实现变量访问一贯性检查装置的例子,但是,当然还能够准备用于执行以下所示的各信息处理的专用硬件而构成变量访问一贯性检查装置。CPUll构成分支程序块确定部21、变量检测部22、总分支数量检测部23、写入分支数量检测部24、分支数量判断部26、以及检查结果输出部28。分支程序块确定部21从存储装置14读入源代码D01,从成为检查对象的计算机程序中确定分支程序块。分支程序块由基于规定的条件而切换并执行多个分支处理的一组语句构成。“语句”是指源代码中的每I行的处理单位。具体而言,例如在C语言的情况下,分支程序块是指通过if语句或者switch语句等条件进行判定并切换并执行多个处理(分支处理)的语句内的、由括号和包围的处理单位。作为能够判定为条件分支的位置,例如预先对“if”以及“switch”进行规定。分支程序块确定部21从成为分析对象的源代码DOl中确定能够判定为条件分支的位置,将在其后续接的由“ {”和“} ”包围的部位确定为分支程序块。例如,在if语句的情况下,分支程序块确定部21将if语句的条件语句“ O ”结束之后的“ {”判断为分支程序块的开始。然后,在检测出“} ”、且在其后并未续接有else语句的情况下,将该“} ”判断为分支程序块的结尾。另一方面,在其后续接有else语句的情况下,再次检测出接下来的“}”,并将该判断为分支程序块的结尾。在if语句的情况下,在其后续接的处理在I行中结束时,有时也省略“{”、“}”,但是,在该情况下,判断为在这I行的开头存在“ {”、且在这I行的末尾存在“} ”,进行相同的处理。另外,在switch语句的情况下,将由“ Γ和“} ”包围的部分理解为分支程序块。由分支程序块确定部21确定的分支程序块暂时存储于存储部14中。变量检测部22从存储部14读入分支程序块,检测出在分支程序块内进行写入的变量。具体而言,变量检测部22针对分支程序块内的每个分支处理而检测出被写入的变量。例如,在C语言的情况下,检测出由“=”表示的式子的左边的所有变量。在确本文档来自技高网...

【技术保护点】
一种变量访问一贯性检查装置,其对计算机程序进行检查,该变量访问一贯性检查装置的特征在于,具有:分支程序块确定部,其从成为检查对象的所述计算机程序中确定分支程序块,该分支程序块由基于规定的条件而切换并执行多个分支处理的一组语句构成;变量检测部,其检测在所述分支程序块内进行写入的变量;总分支数量检测部,其检测能够在所述分支程序块内切换的分支处理的数量;写入分支数量检测部,其检测对所述变量进行写入的分支处理的数量;分支数量判断部,其判断能够在所述分支程序块内切换的分支处理的数量是否与对所述变量进行写入的分支处理的数量一致;以及检查结果输出部,其在所述分支数判断部判断为能够在所述分支程序块内切换的分支处理的数量与对所述变量进行写入的分支处理的数量不一致的情况下,将所述变量以及所述分支程序块的至少一方输出。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:市川智
申请(专利权)人:日产自动车株式会社
类型:发明
国别省市:日本;JP

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

1