用于分析软件的方法和设备技术

技术编号:6642124 阅读:173 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及用于分析软件的方法和设备。一种用于评估机器可执行的软件代码说明的计算机实施的方法,包括:使用计算机生成对应于软件代码说明的系统依赖图。系统依赖图包括元素,所述元素包括节点和边,其中计算机评估系统依赖图。系统依赖图的评估包括:选择在软件代码说明中被修改的变量,遍历到系统依赖图的所选择的元素,所选择的元素与所选择的变量相关联,仅评估系统依赖图的所选择的元素,和识别所选择的元素中其处修改了所选择的变量的状态的元素。

【技术实现步骤摘要】

本专利技术涉及嵌入式系统设计的设计自动化,且具体地涉及使用计算机的软件编程代码说明的结构分析。
技术介绍
在此部分中的陈述仅提供了涉及本公开的背景信息,且不一定构成现有技术。已知的控制系统包括嵌入式系统,所述嵌入式系统具有构造为执行嵌入式软件程序以完成一个或多个规定函数的控制模块。控制模块和嵌入式软件程序可同时设计和开发,这经常称为共同设计过程。控制模块可包括可编程处理装置,包括特定用途集成电路 (ASIC)、电子电路和例如微处理器的中央处理单元之一。可编程处理装置包括存储器和存储装置,或信号上和运行上连接到存储器和存储装置。示例性的存储器和存储装置例如包括只读存储器(ROM),可编程只读存储器(PR0M),随机存取存储器(RAM)和硬盘驱动器。可编程处理装置构造为执行一个或多个嵌入式软件或固件程序。控制模块可包括信号上和运行上连接到处理器的组合逻辑电路(一个或多个),输入/输出电路(一个或多个)和装置 (一个或多个)。控制模块包括合适的信号调理和缓冲电路和其他合适的部件,以实现规定函数。嵌入式软件可使用程序语言开发和制订,所述程序语言可编译为适合于由控制模块的可编程处理装置存储和执行的机器代码。已知的软件分析方法包括程序切片(program slicing)以识别可能影响程序中特定点处的计算的程序语句的子组。此程序点可定义为语句或使用在语句处的特定变量,该程序点称为切片判据。在单入单出程序的简单情况中, 程序片通过找出所有传递数据流且导向切片标准的控制相关性来确定。切片用作维护或再使用工具以用于例如程序理解、调试、回归测试和从现有代码获取函数的活动。作为交互工具,程序切片器便于通过直接将源代码转换为简化的说明来理解软件的相关部分。程序片(program slice)由可影响标准变量的值的那些语句组成,包括是否执行该语句。一个已知的程序片通过基于软件程序的控制流图表示迭代地求解数据和控制流方程来计算。控制流图是适合于系统性分析的程序的表示,它由命令性语言源代码说明使用标准技术导出。控制流图包括称为节点的操作,和称为边的在操作之间的控制和数据路径。流图是等价表示,它包括基本过程和基本过程之间的控制路径。基本过程是总是作为组来执行的一序列操作。控制流图是源代码分析的常用表示,且存在标准技术来找出控制依赖关系和数据流依赖关系。在基于控制流图的方法中,系统依赖图概述了整个程序或其一部分的控制依赖和数据依赖。系统依赖图由一个或多个过程依赖图组成,其中每个过程依赖图概述了过程内控制和数据流依赖。程序中每个过程所对应的一个过程依赖图使用指示了过程间数据依赖和控制依赖的边连接在系统依赖图中。基于图的方法允许更精确的程序片的计算且包括更少的语句。线程控制流程图可定义为使得所有平行线程在单个控制流图中被明确地指示,然后分析所述单个控制流图以找出干涉依赖,所述干涉依赖是平行软件线程之间的数据流依赖,以及用于多个软件线程的可行的执行次序。
技术实现思路
一种用于评估机器可执行的软件代码说明的计算机实施的方法,包括使用计算机生成对应于软件代码说明的系统依赖图。系统依赖图包括元素,所述元素包括节点和边, 其中计算机评估系统依赖图。系统依赖图的评估包括选择在软件代码说明中被修改的变量,遍历到系统依赖图的所选择的元素,所选择的元素与所选择的变量相关,仅评估系统依赖图的所选择的元素,且识别所选择的元素中其处修改了所选择的变量的状态的元素。本专利技术提供以下技术方案方案1. 一种用于评估机器可执行的软件代码说明的计算机实施的方法,包括 使用计算机生成对应于软件代码说明的系统依赖图,所述系统依赖图包括元素,所述元素包括节点和边,其中计算机评估系统依赖图,系统依赖图的所述评估包括 选择在软件代码说明中被修改的变量;遍历到系统依赖图的所选择的元素,所选择的元素与所选择的变量相关联;仅评估系统依赖图的所选择的元素;和识别所选择的元素中其处修改了所选择的变量的状态的元素。方案2.根据方案1所述的方法,进一步包括识别所选择的元素中其处修改了所选择的变量和相关变量其中之一的元素。方案3.根据方案1所述的方法,进一步包括识别所选择的元素中其处使用了相关变量的元素。方案4.根据方案1所述的方法,其中仅评估系统依赖图的所选择的元素进一步包括忽略系统依赖图的未选择的元素。方案5.根据方案1所述的方法,其中遍历到系统依赖图的所选择的元素,所选择的元素与所选择的变量相关联,包括执行依赖分析以选择所选择的元素。方案6.根据方案5所述的方法,其中执行依赖分析以选择所选择的元素包括 识别包括作为数据边和控制边其中之一的边的每个元素;和选择包括数据边和控制边其中之一的元素。方案7.根据方案5所述的方法,其中执行依赖分析以选择所选择的元素包括 识别包括作为数据边和控制边其中之一的边的每个元素;和选择包括数据边和控制边二者的元素。方案8.根据方案5所述的方法,其中执行依赖分析以选择所选择的元素包括 识别包括作为连续节点和终端节点其中之一的节点的每个元素;和选择仅包括连续节点的元素。方案9.根据方案8所述的方法,进一步包括忽略包括终端节点的元素。方案10.根据方案5所述的方法,其中执行依赖分析以选择所选择的元素包括 识别与包括作为全局变量和局部变量其中之一的节点的每个元素相关联的变量;和选择包括包括全局变量的节点的元素。方案11.根据方案10所述的方法,进一步包括跳过包括包括局部变量的节点的元素。方案12.根据方案5所述的方法,其中执行依赖分析以选择所选择的元素包括 识别包括包含被调用过程的节点的元素;和仅当被调用过程修改所选择的变量时,选择包括包含被调用过程的节点的元素。方案13.根据方案12所述的方法,进一步包括当被调用过程不修改所选择的变量时跳过包括包含被调用过程的节点的元素。方案14. 一种用于静态评估在嵌入式系统内可执行的机器可执行的软件代码说明的计算机实施方法,包括使用计算机生成对应于软件代码说明的系统依赖图,所述系统依赖图包括多个元素, 所述元素包括节点和边,其中计算机评估系统依赖图,系统依赖图的所述评估包括 选择在软件代码说明中的变量;遍历到系统依赖图的所选择的元素,所选择的元素与所选择的变量相关联; 仅评估系统依赖图的所选择的元素以识别所选择的元素中其处修改了所选择的变量的状态的元素;和生成数据输出,所述数据输出指示系统依赖图的所选择的元素中其处修改了所选择的变量的状态的元素。方案15.根据方案14所述的方法,进一步包括识别所选择的元素中其处修改了所选择的变量和相关变量其中之一的状态的元素。方案16.根据方案14所述的方法,进一步包括识别所选择的元素中其处使用了相关变量的元素。方案17.根据方案14所述的方法,其中遍历到系统依赖图的所选择的元素,所选择的元素与所选择的变量相关联,包括执行依赖分析以选择所选择的元素。方案18.根据方案17所述的方法,其中执行依赖分析以选择所选择的元素包括 识别包括作为数据边和控制边其中之一的边的每个元素;和选择包括数据边和控制边其中之一的元素。方案19.根据方案17所述的方法,其中执行依赖分析以选择所选择的元素包括 识别包括作为数据边和控制边其中之一的边的每个元素;和选择包括数据边和控制边二者的元素。方案20.根据方案17本文档来自技高网
...

【技术保护点】
1. 一种用于评估机器可执行的软件代码说明的计算机实施的方法,包括:使用计算机生成对应于软件代码说明的系统依赖图,所述系统依赖图包括元素,所述元素包括节点和边,其中计算机评估系统依赖图,系统依赖图的所述评估包括:选择在软件代码说明中被修改的变量;遍历到系统依赖图的所选择的元素,所选择的元素与所选择的变量相关联;仅评估系统依赖图的所选择的元素;和识别所选择的元素中其处修改了所选择的变量的状态的元素。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:S·舒库马兰R·塞图
申请(专利权)人:通用汽车环球科技运作有限责任公司
类型:发明
国别省市:US

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

1