可执行模型的在线形式验证的制作方法

文档序号:6333904阅读:214来源:国知局
专利名称:可执行模型的在线形式验证的制作方法
可执行模型的在线形式验证
背景技术
总体而言,系统开发过程包括需求开发阶段、设计和开发阶段以及验证阶段。需求可表征为特定产品或服务应当如何实施的文件化需要。更具体地,需求可指的是识别系统的必要功能、属性、性能、特性或质量的语句。需求规格书形式的需求被用作系统开发过程的设计阶段的输入,以设计对于特定系统而言什么样的元素和功能是必需的。需求规格书可以使用多种语言表示。这些语言本质上可以是图形的或文字的,且可以包括但不限于转换系统(例如,状态机)、事件序列表(例如,情形或序列图表)以及结构化英语语言。系统使用软件或硬件或两者实施,通常使用接口,所述接口采用感测环境 (包括使用者)输入的传感器和控制硬件的致动器来实施。在复杂系统中,尤其是在主要关注安全性的系统中,需要进行系统的穷举测试和验证以确保系统的性能满足系统的需求规格书。测试和验证系统的常用方法是形式验证。广而言之,形式验证是使用一类状态空间试探方法来相对于形式规格书(也称为属性)证实或反驳系统下面的预期算法的正确性的过程。一种形式验证方法是模型检查,模型检查是模型性能的自动的、系统的、穷举的试探。通常,这包括通过使用智能和域特定的抽象技术来试探模型中的所有状态和转换,以在单次操作中考虑整个状态组并减少计算时间。实施技术包括状态空间枚举、符号状态空间枚举、抽象解释、符号模拟以及抽象精化。要验证的属性通常以时序逻辑描述,例如,线性时序逻辑(LTL)或计算树逻辑(CTL)。已知形式验证方法通常仅可应用于设计阶段的系统模型或者系统的软件部分。虽然理论上可能,但是整个系统的模型会是不可能实施的,或者最好也不过是极度大的,从而现有形式方法技术不能缩放以跟踪得到的大状态空间。因而,使用系统模拟的测试是相对于其需求规格书验证系统的唯一方式。然而,由于测试案例(系统的测试输入和期望输出) 由测试者写出,因此他们通常仅测试简单规格书。这是因为针对复杂时序规格书写出测试案例是易错的。此外,根据复杂时序规格书相对于期望输出来检查模拟运行也是耗时的和易错的。因而,需要提供能缩放至任何尺寸系统的可执行系统的自动形式验证的系统和方法。

发明内容
一种可执行系统的自动形式验证的系统和方法包括声明监测器,所述声明监测器配置成相对于规格书中的声明来验证系统。所述声明监测器包括剖析器,所述剖析器配置成使用布尔命题来产生表示规格书中的声明的命题公式;滤波器,所述滤波器配置成使用命题符号的真值赋值(truth assignment)来产生系统进程;以及迹线验证器,所述迹线验证器配置成使用命题符号的真值赋值和命题公式利用系统进程来验证所述声明。一种相对于规格书中的声明来验证系统的方法,包括使用布尔命题来产生表示规格书中的声明的命题公式,其中,每个布尔命题与声明中的原子声明相关联;以及生成测试案例,所述测试案例被设计成相对于所述声明来评估系统的性能。
所述方法还包括响应于测试案例在系统上的模拟来生成配置数据;将所述配置数据转换为命题符号的真值赋值;使用命题符号的真值赋值来产生系统进程;以及以命题符号和命题公式使用系统进程来验证所述声明。方案1. 一种相对于规格书中的声明来验证系统的方法,所述方法包括以下步骤使用布尔命题来产生表示规格书中的声明的命题公式,每个布尔命题与声明中的原子声明相关联;生成测试案例,所述测试案例被设计成相对于所述声明来评估系统的性能;响应于测试案例在系统上的模拟来生成配置数据;将所述配置数据转换为命题符号的真值赋值;使用命题符号的真值赋值来产生系统进程;以及以命题符号和命题公式使用系统进程来验证所述声明。方案2.根据方案1所述的方法,其中,所述配置数据包括测试案例输入序列、具有当前值的状态变量以及具有当前值的输出变量。方案3.根据方案1所述的方法,其中,规格书中的声明以形式语言书写。方案4.根据方案1所述的方法,还包括生成关联表,所述关联表识别原子声明和命题符号之间的关系。方案5.根据方案4所述的方法,其中,将配置数据转换为命题符号包括使用所述关联表将配置数据转换为布尔符号。方案6.根据方案1所述的方法,其中,所述测试案例是包括多个测试案例的测试组集。方案7. —种计算机可读介质,有形地实施计算机可执行指令,所述指令用于使用布尔命题来产生表示规格书中的声明的命题公式,每个布尔命题与声明中的原子声明相关联;生成测试案例,所述测试案例被设计成相对于所述声明来评估系统的性能;响应于测试案例在系统上的模拟来生成配置数据;将所述配置数据转换为命题符号的真值赋值;使用命题符号的真值赋值来产生系统进程;以及以命题符号和命题公式使用系统进程来验证所述声明。方案8.根据方案7所述的计算机可读介质,其中,所述配置数据包括测试案例输入序列、具有当前值的状态变量以及具有当前值的输出变量。方案9.根据方案8所述的计算机可读介质,还包括生成关联表,所述关联表识别原子声明和命题符号之间的关系。方案10.根据方案9所述的计算机可读介质,其中,将配置数据转换为命题符号包括使用所述关联表将配置数据转换为布尔符号。方案11.根据方案1所述的计算机可读介质,其中,所述测试案例是包括多个测试案例的测试组集。方案12. —种配置成相对于规格书中的声明来验证系统的声明监测器,所述声明监测器包括剖析器,所述剖析器配置成使用布尔命题来产生表示规格书中的声明的命题公式;滤波器,所述滤波器配置成使用命题符号的真值赋值来产生系统进程;以及迹线验证器,所述迹线验证器配置成使用命题符号的真值赋值和命题公式利用系统进程来验证所述声明。方案13.根据方案12所述的声明监测器,其中,所述剖析器通过将声明剖析为布尔形式的原子声明且将所述表达式中的每个赋值给命题符号来将规格书中的声明转换为布尔命题。方案14.根据方案13所述的声明监测器,其中,所述剖析器还配置成生成关联表, 所述关联表识别原子声明和用于规定布尔命题的命题符号之间的关系。方案15.根据方案14所述的声明监测器,其中,所述滤波器配置成接收响应于测试案例在设计模型上的模拟生成的配置数据。方案16.根据方案14所述的声明监测器,其中,所述滤波器配置成使用由剖析器生成的关联表将响应于测试案例在系统上的模拟生成的配置数据转换为布尔符号的真值赋值序列,所述关联表识别布尔表达式和用于生成布尔命题的命题符号之间的关系。方案17.根据方案15所述的声明监测器,其中,规格书中的声明以形式语言书写。附加特征将从以下说明和所附权利要求结合附图显而易见。


图1示出了根据一个实施例的可执行系统的在线形式验证的示例性系统;图2示出了根据图1所示的实施例的示例性基于声明的验证算法,使用该系统来验证测试案例声明;图3示出了根据图2的用于实施声明监测器的示例性算法;图4示出了根据图3的用于评价声明的示例性算法;图5示出了根据一个实施例的示例性离线形式验证系统;图6示出了根据图5所示的系统的示例性基于声明的验证算法,使用一组迹线来验证规格书中的声明;图7示出了根据图6的用于实施声明监测器的示例性算法;和图8示出了根据图7的用于评价声明的示例性算法;
具体实施例方式本文所述的实施例总体上涉及可执行系统的形式验证的系统和方法,且更具体地涉及相对于规格书中的指定部分进行的可执行系统的自动形式验证的系统和方法。所述系统和方法采用基于声明的验证过程,所述验证过程可缩放至任何尺寸系统且配置成在有或没有直接访问系统(即,分别为在线或离线)的情况下操作。使用形式验证系统的一种在线方法,产生一套测试案例以验证来自于规格书的具体声明。通常,声明是用于验证规格书中所包含的变量的某些属性的真-假语句。测试案例由系统模拟且结果发送至声明监测器用于评价和验证声明。使用形式验证系统的一种离线方法,表示系统配置序列的一组迹线被生成且输入到系统。每个迹线的配置发送到声明监测器用于评价和验证其中包含的声明。
在线验证系统图1示出了示例性在线形式验证系统10,具有与声明监测器14和可执行系统16 通信的测试组集12。系统10可以在一个或多个合适的计算装置上实施,通常包括可以是在计算装置内的计算机可读介质上作为一组计算机可执行指令有形地实施的软件应用的应用。计算装置可以是多种计算装置中的任一种,如个人计算机、处理器、手持计算装置等。计算装置通常均包括可由一个或多个装置(如上所述的装置)执行的指令。计算机可执行指令可以从使用各种编程语言和/或技术生成的计算机程序编译或译码,包括但不限于(单独或以组合的形式)Java ,C,C++, Visual Basic, Java Script, Perl等。通常,处理器(或微处理器)例如从存储器、计算机可读介质等接收指令并执行这些指令,从而执行一个或多个过程,包括本文所述的过程中的一个或多个。这种指令和其它数据可以使用各种已知的计算机可读介质存储和传输。计算机可读介质包括参与提供数据(例如,指令)的任何介质,所述数据可以由计算装置(如,计算机)读取。这种介质可以采用许多形式,包括但不限于非易失性介质、易失性介质和传输介质。例如,非易失性介质包括光盘或磁盘和其它持久性存储器。易失性介质包括动态随机存取存储器(DRAM),通常构成主存储器。计算机可读介质的常见形式包括计算机可读取的任何介质。参考图1,测试组集12是设计成针对规格书中所阐述的各个声明评估系统性能的测试案例集合。通常,测试案例是输入序列和预期输出序列,但也可包括测试案例ID、测试说明、相关或前提需求、测试范畴、备注等。测试组集12可以使用任何可访问介质存储,包括但不限于文件,例如字处理文本、电子表格、表或数据库。如下文更详细所述,声明监测器14包括剖析器14a、滤波器14b、存储装置14c和迹线验证器14d。剖析器14a是分解以逻辑语言(例如,LTL)书写的规格书中的声明且输出一组原子声明(不能进一步分解的声明)的软件。存储装置14c存储关联表,所述关联表将由剖析器14a产生的每个原子声明与独特命题符号相关联。滤波器14b是这样的软件其将系统赋值配置作为声明中所述变量的输入,且通过使用配置中变量的值来评价相应原子声明而将真值(真或假)赋值给命题符号。迹线验证器14d具有命题公式F,命题公式F是所有原子声明都由相应命题符号取代的声明。迹线验证器14d使用从对应于测试案例的系统迹线获得的配置序列中的每个配置的命题的真值来评价F。如下文更详细所述,测试组集中的每个测试案例都被以建模语言(例如但不限于,C,C++,统一建模语言(UML)和Simulink/Stateflow)书写的可执行系统来模拟。模拟结果发送到声明监测器14,用于评价和验证测试案例声明。图2示出了根据图1所示的系统的示例性基于声明的验证算法20,采用可执行系统16来验证测试案例声明。算法20在步骤22通过初始化可执行系统16和测试组集12 而开始。在步骤24,算法20确定是否已经执行初始化测试组集中的所有测试案例。如果是,在步骤26产生“测试组集完成”输出。如果测试组集12仍包含未执行测试案例,在步骤28,选择组集12中的下一个测试案例。在步骤30,算法20确定来自于所选择测试案例的所有输入是否已经用完。如果是,在步骤32产生“测试案例完成”输出。如果仍然存在要执行的输入,在步骤34,来自于所选择测试案例的下一个测试输入被发送到系统16用于模拟。在步骤36,从系统16收集表示系统配置(或模型)(下文称为“配置e”)的测试案例模拟数据。在该示例中,配置e包括测试案例输入、具有当前值的状态变量和具有当前值的输出变量。对应于测试案例的系统配置序列也可以称为系统进程。在步骤38,配置e的副本发送到声明监测器14,用于评价和验证声明。在一个非限制性方法中,与配置e相关的数据存储在文件或数据库中,或以其它方式能由其它系统部件和/或过程访问,如下文参考系统的其它特征详细描述的那样。图3示出了用于实施声明监测器14的示例性算法40。算法在步骤42通过将结果变量设定为“ΝΑ”而初始化,表示基于当前信息真或假结果是不可应用的,或者在一些情况下,“NA”可表示在过程开始或结束时用于结果的值的初始化占位符。在步骤44,算法40 确定是否完成当前测试。如果是,在步骤46,系统输出“NA”。如果所选择测试案例未完成, 那么在步骤48收集配置e且在步骤50评价当前声明。图4示出了根据图3的步骤50用于评价当前声明的算法100。使用该算法,被设计成验证具体声明的选择测试案例相对于该声明的规格书需求来评价。换句话说,来自于系统测试案例模拟的结果(即,配置e)相对于来自于规格书的相应声明进行评价,以确定由系统表示的声明是否满足规格书的需求。算法100在步骤102通过从规格书提取给定声明而开始,通常以形式语言书写,形式语言把时间看作为状态序列,例如线性时序逻辑(LTL)。在时序逻辑中,语句随时间可以是恒定的,但是其真值可以随时间变化。例如,在一个给定时间,语句可以为真,但在另一个时间,语句可以为假。然而,在同一状态(例如,时间瞬间、时间点或即时),没有语句可以同时为真或假。以形式语言书写规格书允许系统相对于规格书自动地模拟和验证系统16。使用一种方法,规格书以动作LTL(ActionLTL)书写,动作LTL是线性时序逻辑 (LTL)的变型,其中,其允许规定复杂的时序需求,如事件发生、算术表达式和参数函数。然后,在步骤104,动作LTL声明使用剖析器1 转换为布尔命题。换句话说,声明中的复杂表达式分解为组成原子表达式,在该例子中为最简单形式的布尔表达式。在步骤106,每个原子表达式被赋值命题符号且总的赋值输出到关联表,所述关联表存储布尔形式的变量表达式和赋值的命题符号之间的关系。在该例子中,关联表存储在存储装置14c中,但是如本领域普通技术人员理解的那样,可以使用适合于存储、访问和取回关联表的任何器件。在步骤 108,算法100通过用相对应的命题符号取代每个原子表达式来产生命题公式。如下文更详细所述,命题公式输入到迹线验证器14d(图1)且与其它系统特征结合使用以评价和验证给定声明。在步骤110,滤波器14b取回配置e数据,包括状态变量和值。在步骤112,与滤波器14b相关的滤波程序使用每个配置中的变量值将真值(真或假)赋值给与原子声明相对应的每个命题符号。更具体地,滤波器14b依赖关联表来确定哪个原子表达式被赋值给哪个命题符号。在步骤114,原子表达式和命题符号之间的关系由滤波器14b使用以将系统 16的测试案例模拟(即,系统进程)转换为命题符号的真值赋值序列。因而,不是使得模拟测试案例在以形式语言表达的变量上运行,滤波器14b产生命题符号的赋值序列。在步骤116,来自于步骤108的命题公式和来自于步骤114的命题符号的赋值序列被输入迹线验证器14d以在形式上验证系统16中阐述的声明满足规格书中阐述的声明。 在步骤118,迹线验证器输出迹线结果。
回到图3,算法40在步骤120确定来自于步骤118的迹线结果是否为“真”,意味着迹线验证器14d能够针对给定声明相对于规格书验证系统16。如果是,结果为“真”,那么系统在步骤122输出“真”语句。如果结果不是“真”,那么算法40在步骤124确定结果是否为“假”。如果确定假结果,那么系统在步骤126输出“假”语句。如果结果不是假,那么在步骤128通过记录与评价有关的信息来更新当前声明。如果结果既不是真也不是假, 这表示系统需要完成状态的进一步处理和评价。离线验证系统图5示出了示例性离线形式验证系统200。与图1的在线系统类似,离线验证系统 200配置成相对于具体系统验证来自于规格书的声明,但是在测试期间不访问实际系统。验证系统200具有与声明监测器204通信的迹线组集202。离线系统200的声明监测器204 与在线声明监测器14大致相同,其中,声明监测器204包括剖析器204a、滤波器204b、存储装置204c和迹线验证器204d。然而,与图1的测试组集12相比,迹线组集202使用在系统上模拟的测试案例,使用一组迹线来确认来自于规格书的声明。在一个示例中,迹线表示被输入声明监测器204以便验证的系统配置序列。迹线可以从任何合适测试生成软件生成, 例如但不限于Reactis 。从一方面看,迹线类似于使用上述在线方法的系统进程,其中迹线包括输入、状态变量和输出变量的序列。换句话说,迹线配置表示响应于具体输入序列的系统选择状态和输出变量。图6示出了根据图5所示的系统的示例性基于声明的验证算法220,采用一组迹线来验证规格书中的声明。算法220在步骤222通过将该组迹线加载到系统200中而开始。 在步骤224,算法220确定是否已经执行加载测试组集202中的所有迹线。如果是,在步骤 226产生“迹线组集完成”输出。如果迹线组集202仍包含未执行迹线,在步骤228,选择组集202中的下一个迹线。在步骤230,算法200确定所选择迹线的所有配置(例如,进程) 是否已经用完。如果是,在步骤232产生“迹线完成”输出。如果仍然存在要执行的配置, 在步骤234,收集根据给定迹线的表示系统配置的迹线配置数据,本文称为“配置e”。在该示例中,配置e包括迹线输入序列、具有当前值的状态变量和具有当前值的输出变量。在步骤236,配置e的副本发送到声明监测器204,用于评价和验证声明。在一个非限制性方法中,与配置e相关的数据存储在文件或数据库中,或以其它方式能由其它系统部件和/或过程访问,如下文参考系统的其它特征详细描述的那样。图7示出了用于实施声明监测器204的示例性算法300。算法300在步骤302通过将结果变量设定为“ΝΑ”初始化,表示基于当前信息真或假结果是不可应用的,或者在一些情况下,“NA”可表示在过程开始或结束时用于结果的值的初始化占位符。在步骤304,算法300确定是否完成当前迹线。如果是,在步骤306,系统输出“NA”。如果所选择迹线未完成,那么在步骤308收集配置e且在步骤310评价当前声明。图8示出了根据图7的步骤310用于评价当前声明的算法400。使用该算法,被设计成验证具体声明的选择迹线相对于该声明的规格书需求来评价。换句话说,来自于系统迹线的结果(即,配置e)相对于来自于规格书的相应声明进行评价,以确定由系统表示的声明是否满足规格书的需求。算法400在步骤402通过从规格书提取给定声明而开始,通常以形式语言书写,例如线性时序逻辑(LTL)或动作LTL,动作LTL是线性时序逻辑(LTL)的变型,其中,其允许规定复杂的时序需求,如事件发生、算术表达式和参数函数。然后,在步骤404,动作LTL声明使用剖析器20 剖析以识别布尔命题。换句话说,声明中的复杂表达式分解为组成原子表达式,在该例子中为最简单形式的布尔表达式。在步骤406,每个原子表达式被赋值命题符号且总的赋值输出到关联表,所述关联表存储布尔形式的变量表达式和赋值的命题符号之间的关系。在该例子中,关联表存储在存储装置2(Mc中,但是如本领域普通技术人员理解的那样,可以使用适合于存储、访问和取回关联表的任何器件。在步骤408,算法400通过用相对应的命题符号取代每个原子表达式来产生命题公式。如下文更详细所述,命题公式输入到迹线验证器204d(图5)且与其它系统特征结合使用以评价和验证给定声明。在步骤410,滤波器14b从选择迹线取回配置e数据,包括状态变量和值。在步骤 412,与滤波器204b相关的滤波程序使用每个配置中的变量值将真值(真或假)赋值给与原子声明相对应的每个命题符号。更具体地,滤波器204b依赖关联表来确定哪个原子表达式被赋值给哪个命题符号。在步骤414,原子表达式和命题符号之间的关系由滤波器204b 使用以将系统迹线(即,系统进程)转换为命题符号的真值赋值序列。因而,不是使得迹线在以形式语言表达的变量上运行,滤波器204b产生命题符号的赋值序列。在步骤416,来自于步骤408的命题公式和来自于步骤414的命题符号的真值赋值迹线被输入迹线验证器204d以在形式上验证迹线满足规格书中阐述的声明。在步骤418, 迹线验证器输出迹线结果。回到图7,算法300在步骤420确定来自于步骤418的声明监测器的结果是否为 “真”,意味着迹线验证器204d能够针对给定声明相对于规格书验证迹线。如果是,结果为 “真”,那么系统在步骤422输出“真”语句。如果结果不是“真”,那么算法300在步骤4 确定结果是否为“假”。如果确定假结果,那么系统在步骤4 输出“假”语句。如果结果不是假,那么在步骤4 通过记录与评价有关的信息来更新当前声明。如果结果既不是真也不是假,这表示系统需要完成状态的进一步处理和评价。应当理解的是,上面的描述旨在是示例性的而非限制性的。本领域技术人员在阅读上面的描述后将会明白不同于所提供示例的很多替代性方法或应用。本发明的范围不应当参考上面的描述而被确定,而是应当参考所附权利要求以及这些权利要求等价物的全部范围而被确定。可以预见和预期的是,在本文讨论的领域将会出现进一步的发展,并且所公开的系统和方法将被并入这些进一步示例中。总之,应当理解的是,本发明能够进行修改和变化并且仅受权利要求的限制。已经特别示出和描述了当前的实施例,这些实施例仅仅是最佳模式的示例。本领域技术人员应当理解的是,在不偏离本发明精神和范围的情况下,实施权利要求时可采用本文描述实施例的各种替代物,从而涵盖这些权利要求及其等价物范围内的方法和系统。 该描述应当被理解为包括本文描述的元件的所有新颖且非显而易见的组合,并且可在本申请或后续申请中给出对这些元件的任何新颖且非显而易见的组合的权利要求。而且,前面的实施例是示例性的,并且没有单一的特征或元件对于本申请或后续申请中可请求保护的所有可能的组合而言是必要的。如本领域技术人员所理解的,权利要求中使用的所有术语意图被赋予其最广义的合理解释以及它们的普通意义,除非本文中作出明确的相反指示。特别地,诸如“一”、“该”、 “所述”等单数冠词的使用应当被解读为记载所指元件的一个或多个,除非权利要求记载了相反的明确限制。
权利要求
1.一种相对于规格书中的声明来验证系统的方法,所述方法包括以下步骤使用布尔命题来产生表示规格书中的声明的命题公式,每个布尔命题与声明中的原子声明相关联;生成测试案例,所述测试案例被设计成相对于所述声明来评估系统的性能; 响应于测试案例在系统上的模拟来生成配置数据; 将所述配置数据转换为命题符号的真值赋值; 使用命题符号的真值赋值来产生系统进程;以及以命题符号和命题公式使用系统进程来验证所述声明。
2.根据权利要求1所述的方法,其中,所述配置数据包括测试案例输入序列、具有当前值的状态变量以及具有当前值的输出变量。
3.根据权利要求1所述的方法,其中,规格书中的声明以形式语言书写。
4.根据权利要求1所述的方法,还包括生成关联表,所述关联表识别原子声明和命题符号之间的关系。
5.根据权利要求4所述的方法,其中,将配置数据转换为命题符号包括使用所述关联表将配置数据转换为布尔符号。
6.根据权利要求1所述的方法,其中,所述测试案例是包括多个测试案例的测试组集。
7.一种计算机可读介质,有形地实施计算机可执行指令,所述指令用于使用布尔命题来产生表示规格书中的声明的命题公式,每个布尔命题与声明中的原子声明相关联;生成测试案例,所述测试案例被设计成相对于所述声明来评估系统的性能; 响应于测试案例在系统上的模拟来生成配置数据; 将所述配置数据转换为命题符号的真值赋值; 使用命题符号的真值赋值来产生系统进程;以及以命题符号和命题公式使用系统进程来验证所述声明。
8.根据权利要求7所述的计算机可读介质,其中,所述配置数据包括测试案例输入序列、具有当前值的状态变量以及具有当前值的输出变量。
9.根据权利要求8所述的计算机可读介质,还包括生成关联表,所述关联表识别原子声明和命题符号之间的关系。
10.根据权利要求9所述的计算机可读介质,其中,将配置数据转换为命题符号包括使用所述关联表将配置数据转换为布尔符号。
全文摘要
本发明涉及可执行模型的在线形式验证。一种可执行系统的自动形式验证的系统和方法包括声明监测器,所述声明监测器配置成相对于规格书中的声明来验证系统。所述声明监测器包括剖析器,所述剖析器配置成使用布尔命题来产生表示规格书中的声明的命题公式;滤波器,所述滤波器配置成使用命题符号的真值赋值来产生系统进程;以及迹线验证器,所述迹线验证器配置成使用命题符号的真值赋值和命题公式利用系统进程来验证所述声明。
文档编号G06F11/00GK102298541SQ20101051030
公开日2011年12月28日 申请日期2010年10月14日 优先权日2009年10月14日
发明者P·V·V·加内桑, R·塞图, S·K·莫哈里克 申请人:通用汽车环球科技运作公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1