CN106528100A - 用于安全关键软件开发的基于模型的技术和过程的系统和方法 - Google Patents

用于安全关键软件开发的基于模型的技术和过程的系统和方法 Download PDF

Info

Publication number
CN106528100A
CN106528100A CN201610922808.4A CN201610922808A CN106528100A CN 106528100 A CN106528100 A CN 106528100A CN 201610922808 A CN201610922808 A CN 201610922808A CN 106528100 A CN106528100 A CN 106528100A
Authority
CN
China
Prior art keywords
model
software
design
test case
analysis
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610922808.4A
Other languages
English (en)
Other versions
CN106528100B (zh
Inventor
T·L·约翰逊
A·W·克拉波
M·R·杜林
A·瓦施
K·Y·肖
L·帕罗里尼
P·马诺里奥斯
M·李
郁涵
S·A·斯塔塞
G·R·斯科斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
General Electric Co
Original Assignee
General Electric Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by General Electric Co filed Critical General Electric Co
Publication of CN106528100A publication Critical patent/CN106528100A/zh
Application granted granted Critical
Publication of CN106528100B publication Critical patent/CN106528100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

公开了一种用于安全关键软件的基于模型的设计的方法。该方法包括接收自然语言软件需求,通过实施语义建模或图形化建模来开发规范模型,将形式需求分析应用于规范模型,由规范模型自动生成基于需求的和鲁棒性测试用例,基于规范模型开发设计模型,将测试用例应用于设计模型,使用设计模型自动生成源代码;使用测试用例和静态分析技术来验证源代码,及由所验证的源代码编译可执行目标代码。如果软件规范或设计模型的分析的结果不符合要求,则调整规范或设计模型,以修正任何不一致,以及重复应用分析和测试用例。公开了一种用于实施基于模型的设计的系统和一种非暂时性计算机可读介质。

Description

用于安全关键软件开发的基于模型的技术和过程的系统和 方法
技术领域
本发明涉及用于安全关键软件开发的基于模型的技术和过程的系统和方法。
背景技术
微处理器控制设备的普及已经导致了功能越来越多的设备,但它也更加依赖于控制这些嵌入式系统的软件的质量。许多潜在危险的设备都是由嵌入式软件(例如,汽车、火车、飞机、炼油厂、化工厂、核电厂和医疗设备等)控制的。验证用于这些设备和系统的操作应用程序代码的正确性的传统方法是困难且低效的。
安全关键软件系统开发解决了这些系统的规模和复杂性的增加,并尊重保持安全关键业务的需要。有一系列的软件工程方法、工具和框架来开发复杂的关键系统。例如,一种方法是将模型驱动的工程技术应用于安全关键系统开发。
传统方法可以包括使用市售的集成设计环境(IDE)工具来进行软件规范建模、确认/验证和测试用例生成和执行。通常,这些工具使用严格的方法来自动或半自动化一部分的详细设计步骤,同时降低了数据输入要求,为剩余的步骤节省时间。
发明内容
技术方案1:一种用于安全关键软件的基于模型的设计的方法,所述方法包括:
接收自然语言软件需求132;
通过实施所述自然语言软件需求的语义建模150和图形化建模152中的至少一个来开发结构化自然语言中的软件规范模型133;
应用所述软件规范模型的形式需求分析;
由所述软件规范模型自动生成基于需求的和鲁棒性测试用例;
基于所述规范模型开发软件设计模型;
将自动生成的基于需求的和鲁棒性测试用例应用于所述软件设计模型;
进行所述软件设计模型的形式分析;
使用所述软件设计模型自动生成源代码136;
通过应用自动生成的测试用例148和静态分析技术来验证所述源代码的覆盖和行为;
由所验证的源代码编译可执行目标代码;以及
通过应用自动生成的测试用例来验证所述可执行目标代码的覆盖和行为。
技术方案2:根据技术方案1所述的方法,包括自动测试用例和规程生成单元由软件规范模型自动生成测试用例。
技术方案3:根据技术方案1所述的方法,包括自动定理证明单元实施自动定理证明技术来分析和验证所述软件规范模型的一致性、正确性和完整性中的至少一个。
技术方案4:根据技术方案1所述的方法,包括如果所述软件规范模型的所述分析的结果不符合要求,则调整所述软件规范模型,以修正与所述自然语言软件需求的任何不一致。
技术方案5:根据技术方案4所述的方法,包括将所述需求分析应用于所调整后的软件规范模型。
技术方案6:根据技术方案1所述的方法,包括自动基于需求的和鲁棒性测试用例和规程生成单元自动生成应用于所述软件设计模型的所述测试用例。
技术方案7:根据技术方案1所述的方法,包括使用模型检查技术来生成应用于所述软件设计模型的所述基于需求的和鲁棒性测试用例。
技术方案8:根据技术方案1所述的方法,包括如果所述软件设计模型的所述分析的结果不符合要求,则调整所述软件设计模型,以修正与所述软件规范模型的任何不一致。
技术方案9:根据技术方案8所述的方法,包括将所述测试用例应用于所调整后的软件设计模型。
技术方案10:一种非暂时性计算机可读介质,具有存储在其上的指令,当由处理器执行时,所述指令使得所述处理器执行用于安全关键软件的基于模型的设计的方法,所述方法包括:
接收自然语言软件需求;
通过实施所述自然语言软件需求的语义建模和图形化建模中的至少一个来开发结构化自然语言中的软件规范模型;
应用所述软件规范模型的形式需求分析;
由所述软件规范模型自动生成基于需求的和鲁棒性测试用例;
基于所述规范模型开发软件设计模型;
将基于需求的和鲁棒性测试用例应用于所述软件设计模型;
进行所述软件设计模型的形式模型分析;
使用所述软件设计模型自动生成源代码;
通过应用测试用例和静态分析技术来验证所述源代码;
由所验证的源代码编译可执行目标代码;以及
将测试用例应用于所述可执行目标代码。
技术方案11:根据技术方案10所述的非暂时性计算机可读介质,所述指令进一步使得所述处理器指示自动测试用例和规程生成单元由所述软件规范模型自动生成所述测试用例。
技术方案12:根据技术方案10所述的非暂时性计算机可读介质,所述指令进一步使得所述处理器指示自动定理证明单元实施自动定理证明技术来分析和验证所述软件规范模型的一致性、正确性和完整性中的至少一个。
技术方案13:根据技术方案10所述的非暂时性计算机可读介质,如果所述软件规范模型的所述分析的结果不符合要求,所述指令进一步使得所述处理器调整所述软件规范模型,以修正与所述结构化自然语言软件需求的任何不一致。
技术方案14:根据技术方案13所述的非暂时性计算机可读介质,所述指令进一步使得所述处理器将所述测试用例应用于所调整后的软件规范模型。
技术方案15:根据技术方案10所述的非暂时性计算机可读介质,所述指令进一步使得所述处理器指示自动测试用例和规程生成单元自动生成应用于所述软件设计模型的所述基于需求的和鲁棒性测试用例。
技术方案16:根据技术方案10所述的非暂时性计算机可读介质,所述指令进一步使得所述处理器使用模型检查技术来生成应用于所述软件设计模型的所述基于需求的和鲁棒性测试用例。
技术方案17:根据技术方案10所述的非暂时性计算机可读介质,如果所述软件设计模型的所述分析的结果不符合要求,所述指令进一步使得所述处理器调整所述软件设计模型,以修正与所述软件规范模型的任何不一致;以及将所述测试用例应用于所调整后的软件设计模型。
技术方案18:一种用于安全关键软件的基于模型的设计的系统,包括:
至少一个计算机,具有连接到电子通信网络的处理器;
所述处理器执行指令,使得所述处理器控制:
被配置为执行语义建模技术的语义建模单元和被配置为执行图形建模技术的图形化建模单元中的至少一个,所述语义建模单元和所述图形化建模单元被配置为由自然语言软件需求分别开发结构化自然语言中的软件规范模型;
所述软件规范模型的形式需求分析;
自动测试用例和规程生成单元,被配置为自动生成所述基于需求的和鲁棒性测试用例,用于验证由所述软件规范模型开发的软件设计模型;
自动定理证明单元,被配置为实现自动定理证明技术来分析和验证所述软件规范模型和所述软件设计模型中的至少一个;以及
自动代码生成单元,被配置为由所述软件设计模型自动生成源代码。
技术方案19:根据技术方案18所述的系统,进一步包括指令,所述指令使得所述处理器:
通过应用测试用例和静态分析技术来验证所述源代码;以及
由所验证的源代码编译可执行目标代码。
技术方案20:根据技术方案19所述的系统,进一步包括指令,所述指令使得所述处理器:
如果所述软件规范模型的所述分析的结果不符合要求,则调整所述软件规范模型,以修正与所述自然语言软件需求的任何不一致;
将所述测试用例应用于所调整后的软件规范模型;
如果所述软件设计模型的所述分析的结果不符合要求,则调整所述软件设计模型,以修正与所述软件规范模型的任何不一致;以及
将所述测试用例应用于所调整后的软件设计模型。
附图说明
图1示出了根据实施例的用于安全关键软件的基于模型的设计的系统;
图2示出了根据实施例的用于安全关键软件的基于模型的设计的过程的流程图;以及
图3示出了根据实施例的用于基于模型的开发过程的流程图。
具体实施方式
根据实施例,系统和方法提供了用于安全关键软件的开发和测试生成的基于模型的自动设计过程。体现的系统和方法采用了领域特定的本体(domain-specific ontology)和形式验证方法(formal verification method)来改进和扩展顶级需求。这些系统和方法利用可验证的规范模型(因此,名为“基于模型的”)作为在编写软件前自动生成基于需求的测试的基础。根据实施例,基于需求的测试由规范模型生成。设计模型用于开发软件。这些步骤的严谨性和自动化导致改进的软件设计和测试工作量降低,为安全关键软件开发人员节省时间和成本。
通过将形式方法和逻辑模型包含在体现的过程中,可以识别规范需求中的错误,可以针对一致性和完整性来验证需求。在识别了错误后,可以修复需求,如果必要的话则反复地,直到重新测试时它们是逻辑上完整的和一致的。本体、语义网和覆盖(coverage)分析都提供了明确的信息,用于扩展不完整的需求。
体现的系统和方法可以将“安全案例”包含到需求及相应的验证步骤中(例如,基于模型的设计)。也可以表示复杂的时间关系(例如,并发性要求和/或能力)。
一旦软件规范要求完整且一致,可以生成设计模型及随后的验证/确认测试,用于源代码的测试。源代码可以视为指定设计的更详细的表示,导致体现相同的设计需求的对象和/或可执行代码。
体现的方法导致在验证/确认活动中检测到的错误减少。体现的系统和方法使这些过程自动化,导致更严格的设计/验证/确认过程,相比于传统的手动工具辅助代码生成,通过在满足设计需求中提供更高的精度及在修正和测试中提供更大的速度而提供了开发相关的劳动和时间成本中的减少。
体现的基于模型的系统和方法用定义操作、设计和测试生成需求的数学严格的、形式的逻辑语句替代自然语言的语句,从而在早期的设计过程中提供了机会,以改进需求的质量、严谨性、一致性和范围。
图1示出了根据实施例的用于安全关键计算机软件开发的系统100。系统100可以包括计算机(本地运行的单台计算机110,或由电子通信网络120(如互联网)链接在一起的几台计算机112、114,11N),相关数据库130,其可以包括安全关键软件的细节-例如分配给软件(SRATS)132的系统需求、软件规范模型133、设计模型134、自动生成的源代码136、可执行目标代码138。系统100还可以包括数据库140,其可以包括语义网142、本体144、基于需求的测试用例146和自动生成的模型覆盖测试用例148。尽管数据库130和数据库140被示出为两个数据库,但在一些实施方式中,一个数据库可以包括所有的储存;在其他实施方式中,系统100中可以包括超过两个数据库。
根据一个实施方式,单台计算机110可以包括结构单元,被配置为执行实施基于模型的安全关键软件设计的操作。这些单元可以包括语义建模单元150、图形化建模单元152、自动定理证明(ATP)单元154、自动测试用例和规程生成(ATCPG)单元156和自动代码生成单元158。在其他实施方式中,这些单元可以分布在由电子通信网络链接在一起的几台计算机中。
图2示出了根据实施例的用于安全关键软件的基于模型的设计的过程200的流程图。过程200分析自然语言SRATS,开发规范模型,其在验证和接受后以是设计模型的基础。术语“设计模型”(本文所用的)是概念模型,例如对象模型或统一建模语言(UML)模型。设计模型可以描述要由应用软件执行的实体和功能变换。
由设计模型,首先源代码可以由过程200自动生成,然后可执行目标代码(EOC)也可以生成。方法200可以验证设计、源代码和EOC。从这个基于需求的过程产生的EOC可以随后经受基于EOC的测试方法,它可以提供额外的反馈。
捕获规范模型,步骤205。捕获可以包括提供给系统的文本化自然语言系统需求SRATS的确认。语义建模单元150和/或图形化建模单元152实施语义和图形建模技术,以从SRATS开发规范模型。在结构化自然语言中实施规范模型,其包括语义模型,并可以以图形形式查看或编辑。
在规范模型上执行形式需求分析,步骤210。可以由实施自动定理证明技术ATP单元154针对正确性和一致性来分析和验证规范模型。由ATCPG单元156由规范模型自动生成测试用例,步骤215。根据实施例,系统可以采用ATCPG来自动生成用于设计模型自身的需求的测试用例。在其他实施方式中,自动生成的测试用例可以由系统100使用模型检查或其他形式分析技术自动生成。如果需求分析和/或生成的测试用例指示该模型不如所需的鲁棒(即,软件规范模型缺乏所需的一致性、正确性和/或完整性),过程200可以返回到步骤205,进一步捕获规范模型。
在需求分析指示需求是完整的和自洽的后,规范模型是开发软件设计模型的基础,步骤220。测试用例由规范模型生成,并应用于设计模型。在将测试用例应用于设计模型后,根据其性能分析模型覆盖,步骤225。可以修正任何缺陷或不一致,然后通过重复测试用例方案,可以验证设计模型,步骤230。
验证的设计模型由自动代码生成单元158用于自动生成用于安全关键软件的源代码,步骤235。系统100随后使用静态分析技术验证源代码,步骤240。由所验证的源代码编译可执行目标代码,步骤245。
图3示出了根据实施例的用于基于模型的开发过程300的流程图。用于安全关键计算机软件开发的系统100可以包括计算机实施的应用315、320、335、340、350、360、370,其从基于模型的开发过程300的阶段305、310、325、330、35、355、365接收设计信息。在一些实施方式中,接收的设计信息可以用来自系统100的使用者的额外的命令和/或指令补充。基于接收的设计信息,如由系统100的计算机实施的应用程序处理的,过程300可以产生新的结果-例如:完整性的确认、设计模型、新的软件测试和/或识别缺陷的消息,其为设计过程的特定阶段指明设计数据的缺点或不完整性。
如果产生了缺陷识别消息,那么处理300就返回到前一步骤的数据(由连接过程300中的多个处理步骤的双向箭头表示)。该缺陷可以由使用者根据由计算机实施的过程300提供的建议来修正。
提供给过程300的初始SRATS数据,步骤305,包括自然语言文档。用于安全关键计算机软件开发的系统100自动生成软件,并自动生成测试用例,以及其他诊断信息或在早期阶段产生的文档。这些软件、测试用例、其他诊断信息和文档都是基于提供的SRATS。系统100实施的过程300借助减少在设计过程中的人工交互而改进了安全关键软件设计。为了实现自动化开发,根据实施例,过程300包括计算机实施的基于应用客户模型的确认(步骤315)、形式需求分析(步骤320)、形式设计验证(步骤335)、模型覆盖分析(步骤340)、基于测试的设计模型验证(步骤350)、形式代码验证(步骤360)、基于测试的EOC验证(步骤370)。
过程300开始于接收,步骤305,由包括硬件和软件能力的高级系统需求得到的文本自然语言文档SRATS。使用相结合的语义建模和图形化建模技术从SRATS开发规范模型,步骤310。根据实施例,实施过程300的系统100无需捕获作为文本的高级需求(HLR)。根据实施例,以人和机器可读的规范模型取代传统HLR。
确认规范模型,步骤315。确认可以借助于呈现给用户的需求的解析表示(例如本体和语义网)来进行。使用ATP应用针对正确性和一致性形式分析和验证规范模型,步骤320。这个步骤可以在过程的早期识别需求中的错误,并显著减少后期的返工。
存在从需求分析320到规范模型捕获310的反馈回路。这个反馈回路提供了实时反馈以向工程师警示错误。
在确认和形式需求分析后,规范模型作为输入通过,以创建设计模型,步骤330。使用模型检查形式验证设计模型,步骤335。规范模型还用作到基于需求的自动测试用例生成过程的输入,步骤325。自动生成测试用例和规程(例如,使用模型检查技术)。测试用例随后应用于设计模型,步骤350,并针对正确功能进行分析。
存在从基于需求的测试用例生成功能325到规范模型310的另一个反馈回路,以指示验证复杂性度量,其与验证规范模型所需的测试用例的数量成比例。需求捕获工程师可以使用这个信息来简化规范模型,以便降低验证成本/复杂性。根据实施例,需求捕获工具还可以提供建议的选项来捕获语法中的相同信息,这将是更容易验证的(更少的测试用例)。
在检测到错误时,修正设计模型。在执行步骤序列,或不能预测并发步骤的顺序的情况下,可以检测到缺陷和不一致:在这些情况下,设计模型修正可以通过反推通过序列,或通过实施未排序步骤的时间排序来进行。接下来,将测试用例应用到设计模型,并针对模型覆盖进行分析(步骤340)。这个步骤可以根据(a)基于需求的测试用例、规范模型和/或设计模型(例如,非预期的功能,死代码等)中的错误;或(b)派生的需求来识别覆盖中的间隙。在派生需求的情况下,自动生成测试用例,步骤345,以满足模型覆盖。
自动测试生成工具可以用于帮助工程师识别执行不到的代码,并识别测试向量,其将执行模型的特定部分。合格的自动代码生成工具用于从设计模型创建源代码,步骤355。使用静态分析技术形式分析源代码,步骤360。将源代码编译到EOC中,步骤365。通过重新应用过程早期开发的测试套件来执行基于测试的EOC验证,步骤370。一旦执行了验证,编译的EOC就可以经受传统单元、子系统和系统测试。
根据实施例的系统和方法将严格的数学和逻辑建模技术应用于在代码生成之前验证软件需求的一致性、正确性和/或完整性的问题。根据实施方式,工具集可以覆盖初步设计、分析和软件生成的全部阶段。预验证使自动代码生成的使用,和在设计过程中反馈的使用切实可行。具体化的过程和系统可以在概念和初步设计过程中检测到错误。这些检测到的错误的修正可以扩展、改进、修正和/或完成代码生成之前的设计信息。
根据一些实施例,一种存储在非易失性存储器或计算机可读介质(例如,寄存器存储器、处理器缓存、随机存取存储器、只读存储器、光盘只读存储器、硬盘驱动器、闪存、磁介质、等)中的计算机程序应用可以包括代码或可执行指令,在被执行时,可以指示和/或者使得控制器或处理器执行本文论述的方法,例如如上所述的用于安全关键软件的基于模型的方法。
计算机可读介质可以是非暂时性计算机可读介质,包括所有形式和类型的存储器和所有计算机可读介质,除了暂时的传播信号以外。在一个实施方式中,非易失性存储器或计算机可读介质可以是外部存储器。
尽管本文说明了特定的硬件和方法,但应注意根据本发明的实施例可以提供任何数量的其他配置。因此,尽管已经显示、说明和指出了本发明的基本创新特征,应当理解,可以由本领域技术人员在不脱离本发明的精神和范围的情况下,做出所示实施例及其操作的形式和细节中的多个省略、替代和变化。要素从一个实施例到另一个实施例的替代也全都是可预期的和想得到的。本发明仅相关于所附的权利要求书和本文所述内容的等效替代来限定。

Claims (9)

1.一种用于安全关键软件的基于模型的设计的方法,所述方法包括:
接收自然语言软件需求132;
通过实施所述自然语言软件需求的语义建模150和图形化建模152中的至少一个来开发结构化自然语言中的软件规范模型133;
应用所述软件规范模型的形式需求分析;
由所述软件规范模型自动生成基于需求的和鲁棒性测试用例;
基于所述规范模型开发软件设计模型;
将自动生成的基于需求的和鲁棒性测试用例应用于所述软件设计模型;
进行所述软件设计模型的形式分析;
使用所述软件设计模型自动生成源代码136;
通过应用自动生成的测试用例148和静态分析技术来验证所述源代码的覆盖和行为;
由所验证的源代码编译可执行目标代码;以及
通过应用自动生成的测试用例来验证所述可执行目标代码的覆盖和行为。
2.根据权利要求1所述的方法,包括自动测试用例和规程生成单元由软件规范模型自动生成测试用例。
3.根据权利要求1所述的方法,包括自动定理证明单元实施自动定理证明技术来分析和验证所述软件规范模型的一致性、正确性和完整性中的至少一个。
4.根据权利要求1所述的方法,包括如果所述软件规范模型的所述分析的结果不符合要求,则调整所述软件规范模型,以修正与所述自然语言软件需求的任何不一致。
5.根据权利要求4所述的方法,包括将所述需求分析应用于所调整后的软件规范模型。
6.根据权利要求1所述的方法,包括自动基于需求的和鲁棒性测试用例和规程生成单元自动生成应用于所述软件设计模型的所述测试用例。
7.根据权利要求1所述的方法,包括使用模型检查技术来生成应用于所述软件设计模型的所述基于需求的和鲁棒性测试用例。
8.根据权利要求1所述的方法,包括如果所述软件设计模型的所述分析的结果不符合要求,则调整所述软件设计模型,以修正与所述软件规范模型的任何不一致。
9.根据权利要求8所述的方法,包括将所述测试用例应用于所调整后的软件设计模型。
CN201610922808.4A 2015-08-05 2016-08-05 用于安全关键软件开发的基于模型的技术和过程的系统和方法 Active CN106528100B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/819,167 US10346140B2 (en) 2015-08-05 2015-08-05 System and method for model based technology and process for safety-critical software development
US14/819167 2015-08-05

Publications (2)

Publication Number Publication Date
CN106528100A true CN106528100A (zh) 2017-03-22
CN106528100B CN106528100B (zh) 2020-06-09

Family

ID=56936596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610922808.4A Active CN106528100B (zh) 2015-08-05 2016-08-05 用于安全关键软件开发的基于模型的技术和过程的系统和方法

Country Status (7)

Country Link
US (1) US10346140B2 (zh)
JP (1) JP6621204B2 (zh)
CN (1) CN106528100B (zh)
BR (1) BR102016018127A2 (zh)
CA (1) CA2937677A1 (zh)
FR (1) FR3039908B1 (zh)
GB (1) GB2542687A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451058A (zh) * 2017-07-31 2017-12-08 北京云测信息技术有限公司 一种软件开发方法和装置
CN109933309A (zh) * 2019-03-06 2019-06-25 上海工业控制安全创新科技有限公司 机器学习算法应用于汽车软件开发功能安全的流程方法
CN110457031A (zh) * 2019-08-21 2019-11-15 赛尔网络有限公司 一种软件开发方法、装置、设备及介质
CN111274133A (zh) * 2020-01-17 2020-06-12 Oppo广东移动通信有限公司 一种静态扫描方法、装置及计算机可读存储介质
CN112015658A (zh) * 2020-09-02 2020-12-01 卡斯柯信号(北京)有限公司 一种用于软件集成测试用例的生成方法及装置
CN112180890A (zh) * 2019-07-05 2021-01-05 北京新能源汽车股份有限公司 一种测试用例的生成方法、装置及设备
CN113791776A (zh) * 2021-08-03 2021-12-14 中国电子科技集团公司第三十研究所 可双向转换的并发性验证方法、系统、设备及存储介质
CN114137873A (zh) * 2021-11-23 2022-03-04 中船动力研究院有限公司 发动机的程序开发方法及装置、发动机的控制系统
US11797317B1 (en) 2021-12-10 2023-10-24 Amazon Technologies, Inc. Transitioning legacy software to be provably correct

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10346140B2 (en) * 2015-08-05 2019-07-09 General Electric Company System and method for model based technology and process for safety-critical software development
US9804954B2 (en) * 2016-01-07 2017-10-31 International Business Machines Corporation Automatic cognitive adaptation of development assets according to requirement changes
US9792204B2 (en) * 2016-02-02 2017-10-17 General Electric Company System and method for coverage-based automated test case augmentation for design models
US11126427B2 (en) * 2016-02-17 2021-09-21 Silverthread, Inc. Computer-implemented methods and systems for measuring, estimating, and managing economic outcomes and technical debt in software systems and projects
US20180165180A1 (en) * 2016-12-14 2018-06-14 Bank Of America Corporation Batch File Creation Service
JP6516923B2 (ja) * 2017-01-23 2019-05-22 三菱電機株式会社 ホワイトリスト生成器、ホワイトリスト評価器およびホワイトリスト生成・評価器、並びにホワイトリスト生成方法、ホワイトリスト評価方法およびホワイトリスト生成・評価方法
CN107016085A (zh) * 2017-03-31 2017-08-04 海通安恒科技有限公司 一种计算机化系统验证管理系统
EP3493051A1 (en) * 2017-11-30 2019-06-05 The MathWorks, Inc. System and methods for evaluating compliance of implementation code with a software architecture specification
DE102018003142A1 (de) 2017-12-13 2019-06-13 The Mathworks, Inc. Automatische Einstellung von Multitasking-Konfigurationen für ein Codeprüfsystem
JP6962867B2 (ja) * 2018-06-04 2021-11-05 矢崎総業株式会社 脆弱性評価装置
US10585779B2 (en) 2018-07-30 2020-03-10 General Electric Company Systems and methods of requirements chaining and applications thereof
US10691584B2 (en) * 2018-09-28 2020-06-23 Sap Se Behavior driven development integration with test tool
EP3637249A1 (en) * 2018-10-12 2020-04-15 Tata Consultancy Services Limited Systems and methods for validating domain specific models
CN109542452A (zh) * 2018-11-19 2019-03-29 万惠投资管理有限公司 一种基于ai语义分析的运维管理方法及系统
JP6765554B2 (ja) 2018-12-12 2020-10-07 三菱電機株式会社 ソフトウェア試験装置、ソフトウェア試験方法、および、ソフトウェア試験プログラム
FR3091106B1 (fr) * 2018-12-20 2021-02-12 Commissariat Energie Atomique Système de supervision formelle de communications
CN113519018B (zh) * 2019-03-12 2023-01-03 三菱电机株式会社 移动体控制装置和移动体控制方法
CN110032365A (zh) * 2019-04-19 2019-07-19 广东小天才科技有限公司 一种Sketch图形文件的代码查找方法、装置及终端设备
CN110445690A (zh) * 2019-08-16 2019-11-12 北京智芯微电子科技有限公司 电力无线公网通信单元互换性测试软件的设计方法
CN111858298B (zh) * 2020-05-29 2022-08-30 卡斯柯信号有限公司 一种基于3v模型的软件测试方法
US11200069B1 (en) 2020-08-21 2021-12-14 Honeywell International Inc. Systems and methods for generating a software application
CN112068805B (zh) * 2020-09-02 2024-05-03 中国航空无线电电子研究所 一种需求开发方法
EP3989073A1 (en) * 2020-10-20 2022-04-27 Rosemount Aerospace Inc. Automated test vector generation
BE1028501B1 (nl) * 2020-11-05 2022-02-11 Ivex Een methode en een systeem voor het automatisch genereren van een geïntegreerde broncode voor de elektronische regeleenheid van een AD/ADAS-wegvoertuig
CN112416337B (zh) * 2020-11-11 2023-05-02 北京京航计算通讯研究所 一种面向航天嵌入式系统的软件架构开发系统
EP4016364A1 (en) * 2020-12-16 2022-06-22 The Boeing Company Computing device and method for developing a system model utilizing a simulation assessment module
CN112966489A (zh) * 2021-03-24 2021-06-15 中国民用航空上海航空器适航审定中心 非原子性缺陷的检测方法、电子设备及存储介质
CN113204330B (zh) * 2021-06-01 2024-03-26 李麟 一种基于人工智能的程序开发设计方法及系统
US11507352B1 (en) 2021-06-15 2022-11-22 International Business Machines Corporation Reducing semantic errors in code generated by machine learning models

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095571A1 (en) * 2001-01-18 2002-07-18 Bradee Robert L. Computer security system
US20050020945A1 (en) * 2002-07-02 2005-01-27 Tosaya Carol A. Acoustically-aided cerebrospinal-fluid manipulation for neurodegenerative disease therapy
US20070074180A1 (en) * 2003-12-22 2007-03-29 Nasa Hq's Systems, Methods and Apparatus for Procedure Development and Verification
CN102136047A (zh) * 2011-02-25 2011-07-27 天津大学 一种基于形式化及统一软件模型的软件可信工程方法
JP2013058068A (ja) * 2011-09-08 2013-03-28 Panasonic Corp プラットフォームのプログラムおよびそれを搭載した端末装置
CN103530228A (zh) * 2013-09-27 2014-01-22 西安电子科技大学 一种基于模型的软件测试方法
CN103678636A (zh) * 2013-12-19 2014-03-26 中山大学深圳研究院 一种构件软件系统可靠性的提高系统及方法
CN103955427A (zh) * 2014-04-29 2014-07-30 探月与航天工程中心 一种安全攸关系统的软件安全性保证的实现方法
CN104182591A (zh) * 2014-09-02 2014-12-03 浪潮(北京)电子信息产业有限公司 一种软件测试需求建模方法
CN104461882A (zh) * 2014-11-29 2015-03-25 中国航空工业集团公司第六三一研究所 一种符合do-178b/c a级软件的模型验证方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681383B1 (en) 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
GB0113946D0 (en) 2001-06-08 2001-11-14 Secr Defence Automatic Development of Software Codes
US7480893B2 (en) 2002-10-04 2009-01-20 Siemens Corporate Research, Inc. Rule-based system and method for checking compliance of architectural analysis and design models
US7228524B2 (en) 2002-12-20 2007-06-05 The Boeing Company Method and system for analysis of software requirements
US7739671B1 (en) * 2003-12-22 2010-06-15 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Systems, methods and apparatus for implementation of formal specifications derived from informal requirements
US7685576B2 (en) 2004-01-26 2010-03-23 Siemens Corporation System and method for model based system testing of interactive applications
US7392509B2 (en) * 2004-04-13 2008-06-24 University Of Maryland Method for domain specific test design automation
GB0410047D0 (en) * 2004-05-05 2004-06-09 Silverdata Ltd An analytical software design system
US7865339B2 (en) 2004-07-12 2011-01-04 Sri International Formal methods for test case generation
EP1622022A1 (de) 2004-07-22 2006-02-01 Siemens Aktiengesellschaft Automatische Erzeugung von Testfällen
JP2007122135A (ja) 2005-10-25 2007-05-17 Hitachi Ltd 開発支援装置、開発支援方法、および、開発支援プログラム
EP1832975A1 (en) 2006-03-09 2007-09-12 Alcatel Lucent Automatic generation of source program
US7523425B2 (en) 2006-04-21 2009-04-21 Alcatel-Lucent Usa Inc. Test case generation algorithm for a model checker
US8176470B2 (en) 2006-10-13 2012-05-08 International Business Machines Corporation Collaborative derivation of an interface and partial implementation of programming code
US20090089618A1 (en) 2007-10-01 2009-04-02 Fujitsu Limited System and Method for Providing Automatic Test Generation for Web Applications
US8307342B2 (en) * 2008-05-14 2012-11-06 Honeywell International Inc. Method, apparatus, and system for automatic test generation from statecharts
JP2009294846A (ja) 2008-06-04 2009-12-17 Denso Corp テストケース生成装置、テストケース生成プログラム、およびテストケース生成方法
US8359576B2 (en) 2008-11-14 2013-01-22 Fujitsu Limited Using symbolic execution to check global temporal requirements in an application
US20110083121A1 (en) * 2009-10-02 2011-04-07 Gm Global Technology Operations, Inc. Method and System for Automatic Test-Case Generation for Distributed Embedded Systems
US20110125302A1 (en) 2009-10-23 2011-05-26 Gm Global Technology Operations, Inc. Method and system for formal safety verification of manufacturing automation systems
EP2369528A1 (en) 2010-03-23 2011-09-28 Siemens Aktiengesellschaft Information processing apparatus, method and protocol for generation of formal requirements specification models
US20120143570A1 (en) 2010-12-03 2012-06-07 University Of Maryland Method and system for ontology-enabled traceability in design and management applications
US20120246612A1 (en) * 2011-03-23 2012-09-27 Siemens Corporation System and method for verification and validation of redundancy software in plc systems
KR101408870B1 (ko) 2012-11-06 2014-06-17 대구교육대학교산학협력단 Uml sd로부터 mccfg를 기반으로 하는 다단계 테스트 케이스 생성장치 및 방법
WO2014087427A1 (en) 2012-12-05 2014-06-12 Tata Consultancy Services Limited Method and system for computational design and modeling
WO2014115189A1 (en) 2013-01-28 2014-07-31 Nec Corporation Method and system for transforming specification scripts to program code
JP2015005189A (ja) 2013-06-21 2015-01-08 株式会社オートネットワーク技術研究所 Ecu評価装置、コンピュータプログラム及びecu評価方法
WO2015040735A1 (ja) 2013-09-20 2015-03-26 株式会社日立製作所 ソフトウェア仕様の形式検証支援装置及びその方法
US10108536B2 (en) * 2014-12-10 2018-10-23 General Electric Company Integrated automated test case generation for safety-critical software
US9747079B2 (en) * 2014-12-15 2017-08-29 General Electric Company Method and system of software specification modeling
US10346140B2 (en) * 2015-08-05 2019-07-09 General Electric Company System and method for model based technology and process for safety-critical software development

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020095571A1 (en) * 2001-01-18 2002-07-18 Bradee Robert L. Computer security system
US20050020945A1 (en) * 2002-07-02 2005-01-27 Tosaya Carol A. Acoustically-aided cerebrospinal-fluid manipulation for neurodegenerative disease therapy
US20070074180A1 (en) * 2003-12-22 2007-03-29 Nasa Hq's Systems, Methods and Apparatus for Procedure Development and Verification
CN102136047A (zh) * 2011-02-25 2011-07-27 天津大学 一种基于形式化及统一软件模型的软件可信工程方法
JP2013058068A (ja) * 2011-09-08 2013-03-28 Panasonic Corp プラットフォームのプログラムおよびそれを搭載した端末装置
CN103530228A (zh) * 2013-09-27 2014-01-22 西安电子科技大学 一种基于模型的软件测试方法
CN103678636A (zh) * 2013-12-19 2014-03-26 中山大学深圳研究院 一种构件软件系统可靠性的提高系统及方法
CN103955427A (zh) * 2014-04-29 2014-07-30 探月与航天工程中心 一种安全攸关系统的软件安全性保证的实现方法
CN104182591A (zh) * 2014-09-02 2014-12-03 浪潮(北京)电子信息产业有限公司 一种软件测试需求建模方法
CN104461882A (zh) * 2014-11-29 2015-03-25 中国航空工业集团公司第六三一研究所 一种符合do-178b/c a级软件的模型验证方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451058A (zh) * 2017-07-31 2017-12-08 北京云测信息技术有限公司 一种软件开发方法和装置
CN109933309A (zh) * 2019-03-06 2019-06-25 上海工业控制安全创新科技有限公司 机器学习算法应用于汽车软件开发功能安全的流程方法
CN112180890A (zh) * 2019-07-05 2021-01-05 北京新能源汽车股份有限公司 一种测试用例的生成方法、装置及设备
CN112180890B (zh) * 2019-07-05 2022-01-07 北京新能源汽车股份有限公司 一种测试用例的生成方法、装置及设备
CN110457031A (zh) * 2019-08-21 2019-11-15 赛尔网络有限公司 一种软件开发方法、装置、设备及介质
CN111274133A (zh) * 2020-01-17 2020-06-12 Oppo广东移动通信有限公司 一种静态扫描方法、装置及计算机可读存储介质
CN111274133B (zh) * 2020-01-17 2023-07-25 Oppo广东移动通信有限公司 一种静态扫描方法、装置及计算机可读存储介质
CN112015658A (zh) * 2020-09-02 2020-12-01 卡斯柯信号(北京)有限公司 一种用于软件集成测试用例的生成方法及装置
CN113791776A (zh) * 2021-08-03 2021-12-14 中国电子科技集团公司第三十研究所 可双向转换的并发性验证方法、系统、设备及存储介质
CN114137873A (zh) * 2021-11-23 2022-03-04 中船动力研究院有限公司 发动机的程序开发方法及装置、发动机的控制系统
US11797317B1 (en) 2021-12-10 2023-10-24 Amazon Technologies, Inc. Transitioning legacy software to be provably correct

Also Published As

Publication number Publication date
US20170039039A1 (en) 2017-02-09
JP6621204B2 (ja) 2019-12-18
BR102016018127A2 (pt) 2017-06-06
GB201613356D0 (en) 2016-09-14
FR3039908A1 (fr) 2017-02-10
FR3039908B1 (fr) 2022-12-23
CA2937677A1 (en) 2017-02-05
JP2017033562A (ja) 2017-02-09
GB2542687A (en) 2017-03-29
US10346140B2 (en) 2019-07-09
CN106528100B (zh) 2020-06-09

Similar Documents

Publication Publication Date Title
CN106528100A (zh) 用于安全关键软件开发的基于模型的技术和过程的系统和方法
US7895575B2 (en) Apparatus and method for generating test driver
KR102496539B1 (ko) 소프트웨어 검증 방법 및 이를 위한 장치
US9477582B2 (en) Executable software specification generation
Brown et al. Guidance for using formal methods in a certification context
Hochstrasser et al. A process-oriented build tool for safety-critical model-based software development
CN118113271A (zh) 基于大模型的代码生成方法、系统、终端及介质
Sims et al. Experience report: the reactis validation tool
Bandara et al. Identifying software architecture erosion through code comments
EP3608786B1 (en) Systems and methods of requirements chaining and applications thereof
Tietz et al. Why the use of domain-specific modeling in airworthy software requires new methods and how these might look like?
Matragkas et al. A Traceability-Driven Approach to Model Transformation Testing.
Thu et al. Model driven development of mobile applications using drools knowledge-based rule
Ligman et al. Improving design validation of mobile application user interface implementation
Abraham Verification and validation spanning models to code
EP2782005A1 (en) Verifying state reachability in a statechart model having computer program code embedded therein
Eisemann Applying Model-Based Techniques for Aerospace Projects in Accordance with DO-178C, DO-331, and DO-333
Hwang et al. Safety-Critical Software Quality Improvement Using Requirement Analysis
KR101601741B1 (ko) 서로 다른 언어로 작성된 프로그램들의 동일성을 검증하는 검증장치
Cammaerts et al. Assessing the value of incomplete deadlock verification in Model-Driven Engineering
Agirre et al. Model Transformation by Example Driven ATL Transformation Rules Development Using Model Differences
US20240176722A1 (en) Automated public certification of specifications and software
Marques et al. Airborne software certification accomplishment using model-driven design
Straszak et al. Acceptance test generation based on detailed use case models
Schneider et al. Merging OMG standards in a general modeling, transformation, and simulation framework

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant