Towards Automatically Extracting UML Class Diagrams from Natural Language Specifications
在模型驱动工程(MDE)中,UML类图是开发人员之间进行计划和通信的一种方式。然而,它是复杂和消耗资源的。我们提出了一个自动化的方法提取UML类图从自然语言软件规格说明。为了开发我们的方法,我们在志愿者的帮助下创建了一个UML类图及其英文规范的数据集。我们的方法是一个管道的步骤组成的分割成句子的输入,句子的分类,从句子的UML类图片段的生成,并组成这些片段到一个UML类图。我们开发了一个定量测试框架,具体到UML类图提取。我们的方法产生低精度和召回率,但作为未来研究的基准。
2022-10-27 cs.IR cs.SE
Automatic Generation of Formal Specification and Verification Annotations Using LLMs and Test Oracles
Faculty of Engineering, University of Porto(波尔图大学工程学院);INESC TEC(TEC研究所);INESC-ID(ID研究所)
本文利用LLMs和测试或acles自动为Dafny程序生成形式规范和验证注解,实验表明该方法在多数情况下有效,并展示了IDE集成的可行性。
2026-01-19 cs.SE
Sequence Diagram Test Case Specification and Virtual Integration Analysis using Timed-Arc Petri Nets
在本文中,我们正式定义测试用例序列图(TCSD)作为一个易于使用的手段来指定测试用例的组件,包括时间约束。这些测试用例是使用UML2语法建模的,并且可以由标准的UML建模工具指定。在基于组件的设计中,可以在实际系统构建之前通过组件的虚拟集成来实现对错误的早期识别。我们定义了这样一个过程,它集成了各个组件的测试用例,根据给定的体系结构的互连和检查,如果所有指定的通信序列是一致的。因此,我们正式定义的转换TCSD到时间弧Petri网和这些网的组合过程。我们的方法的适用性,证明了航空电子用例从ARP 4761标准。
2013-02-21 cs.SE
Exploring the Link Between Test Suite Quality and Automatic Specification Inference
虽然没有人怀疑正确和完整的规范的重要性,但许多工业系统仍然没有正式的规范-即使他们这样做了,也很难检查其正确性和完整性。这项工作探讨了使用一个不变的提取工具,如Daikon自动推断规格,从可用的测试套件的想法,帮助软件工程师,以改善规范,有另一个版本进行比较的可能性。鉴于我们最初的实验并没有产生令人满意的结果,在本文中,我们将探讨哪些测试套件属性影响质量的推断规范。进一步研究发现,指令、分支和方法覆盖率与高召回率相关,最高可达97.93%。
2017-08-24 cs.LO cs.SE
Generating Logical Specifications from Requirements Models for Deduction-based Formal Verification
工作涉及自动生成的逻辑规格的需求模型。以这种方式获得的逻辑规范可以使用演绎推理进行形式化验证。形式化验证关注模型行为的正确性。需求工程的可靠性对于软件开发过程的所有阶段都是必不可少的。演绎推理是一种重要的形式化方法。然而,逻辑规范,被认为是一组时序逻辑公式,很难指定手动经验不足的用户,这一事实可以被视为一个重大障碍,实际使用的演绎为基础的验证工具。提出了一种利用UML图建立需求模型的方法,包括逻辑规格说明。将活动图组织到预定义的工作流模式中可以自动提取逻辑规范。所提出的方法的关键方面是集成的需求工程阶段和逻辑规格的自动生成。提出了一种基于演绎的验证系统。推理过程可以基于语义表方法。提供了一个简单的需求获取和验证的示例。
2014-02-09 cs.SE
ARSENAL: Automatic Requirements Specification Extraction from Natural Language
SRI International(SRI国际公司);TTTech C. AG(TTTech股份公司)
需求是从利益相关者(客户、用户、操作员、设计师和工程师)的角度对复杂系统预期行为的非正式和半正式描述。然而,对于关键系统的设计、测试和验证,我们可以将需求转换为可以自动分析的形式化模型。ARSENAL是一个框架和方法,用于系统地将自然语言(NL)需求转换为可分析的形式化模型和逻辑规范。可以分析这些模型的一致性和可实现性。ARSENAL方法专门针对各个领域,但该方法足够通用,可以适应新的领域。
2016-04-20 cs.CL cs.SE
Automatic Generation of Combinatorial Reoptimisation Problem Specifications: A Vision
针对优化问题解需随上下文调整的重优化挑战,提出利用MDE从原始问题规约系统推导组合重优化问题,给出问题与策略分类及基于GIPS工具的概念验证实现。
2025-10-02 cs.SE
Automatic Verification of Parametric Specifications with Complex Topologies
本文的重点是降低验证的复杂性,利用模块化在各个层次上:在规范,验证,和结构。对于规范,我们使用的模块化语言CSP-OZ-DC,它允许我们解耦验证任务有关的数据从那些有关的持续时间。在验证级别,我们利用模块化的定理证明丰富的数据结构,并使用此不变检查。在结构层面上,我们分析了模块化验证的系统组成的各种组件的相互作用的可能性,我们说明了这些想法,通过自动验证安全性能的案例研究,从欧洲训练控制系统标准,它扩展了以前的例子,包括一个复杂的轨道拓扑结构与列表的轨道段和列车与不同的路线。
2010-10-08 cs.LO cs.SE
Integrating Symbolic Execution with LLMs for Automated Generation of Program Specifications
Institute of Software, Chinese Academy of Sciences(中国科学院软件研究所);UCAS(中国科学院大学);Sch. of Computer Science & Sch. of Artificial Intelligence, Shanghai Jiao Tong University(上海交通大学计算机科学与技术学院与人工智能学院);School of Computer Science, Peking University(北京大学计算机学院);Beijing Institute of Control Engineering(北京控制工程研究所)
本文提出一种结合符号执行与LLMs的方法,自动生成形式化程序规范,提升程序理解与验证的精度和适用性。
2026-01-20 cs.SE
Specification Mining for Smart Contracts with Automatic Abstraction Tuning
智能合约是根据特定协议管理数字资产的程序,例如表示拍卖规则。理解智能合约的可能行为是困难的,这使得开发、审计和攻击的事后分析变得复杂。本文介绍了智能合约的第一个规范挖掘技术。我们的技术从区块链上记录的合约执行中提取智能合约的可能行为,并将其表示为有限自动机。一种新的依赖分析允许我们将独立的交互与合同分开。例如,我们的技术根据可配置的指标自动调整自动机构造的抽象,以最大限度地提高可读性或精度。我们为以太坊区块链实现了我们的技术,并在几个现实世界的合同上评估了它的可用性。
2018-07-20 cs.PL cs.SE
Conformance Verification of Normative Specifications using C-O Diagrams
C-O图作为一种直观表示规范性文本和电子合同的手段而被引入,其中可以表示不同签署人的义务、许可和禁止,以及在不履行其义务和禁止的情况下的处罚。在这样的图中,我们也能够表示绝对和相对的时序约束。在本文中,我们考虑一个正式的语义的C-O图的网络的时间自动机的基础上,我们提出了几个关系,检查合同的一致性的可实现性,分析是否实现满足其合同上定义的要求,并比较几个实现使用的执行权限作为标准。
2012-09-11 cs.FL cs.SE
ArChes -- Automatic generation of component fault trees from continuous function charts
嵌入式系统中软件的规模和复杂性的不断增长对嵌入式控制系统的安全评估提出了新的挑战。在工业实践中,在对系统进行安全性分析时,控制软件大多被当作黑箱来处理。为了提高安全分析的准确性,软件故障传播的适当表示是一个迫切的需要。然而,它也大大增加了创建和维护安全分析模型(如故障树)的工作量。在这项工作中,我们提出了一种方法来自动生成组件故障树从连续功能图。该方法旨在生成详细软件规格说明的故障传播模型。因此,可以将控制软件纳入安全性分析中,而无需额外的手动工作来构建软件的安全性分析模型。此外,在早期系统规范阶段创建的安全分析可以通过将其与详细规范阶段自动生成的安全分析进行比较来验证。
2021-05-31 cs.SE
Formal Consistency Checking over Specifications in Natural Languages
系统开发的早期阶段包括概述所需的功能,如功能,可用性或可用性。规范是从这些特征中派生出来的,这些特征将自然语言中的模糊概念具体化。规范验证的挑战来自不同表示之间的语法和语义差距以及自动工具的需求。在本文中,我们提出了一个需求一致性维护框架,以产生一致的表示。第一部分是从描述功能的自然语言到具有时间抽象的形式逻辑的自动转换。它通过添加语义推理和对划分输入和输出变量的支持来扩展纯句法分析。第二部分是使用综合技术来检查需求在可实现性方面是否一致。当过程失败时,将报告导致不一致的公式以定位问题。
2014-10-08 cs.SE
Large Language Models Based Automatic Synthesis of Software Specifications
Texas A&M University(德州农工大学);Intel Labs(英特尔实验室)
本文提出SpecSyn框架,首次利用大语言模型以序列到序列方式从自然语言文本中端到端自动综合软件规格,F1分数比现有最佳工具提升21%。
2023-04-18 cs.AI cs.SE
Timed k-Tail: Automatic Inference of Timed Automata
在实践中,描述软件系统性能的精确的和最新的模型很少。为了解决这个问题,软件工程师可以使用规范挖掘技术,它可以自动导出捕获分析中系统行为的模型。到目前为止,大多数规范挖掘技术都集中在系统的功能行为上,特别强调表示操作顺序的模型,如时态规则和有限状态模型。尽管这些模型很有用,但它们本质上是不完整的。例如,它们错过了定时行为,这与许多类系统和组件(如共享库和用户驱动的应用程序)极其相关。挖掘包括功能和时序方面的规范可以提高许多测试和分析解决方案的适用性。本文解决了这一挑战,提出了时间的k-Tail(TKT)规范挖掘技术,可以挖掘时间自动机从程序的痕迹。由于时间自动机可以有效地表示系统的功能和时间行为之间的相互作用,TkT可以在与时间相关的信息相关的情况下被利用。我们的实证评估表明,TkT可以有效地挖掘准确的模型。挖掘出的模型已被用于识别具有异常时间的执行。评估表明,大多数的异常执行已被正确识别,而产生的误报很少。
2017-05-23 cs.SE
Fuzzing Class Specifications
通过可执行约束表达类规范对于各种软件工程任务(如测试生成、错误发现和自动调试)很重要,但开发人员很少编写它们。从代码中推断规范的技术存在以填补这一空白,但它们被设计为支持特定种类的断言,并且难以适应于支持不同的断言语言,例如,添加对量化的支持,或添加其他比较运算符,如成员资格或包含。为了解决上述问题,我们提出了SpecFuzzer,一种新的技术,结合了基于语法的模糊,动态不变检测和突变分析,自动产生类规范。SpecFuzzer使用:(i)一个模糊器作为候选断言的生成器,该候选断言来自于从类定义自动获得的语法;(ii)一个动态不变检测器(Daikon),用于过滤掉被测试套件无效的断言;以及(iii)一个基于变异的机制,用于对断言进行聚类和排名,以便将类似的约束分组,然后将较强的约束优先化。基于语法的模糊化使得SpecFuzzer能够通过操纵模糊化语法,直接地适应于支持不同的规约语言,以包括额外的操作员。我们评估我们的技术的基准43 Java方法采用的评估国家的最先进的技术GAssert和EvoSpex。我们的研究结果表明,SpecFuzzer可以很容易地支持一个更具表现力的断言语言,这是更有效的比GAssert和EvoSpex在推断规范,根据标准的性能指标。
2022-01-26 cs.SE
An Automatically Verified Prototype of a Landing Gear System
在本文中,我们将展示如何$\{log\}$(读“setlog”),约束逻辑编程(CLP)语言的基础上集合理论,可以被用来作为一个自动验证B规范。特别地,我们在$\{log\}$中编码了由Mammar和Laleau开发的事件B规范,该规范是被称为起落架系统(LGS)的案例研究的。接下来,我们使用$\{log\}$来履行罗丹平台在Event-B规范中提出的所有证明义务。这样,$\{log\}$程序可被视为LGS的自动验证原型。我们相信,这个案例研究提供了经验证据,CLP和集合论如何可以串联使用作为一种工具,程序验证。
2021-12-30 cs.LO cs.SE
Test adequacy evaluation for the user-database interaction: a specification-based approach
本文提出基于规格说明的数据库应用测试方法,通过 IDM、业务规则和 MCDC 准则生成测试需求并自动评估充分性,在 TPC-C 上验证可发现过程代码故障。
2023-04-25 cs.SE
PICKLES: a Natural Language Framework for Requirement Specification and Model-Based Testing
University of Twente(特文特大学)
PICKLES结合模型驱动测试和行为驱动开发方法,通过自然语言规范和测试用例实现人类可读的测试方法,提供双向翻译和主模型生成,提升测试覆盖率。
2026-04-29 cs.SE
Talking with Verifiers: Automatic Specification Generation for Neural Network Verification
The Hebrew University of Jerusalem(耶路撒冷希伯来大学);Masaryk University(马萨里克大学);University of California, Riverside(加州大学河滨分校)
通过自动规范生成,该研究使神经网络验证工具能够处理自然语言规范,从而扩展其在高语义级别要求中的应用。
2026-02-13 cs.AI cs.LG cs.SE
An Empirical Evaluation of Pre-trained Large Language Models for Repairing Declarative Formal Specifications
本研究首次实证评估大语言模型修复声明式形式规约的能力,设计含单/双智能体、自动提示等的12种修复设置,发现带自动提示的双智能体方案优于现有Alloy APR技术,为软件工程中基于智能体的技术奠定基础。
2025-06-12 cs.SE
Automatic adaptor synthesis for protocol transformation
软件构件的适配是基于构件的软件工程(CBSE)中的一个重要问题。从可重用或商用现成(COTS)组件构建系统会引入一系列问题,主要涉及兼容性和通信方面。组件可能具有不兼容的交互行为。此外,可能有必要增强当前的通信协议,以便在组件之间引入更复杂的交互。我们解决这些问题,提高我们的架构方法,允许检测和恢复的整合失配合成一个合适的协调员。从要组装的系统的规范和所需的协议增强的规范开始,我们的框架以组合的方式自动导出组件集的粘合代码。合成的胶水代码避免了交互不匹配,并提供了一个协议增强版本的组合系统。
2014-12-01 cs.SE
BeSpaceD: Towards a Tool Framework and Methodology for the Specification and Verification of Spatial Behavior of Distributed Software Component Systems
在这份报告中,我们提出了一个框架的建模和检查行为的空间分布组件系统的工作。我们的框架的设计目标是能够在一个面向组件的,简单和直观的方式,自动分析和验证系统和集成的可能性与其他建模和验证工具的空间行为建模的能力。我们提出的例子和必要的验证步骤,以证明属性,如范围覆盖或组件和技术细节之间的冲突的情况下。
2014-04-14 cs.SE
A repository of automatic GUI test patterns in Android applications: Specification and Analysis using Alloy modeling language
软件行业的目标是为客户提供高质量的软件。软件测试是保证软件质量的关键和敏感阶段。由于移动设备的日益普及,Android应用程序的使用有所增加。几乎所有的都配备了图形用户界面与用户或系统进行交互。GUI是与现代软件进行通信的最常用工具。因此,完美的GUI是保证整个软件系统安全性、强度和可用性的GUI。GUI测试是确保产品质量的重要阶段,因为GUI是用户对最终产品的第一印象和最终视图。本文提出了一种新的技术,以提高基于模型的测试效率,使用合金建模语言。研究结果表明,这种方法需要更少的配置和建模时间比以前的方法。此外,使用GUI模式可以减少错误和违规。
2022-09-05 cs.LO cs.SE
Semantic annotation of requirements for automatic UML class diagram generation
随着软件工程复杂性的增加,需要有效的方法和工具来支持需求分析人员的活动。虽然公司的大部分知识可以在文本存储库中找到,但当前的内容管理系统在结构化和解释文档方面的能力有限。在这种情况下,我们提出了一个工具,用于转换描述用户的需求,以UML模型的文本文档。该工具使用自然语言处理(NLP)和语义规则来生成UML类图。我们的工具的主要贡献是提供帮助,设计人员促进过渡,从用户需求的文本描述,他们的UML图的基础上GATE(通用架构的文本),制定必要的规则,生成新的语义注释。
2011-07-17 cs.SE
Automated Repair of Declarative Software Specifications in the Era of Large Language Models
Donald Bren School of Information and Computer Science, University of California, Irvine(加州大学欧文分校唐纳德·布伦信息与计算机科学学院)
本研究评估了ChatGPT修复Alloy声明式软件规约的效果,发现其整体表现不及现有主流修复技术,但能修复其他方法无法解决的缺陷,同时也存在修复错误、幻觉及结果不一致等问题,为相关从业者提供了参考。
2023-11-07 cs.AI cs.LG cs.SE
DSpec2Test: Specification-Driven Test Generation in Dafny
INESC TEC, Faculdade de Engenharia, Universidade do Porto(波尔图大学工程科学学院)
DSpec2Test 提出一种基于规范的黑盒测试生成工具,利用 DNF 等价类划分和 BVA 扩展 Dafny,通过 Z3 合成输入输出,在 131 个变异体上达到 93.9% 的杀死率,优于现有 Block 模式。
2026-09-25 cs.SE
REST-ler: Automatic Intelligent REST API Fuzzing
随着亚马逊网络服务和微软Azure等强大的云计算平台的出现,云服务最近出现了爆炸式增长。如今,大多数云服务都是通过REST API访问的,而Swagger可以说是REST API最流行的接口描述语言。Swagger规范描述了如何通过其REST API访问云服务(例如,服务可以处理什么请求以及可以预期什么响应)。本文介绍了REST-ler,第一个自动化智能REST API安全测试工具。REST-ler分析Swagger规范并生成测试,通过其REST API执行相应的云服务。每个测试都被定义为一系列请求和响应。REST-ler通过以下方式智能地生成测试:(1)推断Swagger规范中声明的请求类型之间的依赖关系(例如,推断“请求B不应在请求A之前执行”,因为B将由A返回的资源id x作为输入变元)以及通过(2)分析来自在先前测试执行期间观察到的响应的动态反馈以便生成新的测试(例如,学习“请求序列A;B之后的请求C被服务拒绝”,因此在将来避免这种组合)。我们表明,这两种技术是必要的,彻底行使测试下的服务,同时修剪可能的请求序列的大搜索空间。我们还讨论了REST-ler在测试GitLab(一个大型流行的开源自托管Git服务)中的应用,以及发现的新错误。
2018-06-26 cs.SE
Automated Mapping of UML Activity Diagrams to Formal Specifications for Supporting Containment Checking
业务分析师和领域专家经常使用与技术和平台无关的高级模型来勾画软件系统的行为。开发人员将用技术细节来完善和丰富这些高级模型。因此,随着时间的推移,细化的模型可能会偏离原始模型,特别是当两种模型独立演化时。在这种情况下,我们专注于行为模型;也就是说,我们的目标是确保细化的低级别行为模型符合相应的高级别行为模型。基于现有的形式化验证技术,我们提出包含检查作为一种手段,以评估系统的行为所描述的低级别模型是否满足已指定的高级别同行。主要障碍之一是如何减轻创建行为模型的正式规范以及一致性约束的负担,这是一项手动完成的繁琐且容易出错的任务。本文提出的方法旨在通过将行为模型视为验证输入,并将行为模型自动映射到可直接由模型检查器使用的形式属性和描述上,来缓解上述挑战。我们讨论了我们的方法中的各种挑战,并展示了我们的方法在说明性场景中的适用性。
2014-04-03 cs.LO cs.SE
ACoRe: Automated Goal-Conflict Resolution
IMDEA Software Institute(IMDEA软件研究所);Universidad Politécnica de Madrid(马德里理工大学);SnT, University of Luxembourg(卢森堡大学科学与技术学院);Universidad Nacional de Río Cuarto and CONICET(里奥夸尔托国立大学和阿根廷国家科学研究委员会)
本文提出ACoRe,首个自动为线性时态逻辑形式化需求规格说明中的目标冲突提出消解方案的方法,集成多目标搜索算法,在25个案例上验证有效。
2023-03-09 cs.SE
Case study: Class diagram restructuring
这个案例研究是对UML类图的就地更新重构转换。它的目的是从类图中删除属性的克隆,并识别新的类,这些类抽象了共享公共数据特征的类组。它被用作一个通用的转换集合(如删除冗余继承或多重继承),旨在提高规范或设计级类图的质量。转换是模型重构的一个典型示例,并说明了这种转换中涉及的问题。
2013-12-02 cs.SE
Conceptual Modeling of a Procurement Process: Case study of RFP for Public Key Infrastructure
采购是指在规定时间内交付货物或服务的过程。该过程包括采购、需要满足的规格和招标通知等方面,如征求建议书(RFP)。通常情况下,这种RFP是用英语口头描述的,带有表格和图表,导致要求的规格不精确。有人建议使用BPMN图来指定RFP中包含的需求。本文是一个合并的三个主题:(一)采购开发,重点是操作规范的RFP,(二)公钥基础设施(PKI)作为一个RFP的主题,和(三)概念建模,产生一个图表作为补充的RFP,以澄清要求比传统的工具,如自然语言,表格和特设图。
2018-12-04 cs.SE
Concurrent Software Design Based on Constraints on State Diagrams
并行工程计算软件由多个协同工作的模块组成。各个模块的行为通过状态图来描述。在本文中,提出了状态图的约束,允许设计师的意图规范的同步模块。此外,翻译的状态图(强制约束)到并发状态机,这提供了正式的框架,验证模块间的同步。给出了一个基于该方法的工程软件设计实例。
2017-03-23 cs.SE
Sionnx: Automatic Unit Test Generator for ONNX Conformance
Alibaba Group US Inc.(阿里巴巴集团美国公司)
开放神经网络交换(ONNX)是一种表示AI模型的开放格式,并得到许多机器学习框架的支持。虽然ONNX定义了跨各种框架的统一和可移植计算运算符,但这些运算符的一致性测试不足,这使得很难验证ONNX后端实现中的运算符行为是否符合ONNX标准。在本文中,我们提出了第一个自动单元测试生成器名为Sionnx的ONNX实现的合规性验证。首先,我们提出了一个紧凑而完整的规则集来描述操作符的属性和操作数的属性。其次,我们设计了一个操作符规约语言(OSL),为操作符的语法提供一个高层次的描述。最后,通过这种易于使用的规约语言,我们能够构建一个完整的测试规范,该规范利用LLVM TableGen自动为覆盖范围更大的ONNX运营商生成单元测试。Sionnx是轻量级和灵活的,以支持跨框架验证。Sionnx框架在github存储库(https://github.com/alibaba/Sionnx)中是开源的。
2019-06-12 cs.AI cs.SE
Developing the UML as a Formal Modelling Notation
统一建模语言(UML)正迅速成为面向对象系统建模的事实标准。考虑到这个角色,UML必须有一个定义良好的、充分开发的语义.这样的语义是必需的,以确保UML概念被精确地陈述和定义。在本文中,我们描述和激励的方法来形式化UML中,正式规格说明技术被用来深入了解UML符号和图表的语义。我们目前的工作进行了精确的UML(PUML)组上的一个精确的语义模型的UML类图的发展。语义模型被用作一组语法转换规则的基础,这些规则使得可以对UML类图进行正式的推导。它还显示了如何使用这些规则来验证一个类图是否是另一个类图的有效细化(设计)。由于这些规则是在语法层面上提出的,因此可以认为UML可以成功地用作正式的建模工具,而不需要在正式规范技术中常见的符号复杂性。
2014-09-24 cs.SE
Automatic, Expressive, and Scalable Fuzzing with Stitching
Carnegie Mellon University(卡内基梅隆大学)
STITCH通过拼接技术实现自动、表达性强且可扩展的模糊测试,发现更多真实bug并提高精度。
2026-02-21 cs.CR cs.SE
Towards Code Generation from BDD Test Case Specifications: A Vision
Technische Universität Darmstadt(达姆施塔特工业大学)
本文提出一种新颖的代码生成方法,利用行为驱动开发测试规约作为基于 Transformer 的机器学习模型的输入,为流行的 Angular 框架生成前端组件代码,旨在大幅减少 Web 应用开发时间并提升软件质量。
2023-05-19 cs.AI cs.SE
Data Dependency-Aware Code Generation from Enhanced UML Sequence Diagrams
WeChat Pay, Tencent Inc(腾讯公司);The Chinese University of Hong Kong(香港中文大学);Wuhan University(武汉大学)
提出UML2Dep框架,通过增强UML顺序图显式形式化复杂需求,并引入数据依赖推断(DDI)任务构建依赖图,结合静态解析与剪枝降低复杂性,提升LLM代码生成的准确性与效率。
2025-11-05 cs.AI cs.SE
Beyond Postconditions: Can Large Language Models infer Formal Contracts for Automatic Software Verification?
Carl von Ossietzky Universität Oldenburg(奥尔登堡卡尔·冯·奥西茨基大学)
本文提出NL2Contract任务,利用大型语言模型将自然语言转换为形式化功能契约(含前置与后置条件),实验证明其生成契约健全且能减少验证误报,并有效捕获真实错误。
2025-10-14 cs.AI cs.PL cs.SE
FLAG: Formal and LLM-assisted SVA Generation for Formal Specifications of On-Chip Communication Protocols
针对从非正式文档生成片上通信协议SVA属性的难题,提出两阶段框架FLAG,结合模板生成与时序图及LLM过滤,有效提升属性生成的正确性。
2025-04-24 cs.AR cs.SE
Using Alloy to model-check visual design notations
本文探讨了图形符号的抽象语法的验证过程。我们为发现方法使用的五个UML图定义了一个统一的规范,在本文档中,我们说明了如何在Alloy中表示图,并根据我们的规范进行检查,以了解这些图在发现符号下是否有效。
2008-02-15 cs.SC cs.SE
Semantic Guidance and Feedback for the Construction of Specifications and Implementations
编写一个准确反映开发人员意图的规范的问题长期以来一直被认为是一个基本问题。我们提出了一种方法和一个支持工具来编写和检查规范和实现使用一组用例,\ie输入输出对,开发人员提供。这些都是好的(正确的)和坏的(不正确的)行为的例子。我们假设用例是准确的,因为生成用例比编写准确的规范更容易。我们逐步构建一个规范(前置条件和后置条件)的基础上产生的语义反馈,从这些用例。我们使用两种算法检查构造的规范的准确性。第一个算法检查规范的准确性,根据自动生成的规范,从提供的有限域的用例。第二个检查规范的准确性,通过减少其域到一个有限的,但同样可满足的域,如果可能的话。当规范成熟时,我们也开始构造满足规范的程序。然而,如果需要,我们的方法为继续修改规范做好了准备。我们用两个例子来说明我们的方法;线性搜索和文本对齐。
2013-05-17 cs.LO cs.SE
Semantic based model of Conceptual Work Products for formal verification of complex interactive systems
许多临床工作流程依赖于交互式计算机系统,用于高技术性、概念性的工作产品,例如诊断、治疗计划、护理协调和病例管理。我们描述了一个自动逻辑推理机来验证这些高度技术性的,但抽象的,工作产品是必不可少的照顾客观规范。概念性的工作产品规格作为一个基本的输出要求,必须清楚地陈述,正确和可解决的。这种规范具有战略重要性,因为反过来,它们使系统模型检验能够验证用户过程所采用的机器功能实际上能够实现这些抽象产品。我们选择多发性硬化症(MS)门诊患者的病例管理作为我们的用例,因为它具有挑战性的复杂性。作为第一步,我们说明了如何从UML的图形类和状态图可以开发和批评与主题专家作为规范的概念工作产品的情况下管理。一个关键特性是规范必须是声明性的,因此独立于任何过程或技术。我们的工作领域本体与语义网的工具,需要翻译UML类和状态图的自动推理的可解性验证。然后,可解模型将准备好用于随后对人类程序和机器功能的系统进行模型检验。我们使用了表达规则语言SPARQL推理符号(SPIN)来开发UML类图、状态机及其交互的形式化表示。利用SPIN证明了静态概念和动态概念相互作用的一致性。我们讨论了如何将新的SPIN规则引擎合并到对象管理组(OMG)本体定义元模型(ODM)中
2020-08-04 cs.SE stat.ML
LaForge: Always-Correct and Fast Incremental Builds from Simple Specifications
开发人员依靠构建系统从代码生成软件。至少,构建系统应该从代码的干净副本中生成构建目标。但是,开发人员很少从干净的签出工作。相反,他们会重复地重建软件,有时一天要重建数百次。为了保持快速重建,构建系统以增量方式运行,仅在无法重用构建状态时才执行命令。现有的工具,如使目前的用户与权衡。简单的构建规范很容易编写,但限制了增量工作。更复杂的构建规范产生更快的增量构建,但是编写它们是劳动密集型的并且容易出错。这项工作表明,没有这样的权衡是必要的;构建规范可以既简单又快速。我们介绍LaForge,一种新颖的构建工具,它消除了指定依赖关系或增量构建步骤的需要。LaForge构建很容易指定;开发人员编写一个简单的脚本来运行完整的构建。即使是像gcc src/*.c这样的命令也足够了。LaForge跟踪构建的执行并生成TraceIR语言的记录。在以后的构建中,LaForge会评估TraceIR记录以检测更改并执行高效的增量重建,自动捕获所有构建依赖项。我们通过构建14个软件包来评估LaForge,包括LLVM和memcached。我们的研究结果表明,LaForge自动生成高效的构建从简单的构建规范。与项目的默认完整构建相比,LaForge的完整构建的平均开销为16.1%。LaForge的增量构建始终运行更少的命令,并且大多数比手动指定的增量构建花费不到3.08秒的时间。最后,LaForge总是正确的…
2021-09-02 cs.PL cs.SE
Symmaries: Automatic Inference of Formal Security Summaries for Java Programs
Newcastle University(纽卡斯尔大学);OcamlPro;University of Liverpool(利物浦大学)
Symmaries通过自动化生成Java程序的安全摘要,提升静态分析工具的精度和可扩展性。
2025-12-23 cs.CR cs.FL cs.PL
Learning-Based Automatic Synthesis of Software Code and Configuration
Texas A&M University(得克萨斯农工大学)
本文提出将大规模软件自动生成与配置分解为基于输入输出规范的程序合成和基于序列到序列深度学习的配置合成两大任务,并分别采用神经网络驱动的遗传算法、协方差矩阵自适应进化策略及深度学习机制加以解决。
2023-05-30 cs.AI cs.SE