Real-Time Specification Patterns and Tools
限制业界采用模型检验技术的一个问题是,对于非专家来说,使用验证工具支持的属性语言来表达他们的需求的能力。这激发了在更高级别上表达时态属性的专用断言语言的定义。然而,只有有限的数量,这些形式主义支持时间约束的定义。在本文中,我们提出了一套规范模式,可以用来表达实时的【形】需求通常发现在反应式系统的设计。我们还提供了一个集成的模型检验工具链,用于验证TTS的时间需求,时间Petri网与数据变量和优先级的扩展。
2013-01-31 cs.SE
Quantum Circuit Ansatz: Patterns of Abstraction and Reuse of Quantum Algorithm Design
本文构建分类化量子线路 ansatz 目录,从意图、适用性到实现与示例系统梳理各类结构,以支持量子算法设计中的选型决策。
2024-06-12 cs.SE
On the Specification of Constraints for Dynamic Architectures
在动态架构中,组件激活和组件之间的连接可能会随时间而变化。随着移动计算的出现,这样的体系结构变得越来越重要,并且出现了几种技术来支持它们的规范。这些技术通常允许具体的体系结构实例的规范。然而,有时候,人们希望关注约束的规范,而不是具体的架构。特别是架构模式的规范通常只关注少数几个重要的约束,而忽略了实现模式的具体架构的细节。在本文中,我们将介绍一种为动态架构指定此类约束的方法。为此,我们引入的概念,配置跟踪作为一个抽象的模型,动态体系结构。然后,我们介绍了配置跟踪断言的概念,作为一个形式语言的基础上线性时序逻辑,以指定这种架构的约束。此外,我们还引入了配置图的概念,以在一个单一的图形符号中指定接口以及某些常见的激活和连接约束。该方法非常适合于为动态架构指定模式,并通过形式化分析对其进行验证。这是通过应用该方法来指定和验证动态体系结构的黑板模式。
2017-03-20 cs.SE
Applying Slicing Technique to Software Architectures
软件体系结构作为软件系统的一个重要设计层次,正受到越来越多的关注。随着软件体系结构设计资源(以体系结构规范的形式)的积累,支持体系结构理解、测试、再工程、维护和重用的技术和工具的开发将成为一个重要的问题。本文介绍了一种新的切片形式,称为架构切片,以帮助架构的理解和重用。与传统切片不同,架构切片被设计为对软件系统的架构规范进行操作,而不是对程序的源代码进行操作。架构切片提供了关于软件系统的高层结构的知识,而不是程序的低层实现细节。为了计算架构切片,我们提出了架构信息流图,它可以用来表示软件架构中的信息流。基于图,我们给出了一个两阶段算法来计算建筑切片。
2001-05-05 cs.SE
On Implementing Real-time Specification Patterns Using Observers
英语语言要求通常用于指定复杂网络物理系统的行为。将这些需求转换为正式的规约语言的过程通常是具有挑战性的,特别是当规约语言不包含与原始需求中使用的结构类似的结构时。例如,需求通常包含实时的【形】约束,但许多模型检查器的规约语言具有离散时间语义。规范模式的工作有助于弥合这些差距,允许用形式语言直接表达常见的需求模式。在这项工作中,我们演示了我们如何支持实时的【形】规格说明模式的假设保证推理环境(AGREE)使用观察员。我们证明,有微妙的挑战,没有提到在以前的文献中,准确地表达实时的【形】模式使用观察员。然后,我们证明,这些模式是足够的模型实时的【形】要求,为现实世界的航空电子系统。
2016-04-27 cs.LO cs.SE
Verifying Patterns of Dynamic Architectures using Model Checking
架构模式捕获架构设计经验,并为重复出现的架构设计问题提供抽象的解决方案。它们包括对组件类型的描述,并限制组件连接和激活。因此,它们保证了采用该模式的体系结构的一些所需属性。不幸的是,大多数文档化的模式都没有提供正式的保证,以证明它们的规范是否确实导致了所需的保证。然而,如果不这样做,可能会导致错误的体系结构,即,被错误地认为具有某些理想属性的建筑。由于架构通常对最终系统的质量有很大的影响,并且架构缺陷即使不是说不可能也很难修复,因此这可能导致最终系统中无法修复的质量问题。为了解决这个问题,我们提出了一种基于模型检验的方法来验证模式规格w.r.t.他们的保证。在下文中,我们将该方法应用于三种著名的动态架构模式:Singleton、Model-View-Controller和Broker模式。因此,我们发现了所有三个规范的模糊性和缺失的约束。因此,我们得出结论,使用模型检验来验证动态体系结构的模式是可行的,并且对于发现模式规范中的歧义和缺陷是有用的。
2017-03-21 cs.SE
How is Software Reuse Discussed in Stack Overflow?
本文通过对 Stack Overflow 上 1,409 篇帖子的实证分析,揭示了开发者在软件复用中讨论的主要挑战、高频术语及常用设计模式,为制定促进复用的指导方针提供依据。
2023-11-01 cs.SE
Feature Evolution and Reuse -- An Exploratory Study of Eclipse
提高生产力和减少开发时间的一个方法是重用现有的功能和模块。如果重用被采用,那么从逻辑上讲,它将对系统的发展产生直接影响。然而,文献中的证据并不清楚在现实世界的项目中重用的程度,也不清楚它是如何实践的。在本文中,我们报告的调查结果的重用和演变的软件功能在最大的开源生态系统之一- Eclipse。Eclipse提供了一个领先的例子,说明系统如何在保持质量的同时,在大小和功能数量上急剧增长。我们的结果展示了功能重用和演化的程度,以及十个不同Eclipse版本(从Europa到Neon)的重用模式。
2021-04-02 cs.SE
Specification Patterns for Robotic Missions
University of Luxembourg(卢森堡大学);Technische Universität Wien(维也纳技术大学);University of L’Aquila(拉奎拉大学);Chalmers University of Technology — University of Gothenburg(查尔姆斯理工大学—哥德堡大学);Politecnico di Milano(米兰理工大学)
移动和通用机器人越来越多地支持我们的日常生活,需要可靠的机器人控制软件。创建这样的软件主要是实现他们的复杂行为,称为任务。认识到这一需求,大量的领域特定的规约语言被提出。这些,除了传统的逻辑语言,允许使用正式指定的综合,验证,模拟任务,或指导实施。例如,专家通常使用逻辑语言LTL来指定任务,作为规划者的输入,规划者综合了机器人应该具有的行为。不幸的是,特定于领域的语言通常与特定的机器人模型绑定,而LTL等逻辑语言很难被非专家使用。我们提出了一个目录的22个任务规范模式的移动机器人,连同工具的实例化,组成,并编译的模式,以创建任务规范。这些模式为经常性的规范问题提供了解决方案,每个问题都详细说明了使用意图、已知用途、与其他模式的关系,以及最重要的是时态逻辑中的模板任务规范。我们的工具产生的规格表示的LTL和CTL的时间逻辑规划者,模拟器,或模型检查器使用。这些模式来自于从机器人文献中提取的245个现实的文本任务要求,并根据总共441个现实任务要求和1251个任务规范进行评估。其中五个场景反映了我们与两个著名的工业合作伙伴一起开发人类大小的机器人的场景。我们用模拟器和两个真实的机器人验证了我们的模式的正确性。
2019-01-07 cs.RO cs.SE
An Empirical Investigation of Pre-Trained Deep Learning Model Reuse in the Scientific Process
Loyola University Chicago(洛伊拉大学芝加哥分校);Purdue University West Lafayette, IN, USA(普渡大学西拉法基分校)
通过对17,718篇同行评审开放获取论文的实证研究,量化了自然科学中预训练深度学习模型(PTM)的复用模式、利用率和影响,发现“生物化学、遗传学和分子生物学”领域复用最多,“适配”复用模式最普遍,且“测试”阶段受PTM集成影响最大。
2026-09-01 cs.AI cs.SE
Events in Property Patterns
Dwyer及其同事提出了一种基于模式的方法来表示、编码和重用有限状态验证的属性规范。这些模式使非专家能够阅读和编写实际系统的正式规范,并促进规范在LTL、CTL、QRE等形式主义之间的轻松转换。在本文中,我们扩展了模式系统的事件-变量值的变化在LTL的上下文中。
1999-06-29 cs.AI cs.CL cs.SC
Developing controlled natural language for formal specification patterns using AI assistants
Institute of Automation and Electrometry(自动化与电测研究所)
本文提出利用AI助手开发受控自然语言的方法,通过三个阶段构建基于形式规范模式的自然语言需求,用于事件驱动的时间要求分析。
2025-12-30 cs.AI cs.FL cs.SE
Feature Interactions on Steroids: On the Composition of ML Models
缺乏规范是传统软件工程和机器学习之间的一个关键区别。我们讨论了它如何极大地影响我们如何看待系统设计的分而治之的方法,以及它如何影响重用,测试和调试活动。传统上,规范为组合推理和如何从组件构建大型复杂系统的分而治之策略提供了基石,但对于机器学习组件来说,这些很难实现。乍一看,缺乏规范似乎是一个基本的新问题,但事实上,软件工程师在实践中经常处理不确定的规范:我们面临着弱规范,错误的规范,以及组件及其规范之间的意外交互。机器学习可能会进一步推动我们,但问题并不是新的。从功能交互问题的角度重新思考机器学习模型的组成,我们甚至可以教我们如何前进,包括集成测试,需求工程和设计的重要性。
2021-05-13 cs.LG cs.SE
Towards Mapping Control Theory and Software Engineering Properties using Specification Patterns
在软件工程(SE)中实现自适应的传统方法是通过反馈环。系统的目标可以被指定为针对系统模型进行验证的形式属性。另一方面,控制理论(CT)提供了一个完善的基础,设计反馈回路系统,并提供保证的基本属性,如稳定性,建立时间和稳态误差。目前,它是一个悬而未决的问题是否以及如何传统的SE方法自适应考虑CT的属性。考虑到这两个领域在表示属性方面的原则差异,提出这个问题是具有挑战性的。在本文中,我们迈出了回答这个问题的第一步。我们遵循自自底向上的的方法,为法拉利车队(F1)的灵感案例指定控制设计(在Simulink中),并提供稳定性和安全性的证据。然后将设计转换为进一步优化的代码(C)。接下来,我们定义属性,以验证控件属性在代码级别是否仍然有效。然后,我们巩固的解决方案,通过映射的属性在两个世界使用规范模式作为共同的语言,我们验证了这种映射的正确性。映射提供了一个可重用的工件来解决类似的问题。最后,我们概述了未来工作的机会,特别是完善和扩展映射,并研究它如何能够提高工程自适应系统的SE和CT工程师。
2022-05-23 cs.SE
Enhancing the Alloy Analyzer with Patterns of Analysis
形式化技术已经被证明是有用的,在正确的软件开发。但是,这些技术的从业者所需的专业知识水平阻碍了它们的广泛采用。形式化技术需要为商业软件开发者量身定制。Alloy是Alloy Analyzer(AA)支持的轻量级规约语言,AA是一种基于现成SAT技术的工具。该工具允许用户以交互方式检查给定的属性是否与高级规范一致或有效,提供了一个可以建立这种规范的正确性的环境。然而,Alloy并不特别适合表达程序规范,并且AA提供的反馈可能会误导分析中的规范或检查中的属性包含不一致性。在本文中,我们解决这两个缺点。首先,我们提出了一个轻量级的语言称为“Loy”,量身定制的规范面向对象的程序。提供了一种将Loy编码为Alloy的方法,以便AA可用于Loy程序规范的自动分析。其次,我们提出了一些“模式的分析”,指导开发人员通过分析的洛伊规范,以建立其正确性之前实施。
2005-08-24 cs.LO cs.SE
SpecSatisfiabilityTool: A tool for testing the satisfiability of specifications on XML documents
我们提出了一个原型,实现了一组逻辑规则来证明满足一类规范的XML文档。规范是通过建立在布尔模式上的约束给出的。这个工具的主要目标是测试一个给定的规范是否是可满足的,并证明显示执行历史的决策是合理的。它也可以用来测试一个给定的文档是否是一个给定规范的模型,作为一个副产品,它允许寻找两个模式之间的所有关系(单态),并以不同的方式组合模式。这些操作的结果以可视化方式显示,因此该工具使这些操作更容易理解。该算法的实现是用Prolog语言编写的,但原型有一个Java接口,使用起来方便友好。在本文中,我们将展示如何使用这个接口,以测试所有所需的属性。
2015-01-09 cs.LO cs.SE
Refactoring for Reuse: An Empirical Study
重构是优化软件健康的实际实践。虽然一些研究提出了重构策略,通过应用设计模式和删除设计缺陷来优化软件设计,但很少有人知道开发人员实际上如何重构代码以提高其重用性。因此,我们从1,828个开源项目中提取了一组旨在提高软件可重用性的重构。我们分析了可重用性重构对最先进的可重用性度量的影响,并比较了可重用性重构类型的分布,以及其余主流重构的分布。总的来说,我们发现在可重用性的上下文中应用的重构类型的分布与主流开发中重构类型的分布不同。在为提高可重用性而执行的重构中,源文件受到更多设计级别类型的重构的影响。可重用性重构会显著影响高级代码元素,如包、类和方法,而典型的重构会影响所有代码元素,包括标识符和参数。这些发现提供了实际的见解,目前的重构实践中的代码重用的背景下,涉及重构的行为。
2021-11-13 cs.SE
Enabling Open-World Specification Mining via Unsupervised Learning
University of Wisconsin–Madison(威斯康星大学麦迪逊分校);Microsoft Research(微软研究院);GrammaTech, Inc.(GrammaTech公司)
许多编程任务需要同时使用特定于域的代码和完善的模式(例如与文件IO有关的例程)。几个小模式结合在一起,创造出复杂的交互。这种复合效应,与特定领域的特质混合,为全自动规范推理创造了一个具有挑战性的环境。在这种环境中挖掘规范,没有规则模板的帮助,用户导向的反馈,或预定义的API表面,是一个重大的挑战。我们称之为开放世界规范挖掘。在本文中,我们提出了一个框架,挖掘规范和使用模式在开放世界的设置。我们将这个框架设计为与矿机无关,而是专注于解决复杂和嘈杂的API交互。为了评估我们的框架,我们引入了从五个开源项目中提取的71个集群的基准。使用这个数据集,我们表明,有趣的集群可以恢复,在一个完全自动的方式,利用无监督学习的形式词嵌入。一旦恢复集群,开放世界规范挖掘的挑战就会简化,并且可以应用任何基于踪迹的挖掘技术。此外,我们提供了一个全面的评估三个词向量学习器,以展示子词信息的嵌入在软件工程领域学习的价值。
2019-04-27 cs.LG 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
Towards an Approach to Pattern-based Domain-Specific Requirements Engineering
本文提出基于模式的特定领域需求工程方法,通过整合领域知识实现需求质量自动化检查与系统验证支持,并在无人飞行器飞行控制器领域完成概念验证。
2024-04-26 cs.SE
Modeling Shared Cache Performance of OpenMP Programs using Reuse Distance
由于多核处理器的设计复杂,包括私有和共享的存储层次结构,多核计算机上并行应用的性能建模仍然是计算协同设计中的一个挑战。我们提出了一个可扩展的分析共享内存模型来预测运行在多核计算机上的并行应用程序的性能,并在层次结构中共享同一级别的缓存。该模型使用计算效率高的概率方法来预测重用距离概况,其中重用距离是虚拟内存访问模式的独立于硬件架构的度量。它依赖于一个随机的,静态的基本块级的重用配置文件的分析,从应用程序的内存跟踪测量顺序运行在小的实例,而不是使用多线程跟踪。结果表明,在共享缓存的命中率预测是准确的。
2019-07-29 cs.PF cs.SE
Software Dependencies 2.0: An Empirical Study of Reuse and Integration of Pre-Trained Models in Open-Source Projects
Queen's University(女王大学);Socket Inc.(Socket公司);Purdue University(普渡大学)
本研究通过分析开源项目中预训练模型的重用与集成,揭示软件依赖2.0的结构、重用流程及与其他组件的交互。
2026-02-18 cs.AI cs.SE
How Do OSS Developers Reuse Architectural Solutions from Q&A Sites: An Empirical Study
该研究通过挖掘GitHub项目数据与调查从业者的混合方法,探究开源软件开发者复用问答网站架构解决方案的场景、类型、实施方式及挑战,填补了相关领域研究空白。
2025-05-18 cs.SE
Towards A Catalogue of Requirement Patterns for Space Robotic Missions
University of Manchester(曼彻斯特大学)
针对空间机器人任务需求难以形式化验证的问题,本文验证现有机器人规范模式在空间任务的适用性,构建空间任务需求语料库,新增5种需求模式及相关变体并完成专家评估。
2025-11-18 cs.FL cs.LO cs.RO
Distributed Real-Time Emulation of Formally-Defined Patterns for Safe Medical Device Control
医疗器械及其互操作的安全性是一个尚未解决的问题,导致严重的,有时是致命的事故,病人令人震惊的频率。形式化方法,特别是支持高度可重用和可证明安全的模式,可以实例化到许多设备实例,可以在这方面提供帮助。然而,这仍然留下了一个问题,即如何从逻辑时间上的正式规范传递到可执行的仿真,这些仿真可以在物理时间上与其他设备以及患者和/或医生行为的模拟进行互操作。这项工作提出了一种基于规范的方法,其中虚拟仿真环境可以很容易地从正式规范在实时的【形】Maude开发,并可以支持与其他真实设备和仿真模型的交互。这种一般的方法进行了详细的解释,并说明了两个具体的情况下,这两个实例的一个共同的安全正式模式:一个场景涉及到一个可证明的安全起搏器与模拟心脏的相互作用;另一个涉及到一个安全的控制器的相互作用,病人诱导镇痛与一个真正的注射泵。
2010-09-22 cs.LO cs.SE
Pattern-based Model-to-Model Transformation: Long Version
我们提出了一个新的,高层次的方法规范的模型到模型的转换的基础上声明模式。这些是三元组图上的(原子或复合)约束,声明了源模型和目标模型之间允许或禁止的关系。通过这种方式,通过指定转换结果应满足的一组三元组图约束来定义转换。然后,转换的描述被编译成较低级别的操作机制,以执行向前或向后转换,以及在两个现有模型之间建立映射。在本文中,我们研究了这样的机制的基础上产生的操作三元组图语法规则。此外,我们利用演绎技术在规范层面上产生更专门的约束(保留规范语义),反映模式的依赖关系,从中可以推导出额外的规则。这是提交给ICGT'08的论文的扩展版本,增加了定义和证明。
2008-05-30 cs.DM cs.LO cs.SE