Goal-oriented Composition of Software Process Patterns
高质量软件或软件密集型系统的开发需要定制的过程模型,以适应组织和项目目标以及开发环境。这些模型是创建预期实现业务目标的项目计划的必要先决条件。尽管项目规划者需要根据其约束条件定制的单独过程模型,但软件或系统开发组织也需要通用过程(即,参考过程),为类似的开发环境捕获独立于项目的知识。后者通过评估方法(如CMMI,SPICE)强调,这些方法需要明确的过程描述,以达到一定的能力或成熟度水平。在其他概念,如多态性,模板,或基于生成器的描述,软件过程模式被用来描述一般的过程知识。描述过程模式体系结构的几种方法已经发表(例如,[7])。然而,如何为特定的开发环境组合过程模式,以获得定制的过程模型的项目缺乏描述。本文着重于以目标为导向的方式对过程模式进行组合。首先,本文描述了过程模式应该包含哪些信息,以便它可以用于系统组合。第二,概述了一种合成方法。然后,描述了该方法的概念验证评估结果。最后,对全文进行了总结,并对有待解决的问题进行了展望.
2014-01-17 cs.SE
Patterns of Multi-Container Composition for Service Orchestration with Docker Compose
本文通过构建使用 Docker Compose 的成功开源项目数据集并分析其配置,识别出反复出现的多容器组合模式,为服务编排实践和软件工程实证研究提供参考。
2024-05-08 cs.SE
Code Generator Composition for Model-Driven Engineering of Robotics Component & Connector Systems
用于机器人应用的工程软件需要多领域和特定于应用的解决方案。模型驱动工程和建模语言集成为开发专门的、可重用的机器人软件架构模型提供了方法。代码生成器将这些独立于平台的模型转换为特定于机器人平台的可执行代码。多领域应用的生成式软件工程不仅需要集成建模语言,还需要集成验证机制和代码生成器。在本文中,我们勾勒出一个概念模型的代码生成器组成,并显示了一个实例,这个模型中的MontiArc自动机框架。MontiArcAutomaton允许使用不同的组件行为建模语言将软件架构建模为组件和连接器模型。代码生成器集成的有效手段是基于模型的机器人软件工程中applicationspecific语言的事后集成的必要条件。
2015-05-05 cs.SE
Correct-by-construction model composition: Application to the Invasive Software Composition method
组合技术提高了大型复杂系统开发中的重用性。安全关键系统需要密集的确认和验证活动。这些活动应该是组合的,以减少除了对每个组件进行的验证活动之外,还必须对组合进行的剩余验证活动的数量。为了保证组合验证的正确性和评估剩余验证的最小性,本文提出在组合操作符级别使用形式规格说明和验证。第一个实验在[15]中进行,使用证明助手来形式化通用组合技术ISC,并证明类型检查是组合的。这一贡献扩展了我们早期的工作,以处理完整的模型一致性和研究强制性的剩余验证。它表明ISC操作符在一致性方面不是完全组合的,并提供了确保组合一致性所必需的操作符的最小先决条件。ISC中的相应操作符(尤其是bind)已在COQ4MDE框架中实现,该框架在COQ证明助手中提供了MOF的完整实现。期望的属性,分别剩余验证,表示为后,分别为前,复合运算符的条件。在COQ中证明了组成验证的正确性。
2014-04-03 cs.LO cs.SE
From Component Snapshots to Lifecycle Traces: Agent-Based Software Composition Analysis
Huazhong University of Science and Technology(华中科技大学)
针对软件成分分析仅提供阶段快照而无法追踪跨生命周期演变的问题,提出基于智能体的SCA-Agent方法,重建组件生命周期轨迹,在105个真实项目中达到96.69%的漏洞暴露评估F1分数,优于传统工具。
2026-09-17 cs.SE
Drop the Golden Apples: Identifying Third-Party Reuse by DB-Less Software Composition Analysis
针对SCA依赖庞大特征数据库的痛点,提出首个无数据库SCA框架,利用LLM模拟分析师从互联网检索证据识别第三方库,实验验证其在Android和C/C++场景的有效性。
2025-03-28 cs.SE
Non-Concept Software Subsystems: Tangible and Intangible
由非前缀修饰的概念显然表示否定,是没有这个前缀的概念的对立面。但是,一般情况下,情况是相当微妙的:非意味着只有部分否定和概念表明保留的身份与一些减少质量或缺席的属性。在这项工作中,有形和无形的软件子系统的基础上非概念的定义和可插拔本体论提出了他们的表示。可插拔本体是一种纳米本体,其最小的尺寸有助于快速组合新的软件子系统。这些本体通过一种新颖的类DesignSockets变得可插入。这些是抽象的连接器,用于删除/添加部分,功能或身份,以及用于柔和的品质。设计套接字是可动态修改的软件系统的设计模式的基础。非概念的实用含义包括多型号产品线的可管理设计。非概念也与构成是否是同一性的争论有关.分辨率不高。身份与组成纠缠在一起,并在一定程度上被保存下来,直到进一步的去除导致身份崩溃。
2016-01-03 cs.SE
On the Security Blind Spots of Software Composition Analysis
针对软件成分分析中因代码克隆、遮蔽产生的隐藏依赖漏洞检测难题,提出轻量级Maven仓库漏洞克隆检测方法,检出数百个现有SCA工具遗漏的漏洞,推动多个CVE条目更新。
2023-10-09 cs.SE
Biomedical Knowledge Composition: A Software Engineering Perspective
Institute of Informatics, University of Amsterdam(阿姆斯特丹大学信息学研究所)
本文从软件工程视角,阐述生物医学知识图谱的核心地位与相关挑战,提出需借鉴Web工程的可组合可复现实践,为生物医学知识基础设施构建提供研究议程。
2026-08-11 cs.SE
Is Reuse All You Need? A Systematic Comparison of Regular Expression Composition Strategies
针对正则表达式组合策略缺乏比较的问题,该研究构建RegexReuseDB和RegexCompBench数据集,设计reuse-by-example方法,系统评估复用、形式化合成和LLM生成策略,发现复用和LLM在多指标上表现更优,为策略选择和工具设计提供参考。
2025-09-23 cs.SE
A Comparative Study of Vulnerability Reporting by Software Composition Analysis Tools
背景:现代软件使用许多第三方库和框架作为依赖项。这些依赖关系中的已知漏洞是潜在的安全风险。因此,软件组合分析(SCA)工具越来越多地被从业者采用,以跟踪脆弱的依赖关系。目的:本研究的目标是了解不同SCA工具在漏洞报告方面的差异。了解现有SCA工具在分析方面是否存在差异以及差异如何,可以帮助安全从业人员选择正确的工具并确定未来的研究需求。方法:我们通过比较9个行业领先的SCA工具对一个大型Web应用程序OpenMRS的分析报告,提出了一个深入的案例研究,OpenMRS由Maven(Java)和npm(JavaScript)项目组成。结果:我们发现这些工具在漏洞报告方面各不相同。在所研究的工具中,Maven报告的脆弱依赖项的数量从17到332不等,npm项目从32到239不等。同样,Maven工具报告的已知漏洞数量从36到313不等,npm项目从45到234不等。我们对工具结果的手动分析表明,漏洞数据库的准确性是SCA工具的关键区别。结论:我们建议从业者目前不应依赖任何单一工具,因为这可能导致遗漏已知漏洞。我们指出了SCA领域的两个研究方向:i)建立框架和指标来识别依赖漏洞的误报; ii)构建自动化技术来持续监控来自开源包生态系统的漏洞数据。
2021-09-01 cs.SE
Dynamic Web Service Composition based on Network Modeling with Statistical Analysis and Backtracking
Web服务是一种软件系统,旨在支持通过网络进行的可互操作的机器对机器交互。Web服务提供了在不同的软件应用程序之间进行互操作的标准方法,这些软件应用程序运行在各种平台和/或框架上。使用Web服务的主要优点之一是它能够通过Web服务组合与其他服务集成并实现所需的功能。本文提出了一种新的模式,动态Web服务组合使用网络分析与回溯配对。还提出了一种算法,称为“Zeittafel”的选择和调度的服务组成。与现有的方法相比,所提出的系统获得更好的工作成功率的百分比。
2012-07-11 cs.SE
Preserving Privacy in Software Composition Analysis: A Study of Technical Solutions and Enhancements
针对软件成分分析(SCA)需上传源代码至远程服务器导致的隐私问题,首次分析其隐私需求并提出技术方案全景图,优化基于多方计算(MPC)的框架,将开销从184倍降至8.5%且不损失隐私与准确性。
2024-12-01 cs.CR cs.SE
BinaryAI: Binary Software Composition Analysis via Intelligent Binary Source Code Matching
提出BinaryAI,一种通过两阶段二进制源代码匹配捕获语法和语义特征的新型二进制到源码SCA技术,显著提升了函数匹配和TPL检测的精确率与召回率。
2024-08-26 cs.SE
Skills Composition Framework for Reconfigurable Cyber-Physical Production Modules
针对可重构制造系统缺乏快速软件变更技能组合框架的问题,提出基于分布式行为树的技能组合与执行框架,实现底层设备代码与AI任务框架集成,并在IEC 61499控制器上实现验证。
2024-05-22 cs.SE cs.SY eess.SY
From Pattern Detection to Composition Analysis in Quantum Software
University of São Paulo(圣保罗大学)
本研究扩展了量子模式挖掘工具,经评估其在Qrisp上准确率提升,构建了模式组件调用组合图并发布相关流水线、知识库与数据集,支持量子模式采用与演化的可复现研究。
2026-08-12 cs.SE quant-ph
Feature Interactions on Steroids: On the Composition of ML Models
缺乏规范是传统软件工程和机器学习之间的一个关键区别。我们讨论了它如何极大地影响我们如何看待系统设计的分而治之的方法,以及它如何影响重用,测试和调试活动。传统上,规范为组合推理和如何从组件构建大型复杂系统的分而治之策略提供了基石,但对于机器学习组件来说,这些很难实现。乍一看,缺乏规范似乎是一个基本的新问题,但事实上,软件工程师在实践中经常处理不确定的规范:我们面临着弱规范,错误的规范,以及组件及其规范之间的意外交互。机器学习可能会进一步推动我们,但问题并不是新的。从功能交互问题的角度重新思考机器学习模型的组成,我们甚至可以教我们如何前进,包括集成测试,需求工程和设计的重要性。
2021-05-13 cs.LG cs.SE
Semantic Component Composition
构建复杂的软件系统需要使用基于组件的体系结构。从理论上讲,在设计所需的组件集中,只有一小部分是“定制的”;其余的都是重用或重构现有的软件。不幸的是,这是一种理想化的情况。仅仅因为两个组件应该一起工作并不意味着它们将一起工作。将组件粘合在一起的“胶水”不仅仅是技术。将复杂系统绑定在一起的契约隐式地定义了比显式类型更多的东西。这些“概念契约”描述了系统外语义的基本方面:例如,对象模型、类型系统、数据表示、接口操作语义、法律和合同义务等等。设计人员和开发人员花费大量的时间在技术上对系统进行管道录音以实现这些概念契约,因为系统范围的语义尚未被严格地描述或编码。本文描述了一个正式的表征问题,并讨论了初步实施所产生的理论体系。
2002-04-15 cs.SE
Load Distribution Composite Design Pattern for Genetic Algorithm-Based Autonomic Computing Systems
当前的自主计算系统是从头开始设计和实现的特设解决方案。在设计软件时,在大多数情况下,两个或多个模式将被组合以解决更大的问题。复合设计模式显示了一种协同作用,使组合不仅仅是其部分的总和,这导致了现成的软件架构。据我们所知,目前还没有关于自主计算领域设计模式组合的研究。在本文中,我们提出了面向模式的软件体系结构,在自主计算系统中使用设计模式组合和多目标进化算法,软件设计师和/或程序员可以利用来驱动他们的工作,以自我优化。该系统的主要目标是通过将人口分布到客户端来减少服务器的负载。我们使用了基于案例的推理,数据库访问和主从设计模式。我们评估我们的架构的有效性与设计模式组成和没有。使用复合设计模式的架构和定量测量。使用一个简单的UML类图来描述体系结构。
2012-09-08 cs.DC cs.NE cs.SE
SWE-Nexus: Automated Composition of Software Engineering Tasks from Test Execution
National University of Singapore(新加坡国立大学);Shanghai Artificial Intelligence Laboratory(上海人工智能实验室);Tsinghua University(清华大学)
该研究提出SWE-Nexus自动化流水线,通过测试执行构建仓库级软件工程任务,基于105个仓库的600个任务基准评估模型,最佳配置单次解决37.8%任务,可实现跨变更的验证行为组合。
2026-10-16 cs.AI cs.SE
An Algebraic View on the Semantics of model Composition
随着软件开发项目复杂性的增加,越来越多的系统采用模型来描述。庞大的规模使得用单一模型来描述这些系统是不切实际的。相反,许多模型的开发,提供了几个互补的观点,系统开发。然而,这导致了对组成模型的需求。本文描述了一个基本的理论模型组合的形式,代数明确澄清不同的变体和使用的组合,它们的相互作用与语义的涉及的模型和它们的组合运算符。
2014-09-22 cs.SE
Component Interaction Graph: A new approach to test component composition
基于构件的软件开发的关键是构件组装技术。组件交互图用于描述组件之间的相互关系。绘制完整的组件交互图(CIG)为制定测试大纲提供了客观依据和技术手段。虽然许多研究都集中在这个问题上,但由组件组成的系统的质量并没有得到保证。在本文中,CIG构造从状态图和新的测试用例生成测试组件组合。
2010-06-14 cs.SE
Continuity as a computational effect
基于组件的开发的最初目的是通过组合、重用和参数化来提供掌握复杂软件的技术。然而,这样的系统正在迅速走向一个层次,在这个层次中,软件变得与(连续的)物理过程紧密交织在一起。一种可能的方法来适应后者在组件演算依赖于一个合适的编码的连续行为(又一个)计算效果。本文介绍了这样一个编码通过单子,在混合动力系统的组成发展,可能会发挥类似的1+,幂集,分布单子的部分,非确定性和概率成分的特征,分别发挥作用。这个单子和它的克莱斯利范畴提供了一个环境,在这个环境中,连续性对(不同形式的)组成的影响可以得到适当的研究。
2016-08-01 cs.LO cs.SE
Copilot for Xcode: Exploring AI-Assisted Programming by Prompting Cloud-based Large Language Models
Nanyang Technological University(南洋理工大学);City University of Hong Kong(香港城市大学)
本文提出了Copilot for Xcode,一款集成云端LLM与Xcode的AI辅助编程工具,利用NLP技术实现代码生成等功能,并通过案例研究验证了其有效性。
2023-07-08 cs.AI cs.SE
FIXME: Synchronize with Database An Empirical Study of Data Access Self-Admitted Technical Debt
开发人员有时会因为紧张的发布时间表的压力而选择设计和实现的捷径。然而,快捷方式引入了技术债务,随着软件的发展而增加。债务需要尽快偿还,以尽量减少其对软件开发和软件质量的影响。有时,开发人员在评论和提交消息中承认技术债务。这种债务被称为自我承认的技术债务(SATD)。在数据密集型系统中,数据操作是一个关键功能,在数据访问逻辑中存在SATD可能会严重损害性能和可维护性。了解SATD在软件系统中的组成和分布及其演变可以为有效管理技术债务提供见解。我们提出了一个大规模的实证研究的患病率,组成和演变的SATD在数据密集型系统。我们分析了83个依赖于关系数据库的开源系统以及19个依赖于NoSQL数据库的系统。我们在从主题系统的不同快照获得的源代码注释中检测到SATD。为了了解SATD的进化动力学,我们进行了生存分析。接下来,我们对361个样本数据访问SATD进行了手动分析,调查了数据访问SATD的组成以及引入和删除它们的原因。我们确定了15个新的SATD类别,其中11个是特定于数据库访问操作。我们发现,大多数数据访问SATD是在变更历史的后期阶段而不是在开始时引入的。我们还观察到,bug修复和重构是引入数据访问SATD的主要原因。
2022-01-06 cs.SE
Augmenting Software Bills of Materials with Software Vulnerability Description: A Preliminary Study on GitHub
本文针对SBOMs缺乏软件漏洞信息的问题,提出用项目依赖项暴露的CVE信息增强40个开源项目的SBOMs,并通过提交pull requests和问卷调查进行评估,反馈表明该方法具有实用价值。
2025-05-27 cs.SE
Fine-Grained Network Analysis for Modern Software Ecosystems
现代软件开发越来越依赖于来自第三方供应商或开源供应商的组件、库和框架,并通过许多平台(或锻造)提供。这种编写软件的方式强调重用和组合,使现代应用程序所需的服务商品化。另一方面,存在于这样一个生态系统中的单个库中的错误和漏洞可以直接或通过传递性影响大量其他库和应用程序。目前,只有关于库依赖关系的产品级信息被用来包含这种危险,但这种知识往往显示出其本身太不精确,导致有效的(可能是自动化的)处理策略。我们将讨论细粒度的函数级依赖如何极大地提高可靠性并减少漏洞对整个软件生态系统的影响。
2020-12-08 cs.SE cs.SI
Exploring the Composition of Unit Test Suites
在敏捷软件开发中,测试代码对整个源代码的大小有很大的贡献。作为验证和文档方面的宝贵资产,需要很好地理解测试套件的组成,以便确定进一步发展的机会和弱点。在本文中,我们认为,可视化的结构特征是一个可行的手段,以支持探索的测试套件。由于对一组有限的关键测试设计原则的普遍认同,这种可视化相对容易解释。特别是,我们提出了可视化,支持测试人员(一)定位测试用例;(二)检查测试代码和生产代码之间的关系;(三)研究测试用例的组成和依赖关系。通过两个案例研究,我们展示了视觉模式如何帮助识别关键的测试套件特性。这种方法形成了帮助开发人员建立对测试套件的理解的第一步,而不仅仅是代码阅读。
2007-11-05 cs.SE
Generative Software Development
从建模语言如UML和领域特定语言(DSL)生成软件已成为软件工程中的一个重要范例。在这方面的贡献,我们提出了一些基于模型的软件开发的立场,生成方式的基础上土生土长的DSL以及UML。这包括DSL的开发以及这些语言的模型开发,以生成不同语言的可执行代码,测试用例或模型。正式领域特定语言的开发包含元模型或语法(语法)的概念、上下文条件(静态分析和质量保证)以及定义语言语义的可能性。DSL的数量和复杂性的增长是通过语言及其工具的模块化和组合开发的概念来解决的。此外,我们还介绍了代码生成和模型转换的方法。最后,我们给出了一个概述的相关性DSL的软件开发过程的各个步骤。
2014-09-08 cs.SE
Dynamic Composition of Evolving Process Types
经典的方法,如进程代数或标记的转换系统处理静态组合来建模非平凡的并发或分布式系统,这是不够的系统与动态架构和可变数量的组件。我们介绍了一种方法来指导建模和动态组成的过程,以建立大型分布式系统的动态adhoc架构。建模和组成是基于一个基于事件的方法,有利于系统组件的解耦。组合使用抽象通信信道的共享。该方法适用于处理演化过程(具有迁移、突变)。事件B方法用于实际支持。一个动物群及其进化被认为是一个工作系统;这个系统呈现出一些特殊性,它的行为是不可预见的,它有一个特设的(不是静态固定的)架构。
2011-12-25 cs.SE
Systematic Mapping Protocol: Variability Management in Dynamic Software Product Lines for Self-Adaptive Systems
上下文:动态可变性管理在动态软件产品线中的重要性。目的:定义进行系统映射研究的协议,以总结和综合自适应系统中动态软件产品线动态可变性管理的证据。方法:应用该方案,按照K.彼得森结果:一个经过验证的方案,进行系统的映射研究。结论:第一个研究结果表明,有必要可视化的新方法来管理动态软件产品线的可变性。
2022-06-29 cs.SE
Dynamic Software Updating in Java -- Comparing Concepts and Resource Demands
本文比较了Java中动态软件更新的现有概念及其对计算机资源需求的影响,填补了不同方法在支持变更和资源需求方面的研究空白。
2025-06-02 cs.SE
Dynamic Component Composition
本文提出了一种动态组件组合的方法,该方法可以在运行时使用现有的组件创建新的组合组件,而无需任何代码生成。动态能力由扩展类型概念和实现支持,这些扩展类型概念和实现基于其Java API和相应的JavaBean组件提供的附加超结构。新的组件组合是通过构建组合的原型对象来执行的,该原型对象可以动态地转换为新的可实例化类型(组件)。这种方法展示了基于原型和基于类的面向组件编程之间的相互关系。提出的组件模型可用于在事件驱动应用程序编程的声明性语言中实现用户定义类型。
2014-08-30 cs.SE
The Dynamics of Creativity in Software Development
软件主要是由人开发的,人的因素必须在所有软件工程阶段进行研究。创造力是即兴解决问题的源泉,可以主导软件开发等复杂系统。然而,在软件开发中缺乏什么是创造力以及它的动力是什么的知识。本研究介绍了目前的研究计划,对理论在软件开发中的创造力。更具体地说,它(1)陈述了在多学科视角下研究软件开发中的创造力的动机;它(2)提供了对该领域中识别缺陷的文献的第一次回顾;它(3)提出了一个研究设计,其中包括软件工程中很少使用的方法。理解软件开发中的创造力将提供对软件构建过程的更好的了解,以及个人如何在智力上为创建更好的创新产品做出贡献。
2013-05-26 cs.SE
Leveraging Team Dynamics to Predict Open-source Software Projects' Susceptibility to Social Engineering Attacks
开源软件是软件供应链的重要组成部分。最近针对OSS开发团队的社会工程攻击使攻击者能够成为代码贡献者,然后将恶意代码或漏洞注入到项目中,目的是损害依赖软件。攻击者利用开发团队成员之间的互动和团队行为的社会动态来实现他们的攻击。我们引入了一种安全方法,利用团队动态的签名和模式来预测软件开发团队对社会工程攻击的敏感性,这些攻击可以访问OSS项目代码。所提出的方法是程序设计语言,平台,和兼容性无关的,因为它评估的OSS团队的互动,而不是OSS代码的工件。
2021-07-02 cs.SE
Dynamic Cognitive Process Application of Blooms Taxonomy for Complex Software Design in the Cognitive Domain
软件工程中的软件设计是一个关键的、动态的认知过程。准确和完美的系统设计将导致快速编码和软件项目的早期完成。Blooms分类法将认知领域按复杂程度的高低分为六个动态层次,即基础层次的知识、最高层次的理解、应用、分析、综合和评价。本文以Gira系统为例,它是一个基于GPRS的企业内部网远程管理系统,通过移动终端对企业内部网进行监控。本文从这个案例研究中,系统设计阶段的软件工程使用所有的六个层次的布卢姆分类法。Blooms分类法的最高层次综合与评价在GIRA设计中的应用表明,软件开发生存周期中的软件设计是一个复杂而关键的认知过程。
2010-02-15 cs.SE
Engineering Trustworthy Self-Adaptive Software with Dynamic Assurance Cases
自适应软件基于控制理论中的概念,通过动态调整其架构和参数来应对工作负载变化和组件故障等事件,从而处理环境和内部不确定性。自适应软件越来越多地被期望满足来自制造业、医疗保健和金融等不同领域的应用程序的严格功能和非功能需求。为了满足这一需求,我们介绍了一种方法的可信的自适应软件(ENTRUST)的系统工程。ENTRUST结合使用(1)设计时和运行时建模和验证,以及(2)行业采用的保证过程,以开发值得信赖的自适应软件和保证案例,论证软件对其预期应用的适用性。为了评估我们的方法的有效性,我们提出了一个工具支持的ENTRUST的实例,并使用它来开发概念验证自适应软件的嵌入式和基于服务的系统,分别从海洋监测和电子金融领域。实验结果表明,ENTRUST可以用于工程不同应用领域的自适应软件系统,并为这些系统生成动态保证案例。
2018-11-22 cs.SE
A Dynamic Tracing Model for Agile Software Product Lines Domain Engineering from Features to Structural Elements: An Approach Based on Dynamic Routing
即使实施软件产品线的好处已经很好地建立起来,采用这样一个大型系统仍然是一个复杂的选择:很难实施,需要对市场增长有很好的了解,并对企业的长期目标有清晰的认识。因此,许多公司仍然不愿意采取这种做法,除非他们获得灵活性并获得担保。灵活性可以通过采用敏捷软件产品线方法来实现,以确保快速实施更改,并使产品适应市场发展。担保可以通过对要素及其关系的追溯而获得。然而,敏捷软件产品线环境中的跟踪仍然需要获得成熟度,因为它成本高昂,因此很少被采用。在本文中,我们讨论了敏捷软件产品线的可追溯性的附加值,并提出了我们的跟踪模型的灵感来自动态网络路由。
2018-12-13 cs.SE
From Software Architecture Structure and Behavior Modeling to Implementations of Cyber-Physical Systems
信息物理系统(CPS)的软件开发是一项复杂的活动,因为这些系统本身就很复杂。CPS的工程化需要多种分布式软件模块的组合和交互。描述这两个,一个系统的架构和行为的综合模型,产生了许多优点,以应付这种复杂性:模型是平台独立的,可以分解为独立开发的专家各自领域,是高度可重用的,并可能受到正式的分析。在本文中,我们介绍了一个代码生成框架的MontiArcAutomaton建模语言。CPS被建模为具有嵌入式I/O的组件和连接器架构!自动机在开发过程中,这些模型可以使用形式化方法进行分析,以图形方式进行编辑,并部署到各种平台。为此,我们提出了四个基于MontiCore代码生成框架的代码生成器,它们实现了从MontiArcAutomaton模型到Mona(形式分析)、EMF Ecore(图形编辑)以及Java和Python(部署)的转换。基于这些原型,我们讨论了它们的共性和差异,以及语言和应用程序的具体挑战,侧重于代码生成器的发展。
2014-08-25 cs.SE
Comparing Static and Dynamic Weighted Software Coupling Metrics
耦合度量是度量软件体系结构模块化质量的一种已建立的方法。静态耦合度量从程序的源代码或编译代码获得,而动态度量使用收集的运行时数据,例如,通过监控生产中的系统。我们研究\emph{weighted}动态耦合,考虑到如何经常在系统的运行过程中执行连接。我们研究动态加权度量和静态度量之间的相关性。我们使用从四个不同的实验中收集到的数据,每个实验在四周内监控商业软件系统的生产使用。我们观察到一个意想不到的静态和加权动态的情况下,以及揭示类和包级分析之间的差异之间的相关性水平。
2019-09-27 cs.SE
Multi-Objective Service Composition in Ubiquitous Environments with Service Dependencies
服务组合是普适计算中广泛使用的一种方法,它能够基于普适环境中可用的基本(硬件和软件)服务来完成用户所需的复杂任务。为了确保用户体验到最佳的服务质量(QoS),他们的质量需求,服务组合必须是QoS感知。建立QoS感知的服务组合需要有效的服务选择,考虑到用户的QoS要求。为此目的的一个挑战性问题是考虑全局QoS要求下的服务选择(即,由用户对整个任务施加的要求),这具有高计算成本。当我们考虑到无处不在的环境的动态性、有限的计算资源和时效性约束时,这一挑战就更加相关了。为了应对上述挑战,我们提出了QASSA,一个有效的服务选择算法,提供了适当的理由QoS感知的服务组合在无处不在的环境。QASSA将全局QoS需求下的服务选择问题描述为一个基于集合的优化问题,并结合局部和全局选择技术来解决这个问题。特别是,它引入了一种新的方式,使用集群技术,使细粒度的管理QoS目标之间的权衡。QASSA进一步考虑:(i)服务之间的依赖关系,(ii)运行时的适应性,以及(iii)集中式和分布式设计方式。使用真实的QoS数据进行的实验研究的结果来说明QASSA的及时性和最优性。
2016-11-28 cs.SE
Measuring the Security of the Evolving Software Supply Chain: a Research Agenda
CrySyS Lab Budapest Univ. of Technology and Economics(布达佩斯技术与经济大学 CrySyS 实验室)
本文提出研究议程,通过知识系统化识别依赖建模与漏洞传播的不足,主张统一测量跨生态系统依赖结构,并应对AI辅助开发带来的新依赖模式挑战。
2026-09-09 cs.CR cs.SE
Learning Context-Aware Service Representation for Service Recommendation in Workflow Composition
Southern Methodist University(南卫理公会大学);NASA Headquarters(美国国家航空航天局总部)
随着越来越多的软件服务已经发布到互联网上,它仍然是一个重大的挑战,以推荐合适的服务,以促进科学的工作流程组成。本文提出了一种新的NLP启发的方法来推荐服务在整个工作流开发过程中,增量学习潜在的服务表示工作流起源的基础上。工作流组合过程被形式化为一个逐步的、上下文感知的服务生成过程,该过程被映射为自然语言句子中的下一个词的预测。从工作流起源中提取历史服务依赖关系,以构建和丰富知识图谱。知识图谱中的每条路径都反映了数据分析实验中的一个场景,类似于对话中的一句话。所有的路径,从而形式化为可组合的服务序列,并挖掘,使用各种模式,从建立的知识图谱构建语料库。然后通过应用NLP领域的深度学习模型来学习服务嵌入。在真实数据集上的大量实验证明了该方法的有效性和效率。
2022-05-24 cs.LG cs.SE
Quality of Service Support on High Level Petri-Net Based Model for Dynamic Configuration of Web Service Composition
LI3 Laboratory / University of Manouba(LI3实验室/曼努巴大学);National School of Computer Sciences(国家计算机科学学院)
提出基于高级Petri网的动态配置模型,结合服务质量公式实现Web服务组合的自适应与最优配置,并通过仿真验证正确性。
2012-10-19 cs.SE cs.SY eess.SY
Using Pi-calculus to Model Dynamic Web Services Composition Based on the Authority Model
在Web服务的构建、组合、建模、验证等方面都有大量的研究工作。本文的研究工作是在形式化方法的基础上进行的,如Petri网、Pi演算、自动机理论等,Pi演算是动态Web服务组合中移动性建模的一种自然工具。然而,它最近被证明,π演算需要适当地扩展,以指定和验证DWSC。本文研究了分布式工作流控制的权限模型,扩展了pi演算,使其能够对系统的动态属性进行建模,提出了一种基于扩展pi演算的分布式工作流控制自动建模方法。
2015-12-15 cs.NI cs.SE
Hidden Amplifiers: Cross-Level Risk in Software Supply Chains
Colorado State University(科罗拉多州立大学)
研究现代软件供应链中现有分析工具的分离问题,提出跨级别风险传播框架,通过统一风险公式联系代码级与生态系统级风险,评估发现隐藏放大器,揭示跨级别分析对供应链安全的新意义。
2026-07-08 cs.CR cs.SE
Scalable and Cost-effective Data Flow Analysis for Distributed Software: Algorithms and Applications
越来越多的分布式软件系统正在开发和部署。与其他软件一样,分布式软件系统也需要非常强大的质量保证支持。分布式软件通常非常庞大/复杂,具有分布式组件,并且没有全局时钟。所有这些特点使得分析这些系统的信息流以支持软件质量保证变得非常具有挑战性。一个挑战是现有的动态分析技术很难扩展到现实世界中的大型分布式软件系统。开发具有成本效益的动态分析方法也具有挑战性。分布式软件的动态分析算法/应用程序也存在适用性和可移植性的挑战。我的论文通过三种新的方法来解决这些挑战,分布式软件的数据流分析。我的第一种方法是基于测量进程间通信来理解分布式软件行为和预测分布式软件质量。然后,我开发了一种特殊的方法,可以通过分布式软件的多阶段和基于精化的动态信息流分析来精确定位敏感信息。最后,我探索了分布式系统的动态依赖分析,利用强化学习自动调整分析配置,以实现可扩展性和更好的成本效益权衡。
2023-03-07 cs.CR cs.DC cs.SE
Detection Software Content Failures Using Dynamic Execution Information
现代软件系统变得过于复杂,无法进行测试和验证。在运行时检测复杂系统中的软件部分故障有助于处理软件非预期行为,避免灾难性软件故障并提高软件运行时可用性。这些检测技术的目的是发现故障的表现形式之前,他们最终导致不可避免的故障,从而支持以下运行时容错技术。本文通过对国内外相关文献的回顾,发现内容故障在各类软件故障中占绝大多数,但对其检测方法的研究却很少。在这项工作中,我们提出了一种新的故障检测指标的基础上,软件运行时的动态执行信息的软件内容故障。在软件执行期间记录运行时信息,然后将其转换为称为运行时熵的度量,并最终馈送到机器学习模型中。建立机器学习模型是为了对目标软件系统的预期和非预期行为进行分类。在多个开源项目上进行了一系列的控制实验,证明了该方法的可行性。我们还评估了在这项工作中构建的机器学习模型的准确性。
2021-10-13 cs.SE cs.SY eess.SY