Building Confidence in Scientific Computing Software Via Assurance Cases
保证案例为正确性提供了一个有组织的、明确的论证。它们可以显著提高科学计算软件(SCS)的认证。保证案例已经被有效地用于实时的系统的安全案例。SCS的优势包括吸引领域专家,仅生成必要的文档,并提供可以验证/复制的证据。本文通过3dfim+(一种用于分析大脑活动的现有医学成像应用程序(MIA))的正确性案例说明了SCS的保证案例。选择这个例子的部分原因是最近对功能性磁共振成像(fMRI)研究有效性的担忧。该示例证明了SCS保证案例的价值,因为现有文档显示存在模糊性和遗漏,例如定义不完整的排名功能和缺少坐标系的详细信息。确定了3dfim+的一个严重问题:运行该软件不会产生任何警告,说明必须使用与相关性计算所用参数统计模型相匹配的数据。一般而言,提高SCS的标准,特别是MIA,既可行又必要-当软件影响安全性时,应采用保证案例方法(或同等严格的置信度建立方法)。
2019-12-31 cs.SE
Service Dependability with Continuously Revised Assurance Cases by Multiple Stakeholders: A Case Study
近年来,在基于软件的计算机系统和IT服务领域,保证案例受到了广泛的关注。然而,软件经常变化,没有强有力的软件法规。这些事实是软件保证案例中需要解决的两个主要挑战。我们提出了一种保证案例的开发方法,通过在系统生命周期的每个阶段,包括在运行和故障情况下的服务恢复的持续修订。可靠性论证的质量通过多个利益相关者相互检查来提高。本文报告了我们的经验,提出的方法在ASPEN教育服务的情况下。案例研究表明,持续更新在利益相关者之间创建了大量的主动风险沟通。这给了我们一个充满希望的前景,长期改善服务的可靠性与生命周期保证的情况。
2015-07-31 cs.SE
Embedding Quality Assurance in project-based learning
本文总结了在敏捷/Scrum环境下将质量保证嵌入基于项目教学的经验与建议。
2025-12-29 cs.SE
Quality Assurance Practices in Agile Methodology
本研究旨在调查敏捷软件开发中的质量保证实践,分析常见问题与关键驱动因素,并提出通过分析质量参数来改进SQA实践的建议。
2024-11-07 cs.SE
Using Assurance Cases to Guide Verification and Validation of Research Software
本文通过主动脉分割软件案例,展示保证案例如何指导研究软件的验证与确认,强调证据收集及软件与用户责任区分的重要性。
2024-11-05 cs.SE
Using Models at Runtime to Address Assurance for Self-Adaptive Systems
自适应软件系统在运行时修改其行为以响应系统内或其执行环境中的变化。即使存在不利条件和适应性,也需要保证满足系统要求。因此,自适应软件系统的一个关键挑战是保证。传统上,对系统正确性的信心是通过在开发时执行的各种活动和过程获得的,例如设计分析和测试。然而,在存在自适应的情况下,一些保证任务可能需要在运行时执行。这种需求要求开发能够在整个软件生存周期中实现连续保证的技术。运行时保证技术发展的基础是研究模型在运行时的使用(M@RT)。本章探讨了使用M @RT来解决自适应软件系统保证的最新技术水平。它定义了M@RT可以捕获哪些信息,特别是为了保证的目的,并将此定义置于现有工作的上下文中。然后,我们概述了关键的研究挑战,保证在运行时和特征保证方法。本章最后探讨了选定的应用领域,在这些领域中,M@RT可以为自适应系统提供超越现有保证技术的显著好处。
2015-05-05 cs.SE
How Do Practitioners Perceive Assurance Cases in Safety-Critical Software Systems?
安全关键型软件系统是指其故障或失灵可能导致人员伤亡和/或严重财务损失的系统。在这样的系统中,安全保证案例(SAC)是一种新兴的方法,采用积极主动的策略来产生结构化的安全理由和论据。虽然在许多软件密集型安全关键域中建议使用SAC,但缺乏关于从业人员使用SAC的观点的知识阻碍了这种方法的有效采用。为了获得这些知识,我们采访了九位专注于安全关键软件系统的从业者和安全专家。总的来说,我们的参与者发现SAC方法有利于在多学科环境中沟通安全论点和管理安全问题。他们在使用SAC时面临的挑战主要与以下方面有关:(1)缺乏工具支持,(2)流程集成不足,以及(3)缺乏有经验的人员。为了克服这些挑战,我们的参与者提出了专注于创造直接安全论点的策略。还需要对流程和组织进行调整,以简化SAC的分析和创建。最后,我们的参与者强调了在软件密集型安全关键领域共享有关SAC的知识的重要性。
2018-03-21 cs.SE
What Makes a Great Software Quality Assurance Engineer?
针对SQA工程师优秀特质研究不足的问题,本文通过25次访谈和363份问卷归纳五类25项属性,并确认好奇心、有效沟通与批判性思维是关键区分特征。
2024-01-24 cs.SE
Quality Assurance Challenges for Machine Learning Software Applications During Software Development Life Cycle Phases
University of Calgary(卡尔加里大学)
在过去的几十年里,机器学习(ML)的革命性进展表明,ML模型已被快速采用到各种类型的软件系统中。这种机器学习软件应用程序(MLSA)在我们的日常生活中越来越重要。因此,MLSA的质量保证(QA)至关重要。一些研究工作致力于确定我们在将ML模型引入软件系统时可能面临的具体挑战。然而,我们知道没有研究提供了这些ML质量保证挑战在软件开发生存周期(SDLC)的各个阶段的分布的整体视图。本文对大量专注于ML模型质量保证的研究论文进行了深入的文献综述。我们通过映射SDLC不同阶段的各种ML采用挑战,开发了MLSA质量保证问题的分类。我们提供建议和研究机会,以改进基于分类法的SDLC实践。这种映射可以帮助优先考虑MLSA的质量保证工作,其中ML模型的采用可以被认为是至关重要的。
2021-07-08 cs.AI cs.SE
Correctness, confidence, and context: Framing software assurance in the AI age
Carnegie Mellon University(卡内基梅隆大学)
探讨软件工程中正确性相关挑战,指出传统方法与生成式人工智能在软件保障上的差异,呼吁系统思考保障技术,做出明智选择。
2026-07-17 cs.SE
Leveraging LLMs for the Quality Assurance of Software Requirements
本文评估了大型语言模型(LLM)根据 ISO 29148 标准评估软件需求质量、解释决策并提出改进版本的能力,通过与软件工程师的研究验证了该方法,强调了 LLMs 在提升软件需求质量方面的潜力。
2024-08-20 cs.SE
Quantitative Toolchain Assurance
本文提出过程约简技术,构建定量工具链保证案例,以约简强度衡量工具链强度,弥补SBOM和SLSA在过程质量定量评估上的不足。
2023-08-30 cs.SE
Assurance Case Development for Evolving Software Product Lines: A Formal Approach
本文提出一种形式化方法,用于演化软件产品线的提升保证案例开发与回归分析,支持感知变异性的AC语言、基于模板的开发提升及SPL演化影响分析,并提供了基于模型的工具与医疗设备应用实例。
2025-11-04 cs.SE
Assurances in Software Testing: A Roadmap
作为研究人员,我们已经知道如何使测试更有效和更高效地发现bug。然而,由于模糊(即,自动化测试)在实践中越来越广泛地被采用,从业者们会问:模糊测试活动提供了什么保证不会暴露错误?在合理的剩余风险下,何时停止模糊器是安全的?模糊器应该运行多久才能达到足够的覆盖范围?现在是我们超越日益复杂的测试技术的创新,围绕测试过程的解释和量化建立一个知识体系,并制定合理的方法,以可衡量的准确性估计和推断这些数量的时候了。在我们对未来的展望中,从业者利用丰富的统计工具集来评估剩余风险,获得统计保证,并分析正在进行的模糊活动的成本效益权衡。我们提出了一个总体框架作为第一个出发点,以应对这一根本挑战,并讨论了大量的具体机会,为未来的研究。
2018-12-17 cs.SE
Introducing High School Students to Version Control, Continuous Integration, and Quality Assurance
针对软件工程教学起步晚的问题,本文记录了面向有AP计算机科学基础的高中生设计小组项目,教授版本控制、持续集成等技能,使其能为开源科学计算项目编写有效自动化测试的实践经验。
2023-10-05 cs.SE
Quality Assurance of Bioinformatics Software: A Case Study of Testing a Biomedical Text Processing Tool Using Metamorphic Testing
生物信息学软件在许多领域(包括医学和卫生保健)的关键决策中发挥着非常重要的作用。然而,大多数研究都是针对开发工具,很少有时间和精力花在测试软件,以确保其质量。在测试中,测试预言用于确定测试在测试过程中是通过还是失败,不幸的是,对于大多数生物信息学软件来说,确切的预期结果并没有很好地定义。因此,与对生物信息学软件进行系统测试相关的主要挑战是Oracle问题。变形测试(MT)是一种用于测试面临预言机问题的程序的技术。MT使用变形关系(MR)来确定测试是通过还是失败,并根据对输入的特定更改指定输出应如何更改。在这项工作中,我们使用MT来测试LingPipe,这是一种使用计算语言学处理文本的工具,通常用于生物信息学中从生物医学文献中识别生物实体。首先,我们确定一组MR用于测试任何生物实体识别程序。然后,我们开发了一组测试用例,可用于测试LingPipe的生物实体识别功能,使用这些MR。为了评估这个测试过程的有效性,我们自动生成一组LingPipe的错误版本。根据我们对实验结果的分析,我们观察到我们的MR可以检测到这些错误版本中的大多数,这表明了这种测试技术在生物信息学软件质量保证中的实用性。
2018-02-20 cs.SE
Towards Assurance Closure in AI-Native Large-Scale Agile Software Development
Ericsson(爱立信);Blekinge Institute of Technology(布莱金厄理工学院)
针对AI原生大规模敏捷软件开发中保证推理机器可操作的缺口,提出基于共享语义保证层的高层架构及六项对应能力,以实现保证闭合。
2026-08-10 cs.AI cs.SE
A measurement based software quality framework
在这份报告中,我们提出了一个解决问题的依赖于软件项目质量保证人员的经验,提供一个透明的,客观的和基于测量的质量框架。该框架通过定义和评估可测量的质量目标和阈值,直接将这些与升级机制联系起来,帮助质量保证专家在软件项目中做出客观和可比的决策。在现实生活中的案例研究中应用建议的基于测量的软件质量框架的第一个结果也在本报告中得到了解决。
2014-08-17 cs.SE
Where and What do Software Architects blog? An Exploratory Study on Architectural Knowledge in Blogs, and their Relevance to Design Steps
软件工程师在Web上的不同地方分享他们的架构知识(AK)。最近的研究表明,架构博客包含最相关的AK,它可以帮助软件工程师制定设计步骤。然而,我们对博客知之甚少,特别是架构博客,软件工程师在那里分享他们的AK。在本文中,我们对建筑博客进行了探索性研究,探讨其类型,主题和他们的AK。此外,我们还确定了建筑博客的相关性,以制定设计步骤。我们的研究结果支持研究人员和从业人员从博客中发现和重用AK。
2023-03-17 cs.SE
Integrating a Model of Analytical Quality Assurance into the V-Modell XT
质量保证的经济模型是软件开发项目决策者的重要工具。它们使质量保证计划能够基于产品的经济因素和所使用的缺陷检测技术。已经提出了各种各样的这样的模型,但许多都太抽象,无法在实践中使用。此外,即使是更具体的模型也缺乏与现有软件开发过程模型的集成,以增加其适用性。本文描述了分析质量保证经济学的彻底随机模型与系统开发过程模型V-Modell XT的集成。通过提供一个新的过程模块--一个直接在V-Modell XT中用于扩展目的的概念--以模块化的方式进行集成,该模块与分析质量保证相关。特别是,我们描述的工作产品,角色和活动中定义的新的过程模块和现有的V-Modell XT元素的影响。
2016-11-04 cs.SE
Applying Slicing Technique to Software Architectures
软件体系结构作为软件系统的一个重要设计层次,正受到越来越多的关注。随着软件体系结构设计资源(以体系结构规范的形式)的积累,支持体系结构理解、测试、再工程、维护和重用的技术和工具的开发将成为一个重要的问题。本文介绍了一种新的切片形式,称为架构切片,以帮助架构的理解和重用。与传统切片不同,架构切片被设计为对软件系统的架构规范进行操作,而不是对程序的源代码进行操作。架构切片提供了关于软件系统的高层结构的知识,而不是程序的低层实现细节。为了计算架构切片,我们提出了架构信息流图,它可以用来表示软件架构中的信息流。基于图,我们给出了一个两阶段算法来计算建筑切片。
2001-05-05 cs.SE
Analysis of Software Delivery Process Shortcomings and Architectural Pitfalls
本文通过研究两个使用Microsoft.Net框架构建的企业级Web应用程序产品,突出了软件架构,开发和交付过程过于复杂的常见陷阱。本文的目的是识别,讨论和分析架构,开发和部署问题,并使用现实世界的例子,从所选的软件产品作为案例研究中吸取教训。
2016-07-09 cs.SE
DesCert: Design for Certification
DARPA软件自动快速认证(ARCOS)计划的目标是“自动评估软件保证证据,使认证机构能够快速确定系统风险是可接受的。“作为该计划的一部分,DesCert项目侧重于保证驱动的新软件开发。DesCert团队由SRI International、Honeywell Research和华盛顿大学组成。我们已经采用了一种正式的,基于工具的方法来构建软件工件,这些工件得到了严格的证据支持。DesCert工作流将证据生成集成到设计过程中,该过程从需求捕获和分析到将高级软件需求分解为具有断言合同的架构属性和软件组件,以及可以动态和静态分析的软件。所生成的证据是通过一个保证本体和集成到RACK知识库。
2022-03-29 cs.SE
Architectural Archipelagos: Technical Debt in Long-Lived Software Research Platforms
本文确定了一个模型的软件演化,是普遍存在于大型,长期的学术研究工具套件(3L-ARTS)。这种模式导致了一个“群岛”的相关,但随意组织的架构“岛屿”,并内在地诱导技术债务。我们说明了群岛模型与文献中确定的两个3L-ARTS群岛的例子。
2021-04-17 cs.SE
PLACIDUS: Engineering Product Lines of Rigorous Assurance Cases
针对软件产品线中单独构建保证用例不可行的问题,提出整合形式化方法的PLACIDUS方法,定义感知可变性的AC语言并基于Lean形式化语义,配套Eclipse工具,经医疗设备产品线验证可行。
2024-07-14 cs.SE
Challenges for Verifying and Validating Scientific Software in Computational Materials Science
许多科学领域依赖于软件系统来回答不同的研究问题。为了获得有效的结果,研究人员需要相信科学软件产生的结果,因此质量保证至关重要。在本文中,我们正在调查的影响,质量保证领域的计算材料科学(CMS)。根据我们在这一领域的经验,我们制定了科学软件及其结果的验证和验证的挑战。此外,我们描述了未来研究的方向,可能有助于应对这些挑战。
2019-06-21 cs.SE
Quality Assurance And Integration Testing Aspects In Web Based Applications
集成测试是软件测试生存周期的重要阶段之一。随着互联网和Web服务的快速发展,基于Web的应用也在迅速增长,其重要性和复杂性也在不断增加。分布式组件、应用程序的异构性和多样性,以及它们对多平台的支持和协作性,使得这些应用程序变得更加复杂,规模也在迅速增长。这些应用程序的质量保证变得越来越重要。测试是实现和确保这些软件或基于Web的产品质量的关键过程之一。在基于Web的应用程序中涉及到许多测试挑战。但最重要的是,集成是与基于Web的应用程序相关的最关键的测试。在集成测试工作中涉及到许多具有挑战性的因素。这些因素对基于Web的应用程序的整体质量有近70%到80%的影响。在软件行业中,不同类型的测试方法被从业者用来解决与集成相关的问题,这些问题是由于基于Web的应用程序的复杂性不断增加。
2012-07-13 cs.SE
A Taxonomy of Real-World Defeaters in Safety Assurance Cases
本文针对安全保证案例中缺乏结构化击败者分析的问题,通过对过去20年文献的系统研究,使用开放编码推导出包含七个类别的现实世界击败者分类法,为安全攸关系统的击败者分析与管理标准化奠定基础并提供开源工件。
2025-02-01 cs.SE
A Case-Based Look at Integrating Social Context into Software Quality
确保高质量的软件需要考虑部署和使用应用程序的社会环境。这可以通过设计与不断变化的社会和伦理环境相一致的质量目标来实现。使用技术决定论的原则,本文提出了三个案例,说明为什么它是越来越重要的集成到软件设计和质量保证这些问题。考虑到这些例子,本文解释了如何在软件设计和质量保证实践中考虑技术决定论,以在实践层面上实现这种增强的敏感性。
2015-12-09 cs.SE
Using Dependence Analysis to Support Software Architecture Understanding
软件体系结构作为软件系统的一个重要设计层次,正受到越来越多的关注。随着软件体系结构设计资源(以体系结构描述的形式)的积累,开发支持体系结构理解、测试、再工程、维护和重用的技术和工具将成为一个重要的问题。本文介绍了一种新的依赖分析技术--体系结构依赖分析,以支持支持软件体系结构的开发。与传统的依赖性分析不同,架构依赖性分析被设计为对软件系统的架构描述进行操作,而不是对传统程序的源代码进行操作。架构依赖性分析提供了软件系统的高层架构的依赖性知识,而不是传统程序的低层实现细节。
2001-05-05 cs.SE
Neurosymbolic Architectural Reasoning: Towards Formal Analysis through Neural Software Architecture Inference
针对形式化架构模型构建成本高导致架构形式化分析难普及的问题,提出神经架构推断方法以支撑神经符号架构推理,并梳理了六个待解决的研究问题与研究方向。
2025-03-20 cs.SE
Model-Driven Development of High-Assurance Active Medical Devices
先进的医疗设备利用嵌入式软件的优势,由于这种系统的关键性质,嵌入式软件的开发受到标准化和认证制度的严格要求的约束。本文介绍了一个正在进行的项目的初步结果和经验教训,重点是开发一个软件控制的安全关键型有源医疗器械(AMD)的子系统的正式模型,负责肾脏替代治疗。标准和法规强烈推荐使用形式化方法开发AMD,并推动了本文应用的Event-B和Rodin等相关方法和工具的最新进展。预计提出的模型开发方法和规范的高置信度的医疗系统将有助于仍然稀疏的经验基础,可在正式的方法和软件工程的科学和从业者社区的处置。
2017-06-20 cs.SE
Measuring Cost of Quality (CoQ) on SDLC Projects is Indispensible for Effective Software Quality Assurance
这是众所周知的事实,是由著名的质量学者P.B.克罗斯比说,第一次就把工作做好总是更便宜。然而,对于软件开发项目,必须重新考虑这种说法,因为在软件工程学科中,质量和相关成本度量的概念并不像在制造业和其他行业领域那样成熟。交付后缺陷(即软件错误)是软件行业非常常见和不可分割的一部分。虽然质量成本的度量和分类过程在制造业中是可见的,明显的和制度化的,但在软件行业中仍在发展。除此之外,英国标准BS-6143-2:1990的建议将质量相关成本分为预防成本、评估成本和故障成本,这些建议已被许多行业成功采纳,通过识别在每一类别中进行的活动,并测量与它们相关的成本,软件行业要达到质量成本测量和可见性的采用和制度化水平,还有很长的路要走。软件的质量成本并不是创建高质量软件产品或IT服务的价格。这实际上是不创建高质量的软件产品或IT服务的成本。在全球IT行业中,大多数软件开发项目经常被发现因成本超支、进度延误、范围蠕变和可交付成果质量差而流血,这是这项研究工作的触发因素。从这项研究中吸取的经验教训提供了宝贵的规范性指导,中小型软件企业,谁可以从这项研究中受益,通过应用相同的质量改进计划,使用CoQ度量,以提高他们的SDLC项目绩效的能力和成熟度。
2014-05-19 cs.SE
SmartDelta Methodology: Automated Quality Assurance and Optimization for Incremental System Engineering
本文介绍SmartDelta项目提出的SmartDelta方法论,一种领域无关的增量管理概念,通过六个阶段识别工程差距并发现新工具,同时展示七个工具实例。
2025-02-26 cs.SE
On the costs and profit of software defect prediction
缺陷预测可以成为指导质量保证资源使用的有力工具。然而,尽管许多研究涵盖了缺陷预测的方法以及缺陷预测研究的方法学方面,但缺陷预测的实际成本节约潜力仍不清楚。在本文中,我们关闭这一研究差距,并制定了一个软件缺陷预测的成本模型。我们推导出数学上可证明的边界条件,必须满足的缺陷预测模型,使有一个积极的利润时,使用的缺陷预测模型。我们的成本模型包括质量保证的成本,发布后的缺陷的成本,质量保证未能揭示预测的缺陷的可能性,以及软件工件和缺陷之间的关系等方面。我们使用不同的假设初始化成本模型,进行实验,以显示实际项目的成本行为的趋势。我们的研究结果表明,不切实际的假设,缺陷只影响一个单一的软件工件,这是一个标准的做法,在缺陷预测文献,导致不准确的成本估计。此外,结果表明,机器学习度量的阈值也不适合定义软件缺陷预测的成功标准。
2019-11-11 cs.SE
Adapting Quality Assurance to Adaptive Systems: The Scenario Coevolution Paradigm
从正式和实际的分析,我们确定了新的挑战,自适应系统的质量保证过程中。当解决这些问题时,在软件工程过程中花费在各种任务上的努力自然会重新分配。我们认为,所有与测试相关的步骤都需要具有自适应性,以匹配自适应被测系统的能力。否则,自适应系统的行为可能会避开传统的质量保证变体。因此,我们提出了情景协同进化的范式,它描述了一个池的测试用例和其他约束系统的行为,并行发展(部分自主)的行为在被测系统的发展。场景协同进化提供了一个简单的结构,组织自适应测试,允许人为控制和自主干预,支持软件工程的自适应系统的程序以及技术水平。
2019-02-13 cs.SE
Training Software Engineers for Qualitative Evaluation of Software Architecture
软件架构师使用质量需求来设计系统的架构。但是,必须确保系统的最终架构设计达到标准质量要求。现有的架构评估框架需要基本的技能和经验,以实际使用,新手软件架构师缺乏。我们提出了一个框架,使新手软件架构师推断系统的质量要求和策略,使用软件架构块线图。该框架将图像作为输入,提取各种组件和连接,并将其映射到可行的架构模式,然后识别系统相应的质量属性(QA)和策略。该框架包括基于图像处理和语义相似性方法的专门训练的机器学习模型,以帮助软件架构师通过以下方式评估给定设计:a)基于输入架构设计中存在的架构模式评估输入架构设计,b)列出设计在QA方面的优点和缺点,c)推荐必要的架构策略,这些策略可以嵌入到设计中,以实现缺乏的QA。为了训练我们的框架,我们开发了一个包含2,035个架构图像的数据集,这些架构图像来自14种架构模式,如客户端-服务器,微服务和模型视图控制器,可在https://www.doi.org/10.6084/m9.figshare.14156408上获得。该框架在识别建筑模式方面达到了98.71%的正确识别率。我们评估了所提出的框架的有效性和实用性,通过使用控制组和实验组,其中实验组的表现比控制组好约150%。实验作为工程学院计算机科学硕士课程的一部分进行。
2021-05-20 cs.SE
Architectural Support for Software Performance in Continuous Software Engineering: A Systematic Mapping Study
本研究针对持续软件工程中性能评估的难点,采用系统性映射方法从215篇相关论文中筛选66项核心研究,对面向性能的持续软件工程架构支持的研究现状进行分类梳理,为领域研究重点和未来方向提供参考。
2023-04-05 cs.SE
Machine Learning Techniques for Software Quality Assurance: A Survey
Karlsruhe Institute of Technology(卡尔斯鲁厄理工学院)
近年来,机器学习技术已经被应用到越来越多的应用领域,包括软件工程,特别是软件质量保证。重要的应用领域有,例如,软件缺陷预测或测试用例选择和优先级排序。预测大型软件系统中哪些组件在下一个版本中最有可能包含最多的错误的能力有助于更好地管理项目,包括早期估计可能的发布延迟,并提供指导纠正措施以提高软件质量。然而,发展强大的故障预测模型是一项具有挑战性的任务,许多技术已经在文献中提出。与评估软件系统中容易出现缺陷的部分密切相关的是如何选择测试用例并确定其优先级的问题,实际上,测试用例优先级已被广泛研究,以减少发现软件中回归所需的时间。在本调查中,我们讨论了故障预测和测试用例优先级排序的各种方法,并解释了在最近的研究中,用于故障预测的深度学习算法如何帮助弥合程序语义和故障预测特征之间的差距。我们还回顾了最近提出的测试用例优先级(TCP)的机器学习方法,以及它们降低回归测试成本而不会对故障检测能力产生负面影响的能力。
2021-04-29 cs.AI cs.SE
Assuring the Evolvability of Microservices: Insights into Industry Practices and Challenges
虽然微服务承诺了可持续的长期软件演化的几个有益特征,但很少有实证研究涉及行业应用于微服务可演化性保证的具体活动以及如何在此类系统中处理技术债务。由于洞察到目前的实践状态是非常重要的研究人员,我们进行了定性访谈研究,探讨应用的可进化性保证过程,工具,指标和模式的使用,以及参与者的反思的主题。在17次半结构化访谈中,我们与来自10家公司的软件专业人员讨论了14种不同的基于微服务的系统,以及如何确保这些系统的可持续发展。访谈记录采用详细的编码系统和不断比较的方法进行分析。我们发现,特别是外部客户的系统依赖于中央治理来保证。与会者认为像架构原则这样的指导方针对于确保可演化性的基本一致性非常重要。受访者还重视手动活动,如代码审查或童子军,即使自动化和工具支持被描述为非常重要。源代码质量是使用工具和度量的主要目标。尽管大多数报告的问题都与架构技术债务(ATD)有关,但我们的参与者并没有应用任何架构或面向服务的工具和指标。虽然参与者普遍认为他们的微服务是可进化的,但服务切割和找到具有低耦合和高内聚的适当服务粒度被认为是具有挑战性的。未来微服务在演化和技术债务领域的研究应该考虑这些发现和行业情绪。
2019-06-12 cs.SE
Systematically reviewing the layered architectural pattern principles and their use to reconstruct software architectures
体系结构重构是一种逆向工程活动,旨在恢复系统上丢失的决策。它可以帮助根据应用程序的体系结构模式识别遗留软件应用程序中的组件。识别架构技术债务是很有用的。我们感兴趣的是在分层应用程序中识别层,因为分层模式是构建大型系统最常用的模式之一。早期的组件重构工作主要关注于该模式,依赖于通用的组件标识标准,比如内聚和耦合。最近的工作已经确定了架构模式特定的标准,以识别该模式中的组件。然而,分层模式所体现的特定于架构模式的标准是松散定义的。在本文中,我们提出了第一个系统的文献综述(SLR)的文献,旨在清点这些标准的层内的遗留应用程序和分组下的四个原则,体现了基本的设计原则的基础上的架构模式。我们确定了六个这样的标准的设计规则的形式。我们还进行了第二次系统的文献综述,以综合文献的软件架构重建在这些标准。我们报告这些原则,它们所包含的规则,它们的表示,以及它们在软件架构重构中的使用。
2021-12-02 cs.SE
On Assessing the Complexity of Software Architectures
本文提出了一些适合评估软件系统体系结构属性的新体系结构度量。我们的方法的主要特点是通过分析架构中的各种类型的架构依赖来评估软件架构的复杂性。
2001-05-05 cs.SE
Predicting Defect Content and Quality Assurance Effectiveness by Combining Expert Judgment and Defect Data - A Case Study
对于开发软件或软件密集型系统的公司来说,以系统的方式规划质量保证(QA)活动并控制其执行是一项具有挑战性的任务。两者都需要关于所应用的QA技术的有效性和所检查工件的缺陷内容的估计能力。用于这些目的的现有方法需要来自历史项目的大量测量数据。由于许多公司没有收集足够的数据来应用这些方法(特别是在项目生命周期的早期),他们通常只根据专家的意见进行QA计划和控制。本文提出了一种混合的方法,结合了常用的测量数据和上下文特定的专家知识。为了评估该方法的适用性和实用性,我们进行了一个案例研究的背景下,独立的验证和确认活动的关键软件在空间领域。为软件需求分析阶段开发了一个混合缺陷内容和有效性模型,并使用可用的遗留数据进行了评估。一个主要的结果是,与仅基于数据的适用模型相比,混合模型提供了改进的估计精度。通过交叉验证确定的平均相对误差幅度(MMRE)为29.6%,而通过最准确的基于数据的模型获得的平均相对误差幅度为76.5%。
2014-01-13 cs.SE
An Empirical Study on the Procedure to Derive Software Quality Estimation Models
软件质量保证一直是一个热门话题几十年。如果能够识别出影响软件质量的因素,它们可能会为更好的软件开发管理提供更多的见解。在项目的早期阶段,根据准确的质量评估来使用资源,可以实现更精确的质量保证。在本文中,提出了一个通用的程序来推导软件质量评估模型和各种技术,以完成在各个步骤的任务。利用多种统计技术和机器学习方法来验证软件度量的有效性。此外,采用神经模糊方法来提高估计模型的精度。该程序是根据ISBSG储存库中的数据进行的,以展示其经验值。
2015-07-24 cs.SE
Software dependability modeling using an industry-standard architecture description language
在架构级别执行可靠性评估以及其他分析,既可以进行架构权衡,又可以预测架构决策对应用程序可靠性的影响。本文给出了使用AADL(体系结构分析与设计语言)建立软件系统体系结构可靠性模型的指导方针。它提出了可重用的容错应用程序的建模模式,并显示了如何提出的模式可以在现实生活中的应用程序的子系统的上下文中使用。
2008-09-24 cs.SE
Evolution Patterns: Designing and Reusing Architectural Evolution Knowledge to Introduce Architectural Styles
软件体系结构对于软件密集型系统的成功开发和发展至关重要。虽然对体系结构描述的正式和自动化支持已经得到了广泛的解决,但它们的发展同样至关重要,但显然没有得到很好的理解和支持。为了应对不断出现的进化需求,我们引入了进化模式的概念。它通过一组概念和一个可重用的演化过程来形式化架构演化。我们提出它通过引入现有的软件架构的架构风格的反复需要。我们正式描述和分析架构演化模式的可行性,并提供了一个实际的验证,通过实现它们在COSABuilder,Eclipse插件的COSA架构描述语言。
2016-05-20 cs.SE
Architectural Approaches to Overcome Challenges in the Development of Data-Intensive Systems
本文针对数据密集型系统的构建与维护难题,综述其架构设计挑战,并梳理主流软件架构风格在应对这些挑战方面的潜力。
2023-12-05 cs.SE
Architectural Blueprints: The 4+1 View Model of Software Architecture
本文提出了一个模型,用于描述软件密集型系统的体系结构,基于多个并发视图的使用。这种多视图的使用允许单独解决架构的各个利益相关者的关注点:最终用户,开发人员,系统工程师,项目经理等,并分别处理功能和非功能需求。我们描述了这五个视图中的每一个,并给出了一个表示法。这些视图是使用以架构为中心的、基于XML的、迭代的开发过程设计的。
2020-06-08 cs.SE
Architectural Software Patterns for the Development of IoT Smart Applications
软件开发人员通常在没有正式架构的情况下开始编写应用程序,并依赖直觉和经验,而不是众所周知的设计模式。推荐一种不同的方法来开发物联网智能应用程序,因为它结合了传感器,执行器,通信技术和大数据分析的高度复杂性,以及它跨越不同领域,雾和云基础设施层的分布式性质。文献报告了物联网智能应用程序软件开发的许多经验。然而,架构解决方案的提出没有合理的选择软件组件和它们之间的相互关系。本文提出了软件组件及其关系的分类,以便为特定的物联网智能应用程序建模软件架构。我们选择了城市、建筑和农业的三个智能应用程序作为使用一些组件、连接器和众所周知的设计模式的示例。最后,讨论了物联网软件架构选择中涉及的问题和挑战。
2020-03-17 cs.SE
Archify: A Recommender System of Architectural Design Decisions
软件体系结构在软件质量保证中起着至关重要的作用。然而,中小型公司(SMC)往往缺乏具有软件架构技能和专业知识的专业人员。这种情况可能会影响软件产品的最终质量,并给项目预算带来额外的咨询费用压力。本文介绍了一个名为Archify的建筑设计决策推荐系统。我们的目标是支持SMC公司在架构设计他们的产品的努力的一部分。Archify实现了一个向导风格的界面,可以指导开发人员或项目经理解决一系列特定的问题。当用户回答这些问题时,Archify会缓冲一组相应的架构决策建议。作为最终结果,系统根据开发中软件的需求(由用户提供)推荐一组与项目需求相匹配的架构决策。来自学术界和工业界的19位专业人士通过两项调查对Archify进行了评估。调查结果显示,94.7%的参与者认可Archify作为支持工具。答复者还强调缺乏支持软件架构设计的工具,并指出拟议系统的相关性。
2021-06-15 cs.SE
Exploratory Analysis of Quality Practices in Open Source Domain
软件质量保证几十年来一直是一个热门话题,但对开放源码软件(OSS)的分析相对较少。随着OSS在日常生活中的广泛应用,许多研究人员都热衷于这一领域的质量实践。虽然质量管理与闭源软件开发相比呈现出不同的模式,但一些广泛使用的OSS产品已经实现。因此,开源软件项目的质量保证成为研究的热点。在本文中,进行了一项调查,以揭示在开源社区的一般质量实践。已进行探索性分析,以披露这些质量相关活动。结果进行了比较,从闭源环境和OSS项目的质量保证的显着特点已被证实。此外,这项研究还为OSS开发人员提出了潜在的方向。
2015-07-24 cs.SE
Agent-Integrated Software: Interaction Contracts and Continuous Assurance
Technical University of Munich(慕尼黑工业大学);Nanjing University(南京大学)
本文提出智能体集成软件(AIS)模式与意图级交互抽象(IIA),通过交互契约和持续保障解决智能体嵌入应用时的协调问题,并规划了相关研究议程。
2026-09-11 cs.AI cs.SE
Nothing is Certain but Doubt and Tests
有效的软件安全标准将有助于增强对使用软件的系统的安全性的信心或保证。要证明标准与事故之间的相关性是不可行的,但有一种替代观点认为标准是“可检验的”。软件项目容易受到不确定性的影响;好的标准比差的标准更能减少不确定性。同样,标准中的保证或完整性水平应定义不确定性梯度。本文提出了一种基于论证的不确定性推理方法,可作为进行实验(测试)以评估标准的基础。
2014-04-27 cs.SE
What is Software Quality for AI Engineers? Towards a Thinning of the Fog
University of Innsbruck(因斯布鲁克大学);University of Oulu(奥卢大学)
通常,人工智能系统也是软件系统,因此依赖于软件质量保证(SQA)。因此,本研究的目标是调查在AI/ML组件和代码的开发、集成和维护过程中采用的软件质量保证策略。我们对10家开发AI系统的奥地利中小企业的代表进行了半结构化采访。对访谈数据的定性分析确定了AI/ML组件开发中的12个问题。此外,我们还确定了AI/ML组件中何时出现质量问题以及如何检测它们。这项研究的结果应该指导未来AI/ML组件的软件质量保证过程和技术的工作。
2022-03-23 cs.AI cs.SE