To Agile, or not to Agile: A Comparison of Software Development Methodologies
自敏捷宣言以来,许多组织都在探索敏捷开发方法来取代传统的瀑布式开发。有趣的是,瀑布仍然是最广泛使用的实践,这表明敏捷方法的许多“风味”中缺少了一些东西。我们探索了七种最常见的实践来探索这一点,并根据围绕产品质量和遵守敏捷实践的一系列标准来评估每一种实践。我们发现没有一种方法可以完全取代瀑布法,并总结了每种方法的优点和缺点。由此,我们得出结论,敏捷方法作为一个整体,无法应对技术债务和大规模系统的现实。最终,没有一种方法适合所有项目。
2017-04-24 cs.SE
A Model using agile methodologies for defining metrics to be used by the Public Sector in Brazil to set remuneration for outsourced software development
巴西联邦公共管理局(APF,葡萄牙语)范围内的软件工厂承包过程由于立法变更而发生了一些变化,并提出了一种模式,以改善提供与交付成果有关的服务。基于预测过程和功能点度量的软件工厂合同是批评的目标,并且在实现结果方面存在问题,正如先前的研究所验证的那样。现在提出的研究的初步目标是确定一个流程模型,用于制定可用于敏捷合同的指标,而不是标准化功能点,这些功能点已经证明是相当有问题的,难以为承包商管理。因此,根据软件开发公司敏捷合同的主题,拟议的研究将寻求更好地理解软件开发及其维护问题,公共机构通过使用敏捷方法和适当的指标来支付这些服务的合同。
2021-04-13 cs.SE
Validation of the development methodologies
本文认为,建模的开发方法可以提高多代理系统软件工程。这种建模允许将软件开发中使用的方法、技术和实践应用于方法本身。然后,本文讨论了开发方法的建模的优点。它描述了一个模型的开发方法,使用这样一个模型来开发一个系统的部分验证,并应用这样一个系统的多代理方法。这种模式可带来若干好处,例如改进多主体开发方法的开发、评价和比较工作。
2014-08-23 cs.SE
Process Patterns for Service Oriented Development
软件系统的开发现在已经转向动态组合的服务,运行在分布式基础设施与系统需求的不断变化。因此,软件开发人员需要定制项目特定的方法来满足他们的方法需求。过程模式通过提供软件开发方法的可重用方法块来构造方法以满足特定需求,从而提供了一个合适的解决方案。在本文中,我们提出了一套高层次的面向服务的过程模式,可用于构建和增强情境面向服务的方法。我们将展示如何使用这些模式来构建一个特定的面向服务的方法,开发一个示例系统。关键词面向服务的软件开发方法,过程模式,过程元模型,情景方法工程
2020-05-10 cs.SE
How are Software Repositories Mined? A Systematic Literature Review of Workflows, Methodologies, Reproducibility, and Tools
随着开放源码软件的出现,以前的专有软件开发数据的真正宝库得以利用。这为学术界的任何人打开了经验软件工程研究的领域。然而,从软件项目中挖掘的数据需要进行大量处理,并且需要极其谨慎地处理,以确保得出有效的结论。由于软件开发实践和工具在过去二十年中发生了变化,我们的目标是了解最先进的研究工作流程,并突出潜在的挑战。我们采用了系统的文献综述,从领先的会议中抽取了1000多篇论文,并从数据工作流程,方法,再现性和工具的角度分析了286篇最相关的论文。我们发现,涉及数据集选择的研究工作流程的一个重要部分特别有问题,这对现有文献中结果的一般性提出了质疑。此外,我们发现相当多的论文提供很少或根本没有重复性说明-这对于数据密集型领域来说是一个重大缺陷。事实上,33%的论文没有提供关于如何检索数据的信息。基于这些发现,我们提出了通过现有工具解决这些缺点的方法,并提供了改进研究工作流程和研究可重复性的建议。
2022-04-17 cs.SE
Quick Safari Through Software Design
这是一个关于不同软件设计方法的简短教程。
2014-03-17 cs.SE
X-Driven Methodologies for SOA System Development -- A Survey
本研究旨在评估四种面向服务架构(SOA)系统软件开发方法:业务驱动开发、模型驱动开发、事件驱动开发和领域驱动开发。这些方法通常被标记为x驱动方法(XDM),通常用于一般的软件开发环境中,但软件架构师也可以在基于SOA的系统中应用它们。每个XDM通常关注驱动其过程和步骤的特定方面。这方面是由它的标签。本研究采用定性筛选模式进行评价。XDM是根据其特性进行分析的,以确定其是否适合或支持面向服务的解决方案。用于评估每种方法的标准来自SOA特征和SOA宣言要点。在所讨论的四种XDM中,业务驱动开发是实现面向服务系统的最合适的方法,这一点可以从它与所选评估标准的一致性中看出。然而,其他三种XDM也有自己的优势。模型驱动的开发在生产力方面非常出色,事件驱动的开发更倾向于快速响应和异步工作,而领域驱动的开发则在精确描述问题方面与众不同。本研究的创新之处在于评估XDM应用于SOA方法的通用软件开发方法。研究结果可以帮助开发人员考虑合适的方法来构建一个前瞻性的软件系统。以往的研究只针对面向服务的系统设计方法进行研究。
2021-09-04 cs.SE
Valuing Evaluation: Methodologies to Bridge Research and Practice
软件工程(SE)的研究和实践之间的潜在脱节意味着研究成果的吸收有时是有限的。在本文中,我们试图确定的研究方法,严格的方法,但也相关的软件工程从业者。在考虑了软件系统研究和实践的几种方法的对应关系后,我们推荐了一个在SE研究中应用扎根理论的框架,作为提供强大和有用的结果的一种手段。
2021-01-11 cs.SE
Criteria Based Evaluation Framework for Service Oriented Methodologies
面向服务的软件工程基于构建复杂企业系统的概念和原则,其中服务作为系统的构建块分布在大型网络中。面向服务的方法的主要目标是定义一个基于服务的系统的开发和维护过程。与传统的面向对象或基于代理的软件开发方法相比,大多数面向服务的方法还不够成熟。因此,确定一个评价框架将有助于比较各种方法,以确定其优缺点,确定新的方法或扩展现有的面向服务的方法。目前,还没有一个完整的评估框架来评估面向服务的方法。本文的主要目的是介绍一个全面的评估框架,评估面向服务的方法。该评估工具适用于方法工程师开发新的方法,以及项目经理在特定项目中选择合适的方法。
2020-04-17 cs.SE
Outsourcing in Global Software Development: Effects of Temporal Location and Methodologies
University of Oxford Saïd Business School(牛津大学赛德商学院)
研究探讨了全球软件开发中时间位置和方法论对项目成功的影响,发现近岸开发在多个关键指标上表现更优,而方法论主要影响成本。
2026-02-08 cs.SE
Soft computing techniques for software effort estimation
投入到软件项目中的努力可能是近年来项目管理过程中最重要和最受分析的变量之一。算法工作量预测模型的局限性在于它们无法在早期开发阶段处理软件项目周围的不确定性和不精确性。最近,注意力已经转向各种机器学习方法,特别是软计算来预测软件开发工作。软计算是以模糊逻辑、人工神经网络和演化计算为中心的一个方法论联盟。在此必须指出,这些方法是相辅相成和协同增效的,而不是相互竞争的。它们以一种或另一种形式提供灵活的信息处理能力,用于处理现实生活中的模糊情况。这些方法目前用于可靠和准确的估计软件开发工作,这一直是一个挑战,软件行业和学术界。本研究的目的是分析现有模型中的软计算技术,并根据不同的测试数据集以及它们的优点和缺点,对行业和文献中存在的软件和项目评估技术进行深入审查
2013-10-19 cs.SE
A Road Map to Bio-inspired Software Engineering
软件生产研究正在两种并行的方法上快速发展:传统和生物启发。生物启发的方法通常被开发和呈现为常规方法的增强。传统的方法通过软件工程方法学与全局环境相结合而具有优势,而生物启发方法与生物启发软件工程方法学的结合将丰富传统方法,使其无可辩驳地成为最好的方法。本文分析了这种仿生软件工程出现的原因,提出了第一种方法,并给出了路线图和一些挑战,最后给出了第一种方法在不同软件系统类别上的应用及其简要评价。然而,工业规模的评价仍然是一个挑战。
2019-09-11 cs.SE
The entrepreneurial logic of startup software development: A study of 40 software startups
软件创业公司是创新和软件密集型产品的重要来源。在软件研究中强调了了解初创公司产品开发并提供相关支持的必要性。虽然最先进的文献揭示了初创公司如何开发他们的软件,但他们采用这些活动的原因却没有得到充分的探索。目的:本研究通过分析启动过程中的关键工程事件,探讨了软件工程(SE)活动背后的策略。我们探讨如何创业心态可能与SE知识领域和每个启动的情况。方法:我们的理论基础是因果模型和效应模型。我们对40家软件初创公司进行了半结构化采访。我们使用两轮开放编码和主题分析来描述和识别创业软件开发模式。此外,我们还计算了每个启动案例的实现指数。结果:我们从样本中识别出621个事件,合并成32个创业逻辑代码。我们发现,在SE活动的所有领域中,逻辑都有系统地发生。最小可行产品(MVP),技术债务(TD)和客户参与(CI)往往与有效逻辑相关联,而不同层次的测试活动与因果逻辑相关联。实现指数显示,初创公司要么是实现驱动的,要么是混合逻辑驱动的。结论:软件创业公司分为两种类型,区别于传统的SE方法可能适用于他们。简化似乎是解释和开发适合软件创业公司的SE实践的最相关和最重要的模型。
2021-03-14 cs.SE
Model-Based Testing of Safety Critical Real-Time Control Logic Software
本文介绍了作者在安全关键的实时的【形】控制逻辑软件的基于模型的测试方面的经验。它描述了相应的工业设置的细节,并讨论了在这些设置中使用基于UniTESK模型的测试技术的技术细节。最后,我们讨论了安全关键软件开发过程的未来可能的方向和基于模型的测试技术在其中的地位。
2012-02-28 cs.SE
Towards the integration of formal specification in the Áncora methodology
有一些非正式的方法论,如RUP,OpenUP,敏捷方法论,如SCRUP,XP和技术,如UML提出的那些,它们允许软件开发。软件行业一直在努力开发高质量的软件,因为工程需求并不重要,导致需求规格不佳,软件质量差。为了产生的贡献,规范的要求,本文介绍了一种方法的建议,实施正式的方法的结果的过程中的需求分析的方法Áncora。
2011-11-04 cs.SE
Devops And Agile Methods Integrated Software Configuration Management Experience
本研究通过集成DevOps和敏捷方法改进软件配置管理,与传统方法相比,在构建部署时间、自动化报告、版本管理、系统控制及工作效率等方面取得显著提升。
2023-06-24 cs.SE
A Framework for Evaluating Model-Driven Self-adaptive Software Systems
在过去的几年里,模型驱动开发(MDD),基于约束的软件开发(CBSD),和面向上下文的软件已经成为有趣的替代品的设计和自适应软件系统的建设。一般来说,这些技术的最终目标是能够降低开发成本和工作量,同时提高软件系统的模块化、灵活性、适应性和可靠性。对这些技术的分析表明,它们都包括关注点分离的原则,它们的进一步集成是获得高质量和自适应软件系统的关键因素。每种技术都识别不同的关注点,并分别处理它们,以指定自适应应用程序的设计,同时,支持软件具有适应性和上下文感知。本研究探讨以模型驱动开发原则建构自适应软体系统的开发方法。为此,本文提出了一个评估框架,用于分析和评估模型驱动方法的特点及其在高度动态的上下文环境中支持具有自适应性和可靠性的支持软件的能力。这种评价框架可以帮助软件开发人员选择适合自己需求的开发方法,减少构建自适应软件系统的开发工作量。本研究强调了相关工作中支撑模型驱动方法的主要缺点,并强调在开发方法的分析、设计和实现阶段考虑自适应软件的易变方面。此外,我们认为,开发方法应该离开的选择建模语言和建模工具的软件开发人员。
2019-01-13 cs.SE
"So Am I Dr. Frankenstein? Or Were You a Monster the Whole Time?": Mitigating Software Project Failure With Loss-Aversion-Aware Development Methodologies
Engprax Ltd(Engprax有限公司)
研究通过对600名英美软件工程师项目成功经验的大规模研究,发现开发前明确需求、让工程师自由讨论解决问题与项目成功相关,支持开发更关注人为因素防失败的软件开发方法。
2026-07-07 cs.HC cs.SE
Understanding Technology Use in Global Virtual Teams: Research Methodologies and Methods
背景:与软件开发和使用相关的活动的全球化在实践和研究中带来了许多挑战。虽然软件工程研究的主要方法遵循实证科学模型,但这种方法在解决具有主导社会或文化维度的问题时可能是次优的,例如在全球分布的团队环境中研究工作实践时经常遇到的问题。在本文中报道的这样一个团队的调查提供了一个例子,在全球范围内的另一种研究方法,通过纵向解释性的实地研究,试图了解全球虚拟团队如何介导的技术的使用。目标:我们在本文中的重点是在全球软件活动的背景下进行研究,特别是适用于全球虚拟团队的行动和互动。方法:我们描述了我们如何进行了大量的全球虚拟团队的实地研究,并强调如何通过结构化理论使我们能够有效地实现我们的目标。结果如下:我们认为,所采取的方法适合的研究背景下,在一个高度复杂的领域中,随着时间的推移,发生的情况下的做法,确保我们的结果都有很强的基础和相关的实践。它导致产生了实质性的理论和技术,这些理论和技术已在进一步的实地环境中进行了调整和试点应用。结论:我们的结论是,全球分布的团队合作提出了一个复杂的背景下,需要新的研究方法,超越了有限的一套通常适用于软件工程研究人员。我们提倡尝试不同的研究方法论和方法,以便我们有一个更全面的剧目,以解决全球软件开发研究中最重要和最相关的问题。(节录)
2021-01-29 cs.SE
Systematic Mapping Protocol - Coverage of Aspect-Oriented Methodologies for the Early Phases of the Software Development Life Cycle
面向方面的软件开发技术和工具的数量在过去的几年里一直在增加,但它们仍然不够成熟,也没有足够的传播,以包括在项目领导者的工具箱中。软件开发项目必须处理许多风险,项目领导者的主要职能是将风险最小化。使用不成熟的技术、市场新手的工具、未经充分测试的技术等,对于那些有责任执行一个成功的软件开发项目的人来说,这将是非常危险的决定。另一方面,掌握众所周知的工具和技术以及遵守标准和最佳做法,将有助于专业人员作出良好的估计和作出更好的决定。有很多关于面向方面的技术、符号、工具等的建议,但它们还没有统一在一个共同的知识体系上,没有一个成为最流行的方法。我们感兴趣的是面向方面SDLC的早期阶段,包括从生存周期开始到架构设计的各个阶段。我们感兴趣的是描绘面向方面的技术和工具的艺术状态,以及它们所采用的标准的识别。我们的目标是收集所有可用的证据,分析它,并研究在实际项目中应用这些技术,工具和标准的可能性,利用面向方面范式的好处,通过识别科学文献中存在的标准和广泛的方法,技术,符号和工具,并验证它们是否在行业中应用,通过对1995年至2019年期间发表的文献进行系统映射。
2018-09-26 cs.SE
AZ Model for Software Development
了解一天计算机系统成为必不可少的,它是最常用的生活的各个领域。计算机节省时间和使用,以有效的方式快速解决复杂和广泛的问题。为此,开发软件程序以促进管理员,办公室,银行等的工作,因此质量是最重要的因素,因为它主要定义客户满意度,直接关系到项目的成功,因此偶尔会开发许多方法(方法)。本文的主要研究内容是提出一种新的软件开发方法,该方法以各种产品的质量改进为中心。本研究还将讨论传统方法的特点和局限性,如瀑布,迭代,螺旋,RUP和敏捷,并显示新的创新方法是如何优于以前的。
2016-12-28 cs.SE
Top Down Approach: SIMULINK Mixed Hardware / Software Design
系统级设计方法已经被引入作为处理混合硬件/软件系统的设计复杂性的解决方案。在本文中,我们描述了一个系统级的设计流程从Simulink规范开始,专注于并发的硬件和软件设计和验证在四个不同的抽象层次:系统Simulink模型,事务Simulink模型,宏架构,和微架构。我们使用MP3 CodeC应用程序来验证我们的方法和方法。
2012-07-17 cs.SE
Software Abstractions and Methodologies for HPC Simulation Codes on Future Architectures
运行在高性能计算平台上的大型、复杂、多尺度、多物理场的仿真程序,已经成为推动科学和工程发展的关键。这些代码在千万亿次平台上以前所未有的保真度模拟多尺度,多物理现象,并被大型社区使用。这些代码在未来平台上持续运行的能力对他们的社区至关重要,就像仪器和设施的持续改进对实验科学家一样。然而,代码开发人员做这些事情的能力面临着一个严重的挑战,在平台架构中正在进行的范式转变。未来平台的复杂性和不确定性使得作为一个社区合作应对这一挑战至关重要。我们需要开发通用的抽象、框架、编程模型和软件开发方法,这些方法可以应用于各种复杂的仿真代码,并需要通用的软件基础设施来支持它们。在这份立场文件中,我们表达并讨论了我们的信念,即这样的基础设施对于在未来的HPC平台上部署现有的和新的大型、多尺度、多物理场代码至关重要。
2013-09-06 cs.CE cs.MS cs.SE
Exploring Code Clones in Programmable Logic Controller Software
通过复制和粘贴来重用代码片段在软件开发中被广泛实践,并导致代码克隆。克隆被认为是一种反模式,因为它会对程序正确性产生负面影响,并增加维护工作量。可编程逻辑控制器(PLC)软件在代码克隆讨论中也不例外,因为开发和维护中的重用经常通过复制、粘贴和修改来实现。尽管代码克隆的存在本身可能不是问题,但随着软件系统的发展,检测、跟踪和管理克隆是很重要的。不幸的是,用于克隆检测和管理的工具支持通常不适用于PLC软件系统,或者仅限于具有精简功能集的通用工具。在本文中,我们研究了代码克隆在现实世界的PLC软件系统的基础上IEC 61131-3结构化文本和C/C++。我们扩展了一个广泛使用的克隆检测工具,并提供了规范化支持。此外,我们评估了不同类型和性质的代码克隆在所研究的系统和重构的相关性。结果揭示了克隆检测在工业自动化系统的背景下的适用性和有用性,它证明了适应IEC 611313-3语言的检测和管理工具的好处。
2017-06-13 cs.SE
Optimized Fuzzy Logic Based Framework for Effort Estimation in Software Development
在项目开发的早期阶段进行软件工作量估算,对于满足当今世界的竞争需求具有重要意义。努力估计的准确性、可靠性和精确性是十分可取的。算法模型(如建设性成本模型(COCOMO))的输入中存在的固有不精确性会导致输出中的不精确性,从而导致错误的工作量估计。基于模糊逻辑的成本估计模型本质上适合于解决输入中的模糊性和不精确性,以进行可靠和准确的工作估计。在本文中,我们提出了一个优化的模糊逻辑为基础的软件开发工作量预测框架。所述框架容忍不精确性,结合专家知识,通过规则解释预测原理,在预测系统中提供透明度,并且可以随着新数据的可用性而适应不断变化的环境。传统的成本估算模型COCOMO在拟议的研究中扩展,将未来的概念纳入规模的测量,项目的发展模式和成本驱动因素有助于整体发展努力。
2010-04-19 cs.SE
The Integration of Agile Methodologies in DevOps Practices within the Information Technology Industry
本文通过 11 次半结构化访谈和主题分析,考察 Agile 方法融入 DevOps 实践的可行性与实施方式,并提炼其在 DevOps 生命周期中的相互关系。
2025-08-29 cs.SE
ct-fuzz: Fuzzing for Timing Leaks
基于测试的方法,如模糊能够分析复杂的软件,这是不服从传统的形式化方法,如验证,模型检验,抽象解释。尽管在许多流行的软件项目中暴露了无数的安全漏洞,但基于测试的方法的应用主要针对检查传统的安全属性,如内存安全。虽然这类属性无疑很重要,但它并不能精确地表征其他重要的安全方面,如信息泄漏,例如,通过侧通道。在这项工作中,我们扩展了基于测试的软件分析方法的两个安全属性,这使得复杂的软件中的信息泄漏的精确发现。特别是,我们提出了ct-fuzzz工具,它使覆盖率指导灰盒模糊检测两个安全属性违规的能力。我们的方法是能够暴露违反任何两个安全属性表示为两个程序的痕迹之间的平等。从经验上讲,我们证明了ct-fuzz迅速揭示流行的加密实现中的时间泄漏。
2019-04-15 cs.SE
Software Development Effort Estimation Using Regression Fuzzy Models
软件工作量估算在项目管理中起着至关重要的作用。错误的结果可能导致高估或低估工作量,这可能对项目资源造成灾难性的后果。机器学习技术在该领域越来越受欢迎。特别是模糊逻辑模型,被广泛用于处理不精确和不准确的数据。本研究的主要目标是设计和比较三种不同的模糊逻辑模型来预测软件估计工作量:Mamdani,Sugeno与恒定输出和Sugeno与线性输出。为了帮助设计的模糊逻辑模型,我们进行了回归分析,一种方法,我们称之为回归模糊逻辑。采用最先进的无偏性能评估标准,如标准化准确度、效应量和平均平衡相对误差,以及统计检验来评估模型。使用来自国际软件基准标准组(ISBSG)数据集的工业项目对模型进行了训练和测试。结果表明,数据异方差影响模型的性能。发现模糊逻辑模型对异常值非常敏感。我们的结论是,当使用回归分析来设计模型时,具有线性输出的Sugeno模糊推理系统优于其他模型。
2019-02-10 cs.SE
Agent-Based Software Testing: A Definition and Systematic Mapping Study
软件测试中新技术的出现提高了测试过程的自动化程度和灵活性。在这种情况下,通过代理在软件测试仍然是一个活跃的研究领域,在其中各种代理的方法,架构和工具,以改善不同的测试问题。尽管在软件测试中研究代理的研究一直在增长,但这些基于代理的技术应该从更广泛的角度来考虑。为了提供一个全面的概述,这一研究领域,我们定义为基于代理的软件测试(ABST),已进行了系统的映射研究。这项映射研究的目的是确定在ABST研究的主题,以及检查所采用的研究方法论,确定目前的研究差距,并指出未来的ABST研究方向。我们的研究结果表明,有兴趣ABST后,1999年,导致开发的解决方案,使用反应,BDI,审议和合作代理架构的软件测试。此外,大多数ABST方法都是使用JADE框架设计的,目标是Java程序设计语言,并用于功能、非功能和白盒测试的系统级测试。关于回归测试,我们的研究结果表明,可以在未来的研究中解决的研究差距。
2020-07-20 cs.SE
Application of Orthogonal Defect Classification for Software Reliability Analysis
采用数字仪表和控制系统(DI&C)对现有和新建核电厂进行现代化改造是一个最近的热门话题。然而,美国(U.S.)核管理委员会(NRC)和工业界。在这项工作中,我们开发了一种方法,称为软件可靠性评估(ORCAS)的软件缺陷分类,以量化的DI&C系统中的各种软件故障模式的概率。该方法采用公认的行业质量保证方法,并通过实验证据进行验证。本质上,该方法结合了语义故障分类模型和可靠性增长模型来预测软件系统故障模式的概率。案例研究是在一个代表性的I&C平台(Chibios)上进行的,该平台运行由弗吉尼亚联邦大学(VCU)开发的智能传感器采集软件。应用了ORCAS中的测试和证据收集指南,发现了软件中的缺陷。定性证据,如修改的条件决策覆盖率,被用来衡量的完整性和可信度的评估,而定量证据被用来确定软件故障概率。然后估计软件的可靠性,并将其与传感器设备的现有操作数据进行比较。它表明,通过使用ORCAS,可以开发一个语义推理框架,以证明如果软件是可靠的(或不可靠的),同时仍然利用现有方法的强度。
2022-05-24 cs.SE
Improving Software Development Processes with Multicriteria Methods
所有的软件开发过程都包括一些步骤,在这些步骤中,几个备选方案引发了一个选择,一个决策。有时,方法论提供了一种决策的方法。然而,在很多情况下,执行决定的论据非常差,选择是以一种直觉和危险的方式做出的。我们的工作的目的是提供一个科学的方法来指导工程师通过战术选择与多准则方法在软件开发过程中的应用。这种方法通过三个案例来说明:风险、用例和Rational统一过程中的工具。
2009-11-08 cs.SE
3rd Workshop on Hybrid Development Approaches in Software System Development
有证据表明,软件开发方法,框架,甚至实践很少在公司中通过遵循这本书来应用。将不同的方法结合到本土工艺中的做法不断被发现。然而,学术界对这一现象的理解和调查非常有限。2016年,HELENA计划启动,研究软件系统开发中的混合开发方法。本文介绍了第三届HELENA研讨会,并提供了所使用的仪器和可用的数据集的详细说明。
2021-04-17 cs.SE
Towards Reliable Vector Database Management Systems: A Software Testing Roadmap for 2030
本文针对向量数据库管理系统(VDBMS)的测试挑战,通过实证研究缺陷,提出首个综合软件测试研究路线图,旨在提升其可靠性,支撑LLM与AI应用发展。
2025-02-28 cs.SE
Project Success in Agile Development Projects
本文解释并澄清了瀑布和敏捷开发方法之间的差异,建立了在软件开发项目范围内正确定义项目成功的标准,最后试图澄清项目成功是否是许多组织从其他方法(如瀑布)转向敏捷方法的原因。以文献综述的形式,它分析了一些出版物,调查和案例研究,指出了公司转向敏捷的动机,以及他们后来观察到的结果。它还分析了公司从传统方法(如瀑布)发展到敏捷开发方法后项目成果的总体统计数据。
2017-11-18 cs.SE
Scrum2Kanban: Integrating Kanban and Scrum in a University Software Engineering Capstone Course
随着敏捷方法在专业软件开发中获得支持,使用大学的顶点课程来教授敏捷软件开发方法已经变得司空见惯。这通常意味着学生将被介绍并使用当前最流行的敏捷方法:Sunday。然而,随着行业中采用的敏捷方法发生变化并适应不同的环境,大学课程必须跟上。这方面的一个主要例子是看板方法,最近在行业中引起了关注。在本文中,我们描述了一个顶点课程设计,它增加了实践学习的精益原则所倡导的看板到顶点项目运行与SLEP。这既确保了学生了解最新的过程框架和想法,也确保了学生对敏捷方法如何在实践中使用有了更全面的了解。我们描述了课程的细节,并分析了参与学生的看法以及我们的观察。我们分析了开发工件,学生在课程中创建的两种不同的开发方法。我们还提出了一个总结经验教训以及建议,为今后类似的课程。在课程结束时进行的调查显示,学生对看板融入课程的态度非常积极。
2018-09-06 cs.SE
A Classical Fuzzy Approach for Software Effort Estimation on Machine Learning Technique
软件成本估算的可靠性,生产力和开发工作是一个具有挑战性和繁重的任务。这激发了软件社区提供急需的推力,并深入研究软件工作量估计,以发展复杂的方法。类比估算是软件工作量估算领域的一种有效方法。然而,用于通过类比来估计软件工作量的方法无法以明确和精确的方式处理分类数据。本文提出了一种新的方法来估计软件工作量的项目表示的分类或数值数据,使用类比推理和模糊方法。现有的历史数据集,用模糊逻辑分析,产生准确的结果相比,数据集分析与早期的方法。
2011-12-16 cs.SE
Progress Report on a Proposed Theory for Software Development
在软件工程社区中,越来越多的人认识到,需要一种软件开发理论来整合目前流行的无数方法,其中一些方法是基于对立的观点。多年来,我们一直在发展这样一种理论。在这份立场文件中,我们概述了我们的理论以及迄今为止取得的进展。我们建议,一旦完全开发,这个理论,或类似的,可以应用于支持软件开发,通过提供一个总体模型,其中软件倡议可能被分类和理解。这种理解将不可避免地导致对结果的更大的可预测性。
2021-03-05 cs.SE
State of the Software Development Life-Cycle for the Internet-of-Things
考虑到软件的成功率,它与危机状态有着长期的联系。互联网连接设备的爆炸式增长,物联网,增加了软件系统的复杂性。这些系统的特点,如大规模和异质性,提出了越来越多的新的挑战。在本文中,我们首先简要介绍了物联网范式和软件开发的现状。然后,我们深入研究了为物联网系统和系统的系统开发软件的特殊性,概述了当前用于设计,开发和测试此类系统的方法和工具。对研究结果进行了讨论,揭示了开放问题和研究方向,并揭示了当今物联网软件开发实践仍然落后于当前的最佳实践。
2018-11-09 cs.SE
A System Modeling Approach to Enhance Functional and Software Development
本文提出了一种基于SysML的方法,以提高功能和软件开发过程中的工业环境。最近的技术变化,如电动汽车和重型工程机械自动化程度的提高,导致嵌入式软件的复杂性增加。因此,需要新的开发方法来解决灵活的功能开发,增强开发团队之间的沟通,并保持从设计概念到软件产品的可追溯性。所讨论的方法已经在开发新的传输系统(部分电气化)及其功能的背景下进行了实验。虽然建模方法是一个正在进行的工作,一些初步的成功,以及现有的差距指向未来的工作突出。
2019-06-20 cs.SE
MP-CodeCheck: Evolving Logical Expression Code Anomaly Learning with Iterative Self-Supervision
机器编程(MP)涉及自动化软件开发。根据研究,软件工程师将超过50%的开发时间用于调试软件。为了帮助加速调试,我们提出了MP-CodeCheck(MPCC)。MPCC是一个MP系统,它试图识别逻辑程序表达式中的异常代码模式。在设计MPCC的过程中,我们开发了两种新颖的程序设计语言表示,它们的形成对于其穷尽和有效地处理用于其自我监督训练的数十亿行代码的能力至关重要。为了量化MPCC的性能,我们将其与ControlFlag(一种最先进的自监督代码异常检测系统)进行比较;我们发现MPCC在空间和时间上都更有效。我们通过在各种开源GitHub存储库和一个专有代码库上练习来展示MPCC的异常代码检测功能。我们还提供了一个简短的定性研究的一些不同类别的代码异常,MPCC可以检测到提供一个简短的洞察其能力。
2022-04-14 cs.SE
The Size of Software Projects Developed by Mexican Companies
目前,世界上大多数软件项目都是小型的,而不是大型的。尽管如此,开发和管理大型软件项目的方法论、工具、框架、过程等比小型软件项目的方法论、工具、框架、过程等更多。小型软件项目很重要,因为它们会产生大量的资源。例如:应用程序(小型移动应用程序)产生约250亿美元的收入。本文展示了我们的调查结果,由墨西哥软件开发公司建立的项目的规模。我们调查了107家墨西哥公司,发现他们开发的项目中有92%是微型和小型项目,8%是中型或大型项目。此外,根据我们的研究,墨西哥84.1%的公司是微型或小型企业。
2014-08-05 cs.SE
Realization and Extension of Abstract Operation Contracts for Program Logic
对于具有形式正确性证明的工程软件来说,在软件或其规范发生变化的情况下,证明可以有效地重用是至关重要的。不幸的是,在现实中,即使是代码或其规范中的微小变化也经常导致不成比例的验证工作浪费:例如,每当一个方法的规范被修改时,其正确性的证明就会中断,所有基于此规范的其他证明也会中断。抽象方法调用是最近提出的方法调用验证规则,允许有效的系统重用证明。在这篇论文中,我们实现,扩展和评估这种方法的关键验证系统。
2015-01-18 cs.SE
A Procedure for Extracting Software Development Process Patterns
过程模式代表了软件开发方法中结构良好且成功的重复活动。他们能够形成一个可重用的构建块库,可以在情景方法工程中使用,用于构建自定义SDM或增强现有SDM以适应特定的项目情况。近年来,一些研究者根据不同领域的经验,从已有的SDMs中主观地提取出过程模式,然而,如何通过系统化的方法客观地从SDMs中提取过程模式仍然是一个问题。在这方面,本文关注的是一个程序,旨在采取现有的SDM的过程模式。一个例子说明了所提出的过程中提取过程模式在特定的上下文中的适用性。
2020-05-10 cs.SE
Proceedings First International Workshop on Logics for Component Configuration
本卷包含在第一届逻辑组件配置国际研讨会(LoCoCo 2010)上提交的论文,该研讨会与国际会议理论和可满足性测试应用(SAT 2010)相关,作为联邦逻辑会议(FLoC 2010)的一部分,并于2010年7月10日在英国爱丁堡举行。现代软件发行版基于组件的概念,组件表示独立开发和部署的单元。组件在组织复杂的软件分发时提供了必要的灵活性,但在从大量可能的选择库中选择组件,并根据用户需求、资源约束和与其他组件的相互依赖性配置这些组件时,组件也是一个挑战。配置问题的表示和求解是许多应用领域的一个重要研究课题。一些著名的复杂组件系统的例子是自由和开源软件发行版,如GNU/Linux或Eclipse插件。LoCoCo研讨会的重点是基于逻辑的方法,用于指定和解决软件组件的复杂配置问题。目标是汇集活跃在软件系统组件配置领域的研究人员和从业人员,使用不同的建模和求解技术,如约束和逻辑编程,描述逻辑,可满足性及其扩展。
2010-07-06 cs.LO cs.SE
Model based Software Develeopment: Issues & Challenges
软件设计的目标之一是以一种易于理解的方式对系统进行建模。当今软件开发的趋势正在从手工编码向自动代码生成转变,即向基于模型的方向发展。这是对软件危机的反应,在这场危机中,硬件的成本下降了,相反,软件开发的成本急剧增加。允许这种变化的方法是基于模型的,因此将人类从详细的编码中解放出来。实现这一目标还有很长的路要走,但世界各地都在努力实现这一目标。本文介绍了与建模相关的巨大变化以及在MBSD中反复出现的重要挑战性问题和技术。
2012-03-06 cs.SE
Probabilistic Software Modeling: A Data-driven Paradigm for Software Analysis
Johannes Kepler University Linz(约翰内斯·开普勒大学林茨分校);Software Competence Center Hagenberg GmbH(哈根贝格软件能力中心有限公司)
软件系统是复杂的,随着人工智能组件数量的增加,行为理解对传统的测试和维护策略提出了挑战。缺乏用于行为软件理解的工具和方法,使开发人员只能在已知场景的边界内进行测试和调试。我们提出了概率软件建模(PSM),数据驱动的建模范式的预测和生成方法在软件工程。PSM分析程序并合成一个概率模型网络,可以模拟和量化原始程序的行为。该方法提取程序的类型、可执行文件和属性结构,并复制其拓扑结构。然后,每个模型都朝着观察到的运行时进行优化,从而形成反映系统结构和行为的网络。由此产生的网络允许全方位的统计推断分析,可以构建丰富的预测和生成应用程序。应用范围从可视化的状态,推理查询,测试用例生成,异常检测到随机执行的建模系统。在这项工作中,我们提出的建模方法,软件系统的运行时行为的实证研究,并全面研究PSM建模系统。结果表明,PSM是一个坚实的基础,结构和行为的软件理解的应用。
2019-12-18 cs.LG cs.SE
GluPredKit: Development and User Evaluation of a Standardization Software for Blood Glucose Prediction
针对血糖预测算法缺乏统一训练、测试与比较标准的问题,本文开发开源模块化平台 GluPredKit,并经用户研究验证其高可用性与教育价值。
2024-06-13 cs.SE
A proposal to systematize introducing DevOps into the software development process
随着新的开发标准和服务交付模型的出现,软件开发行业也在不断发展。敏捷方法已经通过DevOps完成,从而提高了软件的质量并提高了交付速度。然而,在正式通过和执行方面存在差距,这也是相关的。我的假设是,通过将DevOps系统化引入软件开发过程并定义DevOps团队成员的功能,可以更快地实现这个过程,从而减少团队之间的冲突。作为对这一假设的调查的一部分,研究结果将应用于实际的开发环境中,即巴西政府国家技术局和巴西公司Neurotech,以便从适合DevOps环境的指标中评估其有效性。
2021-04-15 cs.SE
An Ontological Analysis of a Proposed Theory for Software Development
在软件工程社区中,越来越多的人认识到,需要一种软件开发理论来整合目前流行的无数方法,其中一些方法是基于对立的观点。多年来,我们一直在发展这样一种理论。在本文中,我们概述了我们的理论,并报告了最近的本体论分析的理论结构。我们建议,一旦完全开发,这个理论,或类似的,可以应用于支持软件开发,通过提供一个总体模型,其中软件倡议可能被分类和理解。这种理解将不可避免地导致对结果的更大的可预测性。
2021-03-19 cs.SE
Qualitative Research on Software Development: A Longitudinal Case Study Methodology
本文报告了使用定性方法进行纵向案例研究的软件开发。我们提供了一个详细的描述和解释,可以利用其他研究人员在软件工程领域的定性数据汇集和分析的适当方法。我们的目标是说明纵向案例研究的实用性,作为研究软件开发的现有方法的补充,以便使社区能够对这种复杂、多维的现象有更全面、更丰富的理解。我们讨论的见解和经验教训,从应用纵向定性的方法,在一个大型跨国组织的软件开发项目的实证案例研究。我们评估所使用的方法,以强调其优势,并解决传统的定性研究的批评。
2021-01-21 cs.SE
Linear-time Temporal Logic guided Greybox Fuzzing
软件模型检验是一种广泛用于检验软件系统时态特性的验证技术。尽管它是一种属性验证技术,但它在实践中的常见用法是“bug查找”,即查找对时态属性的违反。出于这种观察和利用模糊的最新进展,我们建立了一个灰盒模糊框架,以发现违反线性时间时序逻辑(LTL)属性。我们的框架需要作为输入的C/C ++编写的顺序程序,和LTL属性。它发现有状态软件系统中LTL属性的违规或反例痕迹;然而,它没有实现验证。我们的工作大大扩展了直接灰盒模糊见证任意复杂的事件排序。我们注意到,现有的定向灰盒模糊方法仅限于见证到达一个位置或见证简单的事件排序,如使用后免费。同时,与模型检查器相比,我们的方法可以更快地找到反例,从而在给定的时间预算内找到更多的反例。我们的LTL-Fuzzer工具,建立在AFL fuzzer之上,被证明是有效的,在著名的协议实现,如OpenSSL和SSL的检测错误。我们使用LTL-Fuzzer再现已知漏洞(CVEs),通过检查从RFC(已分配12个CVEs)中提取的属性来查找15个零日错误,并在现实世界的协议实现中找到违反安全性和活性属性的行为。我们的工作代表了一个实际的进步,在软件模型检查-同时代表了一个概念上的进步,在现有的灰盒模糊。因此,我们的工作为理解软件模型检验和灰盒模糊化之间未探索的协同作用提供了一个起点。
2022-04-19 cs.SE
Enhancing the OPEN Process Framework with Service-Oriented Method Fragments
面向服务是一个很有前途的范例,它使大规模分布式软件系统的工程使用严格的软件开发过程。现有的问题是,每个面向服务的软件开发项目通常需要一个定制的开发过程,提供特定的面向服务的软件工程任务,以支持该项目的独特需求。为了解决这个问题,并允许情景方法工程,我们已经定义了一组方法片段,以支持工程的项目特定的面向服务的软件开发过程。我们已经从11个突出的面向服务的软件开发方法,使用系统的挖掘方法的经常性功能,提出了方法片段。我们已经将这些新的片段添加到OPEN过程框架的存储库中,使它们作为可重用的片段提供给软件工程师使用这个众所周知的方法存储库。关键字面向服务软件开发,开放过程框架,OPF知识库,方法片段,情景方法工程
2020-04-17 cs.SE
Agile Methods: Testing Challenges, Solutions & Tool Support
如今,敏捷开发是一种传统的开发方式,随着时间的推移,软件开发人员正在迅速地从瀑布式开发转向敏捷开发。敏捷方法专注于通过提高软件公司的响应速度来快速交付可执行代码,同时减少开发开销,并将人员视为软件开发的最强支柱。由于敏捷开发使软件开发的瀑布方法论黯然失色,因此它提出了一些与此类软件测试相关的独特挑战。我们的研究将讨论这种方法所引发的挑战。本文讨论了一些挑战,并提出了解决这些挑战的可能解决方案和方法。此外,在实践中提到的工具,以提高效率的过程。
2020-08-30 cs.SE
Kanban + X: Leveraging Kanban for Focused Improvements
敏捷开发用于解决许多问题,通常具有不同的优先级和挑战。然而,广义的工程方法往往忽略了项目的特殊性。为了解决这个问题,我们研究了工程师如何针对特定的焦点修改开发方法,并创建了一个通用的框架来利用看板进行重点改进。其结果是一个并行的迭代板,它跟踪和可视化朝着一个焦点的进展,我们已经将其应用于安全性,可持续性和高性能作为示例。通过使用这个系统,软件项目可以更加集中,并朝着他们的目标。
2017-04-28 cs.SE