An exploratory study on the effects of event-driven architecture on software modularity
事件驱动架构已在软件行业中得到广泛采用,成为基于REST架构风格的企业应用程序开发的替代方案。然而,很少有人知道事件驱动的架构对模块化的影响,而企业应用程序的发展。因此,实践者最终在没有任何经验证据表明其对基本指标的影响的情况下采用了它,包括关注事项的分离、耦合、凝聚力、复杂性和规模。因此,本文报告了一项探索性研究,从模块化的角度比较了事件驱动架构和REST风格。一个真实世界的应用程序开发使用事件驱动的架构和REST通过五个演变的场景。在每个场景中,都添加了一个功能。使用十个指标比较生成的版本。最初的结果表明,事件驱动的架构改善了关注点的分离,但考虑到耦合,内聚,复杂性和规模的度量优于。这些发现是令人鼓舞的,并且可以被视为更雄心勃勃的议程的第一步,以经验评估事件驱动架构相对于REST风格的好处。
2022-08-02 cs.SE
An Algebraic Programming Style for Numerical Software and its Optimization
偏微分方程(PDE)的抽象数学理论是用流形、标量场、张量等来表示的,但这些代数结构在实际的PDE求解器中很难识别。Sophus编程风格的总体目标是弥合PDE求解器领域理论与实践之间的差距。它的主要成分是一个图书馆的抽象数据库对应的代数结构中使用的数学理论和代数表达式风格类似的表达风格中使用的数学理论。由于其对抽象数据库的强调,Sophus很自然地与面向对象语言或其他支持抽象数据库的语言结合在一起。产生的源代码模式超出了当前编译器优化的范围,但对于专用的源到源优化器来说足够具体。Sophus有限的、特定领域的特性是成功的关键。这种优化已经在计算密集型Sophus风格的代码上进行了测试,结果令人满意。通用方法对于其他样式和其他应用程序域也可能有用。
1999-03-01 cs.AI cs.CE cs.MS
Implications of MBTI in Software Engineering Education
有许多方法可以帮助理解个体差异及其对教学和学习的影响。教育工作者一直在使用迈尔斯-布里格斯类型指标(MBTI)来了解学习风格的差异,并制定适合不同个性风格的教学方法。受MBTI的启发,我们开发了一系列在软件工程课程中有效教学和学习的实践。我们的目标是达到每一个学生,但以不同的方式,通过设计各种教学方法。
2015-07-24 cs.CY cs.SE
A Model of Layered Architectures
体系结构风格和模式在软件工程中发挥着重要作用。其中最著名的是分层架构风格。然而,这种风格通常只是非正式地陈述,这可能会导致诸如歧义、错误结论以及在检查系统是否符合该风格时困难等问题。我们解决这些问题,提供了一个正式的,指称语义的分层架构风格。主要是,我们提出了一个足够抽象和严格的分层架构的描述。不严格地说,分层架构由层次结构的层组成,其中服务通过端口进行通信。层被建模为使用的和提供的服务之间的关系,层组合通过关系组合来定义。此外,我们提供了一个正式的定义层之间的语法和语义依赖的概念。我们表明,这些依赖关系是不可比的一般。此外,我们确定了充分的条件下,在直观的意义上,我们在我们的治疗精确,语义依赖意味着,是隐含的,甚至符合自反传递的句法依赖关闭。我们的研究结果提供了一个技术独立的分层架构风格,这可能是由软件架构师使用,以确保系统确实是根据该风格构建的表征。
2015-03-17 cs.SE
Exploring Actions, Interactions and Challenges in Software Modelling Tasks: An Empirical Investigation with Students
本研究通过观察16对学生解决建模任务,发现不同建模风格及工具影响,并提出了一套指导方针以加强建模教育并培养学生的实践技能。
2024-09-20 cs.SE
Female Leadership in Software Projects: A Preliminary Result on Leadership Style and Project Context Factors
事实证明,妇女在许多以团队为基础的情况下是有效的领导者。然而,人们也普遍认识到,妇女在工程和技术领域的代表性不足,这导致浪费努力和专业组织缺乏多样性。虽然关于性别和领导力的研究很丰富,但专注于工程特定活动的研究却很少。为了应对这一差距,我们探讨了软件开发项目的女性领导者的经验和可能影响领导效率的背景因素。该研究是作为纵向多案例研究进行的。数据来自调查、访谈、观察和项目报告。在这项工作中,我们报告了一些有关领导风格,团队知觉的领导和团队任务的背景因素的初步研究结果。我们发现,感知团队领导和任务管理之间有很强的相关性。我们还观察到一个潜在的关联,以人为本的领导方式在低客户参与的情况下,以任务为导向的领导方式在高客户参与的情况下。
2017-09-22 cs.CY cs.SE
Explainable Software Analytics
软件分析一直是最近相当关注的主题,但尚未获得显着的行业牵引力。其中一个关键原因是,软件从业者不愿意在不了解这些预测的基本原理的情况下信任分析机器产生的预测。虽然复杂的模型(如深度学习和集成方法)可以提高预测性能,但它们的可解释性有限。在本文中,我们认为,软件分析模型解释软件从业者是\emph{important}实现准确的预测。因此,可解释性应该是评估软件分析模型的关键指标。我们设想,可解释性将是开发在实践中有用的软件分析模型的关键驱动力。我们概述了这个空间的研究路线图,建立在社会科学,可解释的人工智能和软件工程。
2018-02-02 cs.SE
An Architectural Style for Self-Adaptive Multi-Agent Systems
现代分布式软件系统通常运行在动态环境中,其中运行条件连续变化,子系统可以随意进出,例如智能交通管理和多机器人系统。为了管理这些动态,这些系统必须动态地自适应其结构和行为。虽然我们看到过去十年来在设计这种系统的方式方面取得了重大进展,但仍然存在持续的挑战。特别是,处理分布和分散控制仍然是自适应系统的主要挑战之一。该报告提出了一种架构风格,支持软件架构师为一系列分散自适应系统设计架构。体系结构风格的结构中的一些相互作用的自治实体(代理),合作实现系统任务的软件。多智能体系统从建筑风格派生实现灵活性(代理适应他们的行为和相互作用,以可变的操作条件)和开放性(代理处理自主与其他代理进入和离开系统)。架构风格由五个相关的模式,提取领域特定的架构知识,从开发各种多代理系统的丰富经验。使用pi-ADL,一个正式的体系结构描述语言,支持规范的动态体系结构的体系结构模式。该规范为架构师提供了对模式的架构元素、它们的交互和行为的严格描述。我们说明了我们如何应用的建筑风格与摘录的两个案例,从我们的实践:一个实验系统预期的交通路线和工业物流系统的自动化运输在仓库环境。
2019-09-08 cs.MA cs.SE
Towards Understanding Analytics in Software Startups
分析在现代企业的数据知情决策过程中发挥着至关重要的作用。与成熟的软件公司不同,软件初创公司并没有利用分析的潜力,尽管初创过程应该主要是数据驱动的。文献中对软件初创公司的分析几乎没有了解。这项研究旨在通过探索如何在软件创业公司的背景下理解分析来解决知识差距。为此,我们从多个来源收集了初创公司主要使用的三个分析平台的定性数据。我们涵盖了平台文档以及使用这些平台的软件初创公司的经验报告。使用内容分析技术对数据进行分析。确定了四个高级概念,这些概念包含了软件创业公司对分析的真正理解,包括分析工具,实验,诊断分析和获得见解。第一个概念描述了初创公司如何设置分析,后三个概念说明了分析的使用场景。这项研究是在软件创业环境中理解分析的第一步。所确定的概念可以指导在此背景下对分析的进一步调查。它还为软件初创公司提供了一些见解,以建立数据知情决策的分析。考虑到研究中使用的数据的局限性,下一步是通过与软件初创公司直接互动,使用原始数据来验证所获得的理解。
2022-04-11 cs.SE
Bad Smells in Software Analytics Papers
背景:使用数据分析来支持基于证据的软件工程已经有了快速的增长。然而,复杂的技术、多样的报告标准和对基本现象的了解不足,这些因素结合在一起,使人们对研究的可靠性产生了一些担忧。目的:我们的目标是为软件分析研究(计算实验和相关性研究)的生产者和消费者提供指导。方法:我们建议使用“难闻的气味”,即,更深层次的问题的表面迹象和流行的敏捷软件社区,并考虑如何在软件分析研究中表现出来。结果:我们列出了软件分析论文中的12种“不好的气味”(并通过例子展示了它们的影响)。结论:我们相信臭味的比喻是一种有用的手段。因此,我们鼓励更多的讨论是什么有助于软件分析研究的有效性(所以我们希望我们的列表会随着时间的推移而成熟)。
2019-04-13 cs.SE
More Software Analytics Patterns: Broad-Spectrum Diagnostic and Embedded Improvements
软件分析是一种数据驱动的决策方法,它允许软件从业者利用有关软件的数据中的宝贵见解,以实现更高的开发过程生产力,并提高软件质量的各个方面。在以前的工作中,通过文献回顾确定了一组采用精益软件分析过程的模式。本文提出了两种模式添加到原来的设置,形成一个模式语言,采用软件分析的做法,旨在通知决策活动的软件从业者。这两个模式的写作是由两个案例研究的软件分析实践的背景下采用的解决方案,并通过搜索它们在文献中的出现进一步验证的模式。当团队没有专业知识来理解软件分析可以帮助解决的问题时,广谱诊断模式建议基于通用指标进行更广泛的分析;嵌入式改进模式建议将改进任务作为其他日常活动的一部分。
2022-01-10 cs.SE
Software Engineering Data Analytics: A Framework Based on a Multi-Layered Abstraction Mechanism
本文提出一个基于多层抽象机制的领域特定框架,用于查询、建模和集成异构软件仓库,并通过案例研究验证其潜力。
2025-09-26 cs.SE
A Family of Software Product Lines in Educational Technologies
教育领域的快速发展要求设计和定制教育技术,以满足大规模和各种不断变化的需求。在这里,规模是要开发的系统的数量,多样性源于多样化的教学设计,如不同的目标,过程,内容,教师风格,学习者风格,以及22种印度语言和变体的电子学习系统。在本文中,我们提出了一个家庭的软件产品线作为一种方法来解决这个挑战的建模家庭的教学设计,以及家庭的电子学习系统,并证明它的情况下,印度成人识字(2.87亿学习者)。我们提出了一个多层次的产品线,连接产品线在多个层次的粒度在教育领域。然后,我们详细介绍了两个具体的产品线(rice.iiit.ac.in),一个是生成教学设计编辑器和两个,它生成了一个家庭的电子学习系统的基础上灵活的教学设计。最后,我们通过生成印地语和泰卢固语的电子学习系统(网络和Android版本)来展示我们的方法,这导致了9个电子学习系统的29个人月的显着成本节省。
2018-02-14 cs.SE
Checkstyle+: Reducing Technical Debt Through The Use of Linters with LLMs
本文提出Checkstyle+,结合大型语言模型与Checkstyle,用于检测传统静态分析难以识别的语义细微风格违规,在380个Java文件样本上优于标准Checkstyle。
2025-10-27 cs.SE
Practical experiences and value of applying software analytics to manage quality
背景资料:尽管软件分析平台在行业中的使用越来越多,但关于从业者面临的挑战以及这些平台提供的价值,几乎没有经验证据。目的:本研究的目标是探索使用软件分析平台管理质量的从业者的好处。方法:在一个技术转让项目中,学术界和工业界合作伙伴逐步开发了一个软件分析平台,以解决他们的软件质量问题。本文重点探讨了这个软件分析平台在两个试点项目中提供的价值。结果如下:从业人员强调了主要的好处,包括提高产品质量和工艺性能,以及提高对产品就绪性的认识。他们特别认为软件分析平台生成质量需求的半自动化功能对他们来说是最具影响力和最具新颖价值的好处。结论:从业者可以从现代软件分析平台中受益,特别是如果他们有时间仔细采用这样的平台并将其集成到质量保证活动中。
2019-10-24 cs.SE
An Architectural Style for Ajax
一种新的Web应用程序,被称为AJAX,正在出现,以应对大粒度无状态Web交互中有限的交互性。这种新方法的核心是一个促进丰富交互性的单页面交互模型。我们已经研究和试验了几个AJAX框架,试图理解它们的架构属性。在本文中,我们总结了这些框架和检查他们的属性,并介绍了SPIAR架构风格。我们描述的指导软件工程原则和选择的约束条件,以诱导所需的属性。这种风格强调用户界面组件开发,以及客户机/服务器组件之间的中间增量通信,以提高用户交互性和开发的简易性。此外,我们使用的概念和原则,讨论各种开放的问题,在AJAX框架和应用程序开发。
2006-10-02 cs.SE
Quantum Software Analytics: Opportunities and Challenges
本文梳理经典软件开发生命周期中可应用于量子软件开发的软件分析主题与技术,为相关研究者和从业者理解量子软件领域的新兴开发活动、挑战与机遇提供参考。
2023-07-21 cs.SE
An Empirical Study on Collaborative Architecture Decision Making in Software Teams
架构决策被认为是软件开发中最具挑战性的认知任务之一。本研究的目的是探索软件团队中架构决策的实践状态,包括架构师的角色和相关的挑战。在欧洲的一家大型软件公司进行了一项探索性的案例研究,并采访了15位软件架构师作为数据汇集的主要方法。结果表明,大多数软件团队的架构决策协作。特别是,协商式决策风格是首选,因为它有助于在考虑团队成员意见的同时有效地做出决策。据观察,大多数软件架构师与软件团队保持着密切的关系。还确定了几个组织,流程和人类相关的挑战及其对架构决策的影响。
2017-07-01 cs.SE
Architectural Approaches to Overcome Challenges in the Development of Data-Intensive Systems
本文针对数据密集型系统的构建与维护难题,综述其架构设计挑战,并梳理主流软件架构风格在应对这些挑战方面的潜力。
2023-12-05 cs.SE
Software Quality - Traditional vs. Agile: an Empirical Investigation
众所周知,软件过程会影响最终产品的质量。也有传闻称,敏捷过程比传统方法的质量更高。然而,这方面的确凿证据仍然缺失。这项工作的报告,在软件过程和软件质量之间的相关性的实证分析,具体参考敏捷和传统的过程。来自21个国家的100多名软件开发人员和工程师接受了在线问卷调查。我们使用软件开发人员和工程师估计的满意客户的百分比作为主要因变量。结果证明了一些有趣的模式:架构风格可能不会对质量产生重大影响,敏捷方法可能会让客户更快乐,大型公司和较短的项目似乎会产生更好的产品。
2017-01-21 cs.SE
The Implications of Network-Centric Software Systems on Software Architecture: A Critical Evaluation
本文的目的是评估新兴的以网络为中心的软件系统对软件体系结构领域的影响。我们首先开发一个洞察力有关的术语“网络为中心的”,提出它的起源和它的影响范围内的软件架构。在此基础上,我们提出了一个网络为中心的框架和它的显着特点的定义。然后,我们列举了软件架构领域面临的挑战,软件开发从以平台为中心的网络为中心的模型。为了面对这些挑战,我们提出了一个正式的方法体现在一个新的建筑风格,支持克服这些挑战,在建筑水平。最后,我们提出了一个说明性的例子来证明网络中心的概念的有用性,总结我们的贡献,并将我们的方法与未来需要在这方面做的工作联系起来。
2007-02-10 cs.SE
Towards Automated Data Integration in Software Analytics
软件组织希望能够根据最新的可用数据集以及从中获得的实时分析做出决策。为了支持软件组织的“实时企业”,并为不同的利益相关者提供信息透明性,我们整合了关于软件分析的异构数据源,如静态代码分析、测试结果、问题跟踪系统、网络监控系统等,以处理底层数据源的异构性,我们在本文中遵循基于本体的数据集成方法,并定义了一个本体,该本体捕获用于软件分析的相关数据的语义。此外,我们专注于这样的数据源的集成,提出了两种方法:静态和动态的。我们首先讨论了当前的静态方法与一组预定义的分析视图表示软件质量因素,并进一步设想如何将此过程自动化,以动态构建自定义用户分析使用半自动平台管理的分析基础设施的生命周期。
2018-08-16 cs.SE
Cross-status Communication and Project Outcomesin OSS Development A Language Style Matching Perspective
开放源码软件项目的成功需要其成员之间的有效沟通。由于OSS项目往往建立了社会地位体系,不同身份的个人之间可能会发生很多交流,特别是拥有项目管理权限的精英开发人员和普通项目贡献者。由于社会语言学文献和我们先前的工作已经发现,不同地位的群体可能会发展出不同的语言风格,这可能会阻碍关键的跨地位沟通,从而影响项目的结果。我们寻求发展跨状态通信的理解,以及它对OSS项目在生产力和质量方面的结果的影响。预期结果描述了跨状态沟通的语言相似性和差异,并揭示了这些语言相似性和差异与项目结果之间的关系。
2021-04-08 cs.SE
Effective Delegation and Leadership in Software Management
本文研究软件管理中授权与领导力对项目成果的影响,发现有效授权和变革型领导能提升团队效率与项目成功率,并建议组织优先发展相关实践。
2024-05-02 cs.SE
Requirements Intelligence with OpenReq Analytics
随着Twitter等社交媒体和应用商店等分发平台的兴起,用户有各种方式表达他们对软件产品的看法。受欢迎的软件供应商每天都能收到数千倍的用户反馈。研究表明,这样的反馈包含了对软件开发团队有价值的信息。然而,对用户反馈的手动分析是麻烦的并且难以管理。我们提出OpenReq Analytics,一个软件需求智能服务,收集,处理,分析和可视化用户反馈。
2019-09-12 cs.SE
Software Space Analytics: Towards Visualization and Statistics of Internal Software Execution
NTT, Inc.(日本电报电话公司)
本文通过空间统计方法分析软件内部执行数据,定义软件空间数据集,可视化空间聚类并进行统计检验,探讨空间统计在软件工程中的应用与挑战。
2026-03-21 cs.SE
Software Analytics to Software Domains: A Systematic Literature Review
软件分析(SA)是最近出现的大数据分析的一个新分支(2011年)。SA与直接软件分析的区别在于,它将从许多不同软件工件中挖掘的数据链接起来,以获得有价值的见解。这些见解对于贯穿软件生命周期的不同阶段的决策过程是有用的。由于SA是目前一个热门和有前途的话题,我们进行了系统的文献综述,在本文中提出,以确定在SA的知识和开放的研究领域的差距。由于许多研究人员仍然对SA的真正潜力感到困惑,我们不得不筛选出可用的研究论文,以获得与SA最相关的工作供我们审查。在135项研究中,筛选出19项研究。我们的系统评价基于四个主要因素:软件从业者SA的目标,SA所涵盖的领域,SA提取的工件,以及这些工件是否有联系。我们的审查结果表明,大部分可用的SA研究只服务于开发人员的需求。此外,许多可用的研究只使用一个工件,这反过来意味着工件之间的联系更少,见解更少。这表明,现有的SA研究工作仍然是胚胎留下了大量的空间,为未来的研究在SA领域。
2015-11-12 cs.SE
Towards Base Rates in Software Analytics
如今,大量且不断增长的开源软件(OSS)项目数据在互联网上公开。尽管有这些公开的项目数据,但软件分析领域还没有建立一个坚实的量化基础来衡量基本属性,如代码大小、增长、团队规模、活动和项目失败。缺少的是对这些属性的基本速率的量化,而其他领域(如医学)通常依赖于基本速率进行决策和评估实验结果。缺乏这方面的知识,削弱了软件分析领域的研究活动和一般软件项目的决策。本文贡献了我们的研究的初步结果,对获得基本利率使用的数据在Ohloh(OSS项目的大规模索引)。放大古老的“代码行”度量代码大小和增长,我们提出并讨论摘要统计数据,并确定进一步的研究挑战。
2013-10-01 cs.SE
Evaluating Software Process Models for Multi-Agent Class-Level Code Generation
本研究针对类级代码生成,探讨过程结构与角色专业化对多智能体LLM工作流的影响,通过模拟瀑布式开发周期在ClassEval基准上测试,揭示多智能体工作流对性能的重组作用及代码质量与功能正确性的权衡。
2025-11-12 cs.SE
Linting Style and Substance in READMEs
University of Utah(犹他大学)
本文通过设计探针LintMe,探索如何利用linting改进READMEs,兼顾不同场景下的风格和内容问题,提供可扩展的检查方法,提升文档质量。
2026-03-18 cs.HC cs.SE
On the Role of Software Architecture in DevOps Transformation: An Industrial Case Study
开发与运营(DevOps)是一种特殊类型的持续软件工程,已经成为一种流行的软件系统工程范式。软件架构对于DevOps的成功至关重要。然而,关于行业中如何构建软件系统以启用和支持DevOps的基于证据的知识很少。由于架构决策及其原理和含义在架构过程中非常重要,因此我们进行了一项行业案例研究,该研究根据经验确定并合成了两个软件开发团队认为对DevOps转型至关重要的关键架构决策。我们的研究还表明,除了所选择的架构风格外,DevOps最适合模块化架构。此外,我们发现,如果将运营专家添加到团队中以执行需要高级专业知识的运营任务,则所研究团队的性能可以在DevOps中得到改善。最后,如果团队想要更快地发布软件更改,那么测试投资是不可避免的。
2020-03-13 cs.SE
Investigating Adversarial Attacks in Software Analytics via Machine Learning Explainability
本研究通过机器学习可解释性探索软件分析中的对抗攻击,提出基于特征空间扰动的方法,仅修改前1-3个重要特征即可使模型预测失败率达86.6%,揭示了模型鲁棒性不足的问题。
2025-07-14 cs.SE
Software analytics for software engineering: A tertiary review
本文对五项关于软件分析支持软件工程的二次研究进行了三次综述,发现各研究间原始文献重叠极少且结论碎片化,强调整合文献以提供更全面概述的必要性。
2024-10-08 cs.SE
Game Elements to Engage Students Learning the Open Source Software Contribution Process
本研究通过调查115名学生,从认知风格、性别和族裔三个视角分析游戏化元素偏好,发现任务、积分、统计和徽章最受欢迎,为设计面向开源软件贡献流程的游戏化学习环境提供了依据。
2024-07-05 cs.SE
Simpler Hyperparameter Optimization for Software Analytics: Why, How, When?
如何让软件分析更简单、更快速?一种方法是将分析的复杂性与正在探索的数据的内在复杂性相匹配。例如,超参数优化器为数据挖掘器找到控制设置,以改进通过软件分析生成的预测。有时候,非常快速的超参数优化可以通过避开以前尝试过的东西来实现。但是什么时候使用DODGE是明智的,什么时候我们必须使用更复杂(和更慢)的优化器?为了回答这个问题,我们对120个SE数据集应用了超参数优化,这些数据集探索了异味检测、预测Github ssue关闭时间、bug报告分析、缺陷预测和其他数十个非SE问题。我们发现,DODGE最适合低“内在维度”(D = 3)的数据集,而对于高维数据(D超过8)则非常差。这里看到的几乎所有SE数据本质上都是低维的,这表明DODGE适用于许多SE分析任务。
2021-04-23 cs.SE
Systematic Mapping of Monolithic Applications to Microservices Architecture
本文针对单体应用向微服务架构迁移的挑战,提出基于领域驱动开发概念的微服务识别技术,并通过金融应用案例验证其能提升性能与建立清晰模型,但对低复杂度系统适用性有限。
2023-09-07 cs.SE
Modeling Cloud Architectures as Interactive Systems
云软件的开发和维护因复杂但关键的技术要求而变得复杂,这些技术要求彼此紧密耦合,并与软件的实际业务功能紧密耦合。因此,设计、实现、部署和维护活动的复杂性增加。我们提出了一种架构描述语言,通过将云软件建模为交互式系统来提高技术抽象水平。我们展示了它的模型如何对应于一个架构风格,特别是满足基于云的网络物理系统的要求。该结果为基于架构驱动的模型的云软件工程方法提供了基础。
2014-08-25 cs.SE
Software Engineering for IoT-Driven Data Analytics Applications
物联网驱动的数据分析(IoT-DA)有潜力超越智能环境的数据驱动运营。然而,关于如何在软件和系统工程生命周期的背景下设计,实施,运营和发展IoT-DA应用程序的研究有限。本文根据经验推导出一个框架,可用于系统地研究软件工程(SE)流程及其底层实践在设计IoT-DA应用程序中的作用。首先,使用现有的框架和分类法,我们开发了一个评估框架来评估软件过程,方法和其他人工制品的SE为物联网-DA。其次,我们进行了系统的映射研究,定性地选择16个过程(从学术研究和工业解决方案)的SE为物联网-DA。过程活动),对16个SE过程中的每一个进行细粒度的调查。第四,我们将我们提出的框架应用于案例研究,以展示IoT-DA医疗保健应用程序的开发。最后,我们强调了关键的挑战,建议的做法,并吸取了经验教训的基础上框架的支持,以过程为中心的软件工程的物联网-DA。这项研究的结果可以促进研究人员和从业人员工程新兴的和下一代的物联网-DA软件应用程序。
2021-03-20 cs.SE
An Analytical Approach for Project Managers in Effective Defect Management in Software Process
在任何软件行业中,缺陷估计和预测都是软件项目成功的主要调节因素。项目经理在有效预测和评估资源能力方面的成熟度和能力是产生高质量软件的战略驱动力之一。目前,还没有通过实证分析开发的评估技术来评估项目经理对有效缺陷管理的资源分配的决策能力。本文提出了一个基于产品的软件组织中进行的实证研究。通过对几个项目的深入调查,揭示了项目经理决策能力对实现上述目标的影响。本文使项目管理人员进一步认识到预测定位在资源分配中的重要性,以开发高质量的无缺陷软件产品。它还提高了公司的成熟度和在竞争环境中的持久性。
2012-03-29 cs.SE
Large Language Models as Robust Data Generators in Software Analytics: Are We There Yet?
本文系统评估了LLM生成数据与人类编写数据在微调预训练模型应对对抗性攻击时的稳健性差异,发现LLM生成数据虽性能相当但稳健性不足,呼吁提升其训练数据质量。
2025-05-05 cs.SE
Towards a Generic Software Architecture for IoT Systems
本文针对物联网系统复杂性带来的软件开发挑战,提出一种质量属性驱动的通用软件架构,融合边缘计算、微服务和事件驱动设计模式,将物联网视为需闭环控制的自治系统以实现稳健运行。
2024-11-16 cs.SE
Learning Actionable Analytics from Multiple Software Projects
当前一代的软件分析工具主要是预测算法(例如,支持向量机、朴素贝叶斯、逻辑回归等)。虽然预测是有用的,但在预测之后,计划采取什么行动来提高质量。本研究寻求的方法,产生明显有用的指导“做什么”的背景下,一个特定的软件项目。具体来说,我们提出了Xtree(用于项目内规划)和BELLTREE(用于跨项目规划)来生成可以提高软件质量的计划。每一个这样的计划都有这样的特性,如果遵循,它会减少未来缺陷报告的预期数量。为了找到这个预期的数字,首先将规划应用于来自版本X的数据。接下来,我们寻找x+1版本中符合我们计划的更改。该程序适用于使用一系列的规划师从文献中,以及Xtree。在10个开源JAVA系统中,符合Xtree计划的代码部分减少了数百个缺陷。此外,与其他规划者相比,Xtree的计划更容易实施(因为它们更短),并且在减少预期缺陷数量方面更有效。
2020-01-24 cs.SE
EvaluateXAI: A Framework to Evaluate the Reliability and Consistency of Rule-based XAI Techniques for Software Analytics Tasks
针对软件分析任务中基于规则的XAI技术(如PyExplainer和LIME)生成解释的可靠性和一致性问题,提出EvaluateXAI框架及细粒度评估指标,实验表明现有技术解释不可靠且不一致,需进一步研究。
2024-07-18 cs.SE
Software Development Analytics in Practice: A Systematic Literature Review
本系统文献综述分析了过去十年软件开发分析在实际环境中的应用,发现其数据源、挖掘方法多集中于质量维度,但在过程挖掘、时间与成本控制及风险管理方面仍存在较大改进空间。
2022-03-29 cs.SE
A Quality Model for Actionable Analytics in Rapid Software Development
背景资料:在快速软件开发(RSD)中,收集有关软件产品、过程和使用前景的相关数据,以及集成和分析这些数据,对于获得可靠和及时的可操作见解至关重要,这些见解旨在持续管理软件质量。在这种情况下,近年来开发了一些软件分析工具。然而,缺乏软件从业者信任的可解释的软件分析。目的:我们的目标是创建一个质量模型(称为Q-Rapids质量模型),用于RSD中的可操作分析,实施它,并评估其可理解性和相关性。方法:我们在四家公司进行了研讨会,以确定相关指标以及产品和工艺因素。我们还引出了这些指标和因素是如何使用和解释从业者在RSD决策时。我们通过比较和整合四个研讨会的结果来指定Q-Rapids质量模型。然后,我们实施了Q-Rapids工具,以支持Q-Rapids质量模型的使用以及所需数据的收集、集成和分析。之后,我们在四家公司安装了Q-Rapids工具,并与八位产品所有者进行了半结构化访谈,以评估Q-Rapids质量模型的可理解性和相关性。结果如下:评价参与者认为Q-Rapids质量模型的指标以及产品和过程因素是可以理解的。此外,他们认为Q-Rapids质量模型与识别产品和过程缺陷(例如,阻塞代码情况)。结论:通过异构数据源,Q-Rapids质量模型能够检测需要花费更多时间手动查找的问题,并增加系统、流程和使用方面的透明度。
2018-06-22 cs.SE
QFL: Data-Driven Feedback Loop to Manage Quality in Agile Development
背景:质量需求(QR)描述了期望的系统质量,在软件项目的成功中起着重要的作用。在敏捷软件开发(ASD)的背景下,主要目标是快速交付功能,QR通常定义不清,并且在开发过程中没有很好地解决。软件分析工具通过度量与质量相关的软件方面来帮助控制质量,以支持QR管理过程中的决策者。目的:本研究的目标是探索集成一个具体的软件分析工具,Q-Rapids工具,以评估软件质量和支持QR管理过程的好处。方法:在技术转让项目的背景下,Softeam公司在其开发过程中集成了Q-Rapids工具。我们举办了一系列研讨会,邀请了Modelio产品开发部门的Softeam成员参加。结果如下:我们提出的质量反馈环(QFL)过程中集成在软件开发过程中,以控制完整的QR生命周期,从启发到验证。由于在Softeam中实施了QFL,Modelio的团队成员强调了将数据分析工具与项目规划工具集成的好处,以及项目经理可以控制整个过程以做出最终决策的事实。结论:从业者可以从软件分析工具的集成中受益,作为其软件开发工具链的一部分,以控制软件质量。QFL的实施提高了组织的质量,软件分析和项目规划工具的集成也改善了团队之间的沟通。
2021-02-11 cs.SE
MOVis: A Visual Analytics Tool for Surfacing Missed Patches Across Software Variants
University of Nevada Las Vegas(内华达大学拉斯维加斯分校)
MOVis通过可视化展示软件变体间遗漏补丁,帮助开发者快速定位缺失修复并理解所需调整,提升变体一致性维护效率。
2026-04-02 cs.SE
Nalanda: A Socio-Technical Graph for Building Software Analytics Tools at Enterprise Scale
软件开发是信息密集的知识工作,需要与其他开发人员协作,并了解工件,如工作项、拉取请求和文件。随着信息技术的飞速发展,信息过载对系统的开发和维护提出了挑战。对于软件工程师来说,寻找信息和人员是很困难的,特别是当他们在大型软件系统中工作或刚刚加入一个项目时。本文构建了一个大规模数据平台纳兰达平台,该平台包含两个子系统:1。一个大规模的社会技术图形系统,命名为Nalanda图形系统2。一个大规模的推荐系统,名为Nalanda索引系统,旨在满足软件开发人员的信息需求。Nalanda图是一个企业规模的图,数据来自6,500个存储库,有37,410,706个节点和128,745,590条边。在Nalanda图形系统之上,我们构建了软件分析应用程序,包括名为MyNalanda的新闻源,仅基于有机增长,它的日活跃用户(DAU)为290,月活跃用户(MAU)为590。一项初步的用户研究表明,74%的开发人员和工程经理都赞成继续使用该平台进行信息发现。纳兰德指标体系由人工指标和专家指标两部分组成。它使用社会技术图(Nalanda图系统)对结果进行排名,并为软件开发人员提供更好的建议。大规模的定量评价表明,纳兰德指数系统对前三名的推荐准确率为78%。
2022-09-19 cs.SE
How to Improve Deep Learning for Software Analytics (a case study with code smell detection)
为了减少技术债务并使代码更易于维护,能够警告程序员代码气味是很重要的。最先进的代码小型检测器使用深度学习器,而没有在该技术中探索替代方案。软件分析和深度学习的一个有前途的替代方案是GHOST(来自TSE'21),它依赖于前馈神经网络的超参数优化和一种新的过采样技术来处理类不平衡。之前的研究从TSE'21提出了这种新的“模糊采样”是有点有限的,因为该方法进行了测试的缺陷预测,但没有别的。与缺陷预测一样,代码气味检测数据集也具有类不平衡性(这激发了“模糊采样”)。因此,在这项工作中,我们测试,如果模糊采样是有用的代码气味检测。本文的结果表明,我们可以达到比国家的最先进的结果代码气味检测模糊过采样。例如,对于“特征嫉妒”,我们能够在所有数据集上实现99+\%的AUC,并且在8/10的数据集上实现“错位类”。虽然我们的具体结果涉及代码气味检测,但它们确实为其他类型的分析提供了其他经验教训。举例来说:(a)在尝试复杂学习器之前尝试更好的预处理(b)将更简单的学习器作为软件分析的基线(c)尝试“模糊采样”作为这样的基线。
2022-03-27 cs.SE
Learning Effective Changes for Software Projects
大部分软件分析的主要动机是决策。如何做出这些决定?一个人是否应该根据从一个特定项目中得出的经验教训来做决定?还是应该从多个项目中产生这些决策?本文试图回答这些问题。我们的工作是由一个认识到,目前的软件分析工具主要集中在预测。事实上,预测是一项有用的任务,但它通常是关于需要采取什么行动的“计划”。这项研究旨在通过寻求支持可操作分析的方法来解决规划任务,这些分析提供了明确的指导。具体来说,我们提出了XTREE和BELLTREE算法,用于在项目内和项目间生成一组可操作的计划。如果遵循这些计划中的每一个,将提高软件项目的质量。
2017-11-13 cs.SE
Painting the Landscape of Automotive Software in GitHub
汽车行业已经从机电行业转变为软件密集型行业。目前的高端生产车辆包含1亿多行代码,超过了现代飞机,大型强子对撞机,Android操作系统和Facebook的前端软件,在代码大小上有很大的优势。今天,据报道,包括苹果、谷歌、华为、百度和索尼在内的全球软件公司都在努力将他们的汽车推向道路。本文探讨了开源汽车软件的前景,第一次看到了这个多学科的行业,该行业有着悠久的闭源开发历史。我们通过描述汽车软件的特点和开发风格,描绘了GitHub上汽车软件的前景。这一格局是由15,000多名用户在2010年至2021年的12年内创建的约600个积极开发的汽车软件项目所定义的。这些项目包括与车辆动力学相关的软件; LiDAR和摄像头等传感器的固件和驱动程序;感知和运动控制算法;以及集成上述内容的完整操作系统。该领域的发展由工业界和学术界共同引领,三分之一的积极开发的汽车软件库由一个组织拥有。我们观察到了多个维度的变化,包括从MATLAB到Python的首选语言,以及感知和决策相关软件相对于传统汽车软件的流行。这项研究见证了开源汽车软件的蓬勃发展,为未来的研究和实践带来了许多影响。
2022-03-27 cs.SE
Better Software Analytics via "DUO": Data Mining Algorithms Using/Used-by Optimizers
本文认为,一个新的领域的实证软件工程的研究和实践正在出现:数据采掘使用/使用优化器的实证研究或DUO。例如,数据挖掘器可以生成由优化器探索的模型。此外,优化器可以建议如何最好地调整数据挖掘机的控制参数。这种综合方法就像一个探员靠在分析师的肩膀上,建议“接下来问这个问题”或“忽略那个问题,它与你的目标无关”。此外,这些代理可以帮助我们构建“更好”的预测模型,其中“更好”可以是更高的预测准确性或更快的建模时间(这反过来又可以探索更广泛的选择)。我们还警告说,仅仅使用数据挖掘机的论文时代即将结束。从未优化的数据挖掘器中获得的结果可以很快被反驳,只需应用优化器来生成不同的(并且性能更好的)模型。因此,我们的结论是,对于软件分析来说,使用DUO将数据采掘和优化结合起来是可能的、有用的和必要的。
2019-12-13 cs.SE
Tuning for Software Analytics: is it Really Necessary?
背景:数据挖掘器在软件工程中得到了广泛的应用,比如说,从静态代码度量中生成缺陷预测器。与手动方法相比,这种静态代码缺陷预测器表现良好,并且它们易于使用并且有用。但数据采掘的“黑艺术”之一是设置控制矿工的调优。目的:寻求一种简单、自动、有效的方法来寻找这些调谐。方法:对于使用不同数据集(来自开源JAVA系统)的每个实验,我们运行差分进化作为优化器来探索调优空间(作为第一步),然后使用保留数据测试调优。结果如下:与我们之前的预期相反,我们发现这些调优非常简单:只需要数十次而不是数千次尝试就可以获得非常好的结果。例如,当学习软件缺陷预测器时,该方法可以快速找到将检测精度从0%改变到60%的调整。结论:由于(1)改进如此之大,(2)调优如此简单,我们需要改变软件分析中的标准方法。至少对于缺陷预测来说,仅仅运行一个数据挖掘器并呈现结果已经不够了,还需要进行调优优化研究。对其他类型的分析的影响现在是一个公开而紧迫的问题
2016-09-06 cs.SE
Towards Software Analytics: Modeling Maintenance Activities
雷曼定律告诉我们,随着时间的推移,软件系统将越来越不令用户满意,除非它不断地适应新的需求。了解软件维护可以潜在地减轻行业从业者目前经历的许多痛苦,并有助于减少不确定性、提高成本效益、可靠性等。研究界将软件维护分为3个主要活动:纠正:故障修复;完善:系统改进;适应:新功能引入。在这项工作中,我们试图模拟软件维护活动和设计一个提交分类方法能够产生一个高质量的分类模型。我们对我们的方法和现有技术进行了比较分析,基于11个流行的开源项目,我们手动分类了1151个提交,每个研究项目中有超过100个提交。我们设计的模型能够为测试数据集实现76%的准确度和63%的Kappa(在此上下文中被认为是“良好”),提高了20个百分点以上,在跨项目分类的背景下相对提高了约40%。然后,我们利用我们的提交分类方法来演示两个应用程序:(1)一个工具,旨在提供一个直观的可视化软件维护活动随着时间的推移,(2)深入分析维护活动和单元测试之间的关系。
2019-03-09 cs.SE