Clean Code In Practice: Challenges and Opportunities
本文分析软件可靠性、安全与保障的相互作用,提出融合二者的威胁评估框架及实践指南,以提升可靠性预测和系统稳健性。
2025-07-26 cs.SE
Sharing of vulnerability information among companies -- a survey of Swedish companies
软件产品很少从头开始开发,这些产品中的漏洞可能存在于开源软件或由另一组织提供的部分中。因此,产品的整体网络安全通常取决于几个组织之间的合作,无论是明示的还是暗示的。我们研究了软件生态系统中的公司对共享漏洞信息的态度和做法。此外,我们将这些做法与当代网络安全建议进行了比较。这是通过一项基于调查的定性调查进行的。问卷分为两部分:供应商的角度和收购方的角度。结果表明,公司愿意相互分享有关漏洞的信息。尽管大多数受访者认为漏洞信息敏感,但共享并不被认为对网络安全或业务有害。然而,尽管这些公司对共享持开放态度,但它们不太愿意主动共享漏洞信息。此外,供应商没有意识到客户对漏洞信息有很大的兴趣。因此,公司对共享漏洞信息的总体态度是被动但开放的。相比之下,当代网络安全指南建议生态系统中的参与者积极披露和共享。
2019-06-11 cs.SE
Software Engineering Practices for Scientific Software Development: A Systematic Mapping Study
背景资料:科学软件应用程序的开发远非微不足道,因为这些应用程序的必要复杂性不断增加,它们的规模不断增加,并且需要密集的维护和重用。目标:为此,科学软件开发人员(通常缺乏正式的计算机科学背景)需要使用适当的软件工程(SE)实践。本文介绍了一个系统的映射研究的结果,使用SE的科学应用开发和它们对软件质量的影响。方法:为了实现这一目标,我们进行了系统的映射研究的359篇论文。我们首先描述了一个目录中使用的科学软件开发的SE实践。然后,我们讨论了驱动这些实践应用的感兴趣的质量属性,以及将实践应用于质量的尝试性副作用。结果如下:主要研究结果表明,科学软件开发人员正在关注提高实现生产力的实践,如代码重用,使用第三方库,以及应用“好”的编程技术。此外,除了发现性能是许多这些应用程序的关键驱动力之外,科学软件开发人员还发现可维护性和生产力也很重要。结论:研究结果与现有文献进行了比较,解释下的软件工程棱镜,研究人员和从业人员提供的各种影响。该研究的主要发现之一,被认为是推动未来研究工作的重要因素,是缺乏在应用软件实践时需要做出权衡的证据,即,对其他质量属性的负面(间接)影响。
2020-10-19 cs.SE
A Contemporary Survey of Large Language Model Assisted Program Analysis
Information Security Center, Hon Hai Research Institute(鸿海研究院信息安全中心)
本综述系统梳理了大语言模型在程序分析中的应用,将其分为静态、动态与混合方法,并指出未来方向与挑战,旨在为安全研究提供可行见解。
2025-02-05 cs.AI cs.SE
Your data is your dogfood: DevOps in the astronomical observatory
DevOps是软件开发文化的当代术语,通过将“基础设施视为代码”,有目的地模糊了软件开发和IT运营之间的区别。DevOps团队通常会实施由口语指令总结的实践“吃自己的狗粮”;这意味着团队开发的软件工具应该在内部使用,而不是扔给操作或用户。我们简要概述了DevOps技术如何将经过验证的软件工程实践带入IT运营。然后,我们讨论这些做法的应用天文观测站。
2014-07-24 astro-ph.IM cs.SE
Linking Quality Attributes and Constraints with Architectural Decisions
质量属性和约束是架构决策的主要驱动力。质量属性由体系结构决策改进或破坏,而限制直接包括或排除体系结构的部分(例如,逻辑组件或技术)。我们可以确定架构的决策对软件质量的影响,或者架构的哪些部分受到约束的影响,但困难的问题是我们是否尊重质量需求(对质量属性的需求)和所有架构决策的约束。目前,通常的做法是架构师使用自己的经验来设计满足质量要求和限制的架构,但最终,特别是对于关键决策,架构师必须处理质量属性之间的复杂权衡,并应对约束引起的可能的不兼容性。在本文中,我们提出了夸克,计算机辅助方法,以支持架构师在软件体系结构决策。
2012-06-22 cs.SE
Walking Through the Method Zoo: Does Higher Education really meet Software Industry Demands?
软件工程教育工作者不断受到快速发展的概念、技术和行业需求的挑战。由于软件在数字化社会中的无处不在,高等教育机构(HEIs)必须教育学生,使他们学会学习,并配备深刻的基础知识和现代软件和系统开发的最新知识。由于行业需求不断变化,高等院校面临着及时满足当前和未来需求的挑战。本文分析了软件工程教育的实践现状。具体来说,我们希望将当代教育与工业实践进行比较,以了解高等院校教授的软件和系统开发的框架,方法和实践是否反映了工业实践。为此,我们进行了一项在线调查,收集了67个软件工程课程的信息。我们的研究结果表明,在高校教授的发展方法相当密切地反映了工业实践。我们还发现,选择什么样的过程来教有时是由希望使课程成功。特别是当项目课程发生这种情况时,更强调与其他课程建立学习顺序可能是有益的。
2021-01-21 cs.SE
Understanding Undesirable Attributes of Requirements Engineers: Insights from Practitioners
Federal Institute of Ceará(塞阿拉联邦学院);State University of Ceará(塞阿拉州立大学);Pontifical Catholic University of Rio de Janeiro(里约热内卢天主教大学);University of Saskatchewan(萨斯喀彻温大学);Virginia Commonwealth University(弗吉尼亚联邦大学);Federal University of Bahia(巴伊亚联邦大学)
通过调查和访谈,识别出需求工程师的17种不良属性,分为沟通问题、缺乏领域知识、个性和缺乏技术知识四类,并构建概念图以帮助反思和改进。
2026-05-31 cs.SE
Technical debt and agile software development practices and processes: An industry practitioner survey
内容:现代软件开发通常是在动态的、资源稀缺的环境中进行的,这些环境容易积累技术债务。虽然这种普遍现象是公认的,但仍然未知的是技术债务如何具体体现在软件过程中并影响软件过程,以及所采用的软件开发技术如何适应或减轻这种债务的存在。目的:我们试图借鉴从业者的见解和经验,以便对敏捷方法的使用对技术债务管理的影响进行分类。我们探讨了从业者对技术债务的知识广度;技术债务如何在软件过程中表现出来;以及常见的敏捷软件开发实践和过程对技术债务的影响。在这样做的过程中,我们解决了技术债务知识的研究差距,并提供新颖的和可操作的管理建议。方法:我们设计,测试和执行了一个多国调查问卷,以解决我们的目标,从巴西,芬兰和新西兰的从业者收到184个答复。结果如下:我们的研究结果表明:1)实践者意识到技术债务,尽管这个概念还没有得到充分利用; 2)技术债务通常存在于遗留系统中,但是,技术债务的具体实例很难概念化,这使得管理成为问题; 3)质疑敏捷实践和过程有助于减少技术债务;特别是,验证和维护已实现工件的结构和清晰度的技术。结论:技术债务情况往往具有共同的特点,这一事实意味着对其管理采取系统的办法是可行的。然而,尽管一些灵活做法对技术债务管理产生了积极影响,但利益攸关方之间的利益冲突仍然是一个令人关切的问题。(节录)
2021-04-30 cs.SE
Industrial Practices of Requirements Engineering for ML-Enabled Systems in Brazil
本研究通过分析72名巴西从业者的调查数据,调查了巴西ML使能系统开发中需求工程的应用情况,发现任务主要由数据科学家执行且存在理解不足等问题,为提升需求工程成熟度提供了指导。
2024-07-22 cs.SE
On the Robustness of Fairness Practices: A Causal Framework for Systematic Evaluation
University of Illinois Chicago(伊利诺伊大学芝加哥分校);Penn State(宾夕法尼亚州立大学);University of Colorado Boulder(科罗拉多大学博尔德分校)
本文提出一种因果框架,用于系统评估公平实践的鲁棒性,探讨其在数据不完美情况下的有效性。
2026-01-07 cs.SE
Designing Machine Learning Toolboxes: Concepts, Principles and Patterns
UCL(伦敦大学学院);University of Auckland(奥克兰大学);INSEAD(欧洲工商管理学院)
scikit-learn或Weka等机器学习(ML)和人工智能工具箱是当代数据科学实践的主力-它们的核心角色由可用但功能强大的设计实现,这些设计允许轻松指定,训练和验证复杂的建模管道。然而,尽管它们普遍取得了成功,但其构造中的关键设计原则从未得到充分分析。在本文中,我们试图提供AI建模工具箱设计中的关键模式的概述,从软件工程领域,当代工具箱中发现的实现模式以及我们自己开发ML工具箱的经验中获得灵感。特别是,我们为AI/ML领域开发了一个概念模型,其核心是一个新的类型系统,称为科学类型。科学类型根据我们通常使用它们执行的操作集(即它们的接口)及其统计属性来捕获ML工作流中常见元素的科学含义。从我们的概念分析中,我们得出了一套设计原则和模式。我们说明,我们的分析不仅可以解释现有的工具箱的设计,但也指导新的开发。我们希望我们的贡献是未来工具箱工程师的最先进的参考,最佳实践的总结,ML设计模式的集合,可能对未来的研究有用,并且可能是构建AI的更高级别编程范式的第一步。
2021-01-13 cs.LG cs.SE
SHAPR: A Solo Human-Centred and AI-Assisted Practice Framework for Research Software Development
School of Business, University of Southern Queensland(南昆士兰大学商学院)
SHAPR框架为独立人类中心化和AI辅助的研究软件开发提供实践指导,通过整合行动设计研究原则,促进反思学习和方法论严谨性。
2026-02-12 cs.HC cs.SE
Mining Energy-Related Practices in Robotics Software
Technological Federal University of Paraná - UTFPR(巴拉那州立理工大学);Vrije Universiteit Amsterdam(阿姆斯特丹自由大学);Federal University of Pará(帕拉联邦大学)
机器人在许多工业环境中变得越来越普遍。这种成功的采用可以部分归因于(1)它们越来越实惠的成本和(2)开发智能软件驱动机器人的可能性。不幸的是,机器人软件消耗大量的能源。此外,机器人通常是电池驱动的,这意味着即使是很小的能源改进也可以帮助减少其能源足迹,提高其自主性和用户体验。在本文中,我们研究了机器人操作系统(ROS)的生态系统,事实标准开发和原型机器人软件。我们分析了527个与能源相关的数据点(包括ROS相关存储库上的提交、拉取请求和问题,StackOverflow、ROS Discourse、ROS Answers和官方ROS Wiki上的ROS相关问题)。我们的研究结果包括机器人专家对软件能源效率的兴趣的量化,10个经常性的原因,和14个能源相关问题的解决方案,以及他们对其他质量属性的隐含权衡。这些贡献支持机器人专家和研究人员在未来的机器人项目中使用节能软件。
2021-03-25 cs.RO cs.SE
Teaching Digital Accessibility to Industry Professionals using the Community of Practice Framework: An Experience Report
本文报告一项面向 66 名软件公司从业者的数字无障碍培训实验,比较 CoP 与自定进度学习,并总结课程设计、实施与评估建议。
2023-12-31 cs.CY cs.SE
Evaluating Quality of Chatbots and Intelligent Conversational Agents
聊天机器人是一类由自然语言输入(可以是文本、语音或两者的形式)激活的智能会话软件代理。它们提供会话输出作为响应,如果被命令,有时也可以执行任务。虽然聊天机器人技术自20世纪60年代就已经存在,并从20世纪80年代初开始影响游戏中的用户界面开发,但聊天机器人现在更容易训练和实现。这是由于丰富的开源代码,广泛可用的开发平台,以及通过软件即服务(SaaS)的实现选项。除了增强客户体验和支持学习之外,聊天机器人还可以用于设计社会危害-即传播谣言和错误信息,或攻击人们在线发布他们的想法和意见。本文对与聊天机器人开发和实施的当代问题相关的质量问题和属性进行了文献综述。最后,质量评估方法进行了审查,并提出了一种基于这些属性和层次分析法(AHP)的质量评估方法,并检查。
2017-04-15 cs.CY cs.SE
Understanding Prompt Management in GitHub Repositories: A Call for Best Practices
Queen’s University(女王大学);Huawei Technologies(华为技术);L L ahore University of Management Sciences(拉瓦尔管理科学大学)
本研究通过分析GitHub仓库中的开源提示,揭示了提示管理中的关键挑战,并提出了提升提示软件可用性和可维护性的最佳实践建议。
2026-01-04 cs.AI cs.SE
An Empirical Study of Pre-Trained Model Reuse in the Hugging Face Deep Learning Model Registry
Purdue University(普渡大学);Loyola University Chicago(芝加哥洛约拉大学)
深度神经网络(DNN)正被用作软件系统中的组件。随着最先进的架构变得越来越复杂,从头开始创建和专门化DNN变得越来越困难。遵循传统软件工程的道路,机器学习工程师已经开始重用大规模预训练模型(PTM),并为下游任务微调这些模型。以前的作品已经研究了传统软件包的重用实践,以指导软件工程师更好地维护软件包和依赖管理。我们缺乏类似的知识基础来指导预先训练的模型生态系统中的行为。在这项工作中,我们提出了第一个PTM重用的实证调查。我们采访了来自最受欢迎的PTM生态系统Hugging Face的12位从业者,以了解PTM重用的实践和挑战。从这些数据中,我们为PTM重用的决策过程建模。基于确定的做法,我们描述了有用的属性模型重用,包括出处,再现性和可移植性。PTM重用的三个挑战是缺少属性、声称的性能与实际性能之间的差异以及模型风险。我们证实了这些确定的挑战与系统的测量拥抱脸生态系统。我们的工作通过自动测量有用的属性和潜在的攻击,为优化深度学习生态系统提供了未来的方向,并设想了未来对模型注册表的基础设施和标准化的研究。
2023-03-05 cs.AI cs.LG cs.SE