30 Years of Software Refactoring Research:A Systematic Literature Review
由于软件系统的复杂性不断增加,在过去的十年里,软件重构工具和技术的需求急剧增加,传统上被定义为一组旨在改进系统设计同时保留行为的程序转换。重构研究已经扩展到代码级重构之外,应用于不同级别(架构、模型、需求等),在面向对象范式之外的许多领域(云计算、移动、Web等)中采用,在工业环境中使用,并且考虑的目标超出了改进设计以包括其他非功能性要求(例如,改进性能、安全性等)。因此,重构工作所要解决的挑战现在已经超出了代码转换,包括但不限于安排进行重构的适当时间、推荐特定重构活动、检测重构机会以及测试所应用重构的正确性。因此,重构的研究工作分散在几个研究团体,不同的领域和目标。为了构建该领域和现有的研究成果,本文提供了一个系统的文献综述,并分析了3183篇关于重构的研究论文,涵盖了过去三十年的结果,提供了最具可扩展性和最全面的文献综述现有的重构研究。基于这项调查,我们创建了一个分类法来分类现有的研究,确定了研究趋势,并强调了文献中的差距和进一步研究的途径。
2020-07-04 cs.SE
Trust Calibration in IDEs: Paving the Way for Widespread Adoption of AI Refactoring
CodeScene;Lund University(隆德大学)
本文指出LLM在AI重构中存在破坏性变更等风险,主张在IDE中封装模型交互并验证重构,基于自动化人因模型在CodeScene中开展行动研究,开发LLM保障措施与传达适当信任的用户交互,以推动AI重构的广泛采用。
2024-12-20 cs.AI cs.HC cs.SE
Refactoring for Dockerfile Quality: A Dive into Developer Practices and Automation Potential
本研究利用 358 个开源项目的 600 个 Dockerfile,通过上下文学习与评分演示选择策略,实现自动化重构,平均减少镜像大小 32%、构建时长 6%,并显著提升可理解性与可维护性,为 CI/CD 中 Dockerfile 质量优化奠定基础。
2025-01-23 cs.SE
Investigating Student Reasoning in Method-Level Code Refactoring: A Think-Aloud Study
本研究通过出声思考法调查学生在方法级代码重构中的推理,识别出八种重构理由,并发现经验丰富的学生更关注质量属性,但常忽略多重职责方法等特定问题。
2024-11-05 cs.SE
IntelliTC: Automating Type Changes in IntelliJ IDEA
开发人员经常更改程序元素的类型。这种重构通常不仅涉及更新元素本身的类型,还涉及更新代码中所有依赖于类型的引用的API,因此它是乏味和耗时的。尽管类型更改比重命名更频繁,但目前只有少数IDE工具仅为一小部分硬编码类型提供部分自动化支持。研究人员最近提出了一种数据驱动的方法,使用代码提交历史来推断Java中类型更改模式的API重写规则。在本文中,我们建立在这些最新的进展,并介绍IntelliTC -一个工具来执行Java类型更改重构。我们将其实现为IntelliJ IDEA的插件,这是JetBrains开发的流行Java IDE。从用户体验的角度来看,我们提出了3种不同的方法来支持这种重构:经典模式、建议重构和检查模式。为了评估这些使用IntelliTC的方式,我们调查了22位经验丰富的软件开发人员。他们对该工具的有用性给予了积极评价。该插件的源代码和分发可在GitHub上获得:https://github.com/JetBrains-Research/data-driven-type-migration。演示视频在YouTube上:https://youtu.be/pdcfvADA1PY。
2022-05-07 cs.SE
Software Testing and Code Refactoring: A Survey with Practitioners
本研究面向软件测试从业者开展调研,探究其代码重构实践的收益与局限,发现重构可助力自动化测试维护、提升团队绩效,但存在管理层重视不足等障碍,为测试人员提升编码能力提供参考。
2023-10-03 cs.SE
Hearing the voice of experts: Unveiling Stack Exchange communities' knowledge of test smells
本研究通过分析Stack Exchange社区的讨论数据,探究开发者对测试坏味道的认知、对应的修正措施及重构挑战,发现开发者更关注他人实操经验,且更常询问测试坏味道的实践优劣而非重构建议。
2023-05-05 cs.SE
Impermanent Identifiers: Enhanced Source Code Comprehension and Refactoring
本文针对当代软件开发挑战提出以临时标识符为核心的创新代码增强方法,通过实证检验评估其在开发者中的采用与接受度,为代码增强开辟新方向并推动软件开发实践改进。
2024-06-14 cs.SE
Experiences Applying Lean R&D in Industry-Academia Collaboration Projects
本文通过PUC-Rio与Petrobras及Americanas的合作案例,展示精益研发在产学项目中有效转化想法为业务成果,并获57名参与者认可。
2025-01-20 cs.SE
Teaching Model-based Requirements Engineering to Industry Professionals: An Experience Report
使用概念模型来促进需求工程已经提出了几十年,并评估为有益的。例如,面向目标的需求工程或场景规范通常使用概念模型来完成。将这种基于模型的需求工程方法带入工业实践通常需要工业培训。在本文中,我们报告的经验教训,从教学行业专业人员基于模型的需求工程的培训计划。特别是,我们作为教育者和学习者报告从设计培训计划,进行实际培训,并在我们的日常工作中应用指导材料的经验。从这些研究结果,我们提供了指导方针,教育工作者设计的行业专业人士的需求工程课程。
2021-03-07 cs.SE
Prompt-Based REST API Test Amplification in Industry: An Experience Report
University of Antwerp(安特卫普大学);Flanders Make(佛兰德斯制造创新中心);Katoen Natie(卡滕纳蒂公司)
本文通过在工业环境中应用基于提示的REST API测试放大技术,验证了其在提高测试覆盖率和发现异常方面的有效性。
2026-01-25 cs.SE
Exploring the Experiences of Experts: Sustainability in Agile Software Development -- Insights from the Finnish Software Industry
本研究通过访谈芬兰软件行业专家,探究敏捷软件开发中的可持续性现状,发现Scrum最常用、各可持续性维度存在连锁效应,并为2030软件工程路线图提出三项关键建议。
2024-07-09 cs.SE
Fusing Industry and Academia at GitHub (Experience Report)
GitHub托管了数以亿计的代码库,这些代码库是用数百种不同的程序设计语言编写的。除了托管服务外,GitHub还提供数据和代码洞察,例如漏洞分析和代码导航,用户可以通过这些数据和洞察来改进和了解他们的软件开发过程。GitHub已经构建了Semantic,这是一个程序分析工具,能够从源代码中解析和提取详细信息。语义的发展广泛依赖于函数式编程文献,本文介绍了如何连接到学术研究的启发和通知的工业规模的程序分析工具包的发展。
2022-06-18 cs.SE
Perception and Acceptance of an Autonomous Refactoring Bot
University of Stuttgart(斯图加特大学);University of Gothenburg(哥德堡大学)
在软件开发任务中使用自主机器人进行自动支持的情况正在增加。然而,在过去,它们并不总是被积极地看待,有时与人类相比会经历负面的偏见。我们进行了一项定性研究,其中我们在一个学生软件开发项目中部署了一个自主重构机器人41天。在此期间和结束时,我们进行了半结构化访谈,以了解开发人员如何看待机器人,以及与人类贡献相比,他们在审查机器人的贡献时是否更重要或更少。我们的研究结果表明,机器人被认为是一个有用和不引人注目的贡献者,开发人员对它的批评并不比他们对人类同事的批评更多,但只有少数团队成员对机器人负责。
2020-01-08 cs.AI cs.HC cs.SE
An Experience Report On Applying Software Testing Academic Results In Industry: We Need Usable Automated Test Generation
软件工程研究对当前工业实践的影响是什么?在本文中,我报告了我作为博士/博士后在软件工程研究项目中工作的直接经验,然后在接下来的五年里在两家不同的公司担任工程师(第一家是我在博士后期间合作的公司)。鉴于我有软件工程研究的背景,在开发和测试这些公司的系统时,我在日常工作中使用了哪些学术界的尖端技术和工具?关于确认和验证(我的主要研究领域),答案相当简短:据我所知,只有FindBugs。在本文中,我报告了为什么会出现这种情况,并讨论了我们在工业中面临的所有具有挑战性的,复杂的开放性问题,这些问题在学术界被“忽视”了。特别是,我将首先讨论我在日常工作中可以使用的实际工具,例如JaCoCo和Selenium。然后,我将讨论我面临的主要开放问题,特别是与环境模拟器,单元和Web测试有关的问题。然后介绍了当前学术界的热门话题,如UML、回归测试和变异测试。然后讨论了他们对我在工业界工作的项目类型缺乏影响。最后,从这个行业的经验,我提供了我的意见,如何改善这种情况,特别是有关如何评估学者,并倡导更多地参与开源项目。
2019-01-12 cs.SE
What Were You Thinking? An LLM-Driven Large-Scale Study of Refactoring Motivations in Open-Source Projects
University of Oulu(奥卢大学);University of Salerno(萨勒诺大学);University of Milano-Bicocca(米兰-布雷塞大学)
本研究利用大型语言模型分析开源项目版本控制数据,识别开发者重构动机,发现LLM与人类判断80%一致但与文献动机仅47%一致,其价值在于提供局部解释,可与软件度量结合形成混合方法以系统化重构优先级。
2025-09-09 cs.AI cs.PL cs.SE
Technical Debt Friction for Maintenance Prioritization: An Industrial Multi-Case Study
SINTEF(辛特夫);University of Oslo(奥斯陆大学);CodeScene;Lund University(隆德大学)
提出技术债务摩擦概念,通过多案例工业研究验证其能帮助识别维护痛点,与代码健康等互补,为维护优先级提供决策支持。
2026-07-03 cs.SE
Teaching DevOps in academia and industry: reflections and vision
本文描述了我们在学术界和工业界提供DevOps教育项目的经验,比较了两种方法并总结了经验教训。我们还提出了一个愿景,以实现在软件工程高等教育课程的转变。
2019-03-18 cs.SE
Modern Software Engineering in the LAMMPS Molecular Dynamics Software Package: Development Process, Refactoring, Testing, and Deployment
Institute for Computational Molecular Science, Temple University(天普大学计算分子科学研究所)
本文回顾了LAMMPS软件包近年来的开发流程改进,包括源代码管理、自动化测试、代码重构、现代C++采用等,这些改进提升了代码质量并促进了软件的持续流行。
2026-06-23 cs.SE physics.comp-ph
Myths and Facts about a Career in Software Testing: A Comparison between Students' Beliefs and Professionals' Experience
本研究比较了本科生对软件测试职业的信念与专业人士的实际经验,发现测试职业更令人兴奋且回报丰厚,呼吁学术界与行业合作纠正学生认知。
2023-11-10 cs.SE
The Role of the Scrum Master in an Industry based University Course
背景:敏捷开发是最常用的敏捷软件开发方法,而敏捷开发环境中的敏捷开发大师(SM)的角色至关重要。因此,通过为最后一年的本科生和硕士生开设的基于行业的大学课程,我们的目标是通过在现实世界中扮演SM角色的实践经验,让学生从理论和实践上理解SM的作用。方法:我们要求他们(92名学生)通过反思性调查和论文分享他们对SM作用的经验和学习。学生参加了反思性调查(311调查答复)超过5周的课程,他们提交的论文(92篇论文)在课程结束。我们使用了混合方法的方法,使用社会技术扎根理论分析技术和趋势和回归为基础的统计分析,以分析调查的答复和论文。调查结果:我们确定了SM的主要责任和职责,SM和团队面临的共同挑战,由于SM的角色,挑战的根本原因,SM和团队克服挑战所使用的策略,以及学生的整体经验。根据研究结果,我们提出了教育工作者的建议。
2021-10-26 cs.SE
Are Computer Science and Engineering Graduates Ready for the Software Industry? Experiences from an Industrial Student Training Program
自1968年在北约会议上创造软件工程一词以来,已经有50年了。到目前为止,该领域应该相对成熟,大多数知名大学在其计算机科学课程中涵盖核心软件工程主题,其他大学提供专业学位。然而,仍然有许多从业者抱怨新的软件工程员工缺乏技能。随着行业对软件工程师需求的不断增长,这种明显的差距变得越来越明显。解决这一差距的一个企业战略是,该行业在招聘过程之前制定补充培训计划,这也可以帮助他们筛选可行的候选人。在本文中,我们报告了我们的经验和教训,在进行暑期学校计划,旨在筛选新毕业生,向他们介绍与组织和行业相关的核心技能,并评估他们对掌握这些技能的态度招聘过程开始之前。我们的经验表明,这些举措对新员工和公司都是互利的。我们支持这一见解与前和后训练数据收集的参与者在第一版这样的暑期学校和后续调查问卷进行了一年后的毕业生,其中50%的人被公司雇用后不久,暑期学校。
2018-05-22 cs.CY cs.SE
Learning From Each Other: How Are Architectural Mistakes Communicated in Industry?
本文通过访谈十名德国软件架构师的扎根理论研究,考察架构错误的定义、处理与沟通方式,发现其主要局限于项目团队,并提出促进跨团队学习与错误预防的策略。
2023-07-10 cs.SE
A pragmatic look at education and training of software test engineers: Further cooperation of academia and industry is needed
本文结合两位作者约40年测试工程与30年跨国教学经验,比较高校软件测试教育和产业培训现状,提出改进建议并呼吁产学合作。
2024-08-12 cs.SE
Developer Experiences with Cursor AI-native IDE
York University(约克大学)
本研究通过分析Cursor官方论坛的14714篇帖子,探究开发者对AI原生IDE Cursor的使用体验,发现其工作流程关键机制是价值与挫败感的主要来源,摩擦焦点随时间发生转移。
2026-10-16 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
Affirmative Hackathon for Software Developers with Disabilities: An Industry Initiative
本文报告了巴西软件公司Zup Innovation举办的一场有50名参与者、完全远程的平权黑客马拉松,旨在吸引残疾开发者,最终促成10人入职并新增146人进入人才库,为其他公司促进技术团队包容性提供了经验教训。
2025-01-20 cs.SE
Teaching an Online Multi-Institutional Research Level Software Engineering Course with Industry -- an Experience Report
IIIT Delhi, India(德里印度理工学院);IIIT Hyderabad, India(海得拉巴印度理工学院)
本文报告了通过两所机构合作在线教学软件工程中的AI课程,结合行业参与,为资源有限的机构提供研究级课程的经验。
2025-12-01 cs.AI cs.LG cs.SE
Navigating the Path of Women in Software Engineering: From Academia to Industry
本文通过面向巴西女性的横断面混合方法调查,揭示其从大学到软件产业持续遭遇的性别偏见、骚扰与归属感缺失等系统性障碍,并提出组织改进建议。
2023-12-08 cs.SE
Industry-academia research collaboration and knowledge co-creation: Patterns and anti-patterns
Simula Research Laboratory(西穆拉研究实验室);Sintef Digital(挪威科技工业研究院数字分部);Sweetzpot(Sweetzpot公司)
增加软件工程研究在软件行业和整个社会的影响一直是软件工程社区高度优先关注的问题。两种文化的问题,在真空中进行的研究(与现实世界脱节),或不一致的时间范围只是阻碍成功的产学合作的许多复杂挑战中的一部分。本文报道了软件工程中工业界和学术界之间的研究合作和知识共同创造的经验,作为弥合研究与实践合作差距的一种方式。我们的经验跨越了软件工程研究人员与欧洲和挪威软件和IT行业之间14年的合作。使用参与观察和访谈的方法,我们收集并分析了大量的定性数据记录。根据研究结果和获得的经验,我们提供了一组14个模式和14个反模式的产学合作,旨在支持其他研究人员和从业人员在建立和运行研究合作项目在软件工程。
2022-04-29 cs.LG cs.SE
Designing NLP-based solutions for requirements variability management: experiences from a design science study at Visma
本文报告了在Visma公司产学研合作项目中,采用设计科学范式研究合同文档背景下需求变异性管理问题,总结了解决方案开发过程中的五条关键经验教训。
2024-02-11 cs.SE
Learning from the past: A process recommendation system for video game projects using postmortems experiences
背景:视频游戏行业是一个价值数十亿美元的行业,但在游戏开发方面存在问题。解决这些问题的一种方法是使用开发人员辅助工具,如推荐系统。这些工具通过生成建议来帮助开发人员执行任务。目的:本文介绍了一种系统的方法来推荐视频游戏项目的开发过程,使用事后知识提取和新项目的上下文模型,其中“事后”是视频游戏开发人员在项目结束时撰写的文章,总结了他们的游戏开发团队的经验。这种方法旨在提供关于游戏行业中使用的开发过程的思考,以及指导开发人员根据他们所处的环境选择最合适的过程。方法:我们的方法分为三个独立的阶段:在第一阶段,我们手动提取的过程中的事后分析;在第二个,我们创建了一个视频游戏的上下文和算法规则的建议;最后在第三阶段,我们评估推荐的过程中使用定量和定性指标,游戏开发者的反馈,并通过采访视频游戏开发团队的案例研究。贡献:本文带来了三个主要贡献。第一个描述了一个数据库的开发人员的经验,提取从事后的形式开发过程。第二个定义了视频游戏项目包含的主要属性,它用来定义项目的上下文。第三部分描述和评估了一个视频游戏项目推荐系统,该系统使用项目的上下文来识别类似的项目,并以过程的形式推荐一组活动。
2020-09-05 cs.SE
The Essence Theory of Software Engineering - Large-Scale Classroom Experiences from 450+ Software Engineering BSc Students
软件工程作为一个行业在开发方法和实践方面是高度多样化的。从业者采用了无数的方法,并倾向于通过例如省略一些实践或规则来进一步定制它们。这种开发方法的多样性对软件工程教育提出了挑战,在教育和工业之间产生了差距。一般的理论,如软件工程的本质理论,可以帮助弥合这一差距,提出软件工程的学生与更高层次的框架,在此基础上建立一个软件工程方法和实际项目工作的理解。在本文中,我们研究本质在教育环境中,以评估其有用性的软件工程学生,同时也调查在这种情况下,它的采用的障碍。为此,我们观察了102个学生团队在一个学期的项目课程中在实际的软件工程项目中使用Essence。
2018-09-24 cs.SE
What do Transgender Software Professionals say about a Career in the Software Industry?
多样性是软件开发的一个重要方面,因为技术影响着现代社会的几乎每一个方面,如果软件行业缺乏多样性,软件产品可能会无意中限制个人群体,而不是促进所有人的平等体验。在这项研究中,我们调查的观点,跨性别的软件专业人士的职业生涯中的软件工程的多样性在软件行业的一个方面。我们的研究结果表明,一方面,跨性别者选择从事软件工程的职业主要有两个原因:a)尽管软件开发环境不能免于歧视,但软件行业对跨性别者来说比其他行业更安全; b)跨性别者偶尔不得不应对性别焦虑、焦虑和对判断的恐惧,软件公司提供的工作灵活性使他们能够更有效地处理这些问题。
2023-03-22 cs.SE
An Actionable Framework for Understanding and Improving Developer Experience
开发人员体验是软件组织的一个重要关注点,因为增强开发人员体验可以提高生产力、满意度、参与度和保留率。我们开始通过对21名来自行业的开发人员的半结构化访谈来了解影响开发人员体验的因素,我们转录并迭代编码。我们的研究结果阐明了影响开发人员体验的因素和影响其各自对单个开发人员重要性的特征。我们还确定了个人和团队为改善开发人员体验而采用的策略以及阻碍他们的障碍。最后,我们描述了开发人员的应对机制时,开发人员的经验不能得到充分改善。我们的研究结果导致DX框架,这是一个可操作的概念框架,用于理解和改善开发人员体验。DX框架为希望为其开发人员提供更高效的工作环境的组织提供了参考。
2022-05-12 cs.SE
How Software Engineering Research Overlooks Local Industry: A Smaller Economy Perspective
Warsaw University of Technology(华沙理工大学);Wroclaw University of Science and Technology(弗罗茨瓦夫科技大学)
本文从较小经济体视角出发,指出软件工程研究与产业间存在显著差距,并提出改进研究与产业合作的建议。
2026-01-28 cs.SE
Large-scale information retrieval in software engineering -- an experience report from industrial application
本研究针对工业大规模测试用例选择场景,通过系列实验评估不同IR技术的适用性,总结出参数优化、工业数据扩展、评估方法三方面挑战,为相关研究提供经验参考。
2023-08-22 cs.SE
On the Requirements for Serious Games geared towards Software Developers in the Industry
向行业员工讲授网络安全问题是一项必须开展的基本活动,以确保向市场提供成功和强大的产品。在过去的几年里,很多研究都集中在这个问题上。然而,已经完成的研究并没有集中在工业环境中开发安全代码。在本文中,我们将通过网络安全挑战的方式,从行业角度出发,探讨提供安全编码主题培训的限制和要求。使用需求工程,我们的目标是了解这些挑战的设计要求。在此过程中,我们详细介绍了我们在工业环境中应对网络安全挑战的经验,并展示了成果和经验教训。针对工业环境中软件开发人员的网络安全挑战的拟议要求是基于系统的文献综述、与行业安全专家的访谈以及对参与者反馈的半结构化评估。
2021-01-06 cs.SE
An Academic's Observations from a Sabbatical at Google
在工业中获得的经验如何改善学术研究和教学。
2018-08-28 cs.SE
AI-Conducted Interviews in Empirical Software Engineering: An Experience Report
Federal University of Campina Grande(坎皮纳格兰德联邦大学);VIRTUS, Federal University of Campina Grande(VIRTUS,坎皮纳格兰德联邦大学);Federal University of Alagoas(阿拉戈阿斯联邦大学)
该经验报告探讨定制MyGPT在实证软件工程研究中主导访谈的应用,介绍其流程,分析提交工件和问卷回复,发现多数参与者评价积极,但存在局限,表明人工智能访谈可作补充选项,需相关设计与监督。
2026-07-17 cs.SE
Awareness of Secure Coding Guidelines in the Industry -- A first data analysis
软件需要安全,特别是在部署到关键基础设施时。安全编码指南捕获工业软件工程中的实践,以确保代码的安全性。本研究旨在评估工业软件工程中安全编码的意识水平,软件开发人员发现软件代码中的弱点的技能,避免它们,以及组织支持坚持编码指南。该方法借鉴了完善的理论,政策的遵从性,中立化理论,和安全相关的压力和作者的多年经验,在工业软件工程和经验教训,从培训安全编码的行业。本文介绍了在线调查的问卷设计和初步分析的数据从试点研究。
2021-01-06 cs.SE
Software startup within a university -- producing industry-ready graduates
以前的研究表明,让学生为软件工程的生活做好准备不是一项微不足道的任务。提供真实的学习体验具有挑战性,学生在大学所做的与他们毕业后进入该行业时所期望掌握的内容之间存在差距。为了应对这一挑战,我们提出了一种新的方法,在一个名为软件开发学院(SDA)的大学主导的内部软件创业公司中教授行业相关技能。除了详细描述SDA概念外,我们还研究了SDA的教育方面以及它与顶点项目的比较。这些问题的答案是基于15个半结构化的采访SDA的校友。使用生产质量的软件和具有广泛的责任被认为是SDA的最不可分割的方面,并为学生提供了一个全面的技能集的未来。
2023-01-17 cs.SE
Prevalence, Common Causes and Effects of Technical Debt: Results from a Family of Surveys with the IT Industry
技术债务(TD)隐喻描述了在软件开发的各个阶段所做的操作,这些操作导致了系统维护和演化的成本更高。根据最近的研究,在软件开发组织中,平均有25%的开发工作花费在TD引起的问题上。然而,需要进一步的研究来调查各种软件开发活动与TD之间的关系。本研究的目的是双重的。首先,从经验上了解IT行业对TD概念的理解和使用。第二,通过分析原因和影响,对贸易发展概念的准确概念化作出贡献。为了实现这一研究目标,设计了一系列调查,作为汇集了来自12个国家的研究人员的国际倡议的一部分- InsighTD。在国家一级,国家工作队与各国的行业从业人员进行了重复调查。从6个国家共收集到653份有效答复。关于TD概念的流行程度,22%的从业人员仅具有理论知识,47%的从业人员具有TD识别或管理的实践经验。进一步的分析表明,在较大的组织、较大的团队和较大的系统中工作的高级从业人员更有可能具有TD管理的经验。时间压力或最后期限是TD最常见的原因。关于TD的影响:交付延迟,低可维护性和返工被引用最多。InsighTD是第一个关于软件工程中技术债务的调查系列。它提供了一个方法框架,使多个复制小组能够开展研究活动,并为单一数据集作出贡献。今后的工作将侧重于TD管理的更具体方面。
2021-09-28 cs.SE
Case Studies in Industry: What We Have Learnt
案例研究已经成为一种重要的研究方法论,用于在自然环境中探索现象。案例研究在软件工程现象的实证分析中扮演着独特的角色,这些现象很难孤立地捕捉。这种现象经常出现在方法和开发过程的背景下,因为它们通常必须在几个方面缩小规模,因此很难进行大型受控实验,因此与工业软件开发的现实脱节。奖牌的另一面是,我们进行案例研究的现实社会经济环境-有现实生活中的案例和现实条件-也对规划和进行案例研究提出了大量的实际挑战。在这份经验报告中,我们讨论了这些实际挑战以及我们在进行行业案例研究时学到的经验教训。我们的目标是帮助特别是缺乏经验的研究人员面对他们的第一个案例研究在行业中,通过提高他们的意识,他们可能面临的典型障碍和实际的方法来处理这些障碍。
2016-11-27 cs.SE
When Traceability Goes Awry: an Industrial Experience Report
工件之间的可追溯性的概念被认为是软件项目成功的推动者。这个概念已经得到了研究界的广泛关注,许多人认为它在工业环境中总是可用的。在这个产学合作项目中,一个研究小组在一家大型电信公司的测试从业人员的支持下,试图调查合作伙伴公司与软件质量相关的问题。然而,很快就发现需求和测试用例之间缺少基本的可跟踪性链接。这种缺乏可追溯性的情况阻碍了帮助公司处理质量问题的解决方案的实施。在这份经验报告中,我们讨论了在复杂的工业环境中创建和维护可追溯性链接的实际价值,并为研究人员提供了一个警示故事。
2022-06-09 cs.SE
Industrial-Strength Model-Based Testing - State of the Art and Current Challenges
到目前为止,基于模型的测试(MBT)被认为是行业中的前沿技术。根据我们的经验,我们概述了目前在实践中应用的不同MBT型号,特别强调航空电子、铁路和汽车领域。成功的工业规模应用MBT的关键因素进行了描述,无论是从科学和管理的角度来看。对于前一种观点,我们描述了并发反应式实时系统的自动测试用例、测试数据和测试过程生成技术,这些技术被认为是实践中MBT最重要的推动者。关于后者的观点,我们的经验,介绍了MBT方法在测试团队的概述。最后,讨论了最具挑战性的开放科学问题,其解决方案必将提高MBT在工业中的接受度和有效性。
2013-03-05 cs.SE
The risk factors affecting to the software quality failures in Sri Lankan Software industry
由于技术故障、质量故障、缺乏最终客户验收等原因,以及缺乏适当的管理,软件项目的失败和取消率日益增加。软件项目失败的原因有很多。经验证据表明,测试资源不足是导致测试质量低下的主要因素之一。本研究的主要目的是研究影响软件质量的风险因素,以提供一些建议,以尽量减少质量差的风险。影响软件质量的主要因素有三个,即适当的测试、测试计划和QA团队,它们直接影响软件质量风险。为了进行这项研究,我采用了一个开放式的问卷调查收集定性数据的答复分析,他们使用主题的方法。有经验的参与者仅同意需求清晰度和明确定义的验收标准,而不同意充分的单元测试,最后,还同意不进行回归测试会导致质量故障。在数据分析方面,没有适当的正式测试计划,初始测试计划不现实,没有遵循质量风险管理,没有适当的过程和应急行动计划也会导致项目质量差的风险。据与会者补充说,以下因素也是软件质量不足的原因。经验丰富和技术熟练的员工离开公司,因为没有适当的QA流程,团队成员没有风险管理意识。
2017-06-04 cs.SE
The Impact of Generative AI-Powered Code Generation Tools on Software Engineer Hiring: Recruiters' Experiences, Perceptions, and Strategies
本研究通过调查32名行业招聘人员,揭示了GenAI代码生成工具对软件工程师招聘评估的影响,发现多数组织尚未调整评估方法,并探讨了面试中使用工具的争议及纳入计算机科学课程的必要性。
2024-09-02 cs.SE
Experience in engineering of scientific software: The case of an optimization software for oil pipelines
科学和工程软件的开发通常是不同的,可能比传统的企业软件的开发更具挑战性。作者参与了学术界和工业界之间的一个技术转让项目,该项目侧重于石油管道泵送能源成本优化软件的工程、开发和测试。具有不同技能的专家(机械、电力和软件工程师)参与其中。考虑到软件的复杂性(复杂的底层优化模型)以及具有来自不同领域的专家,在软件系统的各个软件工程方面存在挑战(例如,要求和测试)。我们报告我们的观察和经验,在我们的技术转让项目中解决这些挑战,并旨在增加现有的经验和证据的科学和工程软件的工程。我们相信,我们的观察,经验和教训,可以为其他科学和工程软件系统的工程研究人员和从业人员有用。
2020-03-01 cs.SE
From Blackboard to the Office: A Look Into How Practitioners Perceive Software Testing Education
教学过程可能需要具体的教学方法,以建立与行业惯例的关系。最近,一些研究调查了教育工作者的观点和本科课程,以确定潜在的弱点和解决方案的软件测试教学过程。然而,目前还不清楚从业人员如何评价获得有关软件测试的知识,在本科课程。这项研究对68名新毕业的从业人员进行了专家调查,以确定行业对他们的期望以及他们在学术界学到了什么。结果表明,这些从业者的学习速度与其他具有长期行业经验的人相似。此外,他们研究了调查中收集的35个软件测试主题中的不到一半,并参加了行业支持的课外课程,以补充他们的学习。此外,我们的研究结果指出了一系列对未来研究的影响,因为受访者的学习困难(例如,缺乏学习资源)以及学术教育与行业期望之间的差距(例如,认证)。
2021-06-11 cs.SE
CyberSecurity Challenges: Serious Games for Awareness Training in Industrial Environments
了解网络安全主题,例如,与安全编码指南相关,使软件开发人员能够编写安全代码。这种意识在工业环境中对于关键基础设施中的产品和服务至关重要。在这项工作中,我们介绍和讨论了一个新的严重的游戏,专为软件开发人员在行业中。这个游戏解决了软件开发人员的需求,并被证明是非常适合提高安全编码意识的软件开发人员在行业中。我们的工作成果来自作者在行业中进行十多项网络安全挑战时获得的经验。所提出的游戏设计,这是被软件开发人员所接受的,是一种新颖的替代传统的课堂培训。我们希望通过在早期生产阶段改善产品的网络安全,对行业产生积极影响。
2021-02-20 cs.SE
Understanding the Role of Large Language Models in Software Engineering: Evidence from an Industry Survey
University of Vale do Rio dos Sinos(里奥达斯西诺斯河谷大学)
本文通过行业调查揭示大型语言模型在软件工程中的应用现状与影响,探讨其积极效果与潜在风险,提出需批判性使用LLM工具以提升开发效率与安全性。
2025-12-19 cs.SE
Beyond the Classroom: Bridging the Gap Between Academia and Industry with a Hands-on Learning Approach
本文介绍了一门融合理论与实践、结合行业技术的自适应软件系统课程,通过客座讲座和行业评委展示提升学生能力,经21名学生反馈及实证分析证明课程有效,还总结了教学挑战以指导相关新兴主题教育。
2025-04-14 cs.SE
A Survey of Software Engineering Practices in Turkey (extended version)
背景:了解行业中使用的软件工程实践和技术的类型是很重要的。在每个软件团队和公司中进行的软件工程实践的类型和成熟度方面有很宽的范围。为了描述在软件公司中进行的软件工程实践的类型,在不同的国家和地区进行了各种调查。土耳其有一个充满活力的软件行业,重要的是要描述和了解该行业的软件工程实践的状态。目标:我们的目标是描述和掌握土耳其软件行业软件工程实践类型的高级观点。在这项研究中,我们调查的软件工程实践包括:软件需求、设计、开发、测试、维护、配置管理、发布计划和支持实践。目前的调查是在土耳其软件行业背景下进行的最全面的调查。方法:为了实现上述目标,我们系统地设计了一个在线调查46个问题,根据我们过去的经验,在加拿大和土耳其的背景下,并使用软件工程知识体系(SWEBOK)。来自土耳其软件行业的202名执业软件工程师参加了调查。我们分析和报告在本文中的问题的结果。只要有可能,我们还会将我们的调查趋势和结果与2010年在加拿大软件行业进行的类似调查结果进行比较。
2014-12-16 cs.SE