A strategy to identify components using clustering approach for component reusability
基于构件的软件工程(CBSE)在构建大型软件系统方面发挥了非常重要的作用。实现软件构件的可重用性是非常必要的。为了实现这一点,组件标识是强制性的。文献中介绍了传统的方法。然而,有效的重用仍然是一个具有挑战性的问题。在本文中,已经提出了一种策略,使用聚类方法识别的业务组件。这种方法将有助于识别不同领域的可重用组件。所提出的方法已经确定了重新配置的组件使用CBO措施,以减少对象之间的耦合。通过考虑这一拟议的战略,可以提高组织的生产力。
2014-06-14 cs.SE
Analysis of Software Binaries for Reengineering-Driven Product Line ArchitectureâAn Industrial Case Study
本文描述了一种从一组相似(但不相关)的二进制形式的软件产品中恢复软件体系结构的方法。一个意图是将重构驱动到软件产品线中,并将架构恢复与运行时间二进制分析和现有的聚类方法相结合。使用我们的运行时二进制分析,我们创建的图表,捕捉不同的软件部分之间的依赖关系。这些被聚集到更小的组件图中,将具有高交互性的软件部分分组到更大的实体中。组件图作为进一步软件产品线工作的基础。在本文中,我们集中在分析部分的方法和图聚类。我们将图聚类方法应用到自动化/机器人配置软件工具的背景下的实际应用中。
2015-04-14 cs.SE
A New P2N Approach to Software Development Under the Clustering
在这个计算机飞速发展的时代,软件开发随处可见,但是很多软件都死在了现代软件开发中。正如《人月神话》中所说,软件开发中存在一个问题,这个问题就是流量,流量之锁可以说是一场浩劫。集群是孕育新生命的环境。在这篇论文中,我们详细阐述了P2N如何用于思考、计划、开发、协作、发布。以及使您的团队和组织更加完美的方法。
2012-07-23 cs.DC cs.SE
Nirikshak: A Clustering Based Autonomous API Testing Framework
Nirikshak 是一个基于聚类的自主 REST API 测试开源框架,通过分析日志对测试用例进行分类,最大程度减少用户干预并实现 2 级自主性,提升对软件变更的动态适应能力。
2023-11-22 cs.SE
Testing Research Software: An In-Depth Survey of Practices, Methods, and Tools
本研究深入调查了研究软件的测试实践、挑战与工具使用情况,发现开发者面临测试用例设计与输出正确性评估等主要挑战且对现有工具不熟悉,指出需提供定制化标准测试工具与资源支持以改进测试过程。
2025-01-29 cs.SE
Identifying Clusters of Concepts in a Low Cohesive Class for Extract Class Refactoring Using Metrics Supplemented Agglomerative Clustering Technique
面向对象软件的类内聚性低,会增加软件的维护成本。由于偏离设计原则,在初始设计期间以及由于软件退化,可能会将低内聚类引入软件。低内聚类执行应该由两个或多个类完成的操作。低内聚类需要被识别出来,并使用提取类重构来重构,以提高内聚性。在这方面,涉及两个方面;第一个是识别低内聚类,第二个是识别低内聚类中的概念簇,用于提取类重构。在本文中,我们提出了度量补充凝聚聚类技术涵盖上述两个方面。使用Weyuker的属性验证所提出的度量。该方法成功地应用于两个例子和案例研究。
2012-01-08 cs.SE
PHANTOM: Curating GitHub for engineered software projects using time-series clustering
内容:在采矿软件库领域,有许多方法用于过滤数据集,以避免分析低质量的项目。不幸的是,现有的过滤方法并没有跟上现有数据源的增长,例如GitHub,研究人员经常依赖快速而肮脏的技术来管理数据集。目的:本研究的目的是开发一种能够以资源有效的方式过滤大量软件项目的方法。方法:本研究遵循设计科学研究(DSR)方法。所提出的方法PHANTOM从Git日志中提取了五个度量。每个测量被转换成一个时间序列,这是表示为使用k-means算法聚类的特征向量。结果如下:使用之前研究中的基础事实,PHANTOM被证明能够重新发现训练数据集上的基础事实,并且能够在验证数据集上以高达0.87的精度和0.94的召回率识别“工程”项目。PHANTOM使用一台个人计算机在21.5天内下载并处理了1,786,601个GitHub存储库的元数据,比之前使用200个节点的计算机集群的速度快33%以上。通过管理两家公司拥有的100个存储库,研究了在开源社区之外应用该方法的可能性。结论:可以使用无监督的方法来识别工程项目。与现有的监督方法相比,PHANTOM具有竞争力,同时将硬件要求降低了两个数量级。
2020-06-30 cs.SE
Exploring the Reasoning Depth of Small Language Models in Software Architecture: A Multidimensional Evaluation Framework Towards Software Engineering 2.0
Faculty of Computer Science and Engineering Ho Chi Minh City University of Technology (HCMUT), VNU-HCM(胡志明市理工大学计算机科学与工程系);The Business School RMIT University(皇家墨尔本理工大学商学院)
本研究通过多维评估框架评估小型语言模型在软件架构中的推理深度,发现参数阈值影响推理能力,揭示了中等大小模型在短上下文下的校准机制及语义多样性与幻觉的相关性。
2026-03-07 cs.SE
An efficient high-quality hierarchical clustering algorithm for automatic inference of software architecture from the source code of a software system
Universiteit van Amsterdam(阿姆斯特丹大学)
它是一个高质量的大型软件源代码的层次聚类算法。这有效地允许打破数千万行源代码的复杂性,使得人类软件工程师可以通过查看从软件系统的源代码自动重构的软件系统的架构图来理解高级别的软件系统。架构图显示了一个子系统树,在其叶子中有OOP类(换句话说,嵌套的软件分解)。该工具从软件系统的源代码中重建缺失(不一致/不完整/不存在)的体系结构文档。这有利于软件维护:更改请求可以更快地执行。简单地说,这个独特的工具允许提升面向对象软件系统的可理解性,从OOP类级到子系统级。据估计,在这项工作的基础上开发的商业工具,将减少软件维护费用的10倍,目前的需求,并将允许实现下一代软件系统,目前太复杂的范围内的人类理解,因此还不能设计或实施。在开放源代码中实现原型:http://sourceforge.net/p/insoar/code-0/1/tree/
2012-02-15 cs.AI cs.LG cs.SE
Automated Classification of Source Code Changes Based on Metrics Clustering in the Software Development Process
Saint Petersburg State University of Information Technologies, Mechanics and Optics (ITMO University)(圣彼得堡信息技术、力学与光学国立大学(ITMO大学))
本文提出基于度量聚类的自动化方法,用于软件开发过程中源代码变更的分类,通过聚类和专家映射提高审查效率。
2026-02-16 cs.AI cs.SE
Java Source-code Clustering: Unifying Syntactic and Semantic Features
这是第19届逆向工程工作会议(WCRE 2012)论文集“软件集群:统一语法和语义规则”的配套草案。它详细地讨论了聚类过程,这出现在一个简略的形式的文件。它还包含了世界计算机考试组织文件中没有涉及的某些额外的过程步骤。聚类过程中描述的Java源代码的应用程序。然而,正如WCRE论文中所指出的,它可以无缝地适应许多其他编程范式。
2018-06-28 cs.SE
Does class size matter? An in-depth assessment of the effect of class size in software defect prediction
在过去的20年里,缺陷预测研究已经普遍承认类大小对软件预测性能的影响。为了量化面向对象(OO)度量和缺陷之间的关系,建模必须考虑类大小对缺陷的直接和潜在的间接影响。然而,一些研究表明,在建立预测模型时,不能简单地控制或忽略大小。因此,是否以及何时控制班级规模仍然是一个问题。这项研究提供了一个新的深入检查类大小的影响之间的关系,面向对象的度量和软件缺陷或缺陷倾向。我们评估类大小对软件系统中缺陷和缺陷倾向的数量的影响,通过采用基于回归的调解(自举)和适度分析,调查类大小在计数和二进制缺陷预测中的直接和间接影响。我们的研究结果表明,规模效应并不总是显着的所有指标。在我们研究的七个OO指标中,大小一致地仅对对象之间的耦合(CBO)和缺陷/缺陷倾向性之间的关系具有显著的中介影响,并且对扇出和缺陷/缺陷倾向性之间的关系具有潜在的适度影响。根据研究结果,我们提出三点建议。第一,我们鼓励研究人员和从业人员研究班级规模对他们手头的具体数据的影响,并通过使用拟议的统计调解/调节程序。第二,我们鼓励实证研究在相关的情况下调查其模型中可能的附加变量的间接影响。第三,本研究所采用的统计方法可用于其他经验软件工程研究,以调查潜在的中介/调节者的影响。
2021-06-08 cs.SE
AFGNN: API Misuse Detection using Graph Neural Networks and Clustering
IIT Hyderabad(印度理工学院海德拉巴分校);Oracle(甲骨文公司);Yokogawa Electric(横河电机);Microsoft Research(微软研究院);IIT Kharagpur(印度理工学院卡拉格普尔分校)
本文提出AFGNN框架,利用API流程图捕捉代码中的执行序列、数据和控制流信息,通过自监督预训练和聚类识别不同API使用模式,有效检测Java代码中的API误用。
2026-04-09 cs.SE
An Overview of Quantum Software Engineering in Latin America
本文通过文献系统映射和专家调研,概述了拉丁美洲量子软件工程的研究现状、进展与挑战,旨在促进该地区前沿发展的理解与科研合作。
2024-05-31 cs.SE
Semantic Similarity-Based Clustering of Findings From Security Testing Tools
Technical University of Munich(慕尼黑工业大学);Siemens Technology(西门子科技);LMU Munich(慕尼黑大学)
在过去的几年里,具有高安全性要求的领域中的软件开发从传统方法过渡到将现代方法与软件开发和运营(DevOps)相结合。DevOps的关键原则越来越重要,现在被应用于软件开发的安全方面,从而实现了安全增强活动的自动化。特别是,通常的做法是使用自动化的安全测试工具,这些工具在从多个角度检查软件工件之后生成报告。然而,这带来了产生重复安全调查结果的挑战。为了手动识别这些重复的发现,安全专家必须投入时间,精力和知识等资源。这个过程的部分自动化可以减少分析工作,鼓励DevOps原则,并减少人为错误的机会。在这项研究中,我们研究了应用自然语言处理聚类语义相似的安全结果,以支持识别特定问题的重复结果的潜力。为了实现这一目标,我们开发了一个Web应用程序,用于注释和评估安全测试工具报告,并发布了一个人工注释的聚类安全发现语料库。此外,我们进行了不同的语义相似性技术的比较,自动分组的安全调查结果。最后,我们使用定量和定性的评价方法来评估所产生的集群。
2022-11-20 cs.CL cs.SE
A Study of FOSS'2013 Survey Data Using Clustering Techniques
University of Calcutta(加尔各答大学);Netaji Subhash Engineering College(内塔吉·苏巴斯工程学院)
FOSS是Free and Open Source Software的缩写。FOSS 2013年调查主要针对FOSS贡献者,相关匿名数据集在CC by SA许可下公开提供。在这项研究中,使用统计和聚类技术(特别是多重对应分析)从批判的角度分析数据集,重点关注女性贡献者,以发现隐藏的趋势和事实。重要的推论是关于自由软件和OSS世界的开发实践和其他方面。
2017-01-31 cs.AI cs.CY cs.SE
Toward Automated Security Risk Detection in Large Software Using Call Graph Analysis
针对人工威胁建模效率低易出错的问题,提出基于调用图聚类(密度算法+社区检测)的自动化威胁建模方法,经SFO案例验证可行,为云原生环境的可扩展半自动化威胁建模框架提供支撑。
2025-10-30 cs.CR cs.SE
Recovery of Architecture Module Views using an Optimized Algorithm Based on Design Structure Matrices
设计结构矩阵(DSM)用于表示高级系统结构,对设计实体之间的交互进行建模。DSM用于许多可视化和抽象活动。在这项工作中,我们提出了使用现有的DSM聚类算法来恢复软件架构模块的意见。为了使其适用于这一领域,优化已被证明是必要的。通过对原算法的性能分析和参数整定实现了该算法。结果表明,DSM聚类可以替代其他聚类算法。
2017-09-26 cs.SE
A large-scale, in-depth analysis of developers' personalities in the Apache ecosystem
内容:大型分布式项目通常是由多个具有不同个性的开发人员共同努力的结果。目的:我们的目标是找到证据,个性可以解释开发人员在大规模分布式项目中的行为。例如,信任他人的倾向--全球软件工程成功的关键因素--被发现对分布式项目中代码评审的结果有积极的影响。方法:在本文中,我们进行了定量分析的生态系统级数据的代码提交和电子邮件消息的开发人员贡献的Apache软件基金会(ASF)的项目,作为大规模分布式项目的代表。结果如下:我们发现,Apache开发人员中有三种常见的性格特征,特别是他们的可持续性和神经质水平。我们还证实,开发人员的个性是稳定的,随着时间的推移。此外,个性特征并不因其角色、成员资格和对项目的贡献程度而有所不同。我们还发现,更多的开放开发人员更有可能成为Apache项目的贡献者。结论:总的来说,我们的研究结果加强了对软件工程中人为因素的未来研究的必要性,以使用心理测量工具来控制开发人员个性的差异。
2022-04-13 cs.SE
Reviewing Literature on Time Pressure in Software Engineering and Related Professions - Computer Assisted Interdisciplinary Literature Review
在过去的几年里,与不健康的工作环境有关的心理疾病,如倦怠,引起了越来越多的公众关注。这些情感问题的已知原因之一是时间压力。为了形成一个理论背景的时间压力检测在软件仓库中,本文结合跨学科的知识,通过分析1270篇论文中发现的Scopus数据库和包含相关的术语的时间压力。通过对这些论文的摘要进行聚类,我们发现时间压力在不同的领域得到了广泛的研究,但在软件工程中的研究相对较少。从最相关的论文的文献综述中,我们推断出一系列可检验的假设,我们希望在未来的研究中验证,以评估时间压力对软件开发人员心理健康的影响。
2017-03-13 cs.SE
Static Code Analysis in the AI Era: An In-depth Exploration of the Concept, Function, and Potential of Intelligent Code Analysis Agents
针对软件质量保证中传统方法处理复杂逻辑的不足,本文提出结合大语言模型的智能代码分析智能体(ICAA),显著降低误报率至66%并提升召回率,展现变革潜力。
2023-10-13 cs.SE
Enhancing the Analysis of Software Failures in Cloud Computing Systems with Deep Learning
Università degli Studi di Napoli Federico II(那不勒斯费德里科二世大学)
识别云计算系统的故障模式是一项困难且耗时的任务,这是由于此类系统的日益复杂性以及故障数据的大量和噪声。本文提出了一种新的方法来分析云系统的故障数据,以减轻人类分析师手动微调数据的功能工程。该方法利用了深度嵌入聚类(DEC),这是一系列基于深度学习的无监督聚类算法,它使用自动编码器来优化数据维度和聚类间方差。我们在OpenStack云计算平台的上下文中应用了该方法,既针对原始故障数据,又结合异常检测预处理算法。结果表明,所提出的方法的性能,在纯度的集群,是可比的,或在某些情况下,甚至比手动微调聚类,从而避免了需要深入的领域知识,并减少了工作来执行分析。在所有情况下,当没有对数据应用特征工程时,所提出的方法比无监督聚类提供了更好的性能。此外,从所提出的方法的故障模式的分布更接近的故障模式的实际频率。
2021-06-29 cs.AI cs.SE
Quantum Computing Platforms: Assessing the Impact on Quality Attributes and SDLC Activities
实用的量子计算正在迅速成为现实。为了利用量子计算机在软件应用中的真正潜力,需要从软件工程(SE)的角度深入了解量子计算平台(QCP)的所有这些特性。对复制、删除、量子比特状态传输的限制,以及对量子算法的严格依赖,这些都是QCP特征中对构建量子软件有重要意义的例子。因此,开发量子软件需要软件工程师思维的范式转变。本文介绍了从SE的角度来看,从国家的最先进的QCP的深入研究,今天可用的主要结果。我们提出的主要贡献包括:i)提出了一个通用架构的QCP,ii)提出了一个编程模型,开发量子软件,iii)确定架构上的显着特点的QCP,和\textbf{iv)}确定这些特点的影响,对各种质量属性(QA)和软件开发生存周期(SDLC)的活动。我们表明,QCP的性质,使他们有用的主要是在专门的应用领域,如科学计算。除了性能和可伸缩性,大多数其他QA(例如,可维护性、可测试性和可靠性)受到QCP不同特性的不利影响。
2021-04-29 cs.SE
A Systematic Mapping Study on Architectural Approaches to Software Performance Analysis
本文通过对109篇论文的系统映射研究,从研究目的、开发活动、研究模板、工具和评估方法五个维度梳理软件架构与性能分析的集成现状,并指出工具基准、新兴领域、实践因素和ML/AI技术四个关键研究方向。
2024-10-22 cs.SE
A Microservices Identification Method Based on Spectral Clustering for Industrial Legacy Systems
本文提出一种基于谱聚类的自动化微服务分解方法,通过静态与动态分析提取依赖并构建图结构,利用图聚类识别高内聚低耦合的微服务候选,实验证明其性能优于现有方法且无需领域专家。
2023-12-20 cs.SE
Anvaya: An Algorithm and Case-Study on Improving the Goodness of Software Process Models generated by Mining Event-Log Data in Issue Tracking System
Indraprastha Institute of Information Technology, Delhi (IIIT-D)(德里英德拉普拉斯塔信息技术学院(IIIT-D));Software Analytics Research Lab (SARL)(软件分析研究实验室(SARL))
问题跟踪系统(ITS),如Bugzilla,可以被视为过程感知信息系统(PAIS),在bug报告的生命周期中生成事件日志。过程挖掘包括挖掘从PAIS生成的事件日志,用于过程模型发现、一致性和增强。我们应用进程图发现技术,挖掘开源Firefox浏览器项目ITS中产生的事件跟踪数据,生成和研究进程模型。缺陷生命周期由多样性和方差组成。因此,从事件日志生成的过程模型是具有大量边、互连和节点的意大利面条。这样的模型分析起来很复杂,过程分析人员很难理解。我们通过聚类结构相似的痕迹将事件日志分成同质子集来提高过程模型的良好性(适应度和结构复杂性)。我们采用两种不同的距离度量:最长公共子序列(LCS)和动态时间弯曲(DTW)的K-Medoid聚类算法。我们使用复杂性和适应性指标来评估从集群生成的过程模型的良好性。我们研究来回\和自我循环,错误重新开放,并在集群中获得的瓶颈,并表明聚类可以更好地分析。我们还提出了一个算法来自动聚类过程-该算法作为输入的事件日志,并返回最佳的集群集。
2015-11-22 cs.LG cs.SE
Learning From Software Failures: A Case Study at a National Space Research Center
Purdue University(普渡大学);German Aerospace Center (DLR)(德国航空航天中心);Jet Propulsion Laboratory, California Institute of Technology(加州理工学院喷气推进实验室)
本研究通过案例分析揭示了软件工程师在实践中从故障中学习的非正式性和挑战,提出了改进故障管理的指导。
2026-02-25 cs.SE
Extracting Overlapping Microservices from Monolithic Code via Deep Semantic Embeddings and Graph Neural Network-Based Soft Clustering
提出Mo2oM框架,将微服务提取建模为软聚类问题,结合深度语义嵌入与方法调用图的结构依赖,利用图神经网络生成重叠微服务,在多个基准上显著提升模块化、降低通信开销并平衡服务规模。
2025-08-10 cs.AI cs.CV cs.SE
A shallow dive into the depths of non-termination checking for C programs
针对现有非终止性检查工具在现实程序上效果不佳的问题,提出一种基于有界模型检查的健全高效技术,通过循环内断言与迭代展开深度检查循环状态,实验表明优于现有工具。
2024-09-04 cs.LO cs.SE
Analyzing Logs of Large-Scale Software Systems using Time Curves Visualization
本文提出结合聚类、LLM摘要、事件检测与多维尺度分析的 Time Curves 流水线,通过半度量距离可视化大规模软件日志,以提取主要事件、趋势和异常。
2025-02-19 cs.SE
Logzip: Extracting Hidden Structures via Iterative Clustering for Log Compression
系统日志记录了软件系统运行时的详细信息,并被用作围绕软件工程的许多任务的主要数据源。随着现代软件系统向大规模和复杂结构发展,日志已成为工业中快速增长的大数据类型之一。特别地,这种日志在实践中经常需要存储很长时间(例如,一年),以便分析经常出现的问题或跟踪安全问题。然而,归档日志会消耗大量的存储空间和计算资源,这反过来又会带来很高的运营成本。数据压缩对于降低日志存储成本至关重要。传统的压缩工具(例如,gzip)对于一般文本工作得很好,但是对于系统日志不太好。在本文中,我们提出了一种新颖的和有效的日志压缩方法,即logzip。Logzip能够通过快速迭代聚类从原始日志中提取隐藏结构,并进一步生成一致的中间表示,从而实现更有效的压缩。我们在五个不同系统类型的大型日志数据集上评估logzip,总大小为63.6 GB。结果表明,logzip可以节省约一半的存储空间,平均比传统的压缩工具。同时,logzip的设计是高度并行的,只会产生微不足道的开销。此外,我们还分享了我们将logzip应用于华为实际产品的行业经验。
2019-09-24 cs.DB cs.SE
A Genetic Algorithm for Software Design Migration from Structured to Object Oriented Paradigm
将软件设计从结构化范式迁移到面向对象范式的潜在好处是多方面的,包括模块化、可扩展性和可扩展性。这种设计迁移应该自动化,因为它将减少手动过程所需的时间。我们以前的工作已经解决了这个问题的最优图聚类问题制定的二次规划(IP)。然而,已经认识到,IP的解决方案是计算困难的,因此需要基于启发式的方法来获得接近最优的解决方案。本文提出了一种遗传算法(GA)的最优聚类的目标是最大化的类内边缘,而最小化的类间的。该算法依靠基于适应度的父选择和交叉聚类元素,逐步达到最优解。该方案的实施和测试对一组真实和合成数据。实验结果表明,遗传算法优于我们以前的工作的基础上贪婪和蒙特卡罗方法的40%和49.5%。
2014-07-23 cs.NE cs.SE