Investigating the Performance of Small Language Models in Detecting Test Smells in Manual Test Cases
本研究评估Gemma3、Llama3.2和Phi-4三个小型语言模型在143个Ubuntu测试用例上自动检测七类测试坏味的能力,其中Phi-4以97%的pass@2表现最佳,证明SLMs可低成本、保护隐私地提升测试质量。
2025-07-17 cs.SE
Dirty-Waters: Detecting Software Supply Chain Smells
针对使用开源依赖的项目难以及时察觉软件供应链风险的问题,本文提出软件供应链坏味道概念与检测工具Dirty-Waters,经多版本JavaScript项目验证其能有效识别大量风险点,为供应链安全防护提供明确指引。
2024-10-21 cs.CR cs.SE
The Role of the Retrospective Meetings in Detecting, Refactoring and Monitoring Community Smells
本研究通过访谈15名从业者,探讨回顾会议在检测、重构和监控社区坏味道中的作用,发现其能识别坏味道但重构实施与监控不一致,强调积极方面有助于预防。
2025-02-25 cs.SE
SpecDetect4ML: Detecting Non-Local ML Code Smells with Code Property Graphs
École de technologie supérieure;Université du Québec à Montréal(魁北克大学蒙特利尔分校)
本文研究ML代码异味问题,提出基于规范的检测工具SpecDetect4ML,通过声明式DSL和可扩展分析引擎,实现项目级的代码异味检测,提升可复现性和可维护性。
2026-07-01 cs.AI cs.SE
Law Smells: Defining and Detecting Problematic Patterns in Legal Drafting
Max Planck Institute for Informatics(马克斯·普朗克信息学研究所);Bucerius Law School(汉堡博锐思法学院);Stanford Law School(斯坦福法学院);Ruprecht-Karls-Universität Heidelberg(海德堡大学);Hasso Plattner Institute, University of Potsdam(波茨坦大学哈索·普拉特纳研究所);Illinois Tech – Chicago Kent College of Law(伊利诺伊理工大学芝加哥肯特法学院)
基于计算机科学的代码气味概念,我们开始了法律气味的研究,即,法律文本中对法律的可理解性和可维护性构成威胁的模式。以五种直观的法律气味作为运行实例--即重复短语、长元素、大引用树、模糊语法和自然语言困扰--,我们开发了一个全面的法律气味分类法。这种分类法将法律气味分类为何时可以检测到,它们与法律的哪些方面有关,以及如何发现。我们引入基于文本和基于图形的方法来识别法律气味的实例,确认其实用程序在实践中使用美国法典作为测试案例。我们的工作演示了如何利用软件工程的思想来评估和提高法律代码的质量,从而引起人们对法律和计算机科学交叉领域的关注,并突出了计算法律起草的潜力。
2021-10-15 cs.CL cs.CY cs.IR
A systematic literature review on the code smells datasets and validation mechanisms
School of Computer Engineering, Iran University of Science and Technology(伊朗科技大学计算机工程学院);University of Salerno(萨勒诺大学)
本文系统综述45个代码坏味数据集,分析其规模、严重程度、项目类型和样本比例等属性及验证机制,指出现有数据集存在类别覆盖不足、样本不平衡、缺少严重程度且局限于Java等问题。
2023-06-02 cs.AI cs.PL cs.SE
An Empirical Study of Gemini 3 for Detecting Natural Language Test Smells in Manual Test Cases
UFCG(联邦农村塞阿拉大学);UFAL(阿拉戈斯联邦大学);University of Salerno(萨莱诺大学);IFAL(阿拉戈斯联邦学院)
研究使用 Gemini-3-Pro-Preview 通过整体测试用例分析策略检测手动测试用例中的七种测试异味,相比小型语言模型性能更优,并发现平均每步近一个异味。
2026-10-15 cs.SE
Beyond Strict Rules: Assessing the Effectiveness of Large Language Models for Code Smell Detection
Universidade Federal de Minas Gerais(米纳斯吉拉斯联邦大学);Universidade Federal de Ouro Preto(奥罗普雷托联邦大学);University of Ottawa(渥太华大学)
本研究评估了四种大型语言模型(DeepSeek-R1、GPT-5 mini、Llama-3.3、Qwen2.5-Code)在30个Java项目中检测九种代码异味的效果,并提出了结合LLM与静态分析工具的检测策略,该策略在五个异味类型上F1分数优于单独使用LLM或工具。
2026-05-29 cs.SE
On the Prevalence, Impact, and Evolution of SQL Code Smells in Data-Intensive Systems
代码气味表明软件设计问题会损害软件质量。频繁访问数据库的数据密集型系统除了传统的气味外,还经常受到SQL代码气味的影响。虽然对传统的代码气味已经有了广泛的研究,但最近,人们对SQL代码气味的兴趣越来越大。在本文中,我们进行了一项实证研究,调查的流行和演变的SQL代码气味在开源,数据密集型系统。我们收集了150个项目,并检查了这些项目中的传统和SQL代码气味。我们的调查提供了几个重要的发现。首先,SQL代码气味在数据密集型软件系统中确实很普遍。第二,SQL代码气味与传统代码气味的共现性较弱。第三,SQL代码气味与bug的关联性比传统代码气味弱。第四,与传统的代码气味相比,SQL代码气味更有可能在项目生命周期开始时引入,并且可能留在代码中而不进行修复。总体而言,我们的研究结果表明,SQL代码气味确实是普遍存在的,并在所研究的数据密集型软件系统持久。开发人员应该意识到这些气味,并考虑使用专用工具分别检测和重构SQL代码气味和传统代码气味。
2022-01-06 cs.SE
Prompt Learning for Multi-Label Code Smell Detection: A Promising Approach
本文提出基于提示学习检测多标签代码异味的方法PromptSmell,通过遍历AST获取代码片段并构建LLM输入,将多标签问题转化为多分类问题,实验证明其precision_w提升11.17%、F1_w提升7.4%。
2024-02-16 cs.SE
Making OpenAPI Documentation Agent-Ready: Detecting Documentation and REST Smells with a Multi-Agent LLM System
Sidia Institute of Technology(西迪亚理工学院)
研究通过多代理LLM系统检测OpenAPI文档和REST相关问题,发现2450个气味,揭示微服务环境中结构有效性不保证语义准备性,推动API治理流程改进。
2026-05-14 cs.SE
Test Behaviors, Not Methods! Detecting Tests Obsessed by Methods
UFMG(米纳斯吉拉斯联邦大学);Delft University of Technology(代尔夫特理工大学)
本文提出一种新的测试气味"Test Obsessed by Method",通过运行时分析发现测试方法覆盖单一生产方法的多个路径,分析了Python标准库中44个此类测试的行为和特征。
2026-01-31 cs.SE
Developers perception on the severity of test smells: an empirical study
单元测试是软件开发生命周期的重要组成部分。通过创建和运行单元测试,开发人员可以轻松快速地捕获和修复源代码中引入的软件错误。尽管单元测试很重要,但它会受到糟糕的设计或实现决策的影响,即所谓的测试气味。这些可能会从各个方面降低软件系统的质量,使其更难理解,更复杂的维护,更容易出现错误和bug。许多研究讨论了测试气味对测试代码的可能影响。然而,缺乏研究,捕捉开发人员对这些问题的看法。本研究实证分析了开发人员如何在他们开发的测试代码中感知测试气味的严重性。严重性是指测试气味可能对测试代码产生负面影响的程度。我们从GitHub中选择了六个开源软件项目,并采访了他们的开发人员,以了解测试气味是否以及如何影响测试代码。尽管大多数受访的开发人员认为测试气味对他们的代码的严重性很低,但他们表示测试气味可能会对项目产生负面影响,特别是在测试代码的可维护性和演化方面。此外,从测试代码中检测和移除测试气味可能对项目有积极意义。
2021-07-29 cs.SE
PyNose: A Test Smell Detector For Python
与生产代码类似,代码气味也出现在测试代码中,它们被称为测试气味。测试气味不仅对测试代码,而且对正在测试的生产代码都有不利影响。到目前为止,大多数关于测试气味的研究都集中在程序设计语言上,比如Java和Scala。然而,没有可用的自动化工具来支持Python测试气味的识别,尽管近年来Python的流行度迅速增长。在本文中,我们努力将研究扩展到Python,建立一个工具来检测这种语言的测试气味,并在Python项目中进行测试气味的实证分析。我们首先从现有的研究中收集了一系列测试气味,并选择了可以被认为与语言无关或在Python的标准Unittest框架中具有类似功能的测试气味。我们总共确定了17种不同的测试气味。此外,我们通过挖掘频繁的代码更改模式来搜索Python特定的测试气味,这些模式可以被视为修复或引入测试气味。基于这些变化,我们提出了我们自己的测试气味,称为次优断言。为了检测所有这些测试气味,我们开发了一个名为PyNose的工具,它是PyCharm(一个流行的Python IDE)的插件。最后,我们进行了一项大规模的实证调查,旨在分析Python代码中测试气味的流行程度。我们的研究结果表明,98%的项目和84%的测试套件在研究数据集中包含至少一个测试气味。我们提出的次优断言气味在多达70.6%的项目中被检测到,使其成为列表中有价值的补充。
2021-08-10 cs.SE
xNose: A Test Smell Detector for C#
本文针对 C# 测试坏味检测工具缺乏的问题,开发了 xNose 工具,识别 16 种测试坏味并分析其在 xUnit 项目中的分布,精确率和召回率分别达 96.97% 和 96.03%,以帮助开发者维护代码质量。
2024-05-07 cs.SE
Parfum: Detection and Automatic Repair of Dockerfile Smells
Docker是开发人员和组织在轻量级、可移植的容器中打包、部署和运行应用程序的流行工具。Docker的一个关键组件是Dockerfile,这是一个简单的文本文件,指定了构建Docker镜像所需的步骤。虽然Dockerfiles很容易创建和使用,但创建一个最佳镜像是很复杂的,因为很容易不遵循最佳实践,当它发生时,我们称之为Docker气味。为了提高Dockerfiles的质量,以前的工作都集中在检测Docker气味上,但他们没有提供建议或修复气味。在本文中,我们提出了Parfum,这是一种检测和自动修复Docker气味的工具,同时生成最小的补丁。Parfum基于一个新的Dockerfile AST解析器Dinghy。我们通过分析和修复大量Dockerfiles并将其与现有工具进行比较来评估Parfum的有效性。我们还根据构建失败和镜像大小来衡量修复对Docker镜像的影响。最后,我们打开了35个pull request来收集开发人员的反馈,并确保修复和气味是有意义的。我们的结果表明,Parfum能够修复806 245 Docker气味,并对Docker镜像大小产生显著影响,最后,开发人员在合并20个pull请求的同时欢迎Parfum生成的补丁。
2023-02-09 cs.SE
User Interface Design Smell: Automatic Detection and Refactoring of Blob Listeners
用户界面(UI)高度依赖于事件驱动的编程:小部件将UI事件(捕获用户的交互)发送给称为控制器的专用对象。控制器使用多个UI侦听器来处理这些事件以生成UI命令。首先,我们揭示了设计气味在描述和控制UI的代码中的存在。其次,我们证明了特定的代码分析是分析和重构UI代码所必需的,因为它与代码的其余部分耦合。我们对四个大型Java Swing和SWT开源软件系统进行了实证研究。我们研究在何种程度上的UI命令的数量,一个UI监听器可以产生的变化和故障倾向的UI监听器代码的影响。我们开发了一个静态代码分析,用于检测代码中的UI命令。我们发现了一种新的设计气味,称为Blob气味,它描述了可以产生两个以上UI命令的UI侦听器。我们提出了一个系统的静态代码分析过程,搜索我们在InspectorGuidget中实现的Blob Listeners。我们在四个软件系统上进行了实验,我们手动识别了53个Blob实例。InspectorGuidget成功检测到53个Blob侦听器中的52个。实验结果表明,该方法的准确率为81.25%,召回率为98.11%。然后,我们开发了一个半自动和行为保留的重构过程来删除Blob Listeners。在53个Blob Listener中,49.06%被自动重构。JabRef和FreeCol的修补程序已被接受并合并。与四个软件系统的开发人员的讨论评估了Blob的相关性。这项工…
2018-05-25 cs.HC cs.SE
Crowdsmelling: The use of collective knowledge in code smells detection
代码气味被视为技术债务的主要来源,因此应该被检测和删除。然而,研究人员认为,代码气味检测过程的主观性是减轻气味感染代码问题的主要障碍。我们提出了基于监督机器学习技术的群众嗅觉方法,其中群众(软件开发人员)的智慧用于集体校准代码气味检测算法,从而减轻主观性问题。本文介绍了一个验证实验的结果,群众嗅的方法。在连续三年的软件工程课程的背景下,总共有大约100个团队的“人群”,每个团队平均有三名成员,将Java源代码中存在的3种代码气味(长方法,上帝类和功能嫉妒)分类。这些分类是用于训练六种机器学习算法的预言机的基础。生成并评估了100多个模型,以确定哪些机器学习算法在检测上述每种代码气味时具有最佳性能。God Class检测(Naive Bayes的ROC=0.896)和Long Method检测(AdaBoostM1的ROC=0.870)获得了良好的性能,但Feature Envy的性能要低得多(Random Forrest的ROC=0.570)。得到的结果表明,crowdsmelling是一种可行的方法,用于检测代码气味,但需要进一步的验证实验,以涵盖更多的代码气味,并增加外部有效性。
2020-12-23 cs.SE
DynamicsLLM: a Dynamic Analysis-based Tool for Generating Intelligent Execution Traces Using LLMs to Detect Android Behavioural Code Smells
École de technologie supérieure(高等技术学院);Université du Québec à Montréal(魁北克大学蒙特利尔分校)
本文提出DynamicsLLM,利用LLMs生成智能执行轨迹以检测Android行为代码异味,通过混合方法提高小活动应用的覆盖范围,并在333个应用上验证效果,显著提升代码异味检测率。
2026-04-12 cs.AI cs.SE
Experiences on Managing Technical Debt with Code Smells and AntiPatterns
技术债已经成为一个常见的比喻,用来比喻软件设计和实现选择的积累,这些选择寻求快速的初始收益,但从长远来看,这些选择低于标准,适得其反。然而,作为一个比喻,技术债务并没有提供如何摆脱它的可操作的建议。为了在解决问题方面达到实用的水平,需要更有针对性的机制。对此常用的方法包括识别代码气味作为代码库中可能问题的快速指示,并检测是否存在涉及设计中明显的重复问题的AntiPatterns。对于代码气味和反模式都有已知的补救措施。在论文中,我们的目标是展示如何有效地使用常见的工具和现有的代码气味和反模式知识来检测技术债务并偿还。我们提出了两个主要结果:(i)如何使用静态代码分析和手动检查的组合来检测代码库中的代码气味,从而发现AntiPatterns;以及(ii)如何使用AntiPatterns来识别、描述和修复软件中的问题。这些经验来自一家私营公司及其长期的软件产品开发工作。
2021-03-21 cs.SE
Automated Detection of Inter-Language Design Smells in Multi-Language Deep Learning Frameworks
本研究提出并实现了七种跨语言设计缺陷的自动检测方法,开发了CPSMELL工具,在五个主流多语言深度学习框架中达到98.17%的准确率,揭示了此类缺陷的普遍性及演进趋势。
2024-12-16 cs.SE
Detecting Requirements Smells With Deep Learning: Experiences, Challenges and Future Work
University of Stuttgart(斯图加特大学)
需求工程(RE)是构建软件系统的第一步。软件项目的成功或失败与此阶段紧密相关,基于涉众之间使用自然语言的沟通。自然语言的问题是,如果相关利益相关者没有精确表达,它很容易导致不同的理解,从而导致构建与预期不同的产品。以前的工作提出了提高质量的软件需求检测语言错误的基础上ISO 29148要求的语言标准。现有的解决方案应用经典的自然语言处理(NLP)来检测它们。NLP有一些局限性,如领域的可靠性,导致泛化能力差。因此,这项工作旨在通过创建手动标记的数据集并使用集成学习,深度学习(DL)以及词嵌入和迁移学习等技术来改进以前的工作,以克服与经典NLP相关的泛化问题,并使用手动标记的数据集提高精度和召回率指标。目前的研究结果表明,数据集是不平衡的,哪些类的例子应该增加。即使数据集不具有很大的代表性,训练算法也是很有吸引力的。因此,结果表明模型是过拟合的;在机器学习中,通过向数据集添加更多的实例,提高标签质量,去除噪声和降低学习算法复杂度来解决这个问题,这是本研究计划的。
2021-08-06 cs.LG cs.SE
Fixing Dockerfile Smells: An Empirical Study
背景容器化技术在DevOps工作流中被广泛采用。最常用的是Docker,它要求开发人员定义一个规范文件(Dockerfile)来构建用于创建容器的镜像。编写Dockerfiles有几个最佳实践规则,但开发人员并不总是遵循它们。违反这种做法,称为Dockerfile气味,可能会对Docker映像的可靠性和性能产生负面影响。之前的研究表明,Dockerfile气味广泛传播,并且缺乏支持开发人员修复它们的自动工具。然而,目前还不清楚开发人员修复了Dockerfile的哪些气味,以及开发人员愿意在多大程度上首先修复气味。Objective.我们的探索性研究有两个目的。首先,我们想了解Dockerfiles的气味受到开发人员的更多关注,即,在开源项目的历史上更频繁地被修复。其次,我们想检查开发人员是否愿意接受旨在修复Dockerfile气味的更改(例如,由自动化工具生成),以了解他们是否关心他们。法在研究的第一部分中,我们将在由940万个独特的Dockerfiles组成的最先进的数据集上评估Dockerfile气味的生存能力。我们依靠最先进的工具(hadolint)来检测Dockerfile的气味在Dockerfiles的演变过程中消失,我们将手动分析大量此类案例,以了解开发人员是否修复了它们,以及他们是否意识到了气味。在第二部分中,我们将在一组GitHub项目中检测有异味的Dockerfi…
2022-08-19 cs.SE
CloudScent: a model for code smell analysis in open-source cloud
针对开源云代码质量受重视不足、缺乏针对性代码坏味检测工具的问题,本文提出开源检测模型CloudScent,经OpenStack环境实验验证可准确检测8种云环境代码坏味,助力云服务商及时重构以提升代码质量。
2023-07-22 cs.DC cs.SE
On the Feasibility of Transfer-learning Code Smells using Deep Learning
本文研究仅用标记化源代码训练深度学习模型检测代码坏味的可行性,并验证从C#到Java的迁移学习效果,发现实现坏味检测可通过迁移学习达到与直接学习相当的性能。
2019-09-16 cs.SE
Insights from the Field: Exploring Students' Perspectives on Bad Unit Testing Practices
本文通过让三所高校184名学生使用IDE插件自动检测测试异味,考察其对不良单元测试实践的认知及插件效果,为优化测试教学和代码评审提供依据。
2024-04-15 cs.SE
Towards Automated Detection of Inline Code Comment Smells
本文通过增强已标注行内注释数据集,比较七种ML模型与GPT 4的注释坏味分类性能,Random Forest以69%准确率和0.44 MCC建立基线。
2025-08-29 cs.SE
FedCSD: A Federated Learning Based Approach for Code-Smell Detection
Center for Applied Intelligent Systems Research(应用智能系统研究中心);School of Information Technology(信息技术学院);Halmstad University(哈尔姆斯塔德大学);Prince Abdullah bin Ghazi Faculty of Information and Communication Technology(阿卜杜拉·本·加齐王子信息与通信技术学院);Al-Balqa Applied University(巴尔卡应用大学);Internet of Things and People Research Center(物联网与人研究中心);Malmö University(马尔默大学);Department of Computer Science(计算机科学系);Blekinge Institute of Technology(布莱金厄理工学院);Institute of Computer Science(计算机科学研究所);Delta Research Centre(德尔塔研究中心);University of Tartu(塔尔图大学);SeSa Lab(SeSa实验室);University of Salerno(萨勒诺大学);Arab American University(阿拉伯美国大学)
本文提出FedCSD方法,通过联邦学习在保护数据隐私的前提下协作训练代码坏味检测模型,实验表明其全局模型准确率接近集中式训练且能避免技术债务。
2024-03-26 cs.AI cs.LG cs.SE
Detecting Missing Method Calls as Violations of the Majority Rule
针对面向对象框架使用中易遗漏必要方法调用的问题,提出基于多数规则的检测系统,通过相似代码段的调用情况判断缺失调用,可发现更多缺失调用及多种代码坏味道。
2013-06-04 cs.SE
Does Python Smell Like Java? Tool Support for Design Defect Discovery in Python
这项工作的背景是规范,检测和最终删除源代码中与软件设计和实现中的缺陷相关的可检测有害模式。特别是,我们调查了五个代码气味和四个以前在论文和书籍中定义的反模式。我们的调查是关于检测那些在Python程序设计语言编写的源代码,这是从所有以前的研究,其中大部分涉及Java或C类语言有很大的不同。我们的方法是软件工程师的方法:我们处理了关于这个主题的现有研究文献,提取了九个设计缺陷的抽象定义及其具体的实现规范,在我们编写的工具中实现了它们,并将其释放在从数千个GitHub项目的开源代码中获得的巨大测试集上。当涉及到知识时,我们发现Python中被认为太长的方法是Java中的两倍多(从统计学上看,比同一项目中的相邻方法要长得多),但在Python代码中发现长参数列表的可能性是Java代码的七倍。我们还发现,函数分解(Functional Decomposition)在Java中的定义方式,在Python代码中根本找不到,意大利面条代码和上帝类也非常罕见。这些结果的基础和信心来自于我们在32'058'823行Python代码上进行的实验,这是迄今为止免费提供的Python解析器的最大测试集。我们还设计了这样一种方式,它与以前的研究在Java中的设计缺陷检测,以方便比较,如果我们把我们自己的行动作为一个复制对齐的实验。因此,这项工作的重要性在于它独特的、最高质量的开放式Python语法,经过数百…
2017-03-31 cs.PL cs.SE
Human-AI Collaboration in Requirements Engineering: Evidence of the Negative Effect of LLMs on Requirements Inspection
CNR–ISTI, Pisa, Italy(意大利比萨国家研究委员会信息与通信技术研究所);Chalmers University of Technology, Gothenburg, Sweden(瑞典哥德堡查尔姆斯理工大学);Monash University, Melbourne, Australia(澳大利亚墨尔本蒙纳士大学);University of Florence, Florence, Italy(意大利佛罗伦萨大学);University of Duisburg-Essen(德国杜伊斯堡-埃森大学);Trinity College Dublin, Dublin, Ireland(爱尔兰都柏林三一学院)
该研究通过控制交叉实验发现,大语言模型(LLM)支持会降低新手需求检查员的气味检测准确率,且先使用LLM学习需求检查会减缓技能获取。
2026-08-24 cs.SE
TS-Detector : Detecting Feature Toggle Usage Patterns
本文提出TS-Detector工具,用于在多个开源项目中检测五种特性开关使用模式,并通过人工评估验证了其检测效果。
2025-05-08 cs.SE
Challenges of Processing Data Clumps within Plugin Architectures of Integrated Development Environment
针对集成开发环境处理数据泥团的局限,研究提出将数据泥团检测与源码访问分离的新方法并开发命令行界面插件,验证了模块化算法效能,为多环境下提升代码质量与项目管理效率提供方案。
2024-03-06 cs.SE
A Prototype VS Code Extension to Improve Web Accessible Development
本文提出一个集成LLM的VS Code插件,在IDE内帮助开发者检测并修复Web无障碍问题,实验表明其修复有效但通用提示的错误检测准确性有限。
2025-03-12 cs.SE
RepliComment: Identifying Clones in Code Comments
代码注释是记录实现和促进程序理解的主要手段。因此,它们的质量应该是改进程序维护的主要关注点。虽然很多工作都致力于检测不良气味,如代码中的克隆,但很少有工作集中在注释上。在本文中,我们提出了我们的解决方案来检测开发人员应该修复的评论中的克隆。<$Comment可以自动分析Java项目并报告注释中的复制粘贴错误实例,并可以向开发人员指出应该修复哪些注释。此外,当克隆是写得不好的评论的迹象时,它可以报告。开发人员也应该修复这些实例,以提高代码文档的质量。我们对10个著名的开源Java项目进行了评估,发现了超过11000个注释克隆实例,其中超过1,300个是潜在的关键。我们改进了我们自己以前的工作,在同一个数据集中只能找到36个问题。我们对<$Comment报告的412个问题进行了手动检查,结果显示它在报告关键评论克隆方面的准确率为79%。手动检查200个额外的评论克隆,<$Comment过滤出合法的,不能证明任何假阴性。
2021-08-25 cs.SE
Helping LLMs Improve Code Generation Using Feedback from Testing and Static Analysis
本文提出利用测试和静态分析评估和指导通用开源LLM生成代码的质量及自我改进,发现生成代码常存在错误和安全问题,但提供反馈后能有效修复代码缺陷。
2025-01-07 cs.AI cs.SE