An Empirical Study on Usage and Perceptions of LLMs in a Software Engineering Project

📄 arXiv: 2401.16186v1 📥 PDF

作者: Sanka Rasnayaka, Guanlin Wang, Ridwan Shariffdeen, Ganesh Neelakanta Iyer

分类: cs.SE, cs.AI

发布日期: 2024-01-29

备注: 8 pages, 6 figures, accepted for publication at the LLM4Code workshop @ ICSE 2024


💡 一句话要点

探讨大型语言模型在软件工程项目中的应用与认知

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大型语言模型 软件工程 人机协作 教育技术 代码生成 学生体验

📋 核心要点

  1. 现有的学术课程通常禁止使用LLMs,限制了学生在软件开发中的创新与效率提升。
  2. 本研究鼓励学生将LLMs整合进开发工具链,探索其在软件工程项目中的实际应用与效果。
  3. 研究发现LLMs在生成基础代码和调试方面具有显著作用,为学生的学习与实践提供了新的视角。

📝 摘要(中文)

大型语言模型(LLMs)在人工智能领域代表了一次飞跃,尤其在处理人类语言任务方面表现出色。尽管通用LLMs并非专门为代码生成设计,但在这一领域的潜力逐渐显现。本研究针对214名学生的学术软件工程项目进行了探索,鼓励学生将LLMs整合进开发工具链。我们分析了AI生成的代码、代码生成的提示以及人类干预的程度,并进行了感知研究,以了解计算机科学学生对LLMs的看法。研究结果表明,LLMs在软件开发早期阶段尤其在生成基础代码结构和帮助语法及错误调试方面具有重要作用,为软件工程学生的生产力提升提供了框架,并强调了教育应向人机协作的成功准备转变的必要性。

🔬 方法详解

问题定义:本研究旨在探讨大型语言模型在学术软件工程项目中的实际应用,尤其是其在代码生成和调试中的有效性。现有方法往往忽视了LLMs在教育中的潜力,限制了学生的学习体验。

核心思路:通过鼓励学生在项目中使用LLMs,研究其对软件开发过程的影响,分析AI生成代码的有效性及其与人类干预的关系。

技术框架:研究分为几个主要模块:首先,收集学生使用LLMs生成的代码及其提示;其次,分析代码的有效性和集成过程中的人类干预;最后,进行感知研究以了解学生对LLMs的看法。

关键创新:本研究的创新之处在于将LLMs的使用引入学术软件工程课程,提供了一个新的视角来理解人机协作的潜力,尤其是在代码生成和调试方面的应用。

关键设计:研究中使用了定量和定性分析相结合的方法,重点关注生成代码的质量、学生的使用体验以及对LLMs未来应用的看法。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果显示,LLMs在软件开发早期阶段能够显著提高代码生成的效率,尤其是在基础代码结构的生成和错误调试方面。学生们普遍认为LLMs的使用提升了他们的学习体验和项目成果,表明了LLMs在教育中的应用潜力。

🎯 应用场景

该研究的潜在应用领域包括教育、软件开发和人机协作等。通过有效利用LLMs,学生可以在软件工程项目中提升生产力,培养与AI协作的能力,为未来的职业生涯打下基础。此外,这一研究为教育机构在课程设计中融入AI技术提供了参考。

📄 摘要(原文)

Large Language Models (LLMs) represent a leap in artificial intelligence, excelling in tasks using human language(s). Although the main focus of general-purpose LLMs is not code generation, they have shown promising results in the domain. However, the usefulness of LLMs in an academic software engineering project has not been fully explored yet. In this study, we explore the usefulness of LLMs for 214 students working in teams consisting of up to six members. Notably, in the academic course through which this study is conducted, students were encouraged to integrate LLMs into their development tool-chain, in contrast to most other academic courses that explicitly prohibit the use of LLMs. In this paper, we analyze the AI-generated code, prompts used for code generation, and the human intervention levels to integrate the code into the code base. We also conduct a perception study to gain insights into the perceived usefulness, influencing factors, and future outlook of LLM from a computer science student's perspective. Our findings suggest that LLMs can play a crucial role in the early stages of software development, especially in generating foundational code structures, and helping with syntax and error debugging. These insights provide us with a framework on how to effectively utilize LLMs as a tool to enhance the productivity of software engineering students, and highlight the necessity of shifting the educational focus toward preparing students for successful human-AI collaboration.