This paper provides a survey of the emerging area of Large Language Models (LLMs) for Software Engineering (SE). It also sets out open research challenges for the application of LLMs to technical problems faced by software engineers. LLMs' emergent properties bring novelty and creativity with applications right across the spectrum of Software Engineering activities including coding, design, requirements, repair, refactoring, performance improvement, documentation and analytics. However, these very same emergent properties also pose significant technical challenges; we need techniques that can reliably weed out incorrect solutions, such as hallucinations. Our survey reveals the pivotal role that hybrid techniques (traditional SE plus LLMs) have to play in the development and deployment of reliable, efficient and effective LLM-based SE.
翻译:本文对大型语言模型(LLMs)在软件工程(SE)领域的新兴应用进行了综述,并阐述了将LLMs应用于软件工程师面临的技术问题时所面临的开放研究挑战。LLMs的涌现特性带来创新性与创造力,可广泛应用于软件工程活动的全谱系,包括编码、设计、需求分析、修复、重构、性能优化、文档编写与分析。然而,这些相同的涌现特性也带来了显著的技术挑战:我们需要能够可靠地剔除错误解(如幻觉)的技术。本综述揭示了混合技术(传统软件工程与LLMs相结合)在开发和部署基于LLMs的可靠、高效且有效的软件工程工具中所发挥的关键作用。