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)在软件工程领域这一新兴研究方向,同时阐述了将LLMs应用于软件工程师所面临技术问题时的开放研究挑战。LLMs的涌现特性为编码、设计、需求分析、修复、重构、性能优化、文档编写和数据分析等软件工程全生命周期活动带来了创新性与创造力。然而,这些涌现特性也引发了重大技术挑战——我们需要能够可靠剔除幻觉等错误方案的技术手段。本综述揭示了混合技术(传统软件工程与LLMs结合)在开发部署可靠、高效且有效的基于LLM的软件工程中发挥的关键作用。