  Large Language Models (LLMs) have significantly impacted numerous domains,
including Software Engineering (SE). Many recent publications have explored
LLMs applied to various SE tasks. Nevertheless, a comprehensive understanding
of the application, effects, and possible limitations of LLMs on SE is still in
its early stages. To bridge this gap, we conducted a systematic literature
review (SLR) on LLM4SE, with a particular focus on understanding how LLMs can
be exploited to optimize processes and outcomes. We select and analyze 395
research papers from January 2017 to January 2024 to answer four key research
questions (RQs). In RQ1, we categorize different LLMs that have been employed
in SE tasks, characterizing their distinctive features and uses. In RQ2, we
analyze the methods used in data collection, preprocessing, and application,
highlighting the role of well-curated datasets for successful LLM for SE
implementation. RQ3 investigates the strategies employed to optimize and
evaluate the performance of LLMs in SE. Finally, RQ4 examines the specific SE
tasks where LLMs have shown success to date, illustrating their practical
contributions to the field. From the answers to these RQs, we discuss the
current state-of-the-art and trends, identifying gaps in existing research, and
flagging promising areas for future study. Our artifacts are publicly available
at https://github.com/xinyi-hou/LLM4SE_SLR.
