  An increasingly popular set of techniques adopted by software engineering
(SE) researchers to automate development tasks are those rooted in the concept
of Deep Learning (DL). The popularity of such techniques largely stems from
their automated feature engineering capabilities, which aid in modeling
software artifacts. However, due to the rapid pace at which DL techniques have
been adopted, it is difficult to distill the current successes, failures, and
opportunities of the current research landscape. In an effort to bring clarity
to this crosscutting area of work, from its modern inception to the present,
this paper presents a systematic literature review of research at the
intersection of SE & DL. The review canvases work appearing in the most
prominent SE and DL conferences and journals and spans 128 papers across 23
unique SE tasks. We center our analysis around the components of learning, a
set of principles that govern the application of machine learning techniques
(ML) to a given problem domain, discussing several aspects of the surveyed work
at a granular level. The end result of our analysis is a research roadmap that
both delineates the foundations of DL techniques applied to SE research, and
highlights likely areas of fertile exploration for the future.
