  Robots are being applied in a vast range of fields, leading researchers and
practitioners to write tasks more complex than in the past. The robot software
complexity increases the difficulty of engineering the robot's software
components with quality requirements. Researchers and practitioners have
applied software engineering (SE) approaches and robotic domains to address
this issue in the last two decades. This study aims to identify, classify and
evaluate the current state-of-the-art Software Engineering for Robotic Systems
(SERS). We systematically selected and analyzed 50 primary studies extracted
from an automated search on Scopus digital library and manual search on the two
editions of the RoSE workshop. We present three main contributions. Firstly, we
provide an analysis from three following perspectives: demographics of
publication, SE areas applied in robotics domains, and RSE findings. Secondly,
we show a catalogue of research studies that apply software engineering
techniques in the robotic domain, classified with the SWEBOK guide. We have
identified 5 of 15 software engineering areas from the SWEBOK guide applied
explicitly in robotic domains. The majority of the studies focused on the
development phase (design, models and methods and construction). Testing and
quality software areas have little coverage in SERS. Finally, we identify
research opportunities and gaps in software engineering for robotic systems for
future studies.
