Federated learning is an emerging machine learning paradigm where multiple clients train models locally to formulate a global model under the coordination of a central server. To identify the state-of-the-art in federated learning from a software engineering perspective, we performed a systematic literature review with the extracted 231 primary studies. The results show that most of the known motivations of federated learning appear to be the most studied federated learning challenges, including data privacy, communication efficiency, and statistical heterogeneity. Also, there are only a few real-world applications of federated learning. More studies are needed before production-level adoption can take place