Facial Emotion Recognition (FER) software is an important part of modern software applications. It is used for intelligent user interfaces, diagnostics in psychiatry or psychology, human-computer interaction, and even in surveillance. The recent advancements in the use of deep learning, and the advanced architectures based on them, including Convolutional Neural Networks (CNNs) and transformer models have made the development of FER software much efficient and scalable. This review paper contributes to the existing literature by providing a comprehensive synthesis of Facial Emotion Recognition (FER) systems from a software engineering perspective spanning the period from 2015 to the present. Unlike prior surveys, our analysis emphasizes the software engineering perspective, covering aspects such as software architectures, system integration, deployment on edge devices, and MLOps practices for continuous testing and monitoring. It specifically targets software construction, software architecture, software systems integration, training frameworks, datasets employment, and also deployment challenges. It explores common datasets like FER2013, RAF-DB and AffectNet and the prevailing model architectures, which include CNN, Long-Short-Term Memory (LSTM), hybrid and transformers. Importantly, over half of the surveyed studies continue to rely on demographically narrow datasets (e.g., FER2013, JAFFE, CK+), which limits generalizability and raises fairness concerns across ethnicity, age, and gender. This review contributes by providing a comprehensive and up-to-date synthesis of FER systems while providing directions to the development of fair, lightweight, and robust FER systems suitable for real-world deployment.