Many researchers have dealt with Human-Computer Interaction or Human-Machine Interaction by building or designing software architectures that facilitate the users’ interaction or recognize users’ inputs to the generate proper responses. Many studies include these approaches in different research areas: from research in healthcare to mobile environments, robotics, etc. Interaction is seen as a critical concept, and the work for its improvement is a crucial factor for many platforms, systems, and business domains. The goal of this manuscript is to present a systematic review of the literature to identify, analyze and classify the published approaches to support or enhance Human-Computer Interaction or Human-Machine Interaction from the perspective of software architectures. The method followed is the systematic review following the guidelines related to Systematic Literature Reviews methods such as the one proposed by Kitchenham and other authors in the field of software engineering. As results, this study identified 39 papers that included software architectures to improve or analyze Human-Computer Interaction or Human-Machine Interaction. Three main approaches were found on software architectures: layered architectures, modular architectures, and architectures based on software agents, but they lacked standardization and were mainly ad-hoc solutions. The primary interfaces covered were those related to Graphical User Interfaces (GUIs) and multimodal/natural ones. The primary application domain detected were in multimodal systems. The main purpose of most of the papers was to support multimodal interaction. Some conclusions achieved are that the generic solutions to support or analyze HCI/HMI processes are still rare in the literature. Despite many works dealing with this topic and its issues and challenges, it is necessary to keep on improving the research in this area through the application of standard techniques and solutions, exploring new ways of analyzing and interpreting interaction, escaping from ad-hoc solutions or evaluating the solutions proposed.