1 Introduction

The systems that retrieve and analyze information from the users’ interaction with software systems are currently a trend topic. Human-Computer Interaction is a research area in continuous development [1], and increasingly important in the current times regarding the arising of topics like Big Data, User Experience (UX), etc. and the strong scope that puts the Business world in the monetization of online systems through improving the HCI related areas and by the creation of a data-driven culture [2, 3] that enables decision-making processes were the users’ interaction is the key point and the users are the main actor [4].

Within the development of the HCI there are many areas involved where researchers could collaborate. Besides those mentioned previously (Big Data, UX, etc.) many authors have proposed complex software systems and software architectures that feature the work with data related to users’ interaction [58]. The application of these works on complex systems and software architectures enables the current advances on different areas like, for example, measuring UX metrics [9], performing data analytics (distributing computation, creating complex data pipelines between different systems, etc.), enabling decision making supported by data visualizations and visual analytics [10, 11], Internet of Things (IoT) processes where users are involved directly [7], Learning and Learning Analytics [1217], sales revenue measuring across different platforms, data-driven marketing using several third-party applications [18], etc. Some of these solutions are intended to interconnect in a better way different existing services and systems in order to enable new ways of collaboration between platforms and software systems [19], empowering sets of applications with a common goal or developing smooth processes in work related with data.

The aim of this paper is to present a Literature Review (LR) on software architectures that support the Human-Computer Interaction (HCI) analysis, emphasizing on discovering how these software architectures work with different kind of HCI analysis approaches (devices and environments where the interaction analysis is performed, etc.), how are designed (using software engineering) and to find out if there is a niche in the reviewed literature related to the application of software architectures that support HCI analysis regarding to eLearning environments.

The following sections Theoretical Background, Literature Review and Conclusions present different relevant aspects about the fundamental theoretical background needed to understand the key points of the software architectures and Human-Computer Interaction fields used in this paper, present the literature review performed (methodology, results, etc.) and some conclusions about the knowledge retrieved from this LR.

2 Theoretical Background

The Software Architectures are not a new thing in Computer Sciences. From the 90’s the work and research about this topic has been a constant, due the need of adapting the concepts, design and foundations to the new challenges that appear continuously with the new trends in Computer Sciences, the new frameworks, the new needs, etc. But, even assuming that the concept is not new, what is a Software Architecture? How can be defined a Software Architecture?

Regarding the literature, there are many authors that have defined and worked about this concept, but can be remarked the definitions provided by Kruchten [20] and by Bass et al. [21]: according to Kruchten, a Software Architecture is “[…] the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization -these elements and their interfaces, their collaborations, and their composition” [20]. On the other hand, Bass et al. provide another simpler definition, where they compress the concept to: “The Software Architecture of a system is the set of structures needed to reason about the system, which comprise the software elements, relations among them, and properties of both” [21].

On the other hand, the Human-Computer Interaction is a process of information transfer between both entities, or in other way, and according to Dix [22] “the Human-Computer Interaction is the study of the way in which computer technology influences human work and activities”. The analysis of how occurs this interaction, give actionable insights to designers and creators of technology about how people utilize and understand the technology, and obviously, give them keys on how improve this relation. According to Dix [22], the foundations of the HCI field are the Usability, Observation and Empirical Data, Design and Methodology, Representation and Analysis and Implementation and User Interface Architecture. In this paper, the foundations of HCI most relevant are the usability, the observation and empirical data and the representation and analysis, because those concepts are the more widely used in the content retrieved within the LR scope. Following are commented:

  • Usability is “the extent to which a product can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use” (ISO 9241–11). The concept is applied from the lowest level the visual layout -the information and controls displayed on a screen and the user immediate behavior- to the higher level that includes social and organizational contexts –people who uses the system, their beliefs and values, and the purpose and constraints of the design-.

  • Observation and Empirical Data where can be featured the main the methods to evaluate and observe the HCI, the laboratory experiments and field studies. The laboratory experiments are where users perform a task or interact under controlled conditions, and the field studies are those performed where users are use technology without controlled conditions (in the workplace, outside, in their homes, etc.) [22].

3 Literature Review

As previously presented, the aim of this Literature Review is to find out how software architectures support the HCI analysis processes, with special attention on the different approaches followed in HCI analysis, how are designed the software architectures and to discover if there is a relationship in the literature with the HCI analysis and eLearning fields (through the application of these software architectures). Following these goals, the LR was conducted by the following questions:

Question 1: What is the current state of the art of software architectures in the field of HCI analysis?

Question 2: Are there trends or mechanisms in software engineering that cover the field of software architectures supporting HCI analysis?

Question 3: Are there a specific trend in the software architectures designed to support HCI analysis related specifically to its application in eLearning?

3.1 Methodology

The literature review presented in this paper is part of a wider literature review centered in the research areas of software architectures. For that reason, authors present in this paper a literature review only of scientific works indexed in the Web of Science and Scopus databases, ensuring that the papers, books and book chapters reviewed are relevant and represent high quality content.

The search was not restricted by time periods, and terms used to perform the literature review were the following:

  • In the Web of Science: TS = (“software architecture” AND (HCI OR “Human-Computer Interaction”) AND analy*)

  • In Scopus: TITLE-ABS-KEY (“software architecture” AND (HCI OR “Human-Computer Interaction”) AND analysis)

The results retrieved from these query terms were 8 documents in the Web of Science and other 55 in the Scopus database, as shows the Fig. 1. These 63 (55 in fact, due 8 documents are coincident in both databases) results were reviewed initially by reading their abstract, and later by reading the full paper; evaluating by this way if the content fitted in the questions posed and building the classification shown in the Table 1 and in the Subsect. 3.3. The spreadsheet available in https://goo.gl/Mq0nmd resumes the filtering done, exposing how were selected or rejected the papers retrieved from the databases regarding to their title, abstract or full text.

Fig. 1.
figure 1

Results of the query - distribution over the time (results excluding coincidences among both databases).

Table 1 Classification of the LR regarding the main common features observed. E – explicit feature, I – implicit feature, U – unavailable feature. Available also in https://goo.gl/3TJvbY

3.2 Results

After the selection of the papers regarding their titles, abstracts or full text, 16 papers [2338] result to be the most relevant for the defined Literature Review purposes. These papers selected papers were published among 1998−2013 (https://goo.gl/Mq0nmd). As follows, the papers analyzed were categorized depending on what questions answer each one.

Q1: What is the current state of the art of software architectures in the field of HCI analysis?

Regarding this question, all the papers [2338] fulfilled a minimal answer, because each one of them provides its point of view of the current state of the art. For example, many of them provide application approaches, explaining the devices and physical contexts that could appear in the HCI analysis, among the different devices and contexts, appear in the review the personal computers, wearables, mobile/smartphones, servers, domotics or robots. On the other hand, there papers that focus its content to certain aspects related to software architectures and HCI analysis process. For example, there are some papers retrieved that feature the contents on the Software Engineering contents related to this kind of software (as explained in the following question), or in the HCI aspects.

Regarding the HCI aspects and the context application of the analysis, there is a broad range: there are papers that present contents on HCI analysis regarding astronauts training (Mackin et al. [23]), in humanoid robots that analyze HCI and react to users and environment (Kato et al. [33]; Fujita et al. [34]), in HCI analysis observing the body and physical reactions of users and not only analyzing the behavior in front the software (Sulzmann et al. [29]; Ardizzone et al. [36]), in HCI related to hardware (Mackin et al. [23]; Biel et al. [25]; Sulzmann et al. [29]; Doswell [32]; Kato et al. [33]; Fujita et al. [34]; Ardizzone et al. [36]) or software elements (Eelke and Jan [24]; Grill and Gruhn [25]; Folmer et al. [26]; Pinheiro et al. [27]; Bouchrika et al. [28]; Juárez-Ramírez et al. [30]; Ko et al. [31]; Doswell [32]; John and Bass [35]; Gundy, et al. [37]; and Bass and John [38]), etc. Also there is a trend among the results in software architectures that support HCI analysis to improve the usability of the software/hardware systems; some papers that cover directly this issue are: Eelke and Jan [24]; Biel et al. [25]; Juárez-Ramírez et al. [30]; or Bass and John [38].

In general the results retrieved provide good insights about the current state of the art in this topic, representing varied application context, approaches, methodologies, and well-balanced distribution of theoretical-practical contents.

Q2: Are there trends or mechanisms in software engineering that cover the field of software architectures supporting HCI analysis?

The papers that answer in any way this question were [2428, 30, 32, 35]. The common issues that cover these papers more related to the software engineering are related to software patterns to model properly the behavior and functionality of the software components (Eelke and Jan [24]; Biel et al. [25]; Folmer et al. [26]; Pinheiro et al. [27]; Bouchrika et al. [28]; Juárez-Ramírez et al. [30]; Doswell [32]; and John and Bass [35]), the correct description of the software architecture system through using UML (Unified Modeling Language) or ADL (Architecture Description Language) [2428, 30, 32, 35]. Also there are references to some trends in software engineering and related areas that can be relevant for the topic apart of those previously described, like the requirements engineering, or even in other papers not selected finally for the final Literature Review, topics like information fusion, visualization of HCI interaction, etc.

Singularly in those paper more focused on software engineering, there is a lack of description about how these components that collaborate to achieve the common goal of the software architecture communicate between them: there are only 3 papers that explain it (Mackin et al. [23]; Bouchrika et al. [28]; and Sulzmann et al. [29]). Also authors find lacks in descripting the technologies used in those papers that present practical test of the architectures, as well as a serious lack describing or using standards in the software architectures description or designing.

Q3: Are there a specific trend in the software architectures designed to support HCI analysis related specifically to its application in eLearning?

The unique paper resultant of the search performed in the Literature Review scope that answer this question (at least in a partial way) was the paper [32] written by Doswell. In this paper, Doswell present a software architecture that includes communication with wearable and mobile devices in order to measure the HCI regarding to eLearning processes and how it could be used in the future to find out engagement, etc. However, the paper do not deepen in features like standards (in any aspect) or in formal specifications. There is another paper [33], written by Kato et al., that points out implicitly a possible use of humanoid robots in physical learning processes, but only as an possibility of use, with no concretion.

Despite of that, authors consider that there are many key points, features and approaches presented in the papers that could serve to develop software architectures that help learning processes through the analysis of HCI in the context of students’ interaction with eLearning systems and contents.

3.3 Analysis and Discussion

In order to summarize the main features retrieved from the software architecture, HCI analysis processes and eLearning properties of each paper retrieved during the Literature Review, authors have built a category classification (presented in Table 1 or available online in https://goo.gl/3TJvbY) with the common properties observed (24):

  1. 1.

    Physical context /devices (included in the analysis)

    1. (a)

      Personal computers

    2. (b)

      Wearables

    3. (c)

      Mobile/smartphones

    4. (d)

      Servers

    5. (e)

      Domotics

    6. (f)

      Robots

  2. 2.

    Software Engineering specifications

    1. (g)

      Components’ communication: details on how the software architecture components communicate among them, etc. (strategies, format, standards).

    2. (h)

      Information collectors: details on how the system collects the information about HCI processes.

    3. (i)

      Architecture diagrams (ADL, UML, etc.)

    4. (j)

      Design details (patterns, use cases, etc.)

    5. (k)

      Technologies, languages: description about the software/hardware properties, the technologies, frameworks or languages used.

    6. (l)

      Standards: is the architecture presented based on standards?

  3. 3.

    Human-Computer Interaction specifications

    1. (m)

      Measurement process description

    2. (n)

      React to users’ interaction: is the HCI analysis intended to allow the software architecture reacts to the interaction?

    3. (o)

      Centered on usability: is the HCI analysis presented centered mainly on usability?

    4. (p)

      HCI – software elements: is the HCI analysis based on interaction with software elements?

    5. (q)

      HCI – hardware elements: is the HCI analysis based on interaction with hardware elements?

    6. (r)

      Laboratory experiments: is the HCI analysis performed in a laboratory experiment?

    7. (s)

      Field study: is the HCI analysis performed in a field study?

    8. (t)

      Standards: uses standards in the HCI analysis?

  4. 4.

    Learning

    1. (u)

      Purpose of analysis: the paper describes the learning purpose/goals/intentions of the HCI analysis?

    2. (v)

      Standards: are involved eLearning standards in HCI analysis or in the software architecture?

    3. (w)

      Potential users: it describes the potential users/beneficiaries of the HCI analysis related to eLearning?

    4. (x)

      Mobile learning: is the eLearning application of the HCI analysis related to mobile learning?

In the Table 1 can be observed how each of the items and categories described is included or not in the content: E (explicit) the item is mentioned or commented explicitly in the document, I (implicit) the item is implicit in the contents analyzed, U (unavailable) the item is not mentioned in any way.

Regarding the Table 1 and the results presented before, it is clear that the software architectures that support HCI analysis is not the most popular subject in the Web of Science and Scopus databases, i.e. the same search terms without “analysis” provides 38 results in the Web of Science instead of 8. Although could be possible that the term “analysis” restrict so much the search, and trying with other search terms related to the same topics could lead researchers to get better outcomes.

Despite of the number of papers that fit outstandingly the goal planned for this Literature Review, is clear that the software architectures can have a determinant role in HCI analysis processes, due their design can improve significantly the measurement, analysis and feedback of the interaction. Also is clear, that many approaches presented in the papers reviewed suffer a lack of rigor regarding standards, proper specifications of goals, designs and methodologies, as well as not much of them present real cases tested with real users in real contexts.

Regarding the results, also is significant that only one paper focuses its research on software architectures and HCI analysis on the application of these approaches to the eLearning field; authors agree on this kind of software systems can help to develop new complex systems that comprise several applications and systems (conforming true learning ecosystems) where different applications, systems, devices and methods benefit learners by working together in a proper way to help and improve the learning process.

Despite of these considerations, can be a real opportunity of improvement, authors believe that could exist a niche in publications regarding to software architectures, HCI processes analysis (and, of course, its application to eLearning processes); today, the research on software architectures, decentralized or complex systems and ecosystems represent the future in several fields, where there is a need of tools, systems and applications working together to achieve more complex goals than current ones.

4 Conclusions

This paper presents a Literature Review on software architectures that support Human-Computer Interaction analysis. In the final phase of the LR have been fully reviewed 15 software architectures proposals, analyzing if them answer one of the 3 research questions proposed (What is the current state of the art of software architectures in the field of HCI analysis?; Are there trends or mechanisms in software engineering that cover the field of software architectures supporting HCI analysis?; Are there a specific trend in the software architectures designed to support HCI analysis related specifically to its application in eLearning?) and classifying them according to 24 features proposed by the authors due their common use in this research area and topics. Regarding the results of the LR, there are some key points that can be featured:

  • According to the results retrieved from the search in the Web of Science and Scopus database, there are not a lot of content related to the subject of this paper, or at least, not categorized in the same way paper does. This could represent an opportunity in publishing in this research area.

  • Authors consider that could be a niche for publication is in the context of software architecture and HCI analysis and its application in eLearning contexts; only one paper deals with this issue of those retrieved. Despite this low number, has been observed that many of the software architectures and approaches reviewed have principles that could be applied to improve eLearning.

  • There are some trends in software engineering proper for this kind of software architectures, but they are not massively used in the papers reviewed. Authors remarked lacks on the papers about specific content on standards, communication protocols and strategies among software components, or in describing the specific technologies and technical details of those architectures presented that have been tested in real experiments. These considerations also could be applied to the HCI topics presented in the papers, authors find out that there is not enough content on how the experiments were conducted, what standards were followed, etc. and there are many issues and approaches that can be improved in further research.

Authors assume that in some cases the research that cover all of these areas are an unexplored territory, and there are some papers that begin to cover them, but there is an opportunity for further research that could lead to improve the future complex systems, ecosystems and sets of varied applications that work for common goals.