Keywords

1 Introduction

In recent years software architecture implementation has become an essential point for the construction of systems because it provides a solid foundation on which software can be built. Software architecture “plays a key role as a bridge between needs and execution. By providing an abstract description of a system, architecture exposes certain properties while hiding others” [1].

This work implements a Systematic Mapping, a method that does not aim to answer a specific question, but rather collects, describes and catalogues the available evidence related to a topic of interest [2]. There are several methods for research such as:

  • Systematic Mapping Review: Provides an overview of a research area, and identifies the quantity, type of research and results available [3].

  • Systematic Literature Review: A form of secondary study that uses a well-defined methodology to identify, analyze and interpret all available evidence related to a specific research question in a way that is unbiased and repeatable [4].

  • Systematic Mapping Study: This is based on a broad review of primary studies in a specific topic that aims to identify what evidence is available on the topic [4].

2 Related Works

There are several studies that implement Systematic Mapping Study in different areas; however, SMS studies specifically in software architecture are limited. Below are some articles that study previously mentioned topics, but the context is different from that presented in this paper. It is worth stressing that none of these articles focuses on the study of architectural trends in a specific geographical space.

Li applies SMS to collect data from scientific articles related to software architecture and to identify in which types of architecture activities knowledge-based approaches are employed [5].

Liang implements SMS to SMS to evaluate articles that implement agile methodologies and software architecture in their studies. This article provides an extensive overview of several aspects such as practices, methods, benefits and costs of combining architecture and agile methodologies [6].

Tofan provides a systematic overview to determine the approach to architectural decisions, this document aims to analyze past work and future plans through studies published between 2002 and 2012 in different virtual libraries [7].

The articles mentioned above were used as a guide to analyze the application of SMS in each of the works, although the implementation of SMS in software architecture is different. Whilst the implementation of software architecture is mentioned in general, no specific type of architecture is named.

In this paper, the main objective of SMS’s implementation is to present what types of software architectures are used by authors in articles implemented in Latin America. We could not find papers in which the location is a parameter of study; therefore it is not possible to make a comparison of specific results.

3 Research Methodology

This work is based on the systematic mapping process proposed by Paternoster [8] in 2014 as an adaptation of the diagram published by Petersen [9] in 2007.

According to the article published by Kai Petersen [9], Systematic Mapping Study has been recommended for studies related to software engineering. This methodology provides a process to obtain research reports and results through mapping of scientific papers [9]. Systematic Mapping Process presented by Paternoster [8] includes two more stages (rigor and relevance, synthesis) that were considered essential for the development of this research (Fig. 1).

Fig. 1.
figure 1

Systematic Mapping Process [8]

3.1 Definition of Research Questions

Systematic Mapping Study (SMS) application aims to analyze the type of architectural methods used in software projects in Latin America. The following questions were asked in order to achieve this objective (Table 1).

Table 1. Definition of search questions

3.2 Conduct Search

Keywords used for article search were based on different virtual libraries results; the search string established in this study was (“software architecture” AND “Latin America”) because it presented more precise results related to the research topic. In addition, the search string was modified according to the established structure of each virtual library.

The search strings (“computing architecture” AND “Latin America”) (“agile architecture”) AND “Latin America” were tested but the results were too large and vague.

In addition, when searching with these strings in IEEE Xplore virtual library, most of the articles found contained topics related only to “Latin America” but without any relation to the main search string “computing architecture” or “agile architecture”. For this reason, these strings were not considered although the results were higher than those of the other virtual libraries, they were inaccurate and inconsistent (Table 2).

Table 2. Keywords for searching in virtual libraries

This search string selection is due to the fact that there are not many academic articles that expose the topic of software architecture, unlike topics such as agile architecture and computing architecture that have been analyzed and presented by several authors. In this study, the use of article search tools was not necessary because the number of documents was minimal and the selection of documents could be done manually.

3.3 Screening of Relevant Papers

From 41 articles found (Table 2), 10 articles contained topics related to software architecture in Latin America. Several aspects of inclusion and exclusion (Table 3) were used into account in order to choose the appropriate articles. Once the articles were selected, we made a classification by language: Spanish, English and Portuguese (Table 4). It should be noted that language was not a point of exclusion in this paper as well as publication’s year, however; it is worth mentioning that papers found were published between 2006 and 2017.

Table 3. Criteria for inclusion and exclusion of articles
Table 4. Classification by language

3.4 Keywording

This step is based on the classification scheme process (Fig. 2) used in Petersen’s [9] research, this process starts with abstracts reading and a filter to select keywords to be able to structure the classification scheme.

Fig. 2.
figure 2

Classification scheme steps [9]

The steps are detailed below:

  • Abstract

    From 10 articles selected a reading of each abstract was made, if it was related to the research it was included in the selected articles list. In some cases abstract was not comprehensible so was read the content of the article and if it was related to the topic of interest then it was included in the list, otherwise it was eliminated from the options. In this filter 10 articles were related to the research topic, for this reason none were discarded.

  • Keywording

    The aim of this stage is to find words in common between all the articles. Ten scientific articles were classified by language and divided into three groups according to the language of each article. (Table 4).

    With ATLAS TI tool was made a ‘word cloud’ of each group of articles previously classified by languages getting a number of words for each group (Table 5).

    Table 5. Number of words per language

In this step three filters were made and will be explained below:

  • First filter

    From 8673 words found among all the articles, was performed an elimination filter by articles, pronouns and words without relevance to the research topic. In Spanish language group, 4 documents were evaluated, so words with fewer than 4 repetitions in the ‘word cloud’ list were removed from this filter because the word was less likely to have at least one repetition in each article.

    Groups of documents with Portuguese and English language, words with less than 3 repetitions were eliminated due to the fact that 3 documents were evaluated in each of the groups. At the end of this filter was obtained 3 lists corresponding to the groups established above.

  • Second filter

    A base list of common words related to software architecture was made with the Spanish language word group, as this group contains more documents; this list was compared with the other documents of the corresponding language groups.

    In total, 51 words were left that were considered the most optimal. It should be noted that these words were not consistent in all the articles.

  • Third filter

    This filter consisted on discarding words that were not coincidental in all the articles. The result is a list of 10 words that are repeated at least once in each article, including the number of repetitions of each word in each of the articles classified by language.

When performing these filters the final list of words represents the keywords among all the documents evaluated. Table 6 shows the words that had been sorted according to the order of appearance in all the articles, with the word ‘software’ being the top of the list and the most frequently repeated in all documents.

Table 6. Word Filtering
  • Classification schema

Because of the matching words in all the articles were only 10. Classification scheme consisted in some cases on joining words to create sentences and in others only words that were considered important were chosen and searched in all the articles to find matches.

Table 7 shows the phrases with matches that were found, as well as key phrases for each of the items that do not necessarily have repetitions.

Table 7. Classification scheme

In some cases the written word was not found explicitly but the content referred to one of the phrases, so they were included in the table.

3.5 Data Extraction and Mapping

Table 7 was considered as the basis for various classifications and data extraction. Three types of classifications were made, which will be detailed as follows:

  • Classification by type

  • Platforms: OCW, Web Environments.

  • Architectures: MDA, Reference Architecture, Layered Architecture, CC Architecture, MVC Architecture, Client/Server Architecture and Architecture for ‘Situation Awareness’.

  • Characteristics: Product quality, Architectural anomalies, Reuse of products, Reuse of architectural components, Abstraction level and internal variability.

  • Tools: Mobile device.

  • Attributes: Development time reduction, Reusability, Interoperability, Usability, Portability and Accessibility.

  • Systems: Software product line, Architectural evolutionary systems, Mobile distributed systems and Ubiquitous computing.

  • Standard: ISO/IEC/IEEE 12207.

  • Processes: Software lifecycle, Semantic Web.

  • Languages: Visual declarative language FVS.

  • Technology: Cloud Computing, Cloud Instances.

The types chosen group certain general characteristics that in some way encompass their uses and operations, as can be seen in the illustration (Fig. 3) each of the types has specified the number of elements it contains.

Fig. 3.
figure 3

Classification by type

The platforms group together web environments and Open Course Ware that are mentioned in certain articles.

There are architectures that are used and some articles may even use several architectures at once, but for the case of the classification scheme the most important ones have been taken from each article and listed.

Characteristics and attributes refer to the expectations that the research aims to achieve, final products or improvements that are managed and tried to obtain, in addition to correcting the inconveniences that appear, different elements that contribute to the objectives of the articles were grouped in tools and systems.

One standard that may have been found relevant to research is ISO/IEC/IEEE 12207 which refers to the life cycle processes of the ISO organization’s software.

In the language grouping we could find the declarative visual language FVS on which one of the scientific articles studied is based.

The technology that could be observed with more relevance is Cloud Computing which is mentioned in some articles.

Finally, a general grouping of the stages, periods and organized works are the processes where software and semantic web life cycles are found.

  • Classification by content

We made a classification of the terms found by sections of the scientific articles. It was divided into 8 sections explained below:

  • Abstract/Objectives

  • Introduction/Development: Two subcategories are derived from this section.

    • Applies

    • Research/Testing/Assessments

  • Conclusions/Results

    • Based on

    • Proposes

  • Related works/Future works

The details observed reveal that categories chosen are based on the parts of a scientific article with the exception of the subcategories listed which were put together to give greater meaning to the classification.

The objective of this classification is search each of the phrases for every article and locate according to the category, if the phrase or word was repeated then it was placed in the category with more repetitions, meaning that a word or phrase could be repeated in several sections of the article however it was placed in the category considered most relevant.

It is necessary to mention that not all articles have the same writing formats with exception of (Abstract, Introduction, and Conclusions) which are parts of an article. For this reason we have unified sections of the articles that we consider to be similar. As can be seen from the graph (Fig. 4), the category with the highest number of words or phrases is “Abstract/Objectives” followed by “Based on”.

Fig. 4.
figure 4

Classification by content

  • Classification by architectures

In this classification the main architectures used in each scientific article were searched, although several articles used different architectures. This classification is only based on the most relevant architectures of each article (Table 8). It was divided into 3 groups (Use, Study and Propose).

Table 8. Classification by architectures

As illustrated in the graph (Fig. 5), 50% of the articles seek to propose their own architecture to provide solutions to various problems, followed by 30% that use architectures that are already known in software development and finally 20% study architectures to evaluate either to develop quality models or to test the selected architecture.

Fig. 5.
figure 5

Classification by architectures

3.6 Rigor and Relevance

Scientific rigor refers to the accuracy of the research approach used, whilst industrial relevance refers to the realism of the research used in the article and if it is representative for professionals.

Table 9 shows a list of criteria with their respective rating headings, these criteria were proposed and described by Ivarsson and Gorschek [20], which were extracted for implementation in this paper.

Table 9. Evaluation criteria for rigor and relevance [20]

After the criteria of rigor and relevance were established, Tables 10 and 11 shows an individual evaluation of each of the scientific articles studied, according to the weighting described previously.

Table 10. Rigor assessment
Table 11. Relevance assessment

Illustration (Fig. 6) compares the final results acquired by the evaluation, making a total sum of partial results for each article. Rigor results are lower compared to those of relevance. According to these results it can be determined that the articles studied have a greater focus on the realism of the research method; however, there is a lack of precision in the applied research approach.

Fig. 6.
figure 6

Comparison of results between rigor and relevance

3.7 Synthesis

According to the data collected and the results analyzed, we answer to the first research questions that motivated this work.

  • RQ1: What types of software architectures are used in Latin America?

According to Table 7 presented as our classification scheme; the architectures that were most used in the scientific articles are: MVC Architecture, Reference Architecture, Layered Architecture, MDA Architecture, and Client/Server Architecture.

Architectures previously mentioned were used in the articles either to use, study, or as a basis for proposing another type of architecture.

It is worth mentioning that the architectures presented were not the only ones mentioned in the articles as shown in Table 8, however, architectures mentioned previously have acquired more relevance in their respective studies, besides, are already known in software development.

  • RQ2: What is the main objective for the implementation of software architecture?

Illustration (Fig. 3) shows a classification by type in which there are two groups that present the greatest number of elements, these groups are:

  • Attributes: in this group there are elements that stand out as quality attributes, among which are evident: reduction of development time, reusability, interoperability, usability, portability, accessibility.

  • Characteristics: this group refers to elements that were mentioned in the articles such as: product quality, architectural anomalies, product reuse, reuse of architectural components, level of abstraction, internal variability.

A study of the two previously presented groups determined that the scientific articles focus on the quality attributes because the elements that appear in this group are the most mentioned in the articles and the ones that have more repetitions in the studies as shown in Table 7.

Therefore, according to the results obtained, the main reason why authors implement software architecture in their studies is to develop, implement or study a system that complies with one of these qualities. The attributes are mentioned in 6 of the 10 articles studied.

  • RQ3: What is the most used architectural trend?

‘Layered Architecture’ is the most commonly used in scientific articles according to Illustration 4 to be researched, evaluated, and tested or as a basis for proposing a new architecture.

‘Reference Architecture’ is also in the higher range of architectures as show in il-lustration (Fig. 4), however, in one of the articles it is only briefly mentioned for this reason it was not considered as one of the most relevant architectures used.

Therefore, it is evident that the architectural trend most used in the scientific articles developed is the ‘Layered architecture’, being considered as the preferred architecture for researches in Latin America.

4 Conclusions

Software architecture has become a focal point for carrying out work concerning the development or study of computer systems that has had a growing impact in recent years in Latin America. As it was demonstrated in this paper there are a great variety of software architectures that have been applied, studied or proposed for different projects, however, according to the data collection 50% of the articles propose software architectures while 30% use and 20% study architectures already known in the technological field.

‘Layered Architecture’ was determined as a trend from the results obtained, in the articles that study or use this architecture, abstraction level and reduction in development time stand out as common characteristics.

Systematic study carried out served as a starting point for a more specific understanding of the software architectures used in Latin America, the different preferences, the most used and the most stable ones for users, so that we can statistically agree on the trends that could be related to future work.

The results of the study carried out in this work reflect the scarcity of articles referring to software architecture that have been published in Latin America, as can be seen only 10 articles were found which are divided into three different languages this shows that the number of articles that were studied is reduced compared to other studies that implement SMS.