Systematic Review of Methodologies for the Development of Embedded Systems

Embedded systems encompass software and hardware components developed in parallel. These systems have been the focus of interest for many scholars who emphasized development issues related to embedded systems. Moreover, they proposed different approaches for facilitating the development process. The aim of this work is to identify desirable characteristics of existing development methodologies, which provide a good foundation for development of new methodologies. For that purpose, systematic mapping methodology was applied to the area of embedded systems, resulting in a classification scheme, graphically represented by a multilayer conceptual network. Afterwards, the most significant clusters were identified, using the k-means algorithm and the squared Euclidean distance formula. Overall, the results provide guidelines for further research aiming to propose a holistic approach for the development of special case of embedded systems. Keywords—Embedded systems; development; methodology; multilayer conceptual network; cluster analysis; k-means algorithm


I. INTRODUCTION
Embedded systems are systems that encompass software and hardware components. These systems are important due to their wide use in industry, transportation, household, and various specific applications [1]. For development of these heterogeneous systems, standard existing methodologies are not fully applicable, because their phases and activities are oriented only to software or hardware components, or generalpurpose hardware usage is implied. The classic approach for development of these systems is very similar to the waterfall process model where software and hardware components are developed separately [2]. Because of this separation, verification of the system occurs later, which leads to the introduction of late changes, as well as time and financial expenses.
Because of that many scientists begun to address this issue and started proposing different approaches and methodologies for development of these systems, with the aim of unifying software and hardware development processes. In this paper, our aim is to identify the characteristics of the proposed methodologies that are suitable for development of these complex systems and adaptable to the challenges of modern trends. Thus, this paper answers following research questions: To answer these questions, set of relevant articles in the field of embedded systems is reviewed, following systematic mapping methodology steps [3]. Then, the articles are classified based on the following criteria: coverage, type of contribution, thematic focus and implications. Finally, to detect desirable characteristics k-means cluster analysis is conducted, resulting in guidelines for future research.
The focus of authors research are real-time closed-loop control systems, which are considered a special case of embedded systems, comprising real-time close-loop control software, with very specific requirements, firmly tied to specially designed and developed application-specific hardware [1]. RCS Methodology is a development methodology for real-time closed loop control systems that considers software part of the system and implies generalpurpose hardware [4], [5].
Hardware and software co-design (HW/SW Co-design) [6] is the most common methodology or set of techniques that define guidelines for the comparative design of software and hardware components. In these systems, most functionalities can be implemented as software or as hardware. If they are implemented as hardware, the system has a better performance and better efficiency, but if they are implemented as software, the system gains flexibility and supports late changes. It is up to the designer to identify the optimal design, from the whole set of possibilities, for the defined application. This set of all possible designs, until implementation, is known as the design space [7].
As these methodologies don't fully cover the specific requirements of the special case of embedded systems in research focus, analysis of the characteristics of existing approaches and methodologies for the development of embedded systems is conducted with the aim to define backbone of the framework which will sustain the development of other new methodologies.
Research [8] and [9], considered articles from 2008 to 2014. These papers focused on highlighting appropriate tools for system modeling based on requirements. The same authors [10] performed additional systematic literature review where they analyze the use of UML in modeling of embedded systems. The problem of requirements engineering in embedded systems was studied in [11], where articles from 1970 to 2016 were reviewed. The use of special case of these systems, as well as their requirements, were reviewed in [12] and [13].
Authors also found one systematic review of development methodologies, which considers agile concepts and focuses on the time period from 1990 to 2015 [14].
Considering research questions of this paper and experience of the above-mentioned papers which focus on larger time span, this paper reviews the entire set of papers available, taking into account several classification criteria, as described in the following chapter.

A. Systematic Review
First a set of relevant scientific articles needs to be created, focusing on the issues in development process of embedded systems and proposing new or extended approaches to overcome identified problems. For that purpose, Scopus database and Google Scholar service were identified as relevant sources. Preliminary results focused only on the last five years, but this time span was too narrow to get a sufficient number of articles. Therefore, time limit was not applied, i.e., the entire set of articles available in Scopus and Google scholar was considered.
The complexity and importance of the systematic development process of embedded systems, where software modules are directly tied and implemented on hardware modules, have been emphasized by scientists all around the world for quite some time. To create a systematic overview of relevant articles and define the classification scheme, systematic mapping methodology is applied to the field of development of embedded systems. For that purpose, following queries were executed on identified relevant sources: 1) Hardware software digital systems simulation. 2) "Hardware software" specification and design methodology.
On the obtained results for each query exclusion criteria evaluation is performed, excluding patents, citations, books and articles not related to the topic. Assuming that sorting algorithm for identified relevant sources sorts results based on importance, for each defined query only first three results were considered. Additionally, multiple appearances of the same article were counted only once. This resulted in the list of 68 articles. Finally, for each article in the resulting list the abstract, conclusion, title, and (if needed and accessible) the entire content were reviewed. Key words along with important concepts were extracted for identification of coverage, type of contribution, base method, thematic focus and achievement.

B. Classification
Once the set of articles was prepared for analysis, it was classified according to the several criteria. The following criteria (as presented in Table I) was used: coverage criterion, type of contribution criterion, thematic focus criterion and implications criterion. As a result, classification scheme is obtained and graphically represented through multilayer conceptual network.

C. Analysis
Finally, set cluster analysis was performed using the kmeans algorithm. Each article was assigned to the cluster with the nearest centroid, and the distance was determined with the squared Euclidean distance formula. The algorithm follows these steps: 1) Choose a random number of clusters k. 2) Choose random k cluster representatives from the analysis set.
3) For each article, the distance from every cluster representative is calculated.
4) The article is assigned to the cluster with the minimal distance.
5) Cluster representatives are updated so that they coincide with the corresponding centroid.  In the process of implementation of the k-means algorithm, Excel STANDARDIZE, SUMXMY2 and MIN functions were used.

IV. RESULTS
Results gathered in the process described in the Methodology section are shown in Table I. Obtained results give answer to the research question Q1 as they present proposals for improving the development process of embedded systems. These results are further analyzed in accordance with the selected criteria and research questions set in this paper.

1) Coverage criterion: Classification based on the Coverage criterion answers research question Q2.
Articles that consider the system as a whole, were categorized as -embedded system‖ (or E_SY, as noted in the column Coverage in Table I). If the article covered only part of the system, i.e. only software or only hardware, it was categorized either as -embedded software‖ (E_SW) or "embedded hardware‖ (E_HW). The category "special case" (SC) includes articles which cover special cases of hardwaresoftware systems.
2) Type of contribution criterion: According to this criterion, methodologies presented in the observed articles were further classified. In Table I in the column Type of contribution this classification is shown.
Articles that include existing methodologies (HW/SW Codesign, agile, platform-based design (PLB), and prototyping) were subcategorized in these subcategories: extension (of an existing methodology), a new approach (based on an existing methodology). Understandably, if a methodology was recognized as completely new, it does not have subcategories and therefore it is noted as new methodology.

3) Thematic focus criterion:
To answer research question Q4 thematic focus criterion was defined. In this criterion articles were first categorized by coverage criterion and then according to their focus on:  support tools (TOOLS) -programming tools that support the development process, This data is presented in the column Thematic focus of Table I. Graphically, the results are presented in Fig. 3. Fig. 3 shows that of a total of 43 articles that considered the system as a whole, 11 articles (1,2,5,14,17,18,28,33,34,35,40) focused on defining the appropriate set of tools that would support the development process. Four articles (22,46,54,66) dealt with system simulation, and two articles (23,65) focused on the integration of developed software and hardware components. Furthermore, 23 articles dealt with the problem of defining the unique system model, of which 15 articles (6,8,9,13,19,20,29,31,32,49,55,63,64,67,68) considered the whole system, and eight articles (24,25,26,30,36,37,38,48) considered only the hardware part of the system. Additionally, six articles tried to improve the entire development process. Two of them (4,52) followed the development of the whole system, one article (42) proposed improvements by introducing agile methods in the software development process, and three articles (43,44,53) dealt with the hardware development process. Out of 14 articles that tried to optimize the partitioning process for hardware and software components, ten articles (3,10,11,12,21,27,39,41,45,47) considered the whole system, and four articles (57,60,61,62) the hardware part of the system. Finally, eight articles (7,15,16,50,51,56,58,59) tried to solve problems for special cases of these systems.

4) Implications criterion:
According to this criterion articles were categorized by achieved implications and then by thematic focus criterion, to show how these two criteria are correlated. The following implications were identified: 415 | P a g e www.ijacsa.thesai.org  early verification (E_ver) -verification of software and hardware components interaction in the early development stage when the hardware structure is not fully functional,  late changes support (LCS) -due to the heterogeneous structure of the system, changes can be introduced in software or in hardware and since modification of the hardware part of the system is very difficult in the late development stage the goal is to implement the majority of functionalities as software,  application-specific solution (APPSS)-solving problems and requirements of application-specific systems,  framework established (FWE) -defining a set of program tools that support every phase in the development process of these complex systems.
This data is shown in the Achievement column of Table I. The results presented in Fig. 4, give answer to the research question Q5.
14 articles dealt with the problem of system heterogeneity. Of those, five articles (1,2,18,33,34) proposed the introduction of software tools, seven articles focused on system model definition (8,13,19,20,30,63,64), one article (23) proposed improvements in the synthesis phase, and one article (47) examined the partitioning phase. To facilitate the overall development process of these complex systems, seven articles (24,25,26,29,36,37,38) focused on system model definition, one article (39) on the partitioning phase, and one article (5) on defining tools that would support the entire process.
In eight articles, scientists introduced automation of part of the process. Out of these eight, in four articles (3,41,45,60) partitioning was improved by introduction of authors own partitioning algorithms, and in two articles (9,69), the MARTE extension and Web Ontology Language were used to create semantic representations of hardware and software components, from which system model and automatic code were generated, in one article (65), the authors focused on the synthesis phase, and in one article (40), software tools were proposed. Furthermore, eight articles (7,15,16,50,51,56,58,59) were oriented toward solving application-specific problems. With further development of hardware technology, eight articles proposed the introduction of dynamic reconfiguration architecture as the hardware part of the system. Five of these articles (10,11,12,27,62) proposed improvements in the partitioning phase, two articles (48,49) suggested improved system models, and in one article (28), software tools that allowed selection of dynamic reconfiguration architecture, and thus, variability of the hardware part of the system, were used in the design phase. It is very important to test as soon as possible during the development process does the system in development satisfy preset requirements. For that purpose, eight articles proposed approaches that would allow early verification, out of which three articles (6,55,68) focused on improving system model definition, one article (21) on improved system partitioning, and four articles (22,46,54,66) on the introduction of simulators that would allow verification of the system in early stage. Furthermore, five articles (17,35,52,53,61) contributed to the establishment of a framework for supporting each development process phase.
In the hardware part of the system, it is very difficult to introduce changes late in the development process. However, as requests for changes are unavoidable, four articles contributed to the introduction of late changes. Of these articles, one (4) tried to ease the entire development process by introducing general-purpose hardware as the hardware part of the system, and application specifics were defined in the software part of the system that supports late changes. The other two articles (32,30) defined the system model on the platform level, where instances from a higher level of abstraction are mapped on lower levels, and each level of abstraction hides implementation details allowing the designer to make compromises in selecting the required components. In one article (57), late changes were supported with the introduction of modern concepts in partitioning. To enable early integration of system components, in three articles (42,43,44), scientists proposed the introduction of modern agile concepts in the entire development process, and in one article (14), support tools were presented, with which mockups of actual software and hardware components were developed, verified, and validated, using an augmented reality (AR) system. If the design is valid, development begins.
As the criteria for classifying the articles were defined, the relationship between them can now be analyzed. For that purpose, a multilayer conceptual network (Fig. 5) is generated to give a better overview of how the criteria affect each other. There are four layers where a single layer is occupied by values for one defined criterion. The values are represented by blue circles. Two layers can be connected, through their values, only if the layers are adjacent. If a single value appears in more than one connection, frequency increases resulting in larger radius circle representation.

5) Cluster analysis:
Since k-means algorithm is based on determining the distances from the cluster centroids which implies numerical values, non-numerical values from the analysis set are first assigned to numerical values as shown in Table II.
Next, the mean value and the standard deviation for each criterion were calculated, and data normalized. Afterwards, the desired number of clusters is chosen using the elbow method. In this method first the graphical representation (Fig. 6) is generated where on the y axis the standard deviation of the shortest distances from the cluster centroid is shown, and on the x axis the number of clusters can be found. Finally, the point, where the graph starts flattening, which represents the optimal number of clusters, is chosen (in this case, k = 3).
Once the k random cluster representatives were chosen from the analysis set of data, the distance for each element from each cluster representative was calculated and minimal distance corresponding to assigned cluster identified.
When each element of the analysis set is assigned to a certain cluster, cluster representatives are updated so that their position is in the center of each cluster. For that Excel Solver add-on is used which minimizes the sum of the shortest distances by changing the cluster representatives. As a result, clusters presented in Table III are created.

V. DISCUSSION
Relevant articles on methodologies for the development of embedded systems were analyzed by applying the systematic mapping methodology. This resulted in classification schema based on several criteria. In terms of coverage, most articles considered the system as a whole. Recently, the number of articles that considered special cases of these systems has increased. In terms of contribution, most articles proposed improvements based on the HW/SW Co-design methodology. Numerous articles also proposed entirely new approaches for facilitating the development process. Furthermore, articles proposed the introduction of modern concepts in the development of software, as well as the hardware part of the system. In terms of thematic focus, most articles focused on defining a system model. Such model unifies hardware and software development processes. Many articles also dealt with the partitioning phase and the definition of adequate software tools that support the development process of embedded systems. In addition, several scholars dealt with specific requirements of special cases of these systems. In terms of implications, the most frequent implication is the definition of system-level specification. This specification provides an overview of the system at a higher level of abstraction. Other most common implications included facilitated development process, part of the process automation, application-specific solutions, introduction of dynamic reconfiguration architecture, and the possibility of early verification.
Based on this classification schema cluster analysis is performed using k-means algorithm. Analysis resulted in three clusters as shown in Fig. 7 and Table III. A review of the obtained clusters shows that cluster 3 is the cluster that includes the most elements. The total number (33 elements) accounts for 48.53% of the initial data set. Articles with the following characteristics were found: coverage (the whole system and the hardware part of the system), contribution (extension or a new approach based on hardware/software co-design methodology and new methodology), thematic focus (software tools that support development process, improvements in the partitioning phase of the development process, definition of the optimal system model, system simulation, and the entire development process), and implications (definition of system-level specification, automation of part of the process, facilitated development process, support for early verification, introduction of dynamic reconfiguration architecture, and framework establishment).
The second largest cluster is cluster 2 with 24 elements which is 35.29% of the initial data set. Articles in this cluster have the following characteristics: coverage (special cases of these systems, the whole system, the hardware part of the system, and the software part of the system), contribution (new methodology, new approaches and extensions based on hardware/software co-design methodology, and new approaches based on agile concepts), thematic focus (definition of the optimal system model, solving specific requirements of special cases of these systems, the synthesis phase of the development process, the entire development process, system simulation, and the partitioning phase of the development process), and implications (automation of part of the process, application specific solutions, definition of system-level specification, facilitated development process, support for early integration, support for early verification, introduction of dynamic reconfiguration architecture, framework establishment).
The smallest cluster is cluster 1 with 11 elements which is 16.18% of the initial data set. Articles in this cluster have the following characteristics: coverage (the whole system and the hardware part of the system), contribution (proposals of new approaches based on platform-based design, agile concepts, prototyping and new methodologies), thematic focus (the entire development process, definition of the optimal system model, software tools that support the development process, the partitioning phase of the development process), and implications (support for introduction of changes in a late stage of the development process, definition of system-level specification, support for early integration, part of process automation, and support for early verification).
The results show that for the first criterion (coverage) there are no major deviations between clusters 1 and 3, and special cases of these complex systems appear only in cluster 2. For the second criterion (contribution), new approaches based on modern concepts appear only in clusters 2 and 3. The third cluster2 cluster3 www.ijacsa.thesai.org criterion (thematic focus) is similar in all three clusters, but a focus on solving specific requirements appears only in cluster 2. Equally, all clusters are similar in fourth criterion (implications), but application-specific implications can be found only in cluster 2 and support for late changes implications only in cluster 1.

VI. CONCLUSION
Embedded systems are systems that encompass software and hardware components. For the last 50 years, great effort has been invested in proposing improvements and new approaches to the development process. Guided by many researchers who recognized the significance of these complex systems integrated in our everyday lives, in this paper the desirable characteristics of existing approaches to the development of embedded system were detected, which can be used as the foundation for the development of new methodologies.
After extracting relevant scientific articles through systematic review process, based on defined criteria cluster analysis was conducted, implementing k-means algorithm and the squared Euclidean distance. It resulted in three clusters, where cluster 3 and cluster 2 were identified as significant, considering the number of associated elements.
In our previous research we proposed Software development methodology for special case of real-time closed loop control systems. This methodology supports development of application-specific hardware and solves specific requirements.
In our future work a new methodology for development of special case of embedded systems will be designed and proposed. This methodology will unify development process of software and hardware components and will be based on newly developed graphical methods. Furthermore, evaluation procedures will be developed, intended for graphical methods and methodology assessment.