Technical report of a world-wide survey on software ...

6 downloads 280 Views 1MB Size Report
“embedded”, some participants chose just "Desktop applications" or "Web .... The most popular target is “Consumer Electronics”, followed by “Defense &.
Middle East Technical University Informatics Institute

Technical report of a world-wide survey on software modeling and model-driven engineering in the embedded software industry

Deniz Akdur (IS) Advisor: Prof. Dr. Onur Demirörs (METU) Co-Advisor: Assoc. Prof. Dr. Vahid Garousi (Hacettepe University) December 2015

TECHNICAL REPORT METU/II-TR-2015-55

Orta Doğu Teknik Üniversitesi Enformatik Enstitüsü

Gömülü Sistem Mühendisliğinde Kullanılan Yazılım Modellemesi ve Model Güdümlü Teknikler Anketi Raporu

Deniz Akdur (IS) Danışman: Prof. Dr. Onur Demirörs (ODTÜ) Yardımcı Danışman: Doç. Dr. Vahid Garousi (Hacettepe Üniversitesi) Aralık 2015

TEKNİK RAPOR ODTÜ/II-TR-2015-55

REPORT DOCUMENTATION PAGE 1. AGENCY USE ONLY (Internal Use)

2. REPORT DATE 24.12.2015

3. TITLE AND SUBTITLE TECHNICAL REPORT OF A WORLD-WIDE SURVEY ON SOFTWARE MODELING AND MODEL-DRIVEN ENGINEERING IN THE EMBEDDED SOFTWARE INDUSTRY 4. AUTHOR (S)

5. REPORT NUMBER (Internal Use)

Deniz AKDUR

METU/II-TR-2015-55

6. SPONSORING/ MONITORING AGENCY NAME(S) AND SIGNATURE(S) Information Systems PhD Programme, Department of Information Systems, Informatics Institute, METU Advisor: Prof. Dr. Onur Demirörs

Signature:

7. SUPPLEMENTARY NOTES 8. ABSTRACT Embedded systems have become an essential aspect of our lives. Due to their multiple constraints across different dimensions of performance and quality, embedded systems require more complex design, development and testing with a seamless integration of many hardware and software systems. To cope with growing complexities in embedded systems domain, software modeling and model-driven engineering are usually seen as ways to help engineers design and build these systems at higher levels of abstraction. This study aims to understand the state-of-practice of software modeling by identifying to what degree, why and how software modeling is used in embedded systems industry. This study also investigates the state-of-the-practice of model-driven techniques with their benefits and challenges. The quantitative data analyzed in this study includes 642 subjects from 27 different countries in five continents The results of our survey will be of interest to embedded industry professionals. It will also benefit researchers in observing the latest software modeling trends in embedded industry identifying the areas of strength and weakness, which would then hopefully encourage further industry–academia collaborations in those areas. 9. SUBJECT TERMS

10. NUMBER OF PAGES

Embedded Systems, Modeling, Model-driven Engineering, Empirical Study, Practitioner Survey

28

TABLE OF CONTENTS 1. Overview ........................................................................................................................ 1 1.1 1.1.1 1.1.2 1.1.3 1.1.4

About this survey ........................................................................................................... 2 Survey Design ......................................................................................................................... 2 Piloting .................................................................................................................................... 3 Survey Execution .................................................................................................................... 3 Pre-analysis Considerations and Data Validation.................................................................... 4

1.2 About this document ............................................................................................................ 4

2. Detailed Results ............................................................................................................. 5 2.1 Demographic of Participants and their Companies .............................................................. 5 2.1.1 Participants Profile ....................................................................................................................... 5 2.1.1.1 Geographical Locations (Q1) ................................................................................................ 5 2.1.1.2 Highest Academic Degrees (Q2) ........................................................................................... 6 2.1.1.3 University Degrees (Q3)........................................................................................................ 6 2.1.1.4 Current Positions (Q4)........................................................................................................... 7 2.1.1.5 Work Experience in Software Development (Q5)................................................................. 9 2.1.1.6 Modeling Experience in Software Development (Q11) ...................................................... 10 2.1.1.7 Where/How Software Modeling is Learned (Q12) ............................................................. 10 2.1.2 Profile of the Companies Participants Work For........................................................................ 11 2.1.2.1 Type of Applications Developed (Q6) ................................................................................ 11 2.1.2.2 Target Sectors of Products (Q7) .......................................................................................... 12 2.1.2.3 Number of Employees in Software Engineering Roles (Q8) .............................................. 13 2.1.2.4 Typical Software Development Team Size (Q9)................................................................. 13

2.2 Current state of modeling ................................................................................................... 14 2.2.1 Degree of Using Software Modeling in SDLC (Q10) ................................................................ 14 2.2.2 Mediums to Create Sketch or Model (Q13) ............................................................................... 14 2.2.3 Modeling Languages (Q14)........................................................................................................ 15 2.2.4 Programming Languages (Q15) ................................................................................................. 16 2.2.5 Modeling Environments/Tools (Q16) ........................................................................................ 16 2.2.6 Diagram Types (Q17)................................................................................................................. 17 2.2.7 SDLC phases, where software modeling is used (Q18) ............................................................. 18

2.3 Current state of MDE and its adoption ............................................................................... 19 2.3.1 Degree of Using Model-Driven Techniques (Q19) .................................................................... 19 2.3.2 Reasons of MDE usage (Q20) .................................................................................................... 19 2.3.3 Estimated Effort for MDE projects (Q21) .................................................................................. 20 2.3.4 MDE Maturity Level (Q22) ....................................................................................................... 20 2.3.5 Motivations for adopting MDE (Q23)........................................................................................ 21

2.4 Achievements, challenges and consequences of using MDE ............................................. 21 2.4.1 Achievements of MDE (Q24) .................................................................................................... 21 2.4.2 MDE Challenges (Q25) .............................................................................................................. 22 2.4.3 Problems of MDE Environments/Tools (Q26)........................................................................... 23 2.4.4 Consequences and Complexity of MDE (Q27) .......................................................................... 24

iii

REFERENCES................................................................................................................. 26 APPENDIX A - Measurement Techniques in the Answers............................................. 27

iv

CHAPTERS 1. O VERVIEW Software-intensive embedded systems shape our world by becoming an essential aspect of our lives. These systems are so widespread that we can find them in many devices from cars, avionics or defense systems to general commercial appliances such as HD TVs or smart phones. Design, development and testing of these systems has become very complex due to their multiple constraints across different dimensions of performance and quality. Moreover, the increasing amount of components in these systems and having distinct functionalities incorporated into a single system, which require seamless integration of many hardware and software systems, makes the embedded systems development more challenging.

Used in developed other types of software system, software modeling is a tool to manage complexity of embedded systems. Modeling helps engineers to work at higher levels of abstraction, and facilitates communication and constructing of complex components from smaller ones. However, the usage of models in embedded systems domain and the relevant practices usually vary since challenges, requirements and purposes differ among systems as well as among industrial sectors. At one extreme, some practitioners use software modeling at a very informal level, where diagrams are sketched on a white board in order to help communicate ideas with colleagues. In such cases, the emphasis is on selective communication rather than comprehensive specifications, and these diagrams are usually either soon discarded or quickly become inaccurate since they are not kept updated along with the source code. At the other extreme, software modeling turns into programming (automated generation of code from models) since programmers deal with models instead of focusing on the implementation detail.

The goal of the survey reported in this paper is to understand the state-of-practice in software modeling and model-driven engineering (MDE) practices and techniques in the embedded systems domain, to provide a view on the latest software modeling approaches, languages and tools used by practitioners, and also the relevant challenges and shortcomings faced by 1

practitioners. We believe that such information will benefit both embedded systems professionals and also researchers, to identify the areas of strength and weakness, and encourage more academia-industry collaborations in this area.

1.1 About this survey In this study, we chose to use the online survey method since we wanted to obtain information from a relatively large number of practitioners in a quick manner so that we can easily categorize and analyze these data. The total number of respondents was 642. Respondents are from 27 different countries in five continents and different industrial sectors related to embedded systems.

The identified target audience in this survey is anyone working in embedded systems engineering, with a variety of different software engineering roles from software developer/programmer to tester or from requirement engineer to business analyst. This study established a sampling frame composed by a large set of embedded industry professionals working in all around the world within different countries and different industrial sectors.

The following subsections are concerned with the survey design, piloting, execution, and pre-analysis considerations and data validation.

1.1.1 Survey Design After consulting with several industrial practitioners, we developed a questionnaire consisting of four sections. (details can be found in an online resource [1]))

The first part of the questionnaire contained questions gathering both personal and organizational demographic data. The 10th question investigates how often any formal or informal software modeling (i.e. sketches and/or models) is used in SDLC. Since any informal usage of modeling is seen as "modeling usage", the aim of this question is to understand the ratio of embedded professional, who does not use any software modeling. After categorizing this group and make them complete the survey, the questionnaire 2

continues with modeling approaches questions, which aims to understand informal usage of modeling, model-based and model-driven techniques. In other words, this second part aims to gather the current state of software modeling. At the beginning of 19th question, we give the terminology, which clearly explains the difference between model-based and modeldriven techniques and the survey asks the degree of model-driven techniques in SDLC. At that point, the survey is completed for informal usage of modeling and model-based user. Then, in the third and forth parts, MDE specific questions, which are interested to know about MDE practices, successes, and challenges, start.

1.1.2 Piloting Piloting the survey before distribution it is a very important step to be passed through. The survey was firstly piloted by eight colleagues in different industry and different nations (Four Turkish, two English, one French and one Taiwanese embedded professionals) since the wording and terminology used in the survey should be easily understandable to get high quality data. In order to prevent misunderstandings, which could lead to invalidity of conclusions, great importance was given to survey questions and explanations. Given their feedback and the time they needed to fill out the survey, the questionnaire was refined by modifying some questions. The revised survey was reviewed a second time by five other colleagues with two colleagues, who were participated in the first pilot study. Therefore, the final version of this survey was reviewed by 13 industry professionals.

The final outcome of the study design was a questionnaire consisting of 27 mostly closedended questions, using multiple-choice (checkboxes), single-choice (radio buttons) and Likert-scales for answers. Where applicable, free-text areas for additional input were provided to respondents as “Other”.

1.1.3 Survey Execution For creation and distribution of the survey, Google Form mechanism has been chosen. After getting an approval from Human Subjects Ethics Committee of Middle East Technical University (METU) in March 2015, the survey was conducted from 14th April 2015 for a 1 3

month-period and then closed to participants [2]. The hyperlink of the survey has been distributed to embedded industry professionals via social network sites' related groups, forums, etc. as well as to personal contacts of which most are embedded professionals working in all around the world within different countries and different industrial sectors. Moreover, the survey was also promoted through software engineering and academic institutional mailing lists. Besides, we also encouraged recipients to distribute the survey to colleagues or partners.

1.1.4 Pre-analysis Considerations and Data Validation The last step of the survey process is to analyze the collected data. Although the title of the survey, the protocol part of the survey, the invitations and forums entries are emphasizing on “embedded”, some participants chose just "Desktop applications" or "Web applications" (See Q6). The answers, which do not include any “Embedded applications” are counted as out of scope of this survey. Some companies develop different kinds of applications (i.e. both embedded and desktop); therefore any answer, which consisted of “Embedded”, was included in the sample. Aside from that requirement, there were no other criteria for inclusion. Finally, 15 surveys were excluded since they just include “Desktop applications” or “Web applications”. After the data validation phase, we had 627 acceptable responses from 27 different countries.

1.2 About this document This document gives and summarizes the results of the 27 questions. For each question, we first provide the raw data and then a graphical representation of the result (if applicable). The measurement techniques used in likert-scales questions are given in APPENDIX A.

Please, let us know if you have any comment or question: [email protected] [email protected] [email protected] 4

2. D ETAILED R ESULTS 2.1 Demographic of Participants and their Companies 2.1.1 Participants Profile 2.1.1.1 Geographical Locations (Q1) The first survey question asked respondent about their location. Our goal was to reach out to as many countries across the world as possible and to ensure that all regions where there is a presence of embedded industry are reasonably well represented in the dataset. The final dataset had 627 valid respondents from 27 different countries distributed in all the continents. Figure 1 shows the world heat-map, and also the distribution of responses by continents, showing that most of the responses originating from Europe (66%), followed by Asia (17%) and America (14%).

Figure 1. Countries and geographical distribution of respondents (using Google heat-map tool)

5

2.1.1.2 Highest Academic Degrees (Q2) Participants were asked to provide their highest academic degree. The result reveals that 50% and 11% of respondents have a Master's and PhD’s degree respectively. 39% of respondents have Bachelor's degrees. Only 3 respondents (0.5%) reporting to have High school or lower degree, denoting that the embedded domain is highly demanding in terms of background knowledge.

Figure 2. Highest academic degree

2.1.1.3 University Degrees (Q3) As a follow-up question to the previous question, in order to understand the respondents’ educational skill-set, participants were asked to provide their university degrees. Note that since this was a multiple-response question, multiple university degrees could be recorded, e.g., a person could have a BSc in computer engineering and then a Master’s degree in software engineering.

Note that depending on the country and university (since some universities have started to offer new computing disciplines degrees in recent years or there is no such a department), it might be better to give the underlying discipline in a single item. Therefore, although participants are allowed to choose all computing disciplines individually (i.e., computer engineering, computer science, software engineering, information systems), we give these disciplines both individually and under a single item as shown in Table 1.

6

Table 1. University degrees University Degrees Computing Disciplines

Count

Computer Science

255

Computer Engineering

460

University Degrees Other

Count

Health Informatics

2

228

Physics

2

Software Engineering

45

Engineering Mathematics

1

Information Systems

32

Computer and Systems Engineering

1

Electrical/Electronics Engineering

275

Electronic Computer Systems

1

Business Administration

17

Cognitive Science

1

Mathematics

16

Mechanical/Mechatronics Engineering

12

Industrial Engineering

8

Statistics

4

Computing Disciplines (including Computer Engineering, Computer Science, Software Engineering and Information Systems) and Electrical/Electronics Engineering are the top university degrees in the survey. Mathematics, Mechanical/Mechatronics Engineering and Industrial Engineering are also in the answers. “Other” parts are the free-text area, in which participants did not select the pre-given choice for that question (8 participants). 2.1.1.4 Current Positions (Q4) The current positions of respondents are shown in Figure 3.a. Note that since this was again a multiple-response question, multiple roles could be recorded, e.g., a person can be a software developer/programmer and software designer at the same time. As the figure shows, most of the participants have “Software Developer/Programmer” role. “Software Designer”, “Software Architect” and “Software Tester” roles are the other majority roles in the survey. 7

As seen from the figure, the survey has a wide range of embedded professionals including from developer to tester and project manager to quality assurance engineer. We should note that, as it has been established in studies on information quality (for example by Garvin [3]), people in different positions see and rate importance of different issues differently and in general have varying viewpoints on software engineering and related processes.

Notice that, although there might be some appropriate pre-given choices in the answer set, some participants willingly used free-text area to enter their current positions as “Other” (14 participants). These participants mentioned roles such as “Firmware Engineer” or “Embedded Systems Engineer”, “High Level Manager” related roles (i.e. “Software Group Manager”, “Manager of Software Department”) and “Academic” related roles (i.e. “Chair” or “Industrial PhD student”).

Since this question was a multiple-response question, we measured the frequency of the cases in which a respondent had reported more than one position. Results are shown in Figure 3.b. Majority of the respondents (67%) reported to be in only one position; however, some respondents have more than one role concurrently (i.e. 2% of respondents have 4+ positions). This "more than one position" situation might be a "cross-factor" correlation study for future work, but the findings showed that it might occur when the typical software development team size is small (i.e. 1-4 people) and mainly in consumer electronics sector.

8

(a) Current positions

(b) Histogram of positions held by each participant

Figure 3. Current positions and number of positions

2.1.1.5 Work Experience in Software Development (Q5) When work experience of the participants in software development was asked, it is seen that the majority of respondents have 10+ years (52%) and 6-10 years (40%) work experience. There are 41 participants (6%) who have 2-5 years of experience; whereas only 10 participants (2%) have less than 2 years of experience. This indicates that our participants are experienced industry professionals in embedded systems.

Figure 4. Work experience of participants

9

2.1.1.6 Modeling Experience in Software Development (Q11) If the participant uses any software modeling approach at some degree (See Q10), this participant was asked to report their modeling experience in software development. The interesting point here is that, although the majority of survey respondents have 10+ years (52%), which is followed by 6-10 years (40%) of work experience, now the majority is in 6-10 years (46%), followed by 10+ years of modeling experience (40%). This might be occurred by some possible reasons. Firstly, some respondents might have learned software modeling after getting the job or employment (i.e. after graduation, during the job or with some training). Secondly, modeling in embedded domain might require some initial work experience to understand embedded requirements and systems. In order to understand and hypothesis this first reason after eliminating the participants who do not use any software modeling, the remaining participants’ work experiences (555 participants, whose modeling experience were asked in this question) were again analyzed and the results are shown in Figure 5, which supported our hypothesis.

Figure 5. Work vs. modeling experience of participants who use any software modeling

2.1.1.7 Where/How Software Modeling is Learned (Q12) This was again a multiple-response question, therefore multiple items could be recorded (i.e., participants might learn modeling in university and from formal corporate trainings). The answers are compatible with the previous question, which investigates the modeling experience and explains why 6-10 years modeling experience is the 10

majority.

For

example,

some

participants,

who

were

graduated

from

Electrical/Electronics Engineering department, have learned software modeling after getting the job (after graduation, on his/her own or with formal corporate training). Therefore, his/her work experience is more than modeling experience since he/she did not take any software engineering or computer science courses on modeling during university. However, any computing discipline graduate’s work experience and modeling experience are most probably the same. As expected, “University” is the majority (393 responses), followed by “On your own” (285 responses) and “Formal corporate training” (155 responses). The given responses are shown in Table 2 with “Other” responses. Table 2. Where/how software modeling is learnt Where/How

Count

University (i.e. from software engineering, computer science courses)

393

On your own (i.e. from books, reading internet resources, in the job)

285

Formal corporate training

155

Other: (e.g., conference tutorials and workshops)

5

2.1.2 Profile of the Companies Participants Work For 2.1.2.1 Type of Applications Developed (Q6) This question is the only question, which is used for inclusion or exclusion of data points gathered from the respondents. Since this was again a multiple-response question, multiple type of application could be recorded, e.g., a company can develop both embedded and desktop applications. As discussed in Section 1.1.4, any answer, which includes any "Embedded" is accepted for inclusion criteria. In this question, “Embedded applications” and “Desktop applications” are pre-given choices. 481 participants (77%) reported developing “Embedded applications and 80 participants (13%) both “Embedded” and “Desktop” applications. Some participants used free-text area as “Other” (10% of participants) to explicitly indicate their type of applications developed in their company. Some responses (i.e. “Smart TV applications”) are also 11

counted to be in the embedded domain and included in our dataset. All of the “other” accepted responses and their frequencies are presented in Table 3. As we can see, the dataset covers a wide range of application domains and thus denotes the high representativeness of our survey results. Table 3. Type of applications in the “Other” responses Other Type of Application

Count

Other Type of Application

Count

Embedded and Web applications

21

Embedded and Cloud applications

3

Embedded and Firmware applications

14

Embedded, Desktop and Cloud application

3

Embedded, Desktop and Web applications

11

Development tools for embedded systems

2

Embedded and Mobile applications

5

Embedded applications research tool

2

Mobile applications

5

Embedded and Ambient Intelligence applications

1

2.1.2.2 Target Sectors of Products (Q7) This question was about the target sectors of the products developed by the company employing the participants (Figure 6). Seven possible choices were pre-provided in the questionnaire, which were designed in discussions with embedded industry partners. The most popular target is “Consumer Electronics”, followed by “Defense & Aerospace” and “IT & Telecommunications”. The “Other” category in Figure 6 as reported by the respondents included: “R&D”, “Research”, “Educational”, “Industrial automation” and “Medical”. As it can be seen, there is a good mix of respondents from various embedded industry sectors.

Figure 6. Target Sectors

12

2.1.2.3 Number of Employees in Software Engineering Roles (Q8) In this question, instead of knowing the size of the company (in order to eliminate nonengineering roles, i.e. technicians, office workers, etc.), the number of employees in SE roles was asked to participants. 300 participants (48%) reported that their number of employees in SE roles is 11-100. It was followed by 500+ people (16%) and 101-200 people (13%) as shown in Table 4. A good mix of respondents from other ranges was also present in our survey pool. This in turn would enable our analysis to cover a wider spectrum of inputs in terms of number of employees in software engineering roles. 2.1.2.4 Typical Software Development Team Size (Q9) Following the question above, participants were asked to report the typical software development team in their company. 303 participants (48%) reported that their typical software development team size is 5-9 people. It is followed by 10-19 people (26%) and 1-4 people (22%). Just three participants (0.5%) reported that their software development team is 50+ people (where they have 500+ people in number of employees in software engineering roles). The correlated information between Q8 and Q9 is given in Table 4. According to that, 5-9 people in a typical software development team whose number of employees in software engineering roles is 11-100 people is the majority. (215 participants, 34%) Table 4. Number of employees in software engineering roles and typical software development team Typical software development team size Number of employees in software engineering roles

1-4 people

5-9 people

1-10 people

70

8

11-100 people

61

215

24

101-200 people

1

45

36

1

83

201-500 people

1

19

34

1

55

500+ people

3

14

64

19

I don’t know

2

2

3

Total

138

303

161

13

10-19 people

20-50 people

50+ people

1

Total

79 300

3

103 7

22

3

627

2.2 Current state of modeling 2.2.1 Degree of Using Software Modeling in SDLC (Q10) This question investigates how often the participant uses software modeling in SDLC by including both formal and informal usage (i.e., models or sketches) using 5-point Likert-scale. Notice that even less formal or informal representations are accepted as modeling usage, the aim of this question is to understand and eliminate no software modeling usage ratio in the survey. At that point, the survey ended for the participants, who do not use any software modeling (11%), and continues for the software modeling users (remaining 555 participants). The results are shown in Figure 7. According to the degree of modeling usage, overall software modeling usage ratio is between 37% and 65% interval, which is at “Often (>=50%)”. (See APPENFIX A)

Figure 7. Degree of software modeling usage

2.2.2 Mediums to Create Sketch or Model (Q13) In this multiple-response question, respondents were asked to report the mediums to create the sketch or model. A 5-point Likert-scale was utilized for providing the answers. After applying the degree of usage measurement technique the most used medium is PC (not surprisingly, 74.8%), followed by paper (38.7%), whiteboard (9.3%) and tablet/smartphone (7.7%) as depicted in Figure 8.

14

Figure 8. Mediums to create sketch or model

2.2.3 Modeling Languages (Q14) Since this was again a multiple-response question, multiple items could be recorded (i.e., participants might use both UML and DSL). The responses are given in Figure 9. The majority of respondents (77%) use UML (not surprisingly); but the most interesting thing is that the second most selected response is “Sketch/No formal modeling language” (65%), which is the informal usage of modeling.

Apart from the pre-given choices, the quantity and the diversity of “Other” responses (i.e. AUTOSAR (17 responses), EMF (8 responses), Markov Chain Markup Language (6 responses), AADL (6 responses), Modelica (6 responses), EAST-ADL (3 responses), Promela, CRC Cards, Typed function definitions, spreadsheets, PVS, UDPM, views & beyond approach , mCRL2 (1 response)) are also noteworthy, which shows a wide spectrum of inputs in terms of modeling languages. Although some of these “Other” responses might be included in the pre-given answer set (i.e. AADL and EAST-ADL can be under “Domain Specific Language (DSL)”), participants willingly indicated their usage of these modeling languages.

Figure 9. Modeling languages

15

2.2.4 Programming Languages (Q15) The responses given for this multiple-response question, which was not explicitly investigated in any previous modeling surveys in the embedded systems engineering, is given in Figure 10. The C language is followed by C++ and then Java. Notice that, although C is the most popular programming language in the embedded world, the total responses for C++ and Java, which are object-oriented programming languages are much more than C. MATLAB, C#, BPEL, Ada, Delphi and Smalltalk took some responses, which are also in the pre-given answer set.

Figure 10. Programming languages

Apart from these pre-given choices, Python (17 responses), Objective-C (17 responses), JavaScript (7 responses), Scala (5 responses) and PHP (1 response) are “Other” answers for this question.

2.2.5 Modeling Environments/Tools (Q16) Since this was again a multiple-response question, multiple modeling tools could be recorded. As seen in Figure 11, the majority of respondents use “Eclipse-based” tools, which is followed by “Microsoft Visio”. 40 respondents indicated that they do not use any modeling environment or tool.

16

Figure 11. Modeling tools

Again, in “Other” part for this question, respondents wanted to explicitly state their modeling tools although some of them might be under a pre-given choice list (i.e. some of them are eclipse-based tools like Papyrus). These “Other” responses are presented in Table 5. Table 5. “Other” responses for modeling tools Modeling Tool

Count

Modeling Tool

Count

Modeling Tool

Count

Papyrus

16

MaTeLo

8

Labview

4

argoUML

13

MetaEdit+

7

Borland

3

Astah

11

Android Studio

5

Artop

10

Ocarina

(less than 3 responses): Modelio, TestCast, Arctic Studio, Umbrello, Scade, draw.io, MagicDraw, IBM SmartCloud, PyModel, yED, Dymola, RAD Studio

4

21

2.2.6 Diagram Types (Q17) Participants were then asked about the diagram types used while modeling via the same 5-point Likert-scale used in previous questions. Notice that, it is not mandatory to select a frequency answer on each item, therefore, total responses for each diagram types might vary (i.e., total response for Class Diagram is 542, whereas this number is 516 for Deployment Diagram). All responses for each diagram types are given in Figure 12 with its usage interval value (See APPENDIX A). 17

According to the responses, Sequence Diagrams and State Machine/Charts are the most popular diagram types in the embedded systems. Notice that although Class Diagram is only relevant for object-oriented programming languages (i.e. C++ or Java) and is not used in C, which is the most used programming language according to our survey result (See Q15), this diagram is in third place. In other words, where applicable (i.e. if relevant diagram for the programming language used), Class Diagram is widely used.

Figure 12. Diagram types usage

2.2.7 SDLC phases, where software modeling is used (Q18) This multiple-response question was about SDLC phases, where software modeling is used. The majority of respondents use modeling in “Systems/Software Design” (497 responses). “Implementation” (413 responses) and “Preliminary/Systems Analysis” (356 responses) are the other most modeling usage SDLC phases. “Integration” (22 responses) is the SDLC phase, in which modeling is used at least. The results are presented in Figure 13.

18

Figure 13. SDLC phases where software modeling is used

2.3 Current state of MDE and its adoption 2.3.1 Degree of Using Model-Driven Techniques (Q19) This question investigates how often the participants use model-driven techniques. Q19 was a decision point in the survey in a way that the survey ended for the participants who said not using any model-driven approaches (370 respondents, 59.5% of all participants), and continued for model-driven users (remaining 185 respondents, 29.5% of all participants). The results are shown in Figure 14. According to the degree of model-driven techniques, overall model-driven usage ratio is between 14% and 24% interval, which is at “Sometimes (