You are on page 1of 19

Information and Software Technology 95 (2018) 15–33

Contents lists available at ScienceDirect

Information and Software Technology


journal homepage: www.elsevier.com/locate/infsof

Do the informal & formal software modeling notations satisfy practitioners T


for software architecture modeling?
Mert Ozkaya
Altinbas University, Department of Computer Engineering, Istanbul TURKEY

A R T I C L E I N F O A B S T R A C T

Keywords: Context: Software architectures can be modeled using semantically informal (i.e., ambiguous) or formal (i.e.,
A survey mathematically precise) software modeling notations.
Software architectures Objective: In this paper, 115 different practitioners from 28 different countries who work in companies that
Informal/formal semantics perform software development have been surveyed. The goal is to understand practitioners’ knowledge and
ADLs
experience about informal and formal modeling notations in specifying software architectures.
UML
Formal specification languages
Method: The survey consists of 35 different questions, divided into three parts, i.e., the participant profile, the
informal modeling, and formal modeling. The results of the survey lead to many interesting findings:
Results: (1) Informal software modeling notations (especially UML) are practitioners’ top choice in specifying
software architectures (94%). (2) Despite many informal languages, some practitioners (40%) insist using in-
formal ad-hoc techniques (i.e., simple boxes/lines and natural languages) to specify complex design decisions
(e.g., structure, behaviour, and interaction). (3) Practitioners using informal notations are impressed by their
low learning-curve (79%), visuality (62%), and general-purpose scope (66%). (4) Practitioners still criticise
informal notations too, essentially for the lack of support for complex design decisions and their exhaustive
analysis. (5) While formal modeling notations bridge this gap mentioned in step-4, many practitioners (70%)
rarely use formal notations due essentially to the high-learning curve, the lack of knowledge among stake-
holders, and the lack of popularity in industry. (6) Among the considered formal notations (i.e., process algebras,
high-level formal specification languages, and architecture description languages (ADLs)), process algebras are
never used and ADLs are the least used formal languages are ADLs (i.e., 12% frequently use ADLs). (7)
Practitioners complain about ADLs’ weak tool support (38%) and their lack of tutorials/guidance/etc (33%).
Conclusion: The survey results will let the community realise the advantages and disadvantages of informal and
formal modeling notations for software architecture modeling from practitioners’ viewpoint.

1. Introduction different stakeholders, analysed for design errors, and improved to


better meet the software requirements [2]. Architecture modeling is
Software architectures have been proposed in the nineties as a way performed via the modeling notations that allow for textually or vi-
of specifying important design decisions for software systems and their sually representing the architectural models at various levels of ab-
reasoning. As Garlan and Shaw proposed in their seminal work [1], stractions. Architectural modeling notations can be considered as
several complex design decisions, including structural (i.e., the com- simple as any natural language or simple boxes/lines or any modeling
ponents and connectors), behavioural (the component behaviours), languages with syntax and semantics (e.g., ADLs [3]). Modeling nota-
interaction (the interaction protocols), non-functional property (e.g., tions can be distinguished in various aspects, such as the textual/visual
reliability and performance), and concurrency (i.e., synchronisation specifications of software architectures, semantical basis, general-pur-
and data access) decisions can be specified and reasoned about at the pose/domain-specific scope, language features (e.g., extensibility,
early stages of software design. multiple views, etc.), and tool support for different operations (e.g.,
analysis and code generation). In this study, architectural modeling
1.1. Software architecture modeling notations are considered based on their semantical basis, which can be
defined either formally or informally. The software modeling notations
Design decisions made for a software system to be built are docu- with formal semantics (aka formal modeling notations) are defined
mented as an architectural model, which can be communicated among mathematically using formal methods [4]. Formal modeling notations

E-mail address: mert.ozkaya@kemerburgaz.edu.tr.

https://doi.org/10.1016/j.infsof.2017.10.008
Received 16 May 2017; Received in revised form 30 September 2017; Accepted 12 October 2017
Available online 13 November 2017
0950-5849/ © 2017 Elsevier B.V. All rights reserved.
M. Ozkaya Information and Software Technology 95 (2018) 15–33

enable precision, which promotes the detailed and exact specifications examined here in three groups, i.e., early general purpose ADLs, do-
of software architectures. Also, formal architectural models can be main-specific ADLs, and extensible ADLs. General-purpose ADLs (e.g.,
analysed exhaustively using the formal techniques such as model Wright [23], Darwin [24], and Rapide [25]) offer high-level notation
checking and theorem proving, which are based on mathematical sets for specifying any types of systems and mainly focus on the formal
proofs. The software modeling notations without formally defined se- analysis of architectural specifications. Domain-specific ADLs (e.g.,
mantics are called as informal modeling notations in this paper. The AADL [26] for embedded systems) offer relatively low-level (i.e., more
semantics of informal modeling notations are either defined informally detailed) notation sets for the domain of interest. They essentially tend
in plain English or semi-formally. Lacking in precision, informal nota- to focus on formally analysing the low-level specifications for non-
tions may not always enable specifying the details of software archi- functional properties (e.g., AADL’s tools for performance analysis) and
tecture models and thus the resulting models may be ambiguous that generating low-level software code (AADL’s tool for C code). Lastly,
can be interpreted by different stakeholders differently. extensible ADLs’ notation sets (e.g., e.g., Acme [27] and XADL [28])
allow practitioners to extend a generic language with several features
such as formal semantics, formal analysis, complex connectors, and tool
1.1.1. Informal modeling notations
support.
Informal architecture modeling notations can be considered in three
groups, i.e., (i) simple boxes/lines, (ii) natural languages (e.g., English),
and (iii) modeling languages. Natural languages (e.g., English) and 1.2. Paper motivation and goal
simple boxes/lines allow for specifying any complex design decisions
without having to stick to any notations. Note that the former is textual While there are too many informal and formal software modeling
and the latter is graphical. However, the specifications in natural lan- notations existing today, it is not possible to understand (i) practi-
guages and simple boxes/lines may not be executed via analysis tools tioners’ knowledge and experience about informal and formal modeling
for, e.g., syntax/semantics checking, behaviour analysis or code gen- notations and (ii) what motivate/demotivate practitioners for using
eration. either type of the notations. The existing analytical studies on software
Unlike natural languages and simple boxes/lines techniques, in- architectures and modeling languages rather focus on different issues
formal software modeling languages offer concrete notations that have including the definition of software architecture, practitioners’ needs
well-defined syntax and semi-formal semantics (if any). UML [5] is one and concerns about software architecture, ADLs’ support for several
of the most well-known informal modeling languages, which offers different features (e.g., expressiveness, tool support, analysis, usability,
visual diagram types for specifying several important design decisions realisability), or practitioners’ expectations from ADLs.
including structural, behavioural, interaction, and deployment. UML Therefore, in this study, a survey has been conducted, which focuses
has inspired many other informal modeling languages (e.g., SysML [6], on understanding the practitioners’ level of knowledge and experience
Secure-UML [7], and Agent-UML [8]), which either extend UML’s no- and their views about the informal and formal software architecture
tation for meeting new requirements or adapt UML for particular do- modeling notations. With the survey results discussed in this paper, the
mains. Besides UML and its derivatives, there are architecture de- goal is to enlighten the software architecture community about the
scription languages (ADLs) that offer architecture-oriented notation sets level of tendency towards informal and formal modeling notations and
consisting of architectural elements such as components, ports, con- their motivating/demotivating features for practitioners. It will also be
nectors, and connections [3,9]. The literature includes tens of different possible to learn about the popular informal and formal software
ADLs that vary in many aspects, such as tool support, language features modeling notations that practitioners highly prefer for software archi-
(e.g., extensibility and multiple views), language definition (e.g., tex- tecture specifications or the notations that are rarely used.
tual/visual notation sets or formal/informal semantics)1. Some other
informal notations include the domain-specific languages (e.g., Liszt 1.3. Paper structure
[10] for PDE solvers and NDL [11] for device derivers), Business Pro-
cess Modeling Languages (BPMLs) [12], etc. In the rest of the paper, the similar surveys in the literature are
discussed firstly. Next, the survey’s research questions are introduced,
which is followed by the explanations of the survey design, execution,
1.1.2. Formal modeling notations
Formal modeling notations can be examined in two parts, i.e., (i) and sampling respectively. Then, the survey results are discussed sta-
tistically in three parts, i.e., the participants profile, informal archi-
formal specification languages and (ii) formal ADLs. Formal specifica-
tion languages offer notations for precisely specifying complex design tecture modeling notations, and formal modeling notations respec-
tively. Lastly, the discussion and conclusion are given.
decisions, which can then be formally (i.e., exhaustive) analysed
against safety and liveness properties. Some formal languages are also
supported with the formal analysis tools that exhaustively check for 2. Related work
non-functional properties. The most common formal specification lan-
guages are process algebras [13], which allow for specifying systems in According to the up-to-date research of literature, there are more
terms of processes that interact with each other concurrently (e.g., CSP than 120 different known architecture modeling notations2, which can
[14], FSP [15], and pi-calculus [16]). There are also high-level formal be categorised based on their semantics definitions as discussed in
specification languages that practitioners can more easily learn and use Sections 1.1.1 and 1.1.2 (i.e., formal or informal). Unsurprisingly, UML
for specifying their software systems. Some of them offer general-pur- is by far the top-used informal modeling language by practitioners [29],
pose scope (e.g., ProMeLa [17], LOTOS [18], and Alloy [19]); some which inspired many other notations, e.g., Systems Modeling Language
offer domain-specific scopes (e.g., UPPAAL’s input language [20] for (SysML) [6] for system engineering requirements, Agent-UML [8] for
real-time systems); and, some are platform-specific (e.g., Java Modeling the specifications of multi-agent software systems, and Secure-UML [7]
Language (JML) [21] for Java and Spec# [22] for C#). for the specifications of non-functional properties and their analysis.
The formal ADLs are considered in this survey as the ADLs that offer Some modeling notations even formalise UML for the precise specifi-
formally precise architecture-oriented notation sets. Formal ADLs are cations of UML architectures and their formal analysis. UMLsec [30] is
one of the most prominent UML extension that formalises UML for the
1
The following link leads to the up-to-date list of ADLs and those indicated to have no
2
formally defined semantics are the informal ADLs: https://sites.google.com/site/ See the analysis of the architecture modeling notations in https://sites.google.com/
ozkayamert1/als. site/ozkayamert1/als.

16
M. Ozkaya Information and Software Technology 95 (2018) 15–33

formal specification and analysis of security properties. Among the Caracciolo et al. interviewed 14 architects from 6 different companies.
formal modeling notations, AADL is one of the top-used one by prac- They focus on 7 different key quality requirements, which are perfor-
titioners [29], which offers domain-specific notation set for specifying mance, compatibility, usability, reliability, security, maintainability,
the multiple views (i.e., logical, physical, deployment, and behaviour) and portability. In [36], Smolander et al. surveyed among 3 different
of embedded system architectures. AADL is also supported with a organisations that produce telecommunications software, IT software,
powerful toolset for the verifications of embedded system specifications and handheld software development. Smolander et al. interviewed for
against many non-functional properties, e.g., performance, schedul- each organisation 3–4 people who are architects, designers, or man-
ability, security, and reliability. Despite so many formal and informal agers, and tried to understand what software architecture is to these
modeling notations that exist, literature analysis shows that there is not people in terms of four different views, i.e., blueprint (logical compo-
any study made on the practitioners’ knowledge and experience about nents and their relationships), language (i.e., notation), decision (e.g.,
formal and informal software modeling notations. So, it is not easy to behavioural, interaction and concurrency decisions), and literature
understand to what extent the practitioners use either type of notations, (i.e., documenting software architectures).
and their motivation/demotivation in doing so. Moreover, there is also
not any analytical study that allows practitioners to find out the formal 2.2. Surveys on software architecture modeling notations
and informal software modeling notations and compare the modeling
notations based on their needs. In the rest of this section, the existing Besides the surveys about software architectures, the literature also
survey studies are discussed in two parts. Firstly, the surveys about includes many surveys on architectural modeling notations. Those
software architectures are discussed and this is followed by discussions surveys focus on a group of architecture modeling notations (e.g., UML-
of the surveys conducted on software modeling notations. based languages) and analyse their level of support for some particular
features, (e.g., expressiveness, usability, and realisability) or particular
2.1. Surveys on software architectures domains (e.g., mobile systems and self-managing systems). Some of the
surveys have been conducted over the practitioners to understand their
The literature includes many surveys on software architectures that lack of interest about architectural modeling notations in general.
intend to shed light on various issues about software architectures. However, unlike the author’s survey in this paper, none of the existing
However, none of these surveys consider the formal (i.e., precise and surveys consider the formal and informal semantics definitions of
exhaustively analysable) and informal (i.e., ambiguous) specifications modeling notations. It is not possible to understand practitioners’ point
of software architectures and tried to observe practitioners’ knowledge of view about the informal and formal modeling notations and their
and experience about both types of specifications, which is essentially choice of use between the two types of notations.
the main point of interest in this paper. As discussed in the rest of this Clements [37] and Medvidovic [3] have proposed their own fra-
sub-section, the current surveys essentially focus on such issues of mework that categorise ADLs based on a number of requirements that
software architectures as specifying design decisions, reviewing soft- the authors focussed in defining ADLs. Clements and Medvidovic sur-
ware architectures, and quality requirements, and try to understand veyed a small group of 8–9 ADLs that they have determined for asses-
practitioners’ concerns or perspectives about those issues. Moreover, sing their framework. Medvidovic et al. later on conducted another
unlike the author’s survey conducted as questionnaire, most of the survey in 2006, where they again categorised 8 different ADLs based on
current surveys on software architectures have been performed as in- their definition of the ”three lamppost” (i.e., technology, domain, and
terviews. Therefore, these surveys may be relatively subjective that business) [38]. In [39], Hilliard and Rice focussed on the possible issues
could reflect the ideas of the interviewers and applied on a smaller that affect the expressiveness of the ADLs proposed in the nineties,
sample. including multiple viewpoints, first-class elements, architectural pat-
In [31], Tang et al. conducted a survey (with 39 questions) among terns, and the specifications of client requirements and architects’ de-
81 participants, consisting of the architects/designers working in in- sign decisions separately. In [40], Zhang et al. surveyed among 17
dustry and some post-graduate students, to understand their knowledge different formal modeling notations, consisting of formal ADLs and
and experience in documenting different design decisions. Their survey formal specification languages, which have the potential to be used for
also focussed on the reasons from the architects’ perspectives that de- model checking. Zhang et al. focused on understanding their for formal
motivate them for specifying the design decisions and also the possible model checking and analysed those 17 formal notations in terms of
improvements. In [32], Babar and Gorton aimed in their survey at their support for (i) the software architecture specifications, (ii) the
analysing software architecture reviewing for the purpose of ensuring non-functional property specifications, and (iii) the model checking
the quality of design decisions. Babar and Gorton’s survey consists of 26 support. In [41], Bradbury et al. surveyed 14 different formal software
questions, answered by 86 different participants who hold one of the modeling notations to determine their support for the architectural
following job positions, i.e., software developer, executive/manager, specifications of self-managing software systems. Bradbury et al. ana-
project manager, business analyst, and architect. In [33], Soni et al. lysed the formal notations for the expressiveness and scalability, which
interviewed many architects who are involved in the design process of they consider as the two important language features for maximising
large software systems from diverse domains (i.e., real-time operating the support for self-management. In [42], Pandey surveyed 9 different
systems, communication systems, instrumentation and control systems, ADLs so as to understand the reasons why ADLs are shown lack of in-
image and signal processing systems, and user interface systems). They terest by the practitioners in industry and compared the ADLs with the
focussed on the issues about the role of software architecture in de- widely accepted UML language. In [9], Ozkaya et al. surveyed among
signing and developing large software systems. In [34], Christensen 13 different ADLs that are grouped as first- (proposed in the nineties)
et al. conducted a survey on software architects to better understand and second-generation ADLs (proposed after 2000s) and analysed for
their concerns about several aspects of software architectures including three key features that the authors focussed in their study, i.e., us-
analysis & design, realisation, management, and interaction. Chris- ability, formal analysis, and realisability. In [29], Malavolta et al.
tensen et al. have chosen 4 well-known Danish companies and inter- conducted a comprehensive survey of 52 questions among 48 practi-
viewed and observed the architects in the companies 31 times during 5 tioners from 40 companies in 15 countries. Their goal was to under-
months. Christensen et al. determined and analysed 124 different si- stand practitioners’ expectations from architecture modeling notations
tuations of architects (i.e., the different types of works that they per- in general, focussing on the advantages and disadvantages of archi-
form). In [35], Caracciolo et al. conducted a survey to determine the tecture modeling notations from practitioners’ perspective. In [43], Ali
quality requirements of interest for architects and the approaches pre- et al. surveyed among 8 different ADLs that support the software ar-
ferred in specifying and formally analysing those requirements. chitecture specifications of distributed and mobile systems. Ali et al.’

17
M. Ozkaya Information and Software Technology 95 (2018) 15–33

survey aimed at understanding the level of support that the ADLs in architectures. The research question focuses on two types of formal
question provide for mobile systems. The survey focussed on several notations, i.e., (i) formal specification languages (process algebras and
features, including location, graphical support, formalisation, mobility, high-level formal languages) and (ii) ADLs.
and tool support. In [44], Balsamo et al. surveyed among 15 different RQ 6: What do motivate/demotivate practitioners for using formal
modeling notations to understand their support for system performance software modeling languages?
predictions. These 15 notations are grouped as queueing network based Similarly to RQ4, this question focuses on formal notations and aims
notations, process-algebra-based notations, petri-net-based notations, at understanding the appealing requirements fulfilled by the formal
the notations based on stochastic processes. Balsamo et al.’s survey software modeling notations and those that are either missing or in-
analysed each notation for the software architecture specifications, adequately supported by the formal notations. Indeed, it will further be
performance model specifications, the evaluation methods, and tool possible to compare the formal and informal software modeling ap-
support for the automated analysis of performance. In [45], Bernardi proaches in terms of their capabilities and understand when to use and
et al. surveyed among 39 different UML-based modeling notations that not use each type of notations.
support the specifications of system dependability and their analysis. RQ 7: Which ADLs are mainly used by practitioners?
Bernardi et al. analysed these approaches for three groups of criteria, In this research question, the goal is to understand the ADLs used by
i.e., the software development support (e.g., types of UML diagrams practitioners. As introduced in Section 1.1.2, the ADLs in this question
used, tool support, supported domains, supported phases of software are presented in three groups, i.e., general-purpose, domain-specific,
development), the dependability characteristics (e.g., the attributes of extensible.
dependability considered, the type of the dependability analysis used, RQ 8: What do motivate/demotivate practitioners for using ADLs?
and the analysis models used), and the quality of the surveyed notations Similarly to RQ4 and RQ6, this question aims at understanding the
(e.g., the use of any dependability standards, validation via case-stu- appealing requirements fulfilled by the ADLs and those that are either
dies, and the presentation of the analysis results). missing or inadequately supported by the ADLs. Answering this ques-
tion will aid in comparing ADLs with other formal modeling notations
3. Research questions in terms of the practitioners’ needs and expectations.

Given the goal of this survey in Section 1.2, the following eight 4. Survey design, execution, and sampling
research questions are defined that need to be answered so as to meet
the goal. 4.1. Survey design
RQ 1: What are the profiles of the participants?
To minimise any threats against the validity of the survey results, This survey has been constructed over the knowledge and experi-
the survey should target participants from various background who can ence that had been gained via the design of a previous survey on
be generalised to the entire population of software development. This software architectures [46]. While that was a relatively short and quick
includes people from different countries, with education degrees/levels, survey and focuses on the notion of software architectures, it helped
holding different job positions, working in different types of projects, with a lot of issues, such as the preparation of the questions and their
and with different levels of experience and knowledge in software de- structures and the methodologies for collecting data.
velopment. The survey questions have been finalised after a series of reviews
RQ 2: Which informal software modeling notations are mainly used by together with the experts in the field. The survey consists of 35 ques-
practitioners? tions that are categorised into three sections, i.e., (i) profile, (ii) in-
This question is intended for learning the informal software mod- formal architectural modeling notations, and (iii) formal architectural
eling notations used by practitioners in specifying software archi- modeling notations. The list of questions is given in Table 1. So, as
tectures. The research question focuses on three types of informal shown in Table 1, most questions have multiple-choice answers and at
modeling notations, i.e., (i) simple boxes/lines, (ii) natural languages, the same time offer the “free text” option. Practitioners can use the free
and (iii) software modeling languages. Note that if the participants use text options (if given) to type any additional answers that are not in-
software modeling languages, they are prompted to state the names of cluded in the list of multiple-choice for the question. During the ana-
the languages. lysis of answers for each question, the free text answers are analysed
RQ-3: Which informal software modeling notations do practitioners use and validated manually to check whether the typed answer(s) are re-
for specifying the structural and behavioural (also including interaction) levant to the question. Those relevant answers are considered together
design decisions? with the answers chosen via the multiple-choice list of the question. For
This question focuses on the structural and behavioural design de- instance, the question ”Which informal modeling language(s) do you
cisions that are highly important for software systems and aims at use” has a free text option for stating any languages that are not given
learning the informal notations used for specifying these two types of in the multiple-choice list. If any answers that have been freely typed do
design decisions. The structural design decisions are concerned with really exist in the literature as informal modeling languages they are
how systems are decomposed into components and their relationships added to the list of the voted languages by the participants. Regarding
(i.e., connectors). The behavioural design decisions are concerned with the Yes/No survey questions indicated in Table 1, they require more
how the components change their state according to events occurring in informative answers from the participants. For instance, the question
their environment and connectors’ interaction protocols that impose an “Do you use any ADLs” is answered with either one of the following
order of message exchanges on the interacting components. answers: always (100%), much of the time ( > 70%), often (> =50%),
RQ 4: What do motivate/demotivate practitioners for using informal sometimes ( < 50%), and never (0%).
software modeling approaches? The first 13 questions in Table 1 are concerned with RQ1 in
In this question, the goal is to understand the appealing require- Section 3, which aims at understanding the profiles of the participants.
ments fulfilled by the informal software modeling notations and those The questions 14–22 are concerned with RQ2, RQ3 and RQ4 in
that are either missing or inadequately supported by the informal no- Section 3, which aim at determining practitioners’ knowledge and ex-
tations. perience in informal software modeling notations. The questions 23–26
RQ 5: Which formal software modeling notations are mainly used by are concerned with RQ5 and RQ6 in Section 3, which focus on practi-
practitioners? tioners’ level of interest shown towards formal software modeling no-
In this question, the goal is to learn the formal software modeling tations. The questions 27–35 are concerned with RQ7 and RQ8 in
notations that practitioners use for specifying their software Section 3, which focus on ADLs.

18
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Table 1
Survey questions.

Res. Que. Survey questions Multiple Free Yes/No Integer


answers text (Other) question Answer

RQ 1: 1- Which country do you work in? N Y N N


2- What is your highest academic degree? N Y N N
3- What is your university degree? N Y N N
4- What is your undergraduate degree? N Y N N
5- What are you graduate degrees? Y Y N N
6- What is(are) your current job position(s)? Y Y N N
7- How many years of experience do you have in software development? N N N Y
8- How many years of experience do you have in software architecture modeling? N N N Y
9- What are the types of products that are developed by your company? Y Y N N
10- How many employees do work as a software engineer in your company? N N N Y
11- What are the types of software projects that are developed in your company? Y Y N N
12- What are the typical size of the software project development teams in your company? N N N Y
13- What are the roles that a typical project in your company involves? Y Y N N
RQ 2: 14- Which informal modeling approaches do you prefer for specifying software architectures? N N N N
15- Which informal software modeling language(s) do you use? Y Y N N
RQ 3: 16- What do you use for specifying the structural aspect of software architectures? Y Y N N
17- If you use any other approaches for specifying the structure of systems, please state here. N Y N N
18- Do you specify the behavioural aspect of software architectures? N N Y N
19- What do you use for specifying the behavioural aspect of software architectures? Y Y N N
20- If you use any other approaches for specifying the behaviour of systems, please state here. N Y N N
RQ 4: 21- Why do you prefer informal software modeling approaches for specifying software architectures? Y Y N N
22- What are the features that you cannot benefit using informal approaches but you wish to do so? Y Y N N
RQ 5: 23- Do you use formal software modeling notations for specifying software architectures? N N Y N
24- Which formal specification languages do you use? Y Y N N
RQ 6: 25- Why do you prefer formal specification languages? Y Y N N
26- Did you have any complaints about formal specification languages? Y Y N N
RQ 7: 27- Do you use any ADLs? N N Y N
28- Which of the following types of architecture description languages do you use? Y Y N N
29- If you use early ADLs, which of the following early languages do you use? Y Y N N
30- If you use domain-specific architecture description languages, which of the following languages do you use? Y Y N N
31-If you use extensible ADLs, which of the following languages do you use? Y Y N N
RQ 8: 32- Why do you prefer early ADLs? Y Y N N
33- Why do you prefer domain-specific ADLs? Y Y N N
34- Why do you prefer extensible ADLs? Y Y N N
35- Did you have any complaints about ADLs? Y Y N N

Y: Yes, N: No, Integer: Numeric answers

4.2. Survey execution 4.3. Survey sampling

The survey has been prepared in Google forms3 and was accessible The samples in surveys are created via the sampling method, which is
online. The survey has accepted responses for six months during the the process of selecting a group of people from the entire population who
second-half of 2016. represent the differences observed in the entire population to minimise
The survey targets the practitioners from diverse industries who are biases [47]. Sampling can be in one of the two forms – probability or non-
involved in software development, holding positions such as architect, probability – depending on the way the potential participants are selected.
developer, programmer, tester, analyst, and managerial positions. The In probability sampling, the survey designers have access to the entire
potential participants have been invited to fill in the survey in many population and thus every member of the population has equal chance of
different ways. Initially, the personal contacts who hold various related being selected. By doing so, any biases regarding the selection of the
positions around the world have been invited via e-mail. Then, google participants are minimised and the findings can be generalised to the
search has been made in order to find out the web-sites of as many population. Non-probability sampling is applicable in the cases where the
companies as possible that are involved in software development and survey designers have no chance of knowing every member of the popu-
exhibit an e-mail address in their contact forms. In the e-mail, the lation. So, unlike probability sampling where the potential participants are
companies have been kindly requested to share the survey with their chosen randomly, in non-probability sampling, the participants are chosen
employees performing software development jobs. After sending e- in a subjective manner (i.e., non-random). Non-probability sampling is
mails to those companies, the social networking platforms have been essentially useful for the cases where the survey designers do not have
addressed. This includes Linkedin, Facebook, Google and Yahoo groups enough time and money to target the entire population.
about software development. Lastly, the well-cited academic papers on In this survey, initially, the goal was to imitate the probabilistic sam-
software engineering, especially the ones on software architectures, pling on the data collected from the participants. To do so, as mentioned in
have been identified via Google scholar. Each such paper has been Section 4.2, many big companies that produce IT products have been
checked and the authors with industry background have been sent an contacted so that their employees involved in software development can
invitation e-mail for the survey. Note also that to maximise the re- contribute to the survey. From their contributions, it could be possible to
sponsiveness, in every e-mail sent the recipient(s) have been requested randomly select a sub-set of contributions for the survey evaluation.
to forward the e-mail to any relevant potential participants who may However, since the survey did not require the participants to share their
want to contribute to the survey. company details, it was not possible to group the participants based on
their companies. Moreover, despite so many companies contacted, many
of them did not respond to the e-mails for confirmation. So, it may also not
3
be possible to select the same amount of participants for each companies
https://docs.google.com/forms/.

19
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Fig. 1. The academic majors of the participants. (For


interpretation of the references to color in this figure
legend, the reader is referred to the web version of
this article.)

randomly. Therefore, in the survey, non-probability sampling has been information technology). The rest of the participants (27% for under-
used, in which the participants have been selected without applying any graduate, 40% for postgraduate) have studied different fields, including
random selection algorithms. Essentially, the convenience non-probability electrical and electronics engineering, civil engineering, machine en-
sampling has been applied, which promotes survey designers to select the gineering, material engineering, management and finance. Note how-
groups of participants who are willing to participate in the survey [48]. ever that given their profiles (i.e., IT-related job positions, the software
Indeed, as also mentioned in Section 4.2, the participants have been got to development projects involved, and the years of work experiences)
contribute to the survey in the following ways: (i) the personal contacts, observed in the survey, those participants seem to improve themselves
(ii) the IT companies and their employees who accepted to participate, (iii) on software architecture modeling and be capable of answering the
the practitioners reached via the social media, and (iv) the practitioners survey confidently.
who contributed to the scientific papers about software architectures and
accepted to participate in. As a result, the survey has received 115 dif- 5.1.4. The Participants’ job positions (Q6)
ferent responses from 28 different countries around the world. Fig. 2 depicts the different job positions held by the participants.
The software developer/programmer position is the top chosen one,
5. Survey findings and results selected by more than 50% of the participants. This is followed by the
software architect position, chosen by 30% of the participants. The
5.1. Profiles question also reveals several different job positions of the participants
such as analyst, consultant, system engineer, tester, Quality and As-
5.1.1. The countries of the participants (Q1) surance (QA) engineer, and managerial positions. Some participants
In order to minimise any biases, the survey has been shared in many have used the other option and specified non-listed positions such as
online social groups regardless of the countries that the groups mainly researcher and Research and Development (R&D) director. Note that
serve in. So, the survey managed to attract the participants from 28 this is a multiple-choice question, allowing the participants to choose
different countries. These countries are Turkey, Canada, USA, Germany, multiple job position that they handle at the same time. As shown in
the Netherlands, United Kingdom (UK), Switzerland, France, Austria, Fig. 3, while 61% of the participants hold a single position, the rest 39%
Russia, Finland, Mexico, Iran, Palestine, Belgium, Argentina, India, of the participants hold 2, 3, or 4+ different job positions at the same
Indonesia, Sweden, Brasil, Australia, Somalia, Italy, China, Tunisia, time. Among those holding a single position, 43% of them hold the
Poland, Ireland, and Syria. software developer/programmer position, 19% of the hold any one of
the managerial positions shown in Fig. 2 (e.g., high-level manager,
5.1.2. The highest academic degree (Q2) design team lead, and project manager), 9% of them hold the software
In order to understand the education background of the partici- architect position, and another 9% of them hold the system engineer
pants, the survey tries to learn the highest academic degrees of the position.
participants. Most of the participants (80%) hold university degrees,
where 40% hold MSc or MA level post-graduate degrees, 30% hold BSc 5.1.5. Work experience (Q7 and Q8)
or BS level undergraduate degrees, and 10% hold PhD level doctoral Fig. 4 shows the participants’ years of experience on software de-
degrees. The rest 20% of the participants lower-level degrees such as velopment and software architecture modeling. Note that software
college (i.e., vocational school) and high-school degrees. development herein is essentially concerned with the activities such as
requirements gathering&analysis and software im-
5.1.3. The academic majors of the participants (Q3, Q4, Q5) plementation&testing. According to the results, most of the participants
The questions Q3, Q4, and Q5 have been answered by the partici- (70%) have 6+ years of experience on software development, while
pants who has graduated from a university. Fig. 1 depicts the percen- this is reduced to 39% for architecture modeling. Surprisingly, 30% of
tages of the participants who have studied various majors in uni- the participants have no any experience on software architecture
versities. Note that the blue lines represent the participants with modeling at all. To minimise any biases, those participants have been
undergraduate degrees and the orange lines represent those with directed to submit the survey form without answering the questions
postgraduate degrees (e.g., MSc, MA, and PhD). So, 70% of the parti- about the informal/formal modeling notations.
cipants with undergraduate degrees and 60% of the participants with
post-graduate degrees have studied computer science and other related
5.1.6. Participants’ work industries (Q9)
subjects (i.e., computer engineering4, software engineering, and
Fig. 5 shows the different industries that the participants work in. Note
that the participants are allowed to choose multiple industries if their
4
The computer engineering and computer science majors are essentially the same and companies perform software development for different industries. Ac-
used in a mutually exclusive manner by the universities. cording to the results, IT and telecommunications is the top choice of the

20
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Fig. 2. The participants’ job positions.

5.1.7. The number of software engineers in the companies (Q10)


In this question, the goal is to learn the number of software en-
gineers with whom the participants work together. Assuming that the
participants represent the other software engineers working in their
companies, the survey can therefore be considered to target at a much
greater number of people. As shown in Fig. 6, most of the participants
work with 0–9 software engineers (36%), which is followed by the
companies with 10–50 software engineers (28%). Besides, there are
also participants from the companies with sizes 51–100 (11%),
101–500 (12%), and 1000+ (12%).

5.1.8. Participants’ project types (Q11)


Fig. 7 shows the different types of projects that participants develop.
Note that this question is a multiple-choice question and the partici-
pants are allowed choose to multiple types of projects. So, most of the
participants develop web applications (71%) or business applications
software (60%). The third most popular project type is the mobile ap-
Fig. 3. The number of the job positions held by the participants.
plications (45%). The rest of the listed fields include systems software5
(37%), scientific/engineering applications software (23%), and safety-
participants (47%), which is followed by finance and accounting (33%). critical and mission-critical software (17%).
The industries, such as automative and transportation, government, con- Table 2 shows the correlation between the types of the projects
sumer electronics, defense/military & aviation, and healthcare and bio- developed and the industries that the participants work in. So, one can
medical, have been selected by 7–10% of the participants. Note lastly that easily observe which industries produce which type(s) of software
the 23% of the participants have stated other industries that are not listed systems more/less. Indeed, the web applications are developed most by
in the question, including supply chain planning and management, cos- the companies working for Government and IT & Telecommunication.
metics, entertainment, human resources, energy, and media. Scientific applications, systems software, and safety-critical software

Fig. 4. Participants’ years of experience.

5
Systems software are those that are used by other software systems and users, such as
operating systems, web browsers, etc.

21
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Fig. 5. Participants’ work industries.

software systems considered. Indeed, the web applications are the top
preferred software type developed by the participants. The second top
preferred software types differ however, which is business applications
for the participants using just informal notations and mobile applica-
tions for those using formal notations too. The rest of the software types
are preferred by equal percentages of the participants using informal
notations and those using formal too.

5.1.9. Participants’ project team sizes (Q12)


Fig. 9 depicts the typical size of the software development teams
that the participants are involved in. 54% of the participants work in
small teams consisting of 1–5 people. 23% of the participants work in a
team of 5–10 people. A few of them (17%) work in relatively large
teams consisting of 10+ people.
Table 3 shows the correlation between the project types and the
Fig. 6. The number of software engineers working in the companies. team sizes. As the results show, the teams consisting of 1–5 people are
the most common team size, which is preferred most by the project
types considered. Note however for web applications, the team size
systems are developed most by the Defense/Military & Aviation in-
with 5–10 people is popular too.
dustry. Mobile applications are developed most by the Consumer
Electronics and Healthcare industries. Lastly, the business application
software are developed most by the Finance industry. 5.1.10. The roles that a typical project involves (Q13)
Fig. 8 gives another correlation, which shows the types of the pro- A typical software development project may comprise various roles
jects that are preferred to be developed by the participants who use just including designer, analyst, tester, software engineer, and architect,
informal modeling notations or use formal modeling notations too. The programmer and developer. Fig. 10 shows the different roles that the
types of software systems do not really affect the participants’ choice of participants’ projects include. So, most of the participants stated that
using formal modeling notations. The percentages of the participants their projects involve software developer6 (72%) and software architect
using just informal modeling notations and the participants using (62%) roles. Moreover, the software engineer (56%) and tester (57%)
formal modeling notations too are close to each other for each type of roles have also been selected by more than half of the participants.
While the analyst (48%), programmer (40%), and software designers

Fig. 7. Participants’ project types.

6
Software developers are assumed here to be the people who perform the design and
implementation of software systems.

22
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Table 2
The correlation between the types of industry and the project types developed.

Automative Consumer Electronics Defense Finance Government Healthcare IT & telec.

Web app. 21% 23% 15% 28% 37% 28% 30%


Business app. software 20% 14% 15% 31% 32% 20% 23%
Mobile app. 18% 22% 15% 20% 19% 13% 18%
Systems software 17% 18% 25% 17% 6% 13% 16%
Scientific app. 10% 14% 15% 2% 0% 13% 7%
Safety- critical software 14% 9% 15% 2% 6% 13% 6%
Total 100% 100% 100% 100% 100% 100% 100%

(35%) roles have been chosen by fewer participants, they are also
considered as essential roles for several projects.

5.2. Informal software modeling

In this part, the questions 15–22 have been answered by the parti-
cipants who stated to use the informal software modeling notations in
question 14. Those who stated to never use informal notations have not
been provided with those questions 14–22, and instead, they have been
forwarded to the formal modeling questions discussed in Section 5.3.

5.2.1. Informal software modeling notations for specifying software


architectures (Q14)
In this question, the goal is to learn whether the participants who
have some experiences in software architecture modeling (see
Fig. 9. Participants’ project team sizes
Section 5.1.5) prefer informal software modeling languages (e.g., UML)
with rigorous syntax or non-rigorous informal notations (e.g., natural
languages and simple boxes/lines). language and may not be useful for the practitioners who need to model
The results in Fig. 11 show firstly that almost all the participants their domain-specific features (e.g., the timer feature for real-time
(94%) who stated to have experiences on architecture modeling use systems and asynchronous event-based communications for embedded
informal software modeling notations for specifying their software ar- systems). Indeed, the results show 36% of the participants prefer do-
chitectures. Concerning the rest 6%, 2% of the participants prefer to main-specific modeling languages for that reason.
exclusively use the formal software modeling notations, and the other The other listed languages, i.e., BPMLs [12], SysML, SoAML [49],
4% stated that they do not use any types of the informal/formal mod- are used quite rarely by the participants (12-17%). Lastly, one of the
eling notations considered in the survey. participants has chosen the other option to state that they use the
Among the two types of informal modeling notations considered, Generic Modeling Environment (GME) tool [50] for creating their own
software modeling languages are the most popular notation type (53%). informal modeling languages.
While non-rigourous notations are not that popular, natural languages
(e.g., English) are used quite a lot more participants (27%) than those 5.2.3. Modeling complex decisions of software architectures (Q16, Q17,
using simple boxes/lines (14%). Q18, Q9, and Q20)
In this set of questions, the structural and behavioural (and inter-
5.2.2. Popular informal software modeling languages (Q15) action) design decisions are focussed, which are the two essential as-
According to Fig. 12, the top used informal software modeling pects of software architectures that need to be specified and analysed
language for specifying software architectures is UML (83%). Note that before the software systems are built. Concerning the structural design
a few participants (19%) use UML’s extension mechanism (UML’s pro- decisions, the questions (Q16, Q17) offer as choices the simple boxes/
file) to extend UML for different platforms or domains. lines and UML’s popular diagrams (i.e., class diagram, object diagram,
While UML is the top used language, it is a general purpose and component diagram) that also inspired many other notations in

Fig. 8. The types of the software that the participants


who use informal or formal notations develop.

23
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Table 3
The correlation between the software project team size and the types of the software projects .

Business app. Mobile app. Safety-critical software Scientific app. Systems software Web app.

1–5 people 56% 57% 54% 64% 52% 43%


5–10 people 22% 25% 23% 21% 24% 45%
10+ people 22% 18% 23% 15% 24% 12%

specifying structural decisions. For the behavioural (and interaction)


design decisions, the questions (Q18, Q19) offer (i) natural languages
(e.g., English), (ii) sequence diagram, (iii) activity diagram, and (iv)
state diagram. Note that the latter three diagram types are essentially
the part of UML’s notation set, which may again be inspired by some
other languages too. However, the participants are also allowed to
specify other notations that they may use (Q20).
According to Fig. 13, simple boxes/lines are the most popular
technique for specifying the structure of systems. Indeed, most parti-
cipants always (100% of the time) use boxes/lines or use it much of the
time ( > 75% of the time). Among the UML’s diagrams considered, class
diagram is the top used notation by the participants. Indeed, the
number of the participants voting for often and much of the time is the
greatest for the class diagram. Class diagram is followed by the com-
ponent diagram, which is understood to be frequently used by many
participants. However, the object diagram is the least used diagram for Fig. 11. The informal software modeling approaches used by the participants.
specifying software architectures, which many participants never use.
Lastly, note that 20% of the participants specified some additional (i.e.,
non-listed) notations, including their own domain-specific languages, the participants have chosen all these three advantages at the same
flow diagrams, and UML’s other diagrams (e.g., sequence diagrams, use time. So, they essentially wish for a language that allows for the visual
case diagrams, and state machine diagrams). specifications of any types of systems in a way that does not require a
Fig. 14 shows that UML or any other informal software modeling steep learning curve. Moreover, 46% of the participants are motivated
languages are not the top choice of the participants for specifying be- by the familiarity of the informal modeling notations, which essentially
havioural and interaction design decisions. Instead, the natural lan- facilitates the communication among different stakeholders of the
guages (e.g., English) are the most popular technique among the par- projects.
ticipants, which allows for specifying software architectures textually Surprisingly, the participants do not show the expected level of
without having to obey any syntactical (or semantical) constraints. interest to tool support. Indeed, the analysis tool support are shown the
Indeed, the number of the participants voting for always (100% of the least interest (11%). This is probably because the participants are not
time) and much of the time ( > 75%) is the greatest for natural lan- satisfied with the analysis capabilities of the informal languages, which
guages. Concerning the UML diagrams considered in the question, the lack for instance in the support for exhaustive analysis. Specifying
sequence diagram seems to be the most popular one. The least popular complex design decisions is again not the reason of choice for informal
UML diagram is the state diagram, for which most of the participants notations (20%). Indeed, as discussed in Section 5.2.3, the participants
have indicated their usage frequency as sometimes and never. rarely use the informal modeling languages for specifying the system
structure and behaviours.
Lastly, two of the participants had some other (i.e., non-listed)
5.2.4. Participants’ reasons for using informal software modeling notations reasons, such as the extensibility of the languages and easiness in
in specifying software architectures (Q21) communication.
In this question, the goal is to analyse the possible reasons that af-
fect the participants’ choice of using informal software modeling lan- 5.2.5. Practitioners’ further expectations from informal software modeling
guages. Fig. 15 points out the three following advantages that many of notations (Q22)
the participants have chosen: (i) easy to learn and use (79%), (ii) In this question, the requirements that are either missing in informal
general-purpose scope (66%), and (iii) visuality (62%). Indeed, 31% of software modeling notations or inadequately satisfied but at the same

Fig. 10. The roles that a typical project involves.

24
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Fig. 12. The informal modeling languages used by


the participants.

time desired by the participants are discussed. According to the results 5.3.2. The formal specification languages used by the participants (Q24)
given in Fig. 16, one third of the participants (35%) stated that informal In this question, the goal is to learn the formal specification lan-
software modeling notations meet their all expectations. Concerning guages used by the participants who perform formal software modeling
the rest of the participants, they focus on four requirements that are (45% as resulted from the previous question). According to the results
missing in informal modeling notations, i.e., (i) precise notation set given in Fig. 19, JML is the top preferred formal language by the par-
(33%), (ii) modeling and analysing complex design decisions (33%) and ticipants (39%), which allows for specifying the behaviours of Java
non-functional properties (30%), and (iii) tool support for exhaustive programs using the Design-by-Contract (DbC) approach [51] and ana-
(i.e., formal) analysis (30%). Note that these issues are essentially lysing them via the supporting toolsets. Another DbC based formal
handled by the formal software modeling notations discussed in the specification language is Spec# that is used by 14% of the participants,
next section. So, those participants seem to look for a language that which is intended to be used for C# programs. ArchJava [52] is another
combines the benefits of both informal and formal software modeling formal specification language that combines the software architecture
approaches. Some of the participants (19%) who essentially use generic specification with the software implementation in Java, which is
informal modeling notations (e.g., natural languages, simple boxes/ however rarely used by the participants (7%). Other formal specifica-
lines, and UML) stated their expectations for constrained notation sets tion languages, e.g., ProMeLa [17], LOTOS [18], Alloy [19], UPPAAL’s
for particular domains, e.g., embedded systems and mobile systems. input language [20], Spark [53], and Petri Nets [54], are rarely used
Lastly, a few participants (5%) stated other (i.e., unlisted) expectations too (0-7%). Note also that process algebra based formal languages (i.e.,
that are about more user-friendly tools for modeling and code genera- CSP and FSP) and Z notation [55] are not used at all by the participants.
tion. 32% of the participants stated to use some other (non-listed) formal
languages via the free text option. Upon analysing the free-text answers,
5.3. Formal software modeling the related languages have also been added to the end of the chart,
which are Logic Model Processing languages (e.g., Prolog [56]), the
The questions 24–35 discussed in this part have been answered by formal languages implementing SAT solvers (e.g., NuSMV language
the participants who stated to use the formal software modeling nota- [57]), Event-B language [58], the languages based on Category theory
tions in question 23. The participants who never use formal notations [59], and State-machine based languages. Also, some practitioners
have not been provided with those questions, and, they have been di- stated that they use their own domain specific languages which they
rected to submit the survey form. have developed using, e.g., Eclipse Xtext, GME, Metaedit, etc.

5.3.1. The participants who use formal software modeling notations for 5.3.3. Participants’ reasons for using formal specification languages in
specifying software architectures (Q23) specifying software architectures (Q25)
The results of this question shown in Fig. 17 reveal that among those In this question, the goal is to analyse the possible reasons that
participants with experiences on software architecture modeling (see motivate the participants for using formal software modeling lan-
Section 5.1.5), 55% of them never use formal software modeling no- guages. Fig. 20 indicates the two relevant reasons that have been se-
tations, who instead prefer informal notations that are discussed in lected most by the participants, which are (i) modeling complex design
Section 5.2. Fig. 18 reflect the participants never using formalisms and decisions (64%) and (ii) their automated formal analysis (50%).
shows the percentages of them using each type of informal software Moreover, some of the participants stated that they use formal lan-
modeling notations considered in this paper. guages due to their benefits of specifying domain-specific details (32%)
Concerning the rest, 14% of the participants sometimes ( < 50% of and non-functional properties for their systems (32%), which may then
the time) use formal modeling notations. The remaining 31% of the be formally analysed. Note however that most of the participants are
participants use formal notations more frequently (16% vote for much not interested in using formal specification languages for generating
of the time, 12% vote for often, and 3% vote for always). software code from software architectures (18%). Lastly, a few

Fig. 13. The informal modeling tools for specifying structural design decisions.

25
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Fig. 14. The informal modeling tools for specifying behavioural (and interaction) design decisions.

participants have specified other (non-listed) reasons, such as software sometimes ( < 50% of the time) use ADLs, while the remaining parti-
testing and the simulation tools. cipants use ADLs more frequently (26% of them vote for much of the
time, 6% vote for often, and 8% vote for always).
5.3.4. Participants’ concerns about formal specification languages (Q26)
As the results given in Fig. 21, 30% of the participants are happy 5.4.2. The groups of ADLs used by the participants (Q28)
with the formal specification languages and have no any further ex- Fig. 23 shows the three groups of ADLs used by the participants. So,
pectations. The top concern of the participants (47%) is the high the domain-specific ADLs (e.g., AADL, Koala [60], and Weaves [61])
learning curve of the formal techniques. This is especially the case with are the top choice of the participants (50%), while the general-purpose
process algebras as they essentially require some extra skills such as and extensible ADLs have been each chosen by 25% of the participants.
math knowledge and concurrent programming. The learning curve may
also get steep due to the difficult-to-use formal analysis tools (i.e., 5.4.3. The early general-purpose ADLs used by the participants (Q29)
model checkers), which produce results that are sometimes difficult to In this question, four pioneer early general-purpose ADLs are fo-
understand and trace. Some participants (37%) are concerned about the cussed, i.e., Darwin [62], Wright [23], Rapide [25], and C2 [63]. Ac-
fact that nobody knows the formal specification languages in the cording to the results in Fig. 24, Darwin is the top used early ADL by the
companies. Likewise, some (37%) also emphasise the lack of popularity participants (46%). Wright and Rapide ADLs are each used by 23% of
in industry. These two issues hinder essentially the effective commu- the participants. The least used domain-specific ADL is C2 (8%). Lastly,
nications of the formal architectural models among stakeholders with some participants have specified other (non-listed) ADLs, which are
different backgrounds. The other issues that are quite less critical are (i) East-ADL [64] and Autosar [65]. However, while East-ADL and Autosar
the lack of support for architectural elements (e.g., components and are early ADLs, they are essentially specific to embedded systems and
connectors) (26%) and (ii) the lack of tutorials/guidance/etc. (20%). thus should be considered under the categories of domain-specific
Note also that most participants are not concerned about the formal ADLs.
specification languages’ visual notation support. Lastly, a few partici-
pants suffer from another (non-listed) issue, i.e., the weak analysis tools 5.4.4. Participants’ reasons for using early general-purpose ADLs (Q32)
of the formal techniques that are not scalable for large systems and thus According to the results given in Fig. 25, the top two reasons of the
cause the state space explosion problem. participants for using early general-purpose ADLs are (i) general-pur-
pose scope (44%) for the high-level specifications of any types of sys-
5.4. Formal software modeling - architecture description languages (ADLs) tems and (ii) tool support for the exhaustive (i.e., formal) analysis of the
high-level specifications (44%). The third most selected reason (38%) is
5.4.1. The participants who use ADLs (Q27) being first-generation languages, which have been developed during
Fig. 22 shows that 23% of the participants who use formal software the nineties and thus are expected to be more familiar to the practi-
modeling notations never use ADLs (using formal specification lan- tioners than other more recent languages. 19% of the participants
guages instead). Concerning the rest (77%), 37% of the participants stated that they use early general-purpose ADLs because of their

Fig. 15. Participants’ reasons for using informal


software modeling notations

26
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Fig. 16. Practitioners’ further expectations from in-


formal software modeling notations.

5.4.6. Participants’ reasons for using domain-specific ADLs (Q33)


According to the results in Fig. 27, the top reason of the participants
(62%) is the automated formal analysis of software architectures for
domain-specific properties (e.g., schedulability analysis for embedded
systems). 46% of the participants are motivated by the automatic code
generation. Indeed, domain-specific languages typically offer lower-
level notation sets that allow for specifying the domain-specific details
in software architectures. Therefore, the code generated from such
detailed specifications will be more useful relatively to code generated
from high-level software architectures specified using early general-
purpose ADLs.

5.4.7. The extensible ADLs used by the participants (Q31)


In this question, the pioneer extensible ADLs are focussed, i.e.,
Acme and XADL. According to Fig. 28, Acme is the top selected ex-
Fig. 17. The participants who use formal software modeling notations. tensible language, used by 50% of the participants, while XADL is used
by 37% of the participants. Some participants used other (non-listed)
extensible ADLs that they developed using e.g., GME and Metaedit.

5.4.8. Participants’ reasons for using extensible ADLs (Q34)


According to the results in Fig. 29, 55% of the participants use ex-
tensible ADLs for combining the capabilities of different ADLs. These
capabilities include the tool support for, e.g., analysis and code gen-
eration, and other benefits such as complex connector support, non-
functional properties, and support for multiple viewpoints. Moreover,
45% of the practitioners use extensible ADLs for introducing a new
feature for their own problem domain (e.g., a new component/con-
nector type or a new feature for the existing components/connectors)
that are not considered in any of the existing ADLs or removing the
existing features as they look for a really basic language with some
fundamental requirements only.

Fig. 18. The informal software modeling notations used by the participants who never
5.4.9. Participants concerns about ADLs (Q35)
use formal modeling (55%).
In Section 5.3.4, the participants’ top concerns about formal speci-
fication languages have been determined as the high learning curve, the
support for complex design decisions (e.g., structural, behavioural, and lack of knowledge among stakeholders, and the lack of popularity in
concurrency). Lastly, the level of maturity for ADLs (i.e., how much the industry. Likewise, as shown in Fig. 30, 29% of the participants who use
languages are evolved in terms of their syntax, semantics, and tool ADLs have the same concerns. However, the participants using ADLs
support) is not so interesting to the participants (6%). are essentially most concerned about the weak tool support (38%). The
weak tool support herein includes the usability issues (e.g., difficult-to-
5.4.5. The domain-specific ADLs used by the participants (Q30) use formal analysis tools and lack of neat visual/text editors), and
This question focus on the three pioneer domain-specific ADLs, i.e., functional issues (e.g., inadequate support for checking any well-de-
AADL, Koala [60] and Weaves [61]. According to the results in Fig. 26, finedness rules, model completeness/consistency, and syntax errors).
AADL is preferred by more participants (36%) than Koala (27%) and The second most concerning issue of the participants about ADLs is the
Weaves (27%). Some of the participants stated that they use other (non- lack of tutorials/guidance/etc. (33%). This is because most of the ADLs
listed) domain-specific ADLs, such as East-ADL [64] and Autosar [65], today existing have been developed for research purposes and remained
and their own domain-specific ADLs that they have developed using, as immature approaches without any consideration of, e.g., user sup-
e.g., GME and Metaedit. port, scalability issues, and usability of the tools. Note lastly that 19% of

27
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Fig. 19. The formal specification languages used by


the participants.

the participants who use ADLs have no any complaints. Q9: The most popular industries that the participants work in are IT
& Telecommunications (47%) and Finance & Accounting (33%).
6. Discussions Q10: Many participants (63%) work in companies that employ less
than 50 software engineers. Note however that survey also attracted
6.1. Summary of findings a few participants (10%) whose companies employ more than 1000
software engineers.
The survey consists of 35 different questions that are grouped into Q11: The most popular project types that the participants are in-
three parts, i.e., the participant information, informal software mod- volved in are web applications (71%) and business applications
eling notations, and formal software modeling notations. The key out- software (60%).
comes of the survey questions that are discussed in Section 5 are Q12: Most of the participants (80%) work in small teams with 1–10
summarised as follows. people, while a few participants (17%) work in larger teams with
more than 10 people working.
Q1: The survey attracted participants from 28 different countries. Q13: The most popular roles that the participants play in their
Q2: Most of the participants (80%) hold university degrees, where software development teams are the software developer (73%) and
50% of them hold post-graduate degrees (including PhD). software architect (62%).
Q3, Q4, Q5: Most of the participants (70%) have studied computer Q14: More than half of the participants (53%) use informal software
science (or computer engineering). modeling languages for specifying software architectures, while
Q6: More than half of the participants (53%) work as a software 27% use natural languages (e.g., English) and 14% of the partici-
developer/programmer and almost one third of the participants pants use simple boxes/lines. Note that 6% of them do not use in-
(30%) work as a software architect. formal software modeling notations for architecture specifications.
Q7, Q8: Most of the participants (70%) have 5+ years of experience Q15: UML is the most popular software modeling language for ar-
on software development, while this is reduced to 39% when the chitecture specifications (83%). Besides the general-purpose UML,
experience on software architectural modeling is considered. some participants (36%) use domain-specific languages for

Fig. 20. Participants’ reasons for using formal spe-


cification languages.

28
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Fig. 21. Participants concerns about formal specifi-


cation languages.

(33%) and non-functional properties (30%), and (iii)exhaustive (i.e.,


formal) analysis (30%).
Q23: 55% of the participants never use formal software modeling
notations for specifying software architectures.
Q24: The top used formal specification language is JML [21] (39%),
which has been developed for specifying the contractual behaviours
of Java programs. Spec# [22] is another contractual formal lan-
guage that is adapted to the C# programs, used by 14% of the
participants. The other formal specification languages like ProMela
[17], LOTOS [18], Alloy [19], UPPAAL [20] are used quite rarely
(4-7%). Process algebras (e.g., CSP and pi-calculus) are not used by
the participants. Many participants have also stated that they de-
velop their own domain-specific formal specification languages
using, e.g., GME and Metaedit.
Q25: The primary reason of the participants for using formal spe-
Fig. 22. The participants who use ADLs. cification languages is the ability of specifying complex design de-
cisions (64%) and formally analysing them (46%). Besides, the
specifying the detailed decisions about the domain of their interest. participants are also interested in formally specifying the non-
Q16, Q17: Simple boxes/lines are the top preferred technique by the functional properties for their systems (32%) and their analysis too
participants for specifying the structural design decisions (i.e., (25%). Note that the participants are not so interested in generating
components and connectors). The second top preferred technique is software code from formal specifications (18%).
UML’s class diagram, which is preferred more than UML’s object and Q26: The participants are concerned most with the following issues
component diagrams. about formal specification languages: (i)the high learning curve
Q18, Q19, Q20: 77% of the participants not only specify the struc- (37%), (ii)stakeholders’ lack of knowledge about formal languages
tural design decisions but also the behavioural design decisions (i.e., (37%), and (iii)the lack of popularity in industry (37%). Some other
component behaviours and connectors’ interaction protocols). The concerning issues are the lack of support for architectural elements
top preferred technique is the natural languages, in which the par- (26%), difficult-to-use analysis tools (26%), and the lack of tutor-
ticipants specify their system behaviours textually in English ials/guidance (20%).
without using any notations. The second top preferred technique is Q27: ADLs are the least popular notations among the participants.
UML’s sequence diagram, which is preferred more than UML’s ac- Indeed, among those who use formal modeling notations (45% of
tivity and state diagrams. the participants), just 77% of them use ADLs.
Q21: The participants essentially focus on three reasons that moti- Q28: Domain specific ADLs (50%) are more preferred than early
vate them using the informal approaches: (i)easy to learn and use general-purpose ADLs (25%) and extensible ADLs (25%).
(79%), (ii)general purpose (66%), (iii)visual (62%). The other re- Q29: Among the four popular early general-purpose ADLs (i.e., C2,
latively less chosen reasons are familiarity among stakeholders Darwin, Rapide, and Wright), the top used ADL by the participants is
(46%), modeling tool support (25%), and code generation tool Darwin (46%).
support (18%), extensive notation set (20%). Q32: The top reason of the participants for using early general-
Q22: 65% of the participants who use informal software modeling purpose ADLs is the general-purpose scope (44%), which promotes
notations are not fully satisfied with the informal notations. They the high-level specifications of any types of systems. The partici-
focus on the following missing or inadequate requirements: (i)pre- pants are also motivated by the opportunity of using a first-gen-
cise (i.e., unambiguous) notation set (33%), (ii)modeling and ana- eration language that is expected to be relatively familiar in industry
lysing complex design decisions (e.g., behaviour and interaction) (38%) and the support for analysis tools (31%).

Fig. 23. The groups of ADLs used by the participants.

29
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Fig. 24. The early ADLs used by the participants.

Q30: Among the three popular domain-specific ADLs (i.e., AADL, Many lessons have also been learned about the software modeling
Koala, and Weaves), the top used domain-specific ADL by the par- notations and their categorisation based on the formal/informal se-
ticipants is AADL. mantics definition. As the survey results indicate, despite the benefits
Q33: The top reason for the use of domain-specific ADLs is the such as the precise specifications and exhaustive analysis, formally
ability of the automated formal analysis for domain-specific prop- defined modeling notations are not preferred by practitioners due to
erties (e.g., real-time features for embedded systems) (62%). This is their high learning curve, their lack of popularity industry, and stake-
followed by generating software implementation code from the holders’ lack of knowledge about them. Practitioners are more inclined
domain-specific software architectures (46%). to the UML-like informal modeling notations that are visual, familiar
Q31: Among the two extensible ADLs considered (i.e., ACME and (with low learning curve), and generally applicable. However, most
XADL), the top used ADL is ACME (50%). practitioners do still use the informal ad-hoc modeling techniques (e.g.,
Q34: The top selected reason for the use of extensible ADLs is the simple boxes/lines and natural languages) for specifying complex de-
ability of combining the capabilities of different ADLs (55%). This is sign decisions, such as system structures, behaviours, and interactions.
followed by the ability of introducing new features (or removing the The profiles of the participants may essentially impact their choice
undesired features) for their domain of interest (45%). of using formal/informal modeling notations. For example, the choice
Q35: Lastly, the top selected concerns about the ADLs are the weak of any participants with PhD degrees may differ from those with BSc
tool support (33%) and the lack of tutorials/user-guidance (33%). degrees; or, the participants with 10+ years of experiences may be
Following these two, the participants are also concerned about the more willing to use one type of notation against the other. However,
same issues as they are for the formal specification languages, i.e., any changes in the profiles of the participants have been observed to
high learning curve (29%), the stakeholders’ lack of knowledge not affect the participants’ choice of using formal or informal modeling
about ADLs (29%), and the lack of popularity in industry (29%). notations. Indeed, the profile data for the participants, such as aca-
demic majors, highest academic degrees, and the years of experiences,
do not vary considerably depending on the use of informal/formal
6.2. Lessons learned
modeling notations. Therefore, practitioners’ choice herein depends
essentially on their needs and expectations from their software archi-
As discussed in Section 4.1, this survey has been conducted fol-
tecture specifications. Indeed, while formal modeling may be a good
lowing author’s another survey [46]. This enabled the author to gain
choice for precise and formally analysable specifications, informal
experiences about designing and implementing a survey, including (i)
modeling may be better for eased communication among different
determining the research questions and target population, (ii) devel-
stakeholders.
oping the survey questions (e.g., the types of the questions, writing
Lastly, the survey provided the author with useful feedback about
good questions, and the response format of the questions), and (iii)
some of the survey questions, which can be taken into account for the
piloting the survey. Based on the feedback received for the previous
future surveys. Particularly, the question 21 (see Section 5.2.4) that
survey, the author improved this survey’s sample size too. Indeed,
aims at learning the reasons for using informal software modeling no-
searching the related scientific papers and extracting the names and
tations is too general. That is, it is not so easy to understand which type
emails of the practitioners contributed has been learned. Moreover, the
of informal modeling notation (i.e., natural languages, simple boxes/
snowball sampling method has been applied, which requires the po-
lines, or software modeling languages) that the participant focus in the
tential participants to forward the survey invitations to any other po-
question. Therefore, this question can be defined in the future for each
tential participants whom they know.

Fig. 25. The reasons for using early ADLs.

30
M. Ozkaya Information and Software Technology 95 (2018) 15–33

Fig. 26. The domain-specific ADLs used by the par-


ticipants.

Fig. 27. The reasons for using domain-specific ADLs.

Fig. 28. The extensible ADLs used by the partici-


pants.

Fig. 29. Participants’ reasons for using extensible ADLs.

Fig. 30. Participants concerns about ADLs.

31
M. Ozkaya Information and Software Technology 95 (2018) 15–33

type of informal modeling notation addressed in the survey where each 7. Conclusion and further work
question is specialised with the related set of answers. So, the partici-
pants can answer any of the specialised questions that match with the In this survey, it has been observed that informal modeling nota-
type of informal modeling notation they use and it will be possible to tions (94%) are far more popular among practitioners than formal
judge the reasons behind using the specific types of informal modeling modeling notations (30%) in specifying software architectures. 53% of
notations. the participants use UML-like informal software modeling languages,
while the rest find the informal ad-hoc approaches (i.e., natural lan-
guages and simple boxes/lines) satisfactory for their software archi-
6.3. Threats to validity tecture design tasks. An interesting outcome is that the ad-hoc ap-
proaches are the top-choices of the participants for specifying complex
6.3.1. Internal validity design decisions such as system structures, behaviours and interaction.
The internal validity of a survey is concerned with the causal re- So apparently, considering informal modeling languages’ lack of sup-
lationships between the survey findings and any independent variables port for the precise specifications that can be exhaustively analysed,
(i.e., unknown) that may affect the results unexpectedly. The in- practitioners do not want to burden themselves with their constrained
dependent variables must be minimised to maximise the internal va- notations. Indeed, many participants (65%) already recognised the
lidity of a survey study. One of the main reasons that causes in- importance of the precise specifications of complex design decisions
dependent variables in survey studies is the biased selection of the and their exhaustive analysis. While requirements such as precision and
participants (i.e., non-random selection). exhaustive analysis are dealt with by the formal software modeling
As discussed in Section 4.3, the participants for the survey have notations, most practitioners (70%) are reluctant against formal mod-
been selected using the non-probability sampling (i.e., non-random). To eling. Practitioners who have some experience about formal modeling
minimise any biases, a comprehensive selection process has been per- notations point out three issues, i.e., the high learning curve (47%),
formed systematically for reaching a variety of practitioners who are stakeholders’ lack of knowledge about formal modeling (37%), and the
involved in the software development related tasks. Indeed, the survey lack of popularity in industry (37%). Another interesting outcome is the
attracted participants from very different profiles that can be cate- formal ADLs’ lowest usage frequencies among all types of formal
gorised by the (i) countries, (ii) levels of education, (iii) studied subjects modeling notations despite the ADLs’ architecture-oriented notations
in universities, (iv) job positions, (v) levels of experiences, (vi) work (i.e., components and connectors). The very few practitioners who use
industries, (vii) project types involved, (viii) team scales, and (ix) team formal ADLs stated to suffer from the weak tool support and the lack of
roles. Regarding the participant selection, firstly, the personal contacts guidance/tutorials/etc.
have been contacted. Then, the companies around the world that are In the future, this survey may be improved to new ones that focus on
involved in software development have been searched via google and more specific issues about software architectures and its modeling no-
contacted by e-mail. The social media (e.g., Linkedin, fFcebook, Yahoo tations. One particular survey may focus on the possible architectural
groups) has also been used intensely to reach the individuals who work design decisions and aim at understanding software architects’ knowl-
in software development jobs. Lastly, the practitioners in industry who edge and experience about them and the software modeling notations
contributed to software architecture related research studies have been that are used for specifying each design decisions. Another survey may
identified via the google scholar and contacted too. To maximise the be for understanding software architects’ concerns about ADLs in a
responsiveness, the companies, personal contacts or social media plat- much more detailed way, focussing on the issues found out in the
forms that have been thought to not participate adequately have been current survey such as weak tool support and high learning curve.
sent reminder e-mails too. Moreover, the survey has been kept available
online for 6 months during the second-half of 2016. Acknowledgments

This work has been supported by the project of the Scientific and
6.3.2. Construct validity Technological Research Council of Turkey (TUBITAK), Grant No.
There is no any threats against the construct validity either, which is 215E159. I also would like to express my deep gratitude to Deniz Akdur
concerned with whether the survey measures what it is intended to do. who constantly shared his thoughts and provided invaluable feedback
The gathered data are analysed statistically. That is, to reach a result for during the preparation of the survey questions.
each question, the number of votes given for each answer is counted,
which is essentially the common practice among all survey studies. References
Moreover, since the survey is intended for the practitioners working in
industry, the survey has not also been sent to any recipient who work in [1] D. Garlan, M. Shaw, An Introduction to Software Architecture, Technical Report,
academia. To further minimise any threats, the survey initially informs (1994). Pittsburgh, PA, USA.
[2] R.N. Taylor, N. Medvidovic, E.M. Dashofy, Software Architecture: Foundations,
the participants about the aim of the survey and its content so that the Theory, and Practice, John Wiley & Sons, 2010. ISBN-13: 978-0470167748
participants will understand what they are about to fill. Lastly, the [3] N. Medvidovic, R.N. Taylor, A classification and comparison framework for soft-
survey content exactly reflect its goal (i.e., to understand the knowledge ware architecture description languages, IEEE Trans. Software Eng. 26 (1) (2000)
70–93.
and experience of the practitioners on informal and formal software [4] E.M. Clarke, J.M. Wing, Formal methods: state of the art and future directions, ACM
architecture modeling notations). Indeed, the survey is composed of Comput. Surv. 28 (4) (1996) 626–643, http://dx.doi.org/10.1145/242223.242257.
three parts: (i) participant profile, (ii) informal modeling notations and [5] J. Rumbaugh, I. Jacobson, G. Booch, Unified Modeling Language Reference Manual,
The, (2nd ed.), Pearson Higher Education, 2004.
(iii) formal modeling notations.
[6] L. Balmelli, An overview of the systems modeling language for products and sys-
tems development, J. Obj. Tech. 6 (6) (2007) 149–177. http://www.sysml.org .
[7] T. Lodderstedt, D.A. Basin, J. Doser, Secureuml: a uml-based modeling language for
model-driven security, in: J. Jézéquel, H. Hußmann, S. Cook (Eds.), UML 2002 - The
6.3.3. External validity
Unified Modeling Language, 5th International Conference, Dresden, Germany,
There is again no threats to the external validity and the survey September 30, - October 4, 2002, Proceedings, Lecture Notes in Computer Science,
results can, with no doubt, be generalised to the entire population. vol. 2460, Springer, 2002, pp. 426–441, , http://dx.doi.org/10.1007/3-540-45800-
Indeed, the survey received 115 different responses from the randomly X_33.
[8] B. Bauer, J.P. Müller, J. Odell, Agent uml: a formalism for specifying multiagent
chosen participants who are involved in IT related jobs that that belong software systems, Int. J. Software Eng. Knowl. Eng. 11 (3) (2001) 207–230.
to the participants chosen randomly among diverse countries, in- [9] M. Ozkaya, C. Kloukinas, Are we there yet? analyzing architecture description
dustries, companies, education levels, experiences, etc. languages for formal analysis, usability, and realizability, in: O. Demirörs,

32
M. Ozkaya Information and Software Technology 95 (2018) 15–33

O. Türetken (Eds.), EUROMICRO-SEAA, IEEE, 2013, pp. 177–184. [39] R. Hilliard, T. Rice, Expressiveness in architecture description languages,
[10] Z. DeVito, N. Joubert, F. Palacios, S. Oakley, M. Medina, M. Barrientos, E. Elsen, Proceedings of the Third International Workshop on Software Architecture, ISAW
F. Ham, A. Aiken, K. Duraisamy, E. Darve, J. Alonso, P. Hanrahan, Liszt: A domain ’98, ACM, New York, NY, USA, 1998, pp. 65–68, http://dx.doi.org/10.1145/
specific language for building portable mesh-based pde solvers, Proceedings of 288408.288425.
2011 International Conference for High Performance Computing, Networking, [40] P. Zhang, H. Muccini, B. Li, A classification and comparison of model checking
Storage and Analysis, SC ’11, ACM, New York, NY, USA, 2011, pp. 9:1–9:12, http:// software architecture techniques, J. Syst. Softw. 83 (5) (2010) 723–744, http://dx.
dx.doi.org/10.1145/2063384.2063396. doi.org/10.1016/j.jss.2009.11.709.
[11] C.L. Conway, S.A. Edwards, Ndl: a domain-specific language for device drivers, [41] J.S. Bradbury, J.R. Cordy, J. Dingel, M. Wermelinger, A survey of self-management
SIGPLAN Not. 39 (7) (2004) 30–36, http://dx.doi.org/10.1145/998300.997169. in dynamic software architecture specifications, Proceedings of the 1st ACM
[12] M. Weske, Business Process Management: Concepts, Languages, Architectures, SIGSOFT Workshop on Self-managed Systems, WOSS ’04, ACM, New York, NY,
Springer-Verlag New York, Inc., Secaucus, NJ, USA, 2007. USA, 2004, pp. 28–33, http://dx.doi.org/10.1145/1075405.1075411.
[13] J.A. Bergstra, Handbook of Process Algebra, Elsevier Science Inc., New York, NY, [42] R.K. Pandey, Architectural description languages (adls) vs uml: a review, SIGSOFT
USA, 2001. Softw. Eng. Notes 35 (3) (2010) 1–5, http://dx.doi.org/10.1145/1764810.
[14] C.A.R. Hoare, Communicating sequential processes, Commun. ACM 21 (8) (1978) 1764828.
666–677. [43] N. Ali, C. Solís, I. Ramos, Comparing architecture description languages for mobile
[15] J. Magee, J. Kramer, Concurrency - state models and java programs (2. ed.), Wiley, software systems, Proceedings of the 1st International Workshop on Software
2006. Architectures and Mobility, SAM ’08, ACM, New York, NY, USA, 2008, pp. 33–38,
[16] R. Milner, J. Parrow, D. Walker, A calculus of mobile processes, i, Inf. Comput. 100 http://dx.doi.org/10.1145/1370888.1370897.
(1) (1992) 1–40. [44] S. Balsamo, A.D. Marco, P. Inverardi, M. Simeoni, Model-based performance pre-
[17] G.J. Holzmann, The Spin Model Checker, vol. 23, (1997), pp. 279–295. diction in software development: a survey, IEEE Trans. Softw. Eng. 30 (5) (2004)
[18] Formal Description Technique Lotos: Results of the Esprit Sedos Project, in: 295–310, http://dx.doi.org/10.1109/TSE.2004.9.
P.V. Eijk, M. Diaz (Eds.), Elsevier Science Inc., New York, NY, USA, 1989. [45] S. Bernardi, J. Merseguer, D.C. Petriu, Dependability modeling and analysis of
[19] D. Jackson, Alloy: a lightweight object modelling notation, ACM Trans. Softw. Eng. software systems specified with uml, ACM Comput. Surv. 45 (1) (2012) 2:1–2:48,
Methodol. 11 (2) (2002) 256–290. http://dx.doi.org/10.1145/2379776.2379778.
[20] K.G. Larsen, P. Pettersson, W. Yi, UPPAAL in a nutshell, STTT 1 (1–2) (1997) [46] M. Ozkaya, What is software architecture to practitioners: a survey, in:
134–152. S. Hammoudi, L.F. Pires, B. Selic, P. Desfray (Eds.), MODELSWARD 2016 -
[21] P. Chalin, J.R. Kiniry, G.T. Leavens, E. Poll, Beyond assertions: advanced specifi- Proceedings of the 4rd International Conference on Model-Driven Engineering and
cation and verification with JML and ESC/Java2, in: F.S. de Boer, M.M. Bonsangue, Software Development, Rome, Italy, 19–21 February, 2016. SciTePress, 2016, pp.
S. Graf, W.P. de Roever (Eds.), FMCO, Lecture Notes in Computer Science, vol. 677–686, , http://dx.doi.org/10.5220/0005826006770686.
4111, Springer, 2005, pp. 342–363. [47] T. Punter, M. Ciolkowski, B.G. Freimut, I. John, Conducting on-line surveys in
[22] M. Barnett, K.R.M. Leino, W. Schulte, The spec# programming system: an overview, software engineering, 2003 International Symposium on Empirical Software
Proceedings of the 2004 international conference on Construction and Analysis of Engineering (ISESE 2003), 30 September - 1 October 2003. Rome, Italy, IEEE
Safe, Secure, and Interoperable Smart Devices, CASSIS’04, Springer-Verlag, Berlin, Computer Society, 2003, pp. 80–88, http://dx.doi.org/10.1109/ISESE.2003.
Heidelberg, 2005, pp. 49–69, http://dx.doi.org/10.1007/978-3-540-30569-9_3. 1237967.
[23] R. Allen, D. Garlan, A formal basis for architectural connection, ACM Trans. Softw. [48] B. Kitchenham, S.L. Pfleeger, Principles of survey research: part 5: populations and
Eng. Methodol. 6 (3) (1997) 213–249. samples, SIGSOFT Softw. Eng. Notes 27 (5) (2002) 17–20, http://dx.doi.org/10.
[24] J. Magee, N. Dulay, S. Eisenbach, J. Kramer, Specifying distributed software ar- 1145/571681.571686.
chitectures, in: W. Schäfer, P. Botella (Eds.), ESEC, Lecture Notes in Computer [49] B. Elvesæter, A. Berre, A. Sadovykh, Specifying services using the service oriented
Science, vol. 989, Springer, 1995, pp. 137–153. architecture modeling language (soaml) - a baseline for specification of cloud-based
[25] D.C. Luckham, J. Kenney, L. Augustin, J. Verra, D. Bryan, W. Mann, Specification services, in: F. Leymann, I.I. Ivanov, M. van Sinderen, B. Shishkov (Eds.), CLOSER
and analysis of system architecture using rapide, IEEE Trans. Softw. Eng. 21 (4) 2011 - Proceedings of the 1st International Conference on Cloud Computing and
(1995) 336–355. Services Science, Noordwijkerhout, Netherlands, 7–9 May, 2011, SciTePress, 2011,
[26] P.H. Feiler, B.A. Lewis, S. Vestal, The SAE architecture analysis & design language pp. 276–285.
(AADL): A standard for engineering performance critical systems, in: IEEE Intl [50] M. Maróti, T. Kecskés, R. Kereskényi, B. Broll, P. Völgyesi, L. Jurácz,
Symp. on Intell. Control, 2006 //aadl.info, pp. 1206–1211. doi:10.1109/CACSD. T. Levendovszky, Á. Lédeczi, Next generation (meta)modeling: web- and cloud-
2006.285483. based collaborative tool infrastructure, in: D. Balasubramanian, C. Jacquet,
[27] D. Garlan, R.T. Monroe, D. Wile, Acme: An architecture description interchange P.V. Gorp, S. Kokaly, T. Mészáros (Eds.), Proceedings of the 8th Workshop on Multi-
language, Proceedings of CASCON’97, (1997), pp. 169–183. Toronto, Ontario Paradigm Modeling co-located with the 17th International Conference on Model
[28] E.M. Dashofy, A. van der Hoek, R.N. Taylor, An infrastructure for the rapid de- Driven Engineering Languages and Systems, MPM@MODELS 2014, Valencia,
velopment of xml-based architecture description languages, Proceedings of the 22rd Spain, September 30, 2014. CEUR Workshop Proceedings, vol. 1237, CEUR-WS.org,
International Conference on Software Engineering (ICSE), Orlando, Florida, ACM, 2014, pp. 41–60.
2002, pp. 266–276. [51] B. Meyer, Applying “design by contract”, IEEE Comput. 25 (10) (1992) 40–51.
[29] I. Malavolta, P. Lago, H. Muccini, P. Pelliccione, A. Tang, What industry needs from [52] J. Aldrich, C. Chambers, D. Notkin, Archjava: connecting software architecture to
architectural languages: a survey, IEEE Trans. Softw. Eng. 99 (2012), http://dx.doi. implementation, in: W. Tracz, M. Young, J. Magee (Eds.), ICSE, ACM, 2002, pp.
org/10.1109/TSE.2012.74. 187–197.
[30] J. Jürjens, Secure Systems Development with UML, Springer, 2005, http://dx.doi. [53] J.G.P. Barnes, High Integrity Software - The SPARK Approach to Safety and
org/10.1007/b137706. Security, Addison-Wesley, 2003.
[31] A. Tang, M.A. Babar, I. Gorton, J. Han, A survey of architecture design rationale, J. [54] T. Murata, Petri nets: properties, analysis and applications, Proc. IEEE 77 (4) (1989)
Syst. Softw. 79 (12) (2006) 1792–1804, http://dx.doi.org/10.1016/j.jss.2006.04. 541–580, http://dx.doi.org/10.1109/5.24143.
029. [55] J.M. Spivey, Z notation - a reference manual, (Second ed.), Prentice Hall
[32] M.A. Babar, I. Gorton, Software architecture review: the state of practice, Computer International Series in Computer Science, Prentice Hall, 1992.
42 (7) (2009) 26–32, http://dx.doi.org/10.1109/MC.2009.233. [56] L. Sterling, E.Y. Shapiro, The Art of Prolog - Advanced Programming Techniques,
[33] D. Soni, R.L. Nord, C. Hofmeister, Software architecture in industrial applications, Second ed., MIT Press, 1994.
Proceedings of the 17th International Conference on Software Engineering, ICSE [57] A. Cimatti, E. Clarke, F. Giunchiglia, M. Roveri, Nusmv: a new symbolic model
’95, ACM, New York, NY, USA, 1995, pp. 196–207, http://dx.doi.org/10.1145/ checker, Int. J. Softw. Tools Technol. Trans. 2 (4) (2000) 410–425, http://dx.doi.
225014.225033. org/10.1007/s100090050046.
[34] H.B. Christensen, K.M. Hansen, K.R. Schougaard, An empirical study of software [58] J.-R. Abrial, Modeling in Event-B: System and Software Engineering, First ed.,
architects’ concerns, in: S. Sulaiman, N.M.M. Noor (Eds.), 16th Asia-Pacific Cambridge University Press, New York, NY, USA, 2010.
Software Engineering Conference, APSEC 2009, 1–3 December 2009, Batu [59] M. Barr, C. Wells, Category theory for computing science, (Second ed.), Prentice
Ferringhi, Penang, Malaysia, IEEE Computer Society, 2009, pp. 111–118, , http:// Hall international Series in Computer Science, Prentice Hall, 1995.
dx.doi.org/10.1109/APSEC.2009.12. [60] R.C. van Ommering, F. van der Linden, J. Kramer, J. Magee, The koala component
[35] A. Caracciolo, M.F. Lungu, O. Nierstrasz, How do software architects specify and model for consumer electronics software, IEEE Comput. 33 (3) (2000) 78–85.
validate quality requirements? in: P. Avgeriou, U. Zdun (Eds.), Software [61] M. Gorlick, A. Quilici, Visual programming-in-the-large versus visual programming-
Architecture - 8th European Conference, ECSA 2014, Vienna, Austria, August in-the-small, Proceedings of 1994 IEEE Symposium on Visual Languages, (1994),
25–29, 2014. Proceedings, Lecture Notes in Computer Science, vol. 8627, Springer, pp. 137–144, http://dx.doi.org/10.1109/VL.1994.363631.
2014, pp. 374–389, , http://dx.doi.org/10.1007/978-3-319-09970-5_32. [62] J. Magee, J. Kramer, Dynamic structure in software architectures, SIGSOFT FSE,
[36] K. Smolander, M. Rossi, S. Purao, Software architectures: blueprint, literature, (1996), pp. 3–14.
language or decision? EJIS 17 (6) (2008) 575–588, http://dx.doi.org/10.1057/ejis. [63] N. Medvidovic, P. Oreizy, J.E. Robbins, R.N. Taylor, Using object-oriented typing to
2008.48. support architectural design in the c2 style, SIGSOFT FSE, (1996), pp. 24–32.
[37] P.C. Clements, A survey of architecture description languages, Proceedings of the [64] P. Cuenot, P. Frey, R. Johansson, H. Lönn, M.-O. Reiser, D. Servat, R. Tavakoli
8th International Workshop on Software Specification and Design, IWSSD ’96, IEEE Kolagari, D. Chen, Developing automotive products using the east-adl2 : an autosar
Computer Society, Washington, DC, USA, 1996, p. 16. compliant architecture description language, Automob. Eng. 793 (2008).
[38] N. Medvidovic, E.M. Dashofy, R.N. Taylor, Moving architectural description from [65] D. Kum, G.M. Park, S. Lee, W. Jung, Autosar migration from existing automotive
under the technology lamppost, Inf. Softw. Technol. 49 (1) (2007) 12–31, http:// software, 2008 International Conference on Control, Automation and Systems,
dx.doi.org/10.1016/j.infsof.2006.08.006. (2008), pp. 558–562, http://dx.doi.org/10.1109/ICCAS.2008.4694565.

33

You might also like