<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Research on Quality Model and Measurement for Microservices</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jinchuan Yu</string-name>
          <email>yjc_sirius@126.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jianxin Ge</string-name>
          <email>gjx@sscenter.sh.cn</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jixin Sun</string-name>
          <email>29577661@qq.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Software Engineering Institute, Shanghai Key Laboratory of Computer, Software Testing &amp; Evaluation, Shanghai Development Center of, Computer Software Technology</institution>
          ,
          <addr-line>Shanghai</addr-line>
          ,
          <country country="CN">China</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <issue>21312102</issue>
      <abstract>
        <p>-In recent years, microservice architecture (MSA) has become popular. Emerging from the agile community, MSA implies a number of small, independently deployable microservices. They are characterized by low coupling, high cohesion, low complexity, and are more flexible and convenient in application, saving resource efficiency.However, there is limited research on quality models for MSA. Although MSA is a special form of service-oriented architecture, there are still some differences between the two that are hard to ignore, such as decentralization, smaller service size and encouraging technical heterogeneity. Therefore, it is difficult to directly apply the traditional quality model research of service-oriented architecture to MSA. Based on the above considerations, this paper proposes a quality model for MSA, which reflects the quality characteristics of microservices through 16 measures for each of the Functional Suitability, Flexibility, Interactivity, Performance Efficiency, Reliability and Security. At the same time, to address the shortage of theoretical validation of current research, this paper uses static analysis and dynamic analysis to validate the proposed measures and prove the rationality of its theory.</p>
      </abstract>
      <kwd-group>
        <kwd>microservice architecture</kwd>
        <kwd>software attribute</kwd>
        <kwd>quality model</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        A microservice architecture (MSA) is a variant of the
Service- Oriented Architecture (SOA) structural style. As to
Martin Fowler, it is to build an application as a group of
services each designed for a specifific business capability, and
intercommunicate via lightweight mechanisms while being
independently deployable [
        <xref ref-type="bibr" rid="ref11">13</xref>
        ]. In a microservices
architecture, services are fine-grained and the protocols are
lightweight. MSA is currently the most popular architecture
for companies creating new applications, due to its advantages,
such as agility or scalability [5]. The architecture has a crucial
role in the software life-cycle, for example to ensure quality
and critical attributes of the software [
        <xref ref-type="bibr" rid="ref12">14</xref>
        ]. To take advantage
of the microservice-style architecture, much effort has been
invested into porting legacy, monolithic applications[
        <xref ref-type="bibr" rid="ref9">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">6</xref>
        ].
Microservices is a young research area and there is very little
work on comprehensive and systematic evaluation of
microservice architectures(MSA). In this paper, we propose a
quality model to evaluate MSA more comprehensively by
mapping measures to multiple aspects of software properties.
      </p>
      <p>
        Most of the software quality measures used in the early
process-oriented paradigm of software systems were oriented
towards underlying software measures, such as the number of
codes, the complexity of functions or control flows, etc.After
object-oriented programming became the dominant
programming paradigm, existing measures and standards may
not be fully applicable to object-oriented software systems,
which has led researchers to reevaluate existing measures and
propose new ones at the same time. Among them, the most
influential ones are the C&amp;K measure set proposed by
Chidamber and Kemerer [
        <xref ref-type="bibr" rid="ref13 ref14">15, 16</xref>
        ] and the L&amp;H measure set
proposed by Li and Henry [
        <xref ref-type="bibr" rid="ref15">17</xref>
        ]. They introduce CBO
(Coupling Between Object Classes), which have received a
great deal of attention. With the further expansion of the
system size, SOA (Service-Oriented Architecture) became
more and more popular, the level of abstraction of software
measure objects has been raised again. Perepletchikov et al
[
        <xref ref-type="bibr" rid="ref16">18</xref>
        ] proposed two sets of measures to measure
serviceoriented software systems by two software properties:
coupling [
        <xref ref-type="bibr" rid="ref17">19</xref>
        ] and cohesion [
        <xref ref-type="bibr" rid="ref18">20</xref>
        ]. Mario et al [4] argue that the
measure values of software attributes can reflect software
quality and evaluate microservice architectures in terms of
cohesion, coupling, and complexity through a data-driven
approach, using maintainability as an example. Yang et al [1]
measured the maintainability of microservice systems by four
software attributes: scale, coupling, cohesion and complexity,
and established a maintainability quality model for
microservice architectures. However, according to ISO/IEC
25010:2011, maintainability is only a part of the MSA quality
model and no comprehensive and holistic MSA quality model
has been proposed.[1] Integrating Yang et al.'s research on the
quality model of MSA maintainability, Tong et al.'s research
on MSA functional efficiency and others' research results, and
the ISO/IEC 25010:2011 standard, this paper proposes a
quality model of MSA to reflect the quality of micro The
quality characteristics of microservices are reflected by 16
measures in functional suitability, flexibility, interaction,
performance efficiency, reliability and security. Flexibility is
a measure of the ease of secondary development, expansion
and maintenance of microservice architecture, including four
measures of cohesion, coupling, complexity and reusability;
interactivity is a measure of the association and influence
between microservice architecture and other microservices
and external systems, including two measures of
interoperability and coexistence. The core characteristics of
microservice architecture are characterized.
      </p>
      <p>The remainder of this paper is organized as follows.
Section Ⅱ analyzes and quantitatively expresses the MSA,
Section Ⅲ proposes an MSA-oriented quality model, Section
Ⅳ validates the quality model results, and the summary and
future work are in Section Ⅴ.</p>
    </sec>
    <sec id="sec-2">
      <title>II. MSA MODEL ANALYSIS</title>
      <sec id="sec-2-1">
        <title>A. Formal representaton of MSA</title>
        <p>In order to clearly and accurately describe the MSA and
define the measures proposed subsequently, this subsection
abstracts the microservice architecture of interest by applying
the approach of Yang et al. [1] to this paper and formalizes it
accordingly. The conceptual software architecture of the
entire microservice system can be represented in the form of
Figure 2.1. Based on Yang et al.'s study, we added the
relationship between the microservice system and external
programs as an attribute .</p>
        <p>represents the dependency relationship between
modules in Microservices   .
, 
),  ℎ
 . 
,  . 
∈   
 is the module that depends on other modules in the
corresponding dependency, and   is the module on which
other modules depend in the corresponding dependency. The
whole microservice system can be formalized as a collection
of microservices, and dependencies between microservices.
Integrated system(IS) refers to the sum of microservice
system and external programs</p>
        <p>For a single microservice in a microservice system,
formalize each microservice   in the following representation.
  = (   , 
  , 
  )
   denotes a collection of modules in a microservice   .
  denotes the set of interfaces in a microservice   .</p>
        <p>= {  | ∈  0}
 0 means natural number.</p>
        <p>= {   | ∈  0}
   = (</p>
        <p>,   )
  = {  | ∈  0}
 represents dependencies between microservices and
other microservices.
 is the microservice that depends on other microservices
in the corresponding dependency,  is the microservice on
which other microservices depend in the corresponding
dependency, and  is the interface involved in the
corresponding dependency.</p>
        <p>EPR represents the relationship between the microservice
system and external programs.</p>
      </sec>
      <sec id="sec-2-2">
        <title>B. MSA Attributes Analysis</title>
        <p>MSA consists of one microservice unit, each of which has
the ability to perform functions independently; at the same
time, microservices show the characteristics of low coupling
and high cohesion, making the whole MSA more flexible, and
each module and each microservice unit has the ability to be
reused; in addition, due to the low complexity and small scale
of microservice system, the resources required for execution
are lower and more efficient. To address the advantages and
characteristics of MSA, we developed a quality model of
MSA by combining the research of Michel-Daniel et al.[1]</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>III. QUALITY MODEL FOR MSA</title>
      <sec id="sec-3-1">
        <title>A. Software Quality Model Study</title>
        <p>
          Software quality models can help us to better propose and
apply measures, and usually measure models describe the
entities, attributes, and relationships of measures, and
currently common measure models in the field of software
engineering include the GQM (Goal Question Measure)
model [
          <xref ref-type="bibr" rid="ref19">21</xref>
          ] and the QMOOD (Quality Model for
ObjectOriented Design) model.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>1) GQM model:</title>
        <p>The GQM model is the "Goal-Problem-Measure" model,
which is one of the common measures models in software
engineering practice, and is based on the idea that measures
are measured by answering specific questions about the goal
of the measure. The GQM model consists of three main layers:
the conceptual layer, the operational layer, and the data layer.
The conceptual layer is the goal to be measured, and the
operational layer decomposes the abstracted goal into
concrete questions. The data layer will give specific measures
for these questions. By deriving the measure values of the
measures and thus answering the questions, the specific
measure of the target is finally obtained. The framework of
the approach is shown in Figure 3.1.</p>
      </sec>
      <sec id="sec-3-3">
        <title>2) QMOOD model:</title>
        <p>
          The QMOOD model is a four-level hierarchical quality
model proposed by Bansiya and Davis [
          <xref ref-type="bibr" rid="ref20">22</xref>
          ]. Originally
applied to the quality assessment of object-oriented software
systems, it has been migrated to other types of software
systems [
          <xref ref-type="bibr" rid="ref21">23</xref>
          ]. The QMOOD model is a hierarchical model
consisting of quality attributes and software features that
reflect the quality attributes.The model consists of four
layers.The first layer is the quality attributes that are the goals
of the assessment; the second layer is more specific software
attributes such as cohesion, coupling, comprehensibility etc.;
the third layer is the specific measures that can be used to
evaluate the second layer of software attributes; and the last
layer is the software components that these measures focus on,
such as classes, components, interfaces, etc. Figure 3.2
illustrates the four-layer quality model framework of
QMOOD.
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>B. MSA Quality Model</title>
        <p>The final quality model for the microservice-oriented
architecture is shown in Figure 3.3. The first layer is the sum
of the quality attributes to be evaluated in this paper. The
second layer is the software attributes that can reflect the
characteristics of the microservice architecture, which are
Functional Suitability, Flexibility, Interactivity, Performance
Efficiency, Reliability and Security. The third layer is the
specific measures, which are 16 in total. These 16 measures
each of the six software attributes in different aspects. The
fourth layer is the object to be measured by the proposed
measures. Considering that the microservice architecture
advocates technical heterogeneity, the selected measures are
to a certain extent independent of the programming language
and technical implementation, this paper selects modules,
interfaces, microservices and their related relationships as the
measures of microservices themselves based on the
characteristics of microservices. At the same time, we add the
external system as the measure object because we have to
consider the interaction between microservice system and
other systems.
C. Study On measures Of MSA Quality Model</p>
        <p>This section measures MSA by Functional Suitability,
Flexibility, Interactivity, Performance Efficiency, Reliability
and Security. Each of the six software attributes and their
measures will be described below.</p>
      </sec>
      <sec id="sec-3-5">
        <title>1) Functional Suitability:</title>
        <p>This attribute measures degree to which MSA provides
functions that meet stated and implied needs when used under
specified conditions.</p>
        <p>a) FAM(Functional appropriateness measures): This
measure measures degree to which the functions facilitate the
accomplishment of specified tasks and objectives. The user is
counted to demonstrate the steps necessary to complete a task
as well as any unnecessary steps. The ratio of the former to the
latter is the measure for this section.</p>
        <p>b) FCM(Functional correctness measures): This
measure measures degree to which MSA provides the correct
results with the needed degree of precision.</p>
      </sec>
      <sec id="sec-3-6">
        <title>2) Flexibility:</title>
        <p>This attribute is an upgraded version of maintainability,
which reflects the concept of high maintainability of
microservice systems ---- coupling, cohesion and complexity,
and also reflects the ability of microservice systems to be
developed twice, which is the concept of reusability we
proposed.</p>
        <p>a) CPM(Coupling measures): The coupling measure
measures the degree of dependency between elements within
a microservice and between a microservice and other
microservices. Loose coupling has a positive impact on
flexibility.The measures proposed in this paper quantify the
coupling at two main levels, the microservice implementation
element level and the microservice level, respectively. The
main concerns include the dependency relationships between
modules belonging to the same microservice and the
invocation relationships between microservices generated
through interfaces.</p>
        <p>• Internal Microservices Coupling of Model，IMSCM.</p>
        <p>
          The IMSCM calculates the sum of the dependencies
between the modules inside the microservice, i.e., the
connections between modules [
          <xref ref-type="bibr" rid="ref22">24</xref>
          ]. In fact, this type of
coupling measure has been validated in studies of
service-oriented architectures [
          <xref ref-type="bibr" rid="ref10">12</xref>
          ] and is considered to
be directly related to coupling.
•
        </p>
        <p>
          = |   |
Weighted Microservices Coupling of Interface ，
WMSCI. WMSCI measures the degree of dependency
between microservices and microservices in a system,
and in this measure, this paper abstracts the coupling
to the microservice level, and the specific measures
include the invoking and invoked relationships. In this
paper, we refer to the study of Kulesza et al [
          <xref ref-type="bibr" rid="ref23">25</xref>
          ], which
argues that both incoming and outgoing coupling are
very important and that these couplings contribute to
the decision of whether to refactor or not.The WMSCI
measure is equal to the sum of the weighted coupling
value of the microservice's dependency on other
microservices and the weighted coupling value of the
microservice's dependency on other microservices,
which is calculated as follows.

= |{ ∈  | . 
=   ∪  . 
=   }|
b) COHM(Cohesion measures): A design with high
cohesion significantly enhances the understandability and
testability of a software system, while improving its stability
and modifiability, which in turn affects the flexibility of the
software system. However, compared to coupling, cohesion
is
difficult
to
analyze
quantitatively
and
measure
automatically, and more often than not cohesion relies on
semantic or subjective evaluation.
        </p>
        <p>•</p>
        <p>Microservices Cohesion of Interface Data，MSCID.
MSCID
quantifies the
cohesiveness of a
given
microservice by measuring the degree of similarity of
the parameters passed in the interfaces exposed by its
microservices; a microservice is highly cohesive if all
interfaces work on the same type of input parameters.</p>
        <p>Microservices Cohesion of Interface Usage，MSCIU.
MSCIU
quantifies the
cohesiveness
of a given
microservice by</p>
        <p>
          measuring the invocations of that
interface by other microservices. A microservice is
considered highly cohesive when each user of the
microservice (microservice consumer) invokes all the
public interfaces of the microservice, which can be
considered highly relevant for implementing a certain
functionality.
[
          <xref ref-type="bibr" rid="ref24">26</xref>
          ], which measures the extent to which changes in a
single
        </p>
        <p>module lead to potential changes in other
modules within the microservice. This is expressed as
the
possible information
flow
and
dependencies
between modules, which can be obtained through the
passing of dependencies. If a module is directly or
indirectly dependent on a large number of other
modules, the more likely it is that changes to this
module
will
affect
other modules.</p>
        <p>MSMPC is
calculated as follows.</p>
        <p />
        <p>= ∑</p>
        <p>∑ 
be connected by the passing of dependencies, i.e., whether the
value of the passing closure matrix at their locations is not zero.
•</p>
        <p>Microservices Parameter Count ， MSPC.</p>
        <p>MSPC
mainly
measures the</p>
        <p>number of data structures
appearing in the microservice, and in this paper we
mainly consider the number of parameters of the
interface, which includes its own interface and the
interface of invoking other microservices. MSPC is
calculated as follows.</p>
        <p>= ⋃</p>
        <p>,    ∈ 
|
 =1</p>
        <p>
          |
d) RM (Reusability measures): Reusability is a very
desirable quality measure for industry [
          <xref ref-type="bibr" rid="ref25">27</xref>
          ], due to its major
cost reduction prospects. Moreover, the microservice can be
repurposed so that with little changes can be used outside of
its design time domain.
        </p>
        <p>•
•</p>
        <p>The degree of reuse of microservices in secondary
development.</p>
        <p>Counts
the
number
of
times a
microservice module is reused in the execution of
different services to characterize its degree of reuse.
Time efficiency of reuse of microservices in secondary
development. Characterize the reuse time efficiency of
a microservice</p>
        <p>module by counting the time it
consumes to reuse it during the execution of different
services.</p>
      </sec>
      <sec id="sec-3-7">
        <title>3) Interactivity:</title>
        <p>This
section
examines the interaction
between the
MSMPC refers to the visibility theory from the study
the monetary cost of the resources used for running the
=
|{ ∈  | .</p>
        <p>=   }|
|
  | ∗ |    |
•</p>
        <p>Microservices Cohesion of Model ， MSCM. This
measure abstracts the methods and properties in a class
to the module level in a microservice. If the number of
connectivity
dependencies
graphs formed
by</p>
        <p>all
of a
microservice is
modules and
1, then the
microservice is cohesive to a certain extent. However,
considering
that
many
microservice
architectures
manage the operations related to interfaces through a
unified
module, which often leads to the
module
becoming the hub of an otherwise unconnected graph,
the module and its dependencies are removed from the
connected graph when using this measure for cohesion
measurement.
 ( − 1)
 
and  
are
modules
in
the
microservice,
the same connectivity graph, and its return value is 1 or 0.
(  ,   ) is to calculate whether  and   belong to</p>
      </sec>
      <sec id="sec-3-8">
        <title>c) CPLM(Complexity measures):</title>
        <p>Complexity
primarily</p>
        <p>measures the complexity of the microservice
implementation and execution functions, and more broadly
includes the ease with</p>
        <p>which developers can perceive,
understand, and modify them. High complexity can have a
negative impact on flexibility.In this paper, complexity is
measured by the following two measures, taking into account
the complexity of the microservice implementation itself and
the complexity of developer awareness and understanding.
•</p>
        <p>
          Microservices Model Propagation Cost ， MSMPC.
microservice. The cost can be estimated at design time and
corrected after the implementation is evaluated at execution
time.[
          <xref ref-type="bibr" rid="ref1">2</xref>
          ]
        </p>
        <p>
          b) RT (Response time): the anticipated delay between
the time when a request to a microservice is issued and the
time when the result is delivered.The average response time
of all requests over a period of time is measured, and the
smaller the average response time, the faster the processing
speed and the more efficient the service.[
          <xref ref-type="bibr" rid="ref2">3</xref>
          ]

  =Time taken by the system to response to a specific user
task or system task at i-th measurement.
        </p>
        <p>n=Number of responsed measures
5) Reliability: degree to which a system, product or
component performs specified functions under specified
conditions for a specified period of time.</p>
        <p>a) SER (Successful execution rate): the ability of a
service provider to successfully fulfil the requests within a
given period of time. It is measured as a number between 0
and 1 or a percentage calculated as the ratio between
successful requests and the total number of requests.</p>
        <p>b) Sca (Scalability): the ability of a microservice to
function correctly (as designed) irrespective of the changes in
size (amount of resources) without inquiring performance
penalties. the degree of scalability can be calculated by
analyzing the distribution of synchronous requests provided
by the exposed interfaces, a high diversity of requests
indicating poor scalability.</p>
      </sec>
      <sec id="sec-3-9">
        <title>c) HM (Health</title>
        <p>management): a quality
attribute
describing the ability of a microservice to cope with failures.
A</p>
        <p>
          microservice complies to this property by saving the
internal state, and restarting automatically while loading the
most up-to-date state prior to the failure. It is a binary
attribute with ”yes” or ”no” values and it is verified via
instance graphs or type graphs [
          <xref ref-type="bibr" rid="ref6">8</xref>
          ].
        </p>
        <p>6) Security: degree to which a product or system protects
information and data so that persons or other products or
systems have the degree of data access appropriate to their
types and levels of authorization.</p>
        <p>a) CM (Cofidentiality measures): degree to which a
product or system ensures that data are accessible only to
those authorized to have access.</p>
        <p />
        <p>= 1 −  /
A=Numbers of cofidentiality data items that can be
accessed without authorization
B=Number of data items that require access control
b) IM (Integrity measures): degree to which a system,
product or component prevents unauthorized access to, or
modification of, computer programs or data.</p>
        <p>A=Number of data corruption prevention methods actually
B=Number of data corruption prevention methods available</p>
        <p>=  /
implemented
and recommended</p>
        <p>
          IV. VALIDATION OF QUALITY MODELS
measure-based evaluation is compulsory for assessing the
quality attributes of microservices. A vast number of quality
criteria
measuring
a
variety
of
aspects
concerning
microservices exist [
          <xref ref-type="bibr" rid="ref7">9</xref>
          ]. However, evaluation approaches are
scarce [
          <xref ref-type="bibr" rid="ref5">7</xref>
          ], while assessment methods for semi -automatic
decompositions are entirely missing [
          <xref ref-type="bibr" rid="ref8">10</xref>
          ]. Therefore, we have
designed a combination of static and dynamic analysis. In the
following, we introduce the static and dynamic analysis, and
then specific attributes will be selected for analysis.
        </p>
      </sec>
      <sec id="sec-3-10">
        <title>A. Static Analysis:</title>
        <p>It is a technique that does not require execution of the
analyzed software. Scanning the code of a microservice before
being linked to other microservices can aid the identification
and correction of vulnerabilities without incurring the costs of
running the code.</p>
      </sec>
      <sec id="sec-3-11">
        <title>B. Dynamic Analysis:</title>
        <p>It is a technique that requires the execution of the analyzed
software, usually employed when the application code is not
available. The</p>
        <p>most common type of dynamic analysis
consists of Unit Tests and it has the benefit of validating static
analysis findings or identify new flaws.</p>
        <p>C. Validation test result Analysis:</p>
        <p>a) Functional Suitability Validation Analysis: The
analysis of Functionality Suitability is a dynamic analysis. To
verify the functionality of the microservice, the program of
the microservice unit is executed and then compared with the
expected result, if the result meets the expectation, it means
the Functionality Suitability is good.</p>
        <p>b) Flexibility Validation Analysis: The analysis of
Flexibility belongs to a combination of static and dynamic
analysis.</p>
        <p>By
studying the
modules and interfaces of
microservices and their relationships, we can determine the
coupling, cohesion, and complexity of microservices. These
belong to static analysis; however, when studying the reuse
of microservices in secondary development, we need to run
microservices in different development environments, which
belongs to dynamic analysis.</p>
        <p>c) Co-existence measures Validation Analysis:
Coexistence</p>
        <p>measures means that the interaction between the
microservice architecture and the external program does not
affect the execution of their respective functions, and that no
exceptions occur in either program during the execution of
the test. Obviously, we need to make the microservices
system and the external program run simultaneously, which
is a dynamic analysis .</p>
        <p>d) Confidientially measures Validation Analysis: The
extent to which the microservices system ensures that only
authorized people have access to the data. The detection of
such measures is a dynamic analysis and requires verification
that unauthorized users have access to the data.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>V. SUMMARY AND FUTURE WORK</title>
      <sec id="sec-4-1">
        <title>A. Summary</title>
        <p>Microservices is a young research area, and there is still
relatively little work on quality models for microservices
architectures. Although
At the same time, the current research on quality models for
services often lacks theoretical validation, which may be more
important than quantitative analysis. Based on this, this paper
conducts quality modeling research for microservice
architectures, and its main work and contributions include.</p>
      </sec>
      <sec id="sec-4-2">
        <title>1) A quality model is proposed:</title>
        <p>A quality model is proposed for the microservice
architecture, which reflects the quality characteristics of
microservices by measuring the six software attributes of
microservices Functional Suitability, Flexibility, Interactivity,
Performance Efficiency, Reliability and Security through 16
measures. The former considers the compatibility between the
microservice architecture and external programs, and the latter
adds the examination of the reusability of the microservice
architecture on the basis of maintainability.</p>
      </sec>
      <sec id="sec-4-3">
        <title>2) Validation of the quality model</title>
        <p>We designed a combination of dynamic and static analysis
to validate and analyze the MSA quality model with key
indicators to increase the reliability of the results.</p>
      </sec>
      <sec id="sec-4-4">
        <title>B. Future work</title>
        <p>Although this paper establishes a quality model under
microservice architecture and conducts theoretical validation
to prove its effectiveness, there are still some shortcomings
and areas that need further research. For example, other
quality model measures will be added, such as cohesion
attributes that are relatively incomplete, and subsequent
research can measure cohesion through semantic analysis to
achieve a more accurate assessment of flexibility. Moreover,
a more comprehensive quantitative study will be conducted
subsequently after more industrial data are collected to further
prove the validity of the model.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <source>[2] [4] [5]</source>
          [1]
          <string-name>
            <given-names>Deyu</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <source>Research on Software Maintainability Quality Model for Microservices Architecture</source>
          ,
          <year>2020</year>
          Michel-Daniel Cojocaru, Alexandru Uta,
          <string-name>
            <surname>Ana-Maria</surname>
            <given-names>Oprescu</given-names>
          </string-name>
          ,
          <article-title>Attributes Assessing the Quality of Microservices Automatically Decomposed from Monolithic Applications, 2019 18th International Symposium on Parallel and Distributed Computing (ISPDC).</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Yexin</given-names>
            <surname>Tong</surname>
          </string-name>
          ,
          <source>Xinkui Qu, Research on Quality of Service Assurance in Microservice Architecture</source>
          , 2019
          <string-name>
            <given-names>M.</given-names>
            <surname>Cardarelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Iovino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. D.</given-names>
            <surname>Francesco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. D.</given-names>
            <surname>Salle</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Malavolta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Lago</surname>
          </string-name>
          ,
          <article-title>An extensible data-driven approach for evaluating the quality of microservice architectures</article-title>
          , in: C. Hung,
          <string-name>
            <given-names>G. A.</given-names>
            <surname>Papadopoulos</surname>
          </string-name>
          (Eds.),
          <source>Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, SAC</source>
          <year>2019</year>
          , Limassol, Cyprus, April 8-
          <issue>12</issue>
          ,
          <year>2019</year>
          , ACM,
          <year>2019</year>
          , pp.
          <fpage>1225</fpage>
          -
          <lpage>1234</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>P.</given-names>
            <surname>Di Francesco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Lago</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Malavolta</surname>
          </string-name>
          , ”
          <article-title>Migrating Towards Microservice Architectures: An Industrial Survey”</article-title>
          ,
          <source>in International Conference on Software Architecture (ICSA)</source>
          , Seattle, WA,
          <year>2018</year>
          , pp.
          <fpage>29</fpage>
          -
          <lpage>2909</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>L.</given-names>
            <surname>Baresi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Garriga</surname>
          </string-name>
          , A. De Renzis, ”
          <article-title>Microservices Identification Through Interface Analysis, in ” Service-Oriented and Cloud Computing”</article-title>
          , ESOCC,
          <year>2017</year>
          . Lecture Notes in Computer Science, vol
          <volume>10465</volume>
          . Springer
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Engel</surname>
            , Thomas,
            <given-names>Melanie</given-names>
          </string-name>
          <string-name>
            <surname>Langermeier</surname>
            , Bernhard Bauer and
            <given-names>Alexander</given-names>
          </string-name>
          <string-name>
            <surname>Hofmann</surname>
          </string-name>
          .
          <article-title>Evaluation of Microservice Architectures: A measure and ToolBased Approach</article-title>
          , CAiSE Forum,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>N.</given-names>
            <surname>Alshuqayran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Ali</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Evans</surname>
          </string-name>
          , ”
          <article-title>A Systematic Mapping Study in Microservice Architecture ”</article-title>
          ,
          <source>9th International Conference on ServiceOriented Computing and Applications</source>
          (SOCA),
          <year>Macau</year>
          ,
          <year>2016</year>
          , pp.
          <fpage>44</fpage>
          -
          <lpage>51</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bogner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wagner</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Zimmermann, ”
          <article-title>Automatically measuring the maintainability of service and microservice-based systems - a literature review ”</article-title>
          .
          <source>in 27th International Workshop on Software Measurement</source>
          , Gothenburg, Sweden,
          <year>2017</year>
          , pp.
          <fpage>107</fpage>
          -
          <lpage>115</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bogner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wagner</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Zimmermann, ”
          <article-title>Towards a practical maintainability quality model for service and microservice-based systems ”</article-title>
          ,
          <source>in Proceedings of the 11th European Conference on Software Architecture: Companion Proceedings, ECSA</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>195198</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gysel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Kolbener</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Giersche</surname>
          </string-name>
          and
          <string-name>
            <given-names>O.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          , ”
          <article-title>Service Cutter: A Systematic Approach to Service Decomposition ”</article-title>
          ,
          <string-name>
            <surname>in</surname>
            <given-names>ESOCC</given-names>
          </string-name>
          , Vienna,
          <year>2016</year>
          , pp.
          <fpage>185</fpage>
          -
          <lpage>200</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Perepletchikov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ryan</surname>
          </string-name>
          ,
          <article-title>A controlled experiment for evaluating the impact of coupling on the maintainability of service-oriented software</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          <volume>37</volume>
          (
          <issue>4</issue>
          ) (
          <year>2011</year>
          )
          <fpage>449</fpage>
          -
          <lpage>465</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fowler</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Lewis</surname>
          </string-name>
          , Microservices,
          <year>2014</year>
          . [Online]. Available: https://martinfowler.com/articles/microservices.html
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R.</given-names>
            <surname>Kazman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. G.</given-names>
            <surname>Woods</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Carriere</surname>
          </string-name>
          . ”
          <article-title>Requirements for integrating software architecture and reengineering models ”</article-title>
          ,
          <source>in Proceedings of the Working Conference on Reverse Engineering (WCRE)</source>
          ,
          <string-name>
            <surname>Washington</surname>
            <given-names>DC</given-names>
          </string-name>
          ,
          <year>1998</year>
          , pp.
          <fpage>154163</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Chidamber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. F.</given-names>
            <surname>Kemerer</surname>
          </string-name>
          ,
          <article-title>Towards a metrics suite for object oriented design</article-title>
          ,
          <source>SIGPLAN Not</source>
          .
          <volume>26</volume>
          (
          <issue>11</issue>
          ) (
          <year>1991</year>
          )
          <fpage>197</fpage>
          -
          <lpage>211</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>S. R.</given-names>
            <surname>Chidamber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. F.</given-names>
            <surname>Kemerer</surname>
          </string-name>
          ,
          <article-title>A metrics suite for object oriented design</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          <volume>20</volume>
          (
          <issue>6</issue>
          ) (
          <year>1994</year>
          )
          <fpage>476</fpage>
          -
          <lpage>493</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>W.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Henry</surname>
          </string-name>
          ,
          <article-title>Object-oriented metrics that predict maintainability</article-title>
          ,
          <source>Journal of Systems and Software</source>
          <volume>23</volume>
          (
          <issue>2</issue>
          ) (
          <year>1993</year>
          )
          <fpage>111</fpage>
          -
          <lpage>122</lpage>
          , objectOriented Software.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>M.</given-names>
            <surname>Perepletchikov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ryan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Frampton</surname>
          </string-name>
          ,
          <article-title>Comparing the impact of service-oriented and object-oriented paradigms on the structural properties of software</article-title>
          , in: R.
          <string-name>
            <surname>Meersman</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Tari</surname>
          </string-name>
          , P. Herrero (Eds.),
          <source>On the Move to Meaningful Internet Systems 2005: OTM 2005 Workshops</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2005</year>
          , pp.
          <fpage>431</fpage>
          -
          <lpage>441</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>M.</given-names>
            <surname>Perepletchikov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ryan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Frampton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Tari</surname>
          </string-name>
          ,
          <article-title>Coupling metrics for predicting maintainability in service-oriented designs</article-title>
          ,
          <source>in: 2007 Australian Software Engineering Conference (ASWEC'07)</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>329</fpage>
          -
          <lpage>340</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>M.</given-names>
            <surname>Perepletchikov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ryan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Frampton</surname>
          </string-name>
          ,
          <article-title>Cohesion metrics for predicting maintainability of service-oriented software</article-title>
          ,
          <source>in: Seventh International Conference on Quality Software (QSIC</source>
          <year>2007</year>
          ),
          <year>2007</year>
          , pp.
          <fpage>328</fpage>
          -
          <lpage>335</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>V.</given-names>
            <surname>Basili</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Shull</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Lanubile</surname>
          </string-name>
          ,
          <article-title>Building knowledge through families of experiments, Software Engineering</article-title>
          , IEEE Transactions on
          <volume>25</volume>
          (
          <year>1999</year>
          )
          <fpage>456</fpage>
          -
          <lpage>473</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bansiya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Davis</surname>
          </string-name>
          ,
          <article-title>A hierarchical model for object-oriented design quality assessment</article-title>
          ,
          <source>IEEE Transactions on Software Engineering</source>
          <volume>28</volume>
          (
          <issue>1</issue>
          ) (
          <year>2002</year>
          )
          <fpage>4</fpage>
          -
          <lpage>17</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>B.</given-names>
            <surname>Shim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Choue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Park</surname>
          </string-name>
          ,
          <article-title>A design quality model for service-oriented architecture</article-title>
          ,
          <source>in: Proceedings of the 2008 15th AsiaPacific Software Engineering Conference</source>
          , APSEC ' 08, IEEE Computer Society, USA,
          <year>2008</year>
          , pp.
          <fpage>403</fpage>
          -
          <lpage>410</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>E.</given-names>
            <surname>Yourdon</surname>
          </string-name>
          , L. Constantine,
          <article-title>Structured design: fundamentals of a discipline of computer program and systems design</article-title>
          , Englewood Cliffs: Yourdon Press,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>U.</given-names>
            <surname>Kulesza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sant'Anna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Garcia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Coelho</surname>
          </string-name>
          , A. von
          <string-name>
            <surname>Staa</surname>
          </string-name>
          ,
          <string-name>
            <surname>C. J. P. de Lucena</surname>
          </string-name>
          ,
          <article-title>Quantifying the effects of aspect-oriented programming: a maintenance study</article-title>
          ,
          <source>in: 22nd IEEE International Conference on Software Maintenance (ICSM</source>
          <year>2006</year>
          ),
          <fpage>24</fpage>
          -27
          <source>September</source>
          <year>2006</year>
          , Philadelphia, Pennsylvania, USA, IEEE Computer Society,
          <year>2006</year>
          , pp.
          <fpage>223</fpage>
          -
          <lpage>233</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>D.</given-names>
            <surname>Sharman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Yassine</surname>
          </string-name>
          ,
          <article-title>Characterizing complex product architectures</article-title>
          ,
          <source>Systems Engineering</source>
          <volume>7</volume>
          (
          <year>2004</year>
          )
          <fpage>35</fpage>
          -
          <lpage>60</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gysel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Kolbener</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Giersche</surname>
          </string-name>
          and
          <string-name>
            <given-names>O.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          , ”
          <article-title>Service Cutter: A Systematic Approach to Service Decomposition ”</article-title>
          ,
          <string-name>
            <surname>in</surname>
            <given-names>ESOCC</given-names>
          </string-name>
          , Vienna,
          <year>2016</year>
          , pp.
          <fpage>185</fpage>
          -
          <lpage>200</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>