<!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>Improving the Structural Size Measurement Method Through the Assessment of Nested (Multi-Level) Control Structures in UML Sequence Diagram</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Hela Hakim</string-name>
          <email>hakim.hela@yahoo.fr</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Asma Sellami</string-name>
          <email>asma.sellami@isims.usf.tn</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hanêne Ben Abdallah</string-name>
          <email>hbenabdallah@hct.ac.ae</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alain Abran</string-name>
          <email>alain.abran@etsmtl.ca</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>École de Technologie Supérieure - ETS, University of Quebec</institution>
          ,
          <addr-line>Montréal</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Higher Colleges of Technology</institution>
          ,
          <addr-line>Dubai, UAE</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2007</year>
      </pub-date>
      <abstract>
        <p>The COSMIC ISO 19761 method is used in software industry as a contributor to estimation improvements and for comparability across projects. The COSMIC method is based on the identification of data movements but it does not consider the data manipulations. To take into account data manipulations associated with data movements at a detailed level of granularity, the measurement of control structures, also referred to as structural size, has been suggested previously. While the previous work focused on the use of constructs (alt, opt, and loop) for one structural level, the multi-level had not been considered. This work proposes refinements to our previous structural size measurement method through the assessment of the nested (multi-level) control structures in the sequence diagram. This refined method proposes detailed measures in different situations where the three constructs can be nested. These measures can be very useful for the software project planning that requires better effort estimation. A web site case study “Digital-Training Center” is used to illustrate and apply the proposed measurement algorithms.</p>
      </abstract>
      <kwd-group>
        <kwd>Functional size measurement</kwd>
        <kwd>Structural Size Measurement SSM</kwd>
        <kwd>COSMIC</kwd>
        <kwd>ISO 19761</kwd>
        <kwd>combined fragments</kwd>
        <kwd>nested combined fragments</kwd>
        <kwd>mutlilevel</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>The software development industry as a whole has a disappointing track record when
it comes to completing a project on time and within budget. The Standish Group
wellknown Chaos Report confirms that only 32% of software development projects are
completed successfully within the estimated schedule and budget [21].</p>
      <p>
        Software developers are constantly under pressure to deliver on time and on budget.
As a result, many projects focus on delivering functionality at the expense of meeting
the details of functionality, defined as the different scenarios describing one
functionality [20]. When software details become visible and clients’ demands on
software quality increase, functionality details can no longer be considered of
secondary importance. Many systems fail or fall into disuse precisely because of
inadequacies in these details. In an object oriented technology such details are modeled
in an UML sequence diagram and some others diagrams related to modeling
functionality. In practice, UML sequence diagrams notation is considered as the most
popular diagram [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>Early in the software project lifecycle, details of the specific requirements of the
software to be built as well as the staffing needs and other project variables are unclear.
The variability in these factors contributes to the uncertainty of project effort estimates.
As the sources of variability are further investigated and pinned down, the variability
in the project decreases, and thus the variability in the project effort estimates can also
decrease.</p>
      <p>
        A number of measurement methods (e.g., Mk II [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], NESMA [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], IFPUG [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
FISMA [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], and COSMIC [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]) are proposed for sizing software functionality and for
estimation purposes. Although the design of COSMIC Functional Size Measurement
method has been proposed to overcome the shortcomings of the first generation
methods, it does not separately assess the data manipulations associated with data
movements. For a finer level of granularity of measurement, the structural size
measurement with a focus on the nested multi-level control structure has been
proposed: it provides development team and managers with a more detailed software
size measurements and could lead to a more accurate level of estimates. This work
proposes an improvement (refinement) of our previous structural size measurement
method for sizing detailed requirements expressed in the form of UML sequence
diagrams. In this paper, we focus on how to assess the nested combined fragments (such
as opt, alt and loop) within a sequence diagram.
      </p>
      <p>The remainder of the paper is organized as follows: Section 2 presents an overview
of the COSMIC method, the Structural Size Measurement method and the UML
sequence diagram and its Combined Fragments. It also discusses some related works.
Section 3 describes the refined Structural Size (SS) Measurement method. Section 4
illustrates its application combined with the COSMIC through the “Digital-Training
Center” case study. Section 5 discusses and presents some limitations of our work.
Finally, section 6 concludes the presented work and outlines some of its possible
extensions.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <sec id="sec-2-1">
        <title>COSMIC- FSM: ISO 19761</title>
        <p>
          The COSMIC Functional Size Measurement (FSM) method is becoming popular
because of its ability to size different types of software (e.g., business application,
realtime software, embedded software, mobile apps, neural networks, etc.) [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. COSMIC
measures the software size from the Functional User Requirements (FUR) in terms of
COSMIC Function Point (CFP) units. Some measurement concepts need to be
understood before starting the use of COSMIC method: the FURs describe a set of data
movements that move data groups consisting of one or more data attributes to and from
functional processes. Functional processes are the behavior of the software as viewed
by the functional users. A functional user is either a human, an external device or
another software that sends or receives data described in FUR. A boundary acts as an
interface between the functional users and the software to be measured. In fact, four
data movement types occur between functional users, functional processes and
persistent storage: Entry (E): The functional user sends data to the functional process
through the boundary. eXit (X): The data is sent from the functional process to the user
through the boundary. Read (R): The data is moved from persistent storage through the
functional process. Write (W): The data is moved to persistent storage through the
functional process.
        </p>
        <p>A Functional process always has at least one entry data movement with either a
Write (W) to persistent storage or an exit (X) data movement. This will account for at
least two data movements and will be sized as two CFP. Thereafter, these data
movements are used to get better insights into sizing the software product.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2 Structural Size Measurement Method</title>
        <p>
          In our previous work [20], we proposed the Structural Size Measurement (SSM)
method. It was designed by following the measurement process recommended in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
        <p>
          The main reason for creating such method was the need of detailed measures to
quantify data manipulations. As in the COSMIC method where the software functional
size is derived by quantifying the FUR [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], the structural size is derived by quantifying
the FUR at a detailed level (e.g., at the structural level).
        </p>
        <p>The proposed SSM is applied on the combined fragments of a sequence diagram to
measure its structural size (SS). This SS, also named control structural size, refers to
the structural size of both conditional control structures CCS and iterative control
structures ICS, described respectively through the alt, opt, and loop constructs. The SS
of a sequence diagram is defined at a fine level of granularity (i.e., the size of the flow
graph of their control structures).</p>
        <p>The use of SS requires the identification of two types of data manipulation
depending on the structure type CCS (alt and opt combined fragments in the flow graph)
and-or ICS (loop combined fragment in the flow graph). Each data manipulation is
equivalent to 1 CSM (Control Structure Manipulation) unit. The sequence structural
size is computed by adding all data manipulations identified for every flow graph.</p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3 UML Sequence Diagram and its Combined Fragments</title>
        <p>
          The UML Sequence diagrams are a popular dynamic modeling solution in UML
because they specifically focus on lifelines, or the processes and objects that live
simultaneously, and the messages exchanged between them to perform a function
before the lifeline ends [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
        </p>
        <p>Sequence diagrams can be useful references for software developers who must
perform detailed design for each software component, and at different levels of details.
Basically, a sequence diagram is drawn to:
 represent the details of a UML use case;
 model the logic of a sophisticated procedure, function, or operation;
 see how objects and components interact with each other to complete a process;
 plan and understand the detailed functionality of an existing or future scenario.</p>
        <p>In sequence diagrams, combined fragments are logical groupings, represented by a
rectangle, which contain the conditional structures that affect the flow of messages. A
combined fragment contains interaction operands and is defined by the interaction
operator. The type of combined fragment is determined by the interaction operator in
which the type of logic or conditional statement are identified. The interaction operator
defines the behavior of the combined fragment that can be used to describe several
control and logic structures in a compact and concise manner.</p>
        <p>A combined fragment can also contain nested combined fragments or interaction
containing additional conditional structures that represent more complex structures that
affect the flow of messages. The combined fragments opt, alt, and loop are summarized
in Table 1.
The combined fragment “opt”: encloses a sequence that might happen or not.
The condition under which it occurs can be specified in the guard.</p>
        <p>The combined fragment “alt”: Contains a list of fragments that contain
alternative sequences of messages. Only one sequence occurs on any occasion.
A guard in each fragment indicates the condition in which it can run. A guard
of ELSE indicates a fragment that should run if no other guard is true. If all
guards are false and there is no ELSE, then none of the fragments executes.</p>
        <p>The “loop” combined fragment repeats the condition as it is indicated in the
guard a number of times. The “loop” combined fragments have the properties
Min and Max that indicate a minimum and maximum number of times to be
repeated by the fragment. The default is not a restriction.</p>
      </sec>
      <sec id="sec-2-4">
        <title>2.4 Related Work</title>
        <p>
          Over the past two decades, researchers have proposed object-oriented software metrics
to measure the quality of software design and improve the productivity [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]: for
example, the CK metrics, MOOD Metrics, etc. [
          <xref ref-type="bibr" rid="ref11 ref12">19, 18, 13, 12, 11, 14, 15</xref>
          ]. The CK
metrics suite can be used for measuring the software complexity [17] serving both as
an analyzer and a predictor. To develop better quality software, it is necessary to
identify the complexity at module, method and class level (e.g., coupling, cohesion and
inheritance that have an effect on complexity). Most of these metrics studies have
focused on object-oriented design and are limited only to the static aspect of design
(class diagram) size.
        </p>
        <p>In this paper, we focus on how to measure the dynamics aspect of software design
(e.g., sequence diagrams) at a fine level of granularity. In other words, measuring the
sequence diagram structural size not only at one level (as it is described in our previous
work [20]), but also at the multi-level where combined fragments (opt, alt, loop) are
nested.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3 Improving the Structural Size Measurement Method through the Assessment of Nested Control Structures</title>
      <p>This section presents how the structural size measurement method can be improved by
taking into account the in-depth nested (multi-level) control structures in the Sequence
Diagram (SD). For this purpose, we propose different algorithms for assessing the
nested (multi-level) combined fragments (alt, opt, and loop).</p>
      <p>In our earlier work we presented a structural size method for measuring data
manipulation expressed by the combined fragments opt, alt and loop based on Sequence
diagram descriptions. In this section, we extend our earlier work as follows:
 First, we classify the nested Combined Fragments into three levels and each level
is further divided into several cases.
 Second, we propose different algorithms to support the nested multi-level
combined fragment in the sequence diagrams and its corresponding flow graph.
3.1</p>
      <sec id="sec-3-1">
        <title>Classifying the Combined Fragments at Different Levels (Muli-Level)</title>
        <p>Before sizing the sequence diagram containing the multi-level nested control structures
in terms of CSM units, it is important for measurers to distinguish the combination of
nested control structures’ categories in each level that require more attention. This is to
avoid misinterpretation of measurement results.</p>
        <p>There are many more cases to be identified for classifying the combined fragments
into categories at a multi-level hierarchy (including the following three cases). For
simplicity sake, we will focus only on the two first categories.</p>
        <p>1. Case when one type of the SD control structures is used at all levels. Note that
the number of levels can be one or more.
2. Case when two types of the SD control structures are used at all levels.
3. Case when all the above SD control structures are used at all levels.</p>
      </sec>
      <sec id="sec-3-2">
        <title>1st Category: A Single Control Structure Type used at all Levels</title>
        <p>This category includes the alternative ALT Combined Fragment with several
alternatives, the choice OPT Combined Fragment, and the iterative LOOP Combined
Fragment.
</p>
        <p>If the alternative ALT Combined Fragment contains or not one or more nested
blocks having the same control structure type (ALT Combined Fragment nested in
an ALT Combined Fragment), the following situations should be distinguished:
− All levels have n sequence flows and each alternative has nested ALT</p>
        <p>Combined Fragment (where n is a constant number) (See Algorithm 1.1)</p>
        <p>All levels have n sequence flows and some alternatives do not have nested
ALT Combined Fragment (See Algorithm 1.1)
1stlevel has n sequence flows and all other levels have p sequence flows (with
p! = n) (See Algorithm 1.2)
1stlevel has n sequence flows and only some other levels have p sequence
flows (with p! = n) (See Algorithm 1.2)</p>
        <p>Each level has different number of sequence flows
If the choice OPT Combined Fragment (two sequence flows where one branch is
connected to an end event) and all the nested blocks have the same control structure
type (OPT Combined Fragment).
− Each level contains OPT Combined Fragment restricted to two sequence flows
where one sequence flow is linked to end event (because it contains always a
single path) (See Algorithm 1.3).</p>
        <p>For an iterative LOOP control structure, we denote the case when each level
includes a number of iterative control structures (the number of iterations is
arbitrary). The following situations can be observed:
− Loop with n iterations at all levels (See Algorithm 1.4)
− Loop with n iterations in the first level and p iterations in the next levels (See</p>
        <p>Algorithm 1.5)
− Loop with different iterations in each level (See Algorithm 1.6)</p>
      </sec>
      <sec id="sec-3-3">
        <title>2nd Category: Two different Control Structures used at all Levels</title>
        <p>This category may include the following cases:
If the Alt combined fragment in the first level is followed by a nested OPT
Combined Fragment, the following situations are considered:
− All levels having OPT Combined Fragment (See Algorithm 2.1)
− Some levels having OPT Combined Fragment in which the following cases
are established:
− Each alternative in the first level contains the Opt combined fragment
and the other levels may have or not the OPT Combined Fragment (See
Algorithm 2.2)
− Each alternative may or not have the OPT Combined Fragment in all
levels (See Algorithm 2.3)</p>
        <sec id="sec-3-3-1">
          <title>2ndcase:</title>
          <p>The OPT Combined Fragment in the first level is followed by a nested ALT
Combined Fragment.</p>
          <p>The OPT Combined Fragment in the first level is followed by a nested LOOP
Combined Fragment (See Algorithm 2.4).</p>
        </sec>
        <sec id="sec-3-3-2">
          <title>3rd case:</title>
          <p>The LOOP Combined Fragment in the first level is followed by a nested OPT
Combined Fragment.</p>
          <p>The LOOP Combined Fragment in the first level is followed by a nested ALT
Combined Fragment.</p>
        </sec>
      </sec>
      <sec id="sec-3-4">
        <title>3rd Category: All different Control Structures Type are used at all Levels</title>
        <p>In this category, all possible combinations of the different control structures can be used.</p>
      </sec>
      <sec id="sec-3-5">
        <title>Sizing the Nested (Multi-Level) Control Structures in the Sequence Diagram</title>
        <p>With the information from the sequence diagram and its corresponding flow graph,
measurers can quickly identify the combined fragments at different levels (including
the nested level). Thereafter, by applying the proposed algorithms (See Tables 2 and
3), the detailed structural size of a sequence diagram can be generated.</p>
        <p>Let:
</p>
        <p>SDm be a Sequence Diagram containing a nested (multi-level) combined
fragments,
 GSS be its corresponding flow graph,
 GSS(SDm) be the graph-based structural size function expressing the</p>
        <p>Structural Size of the whole Sequence diagram, and
 GSS(F) be the graph-based structural size function expressing the Structural</p>
        <p>Size of the combined fragment within the Sequence diagram.</p>
        <p>The sequence diagram structural size is derived as the sum of the Structural size of
all the combined fragments (multi-level) as shown by equation (1):
 (</p>
        <p>) = ∑ =1  (  ) (1)
where:
 n is the number of combined fragments Fi in the SDm,
 SS(Fi): the Structural size of a fragment Fi</p>
        <p>Since each fragment represented in a SD can be itself decomposed into a new
fragment that refines it, each Fi can contain (or not) one or more nested control
structures. The structural sizes of these fragments are derived by using algorithms as
illustrated in section 3.2.2. Note that:
− GSSic(F) is the (sub)graph representing the structural size of the iterative control
structure SS(ICS),
− GSScc(F) is the (sub) graph representing the structural size of the conditional
control structure SS(CCS) that may include alt combined fragment and-or opt
combined fragment.</p>
        <p>To measure the structural size of a fragment, we propose algorithms based on the
defined strategy.</p>
      </sec>
      <sec id="sec-3-6">
        <title>Proposed algorithms for the 1st category.</title>
        <p>When a single control structure type is used at all levels, we propose to use
Algorithm 1.1 and Algorithm 1.2. Algorithm 1.1 represents how sizing an ALT
Combined Fragment nested within another ALT Combined Fragment in the same SDm,
where all levels have n alternatives (with n a fixed number). Algorithm 1.2 illustrates
the ALT Combined Fragment nested within another ALT Combined Fragment where
the 1st level has n alternatives and all other levels have p alternatives (with p! = n).
 =1
Note that d= ni if there is a nested Alt combined
fragment in each alternative
 ( ) = ∑ (   (  ) ∗ (   (  )/ ) )
Algorithm 1.2 Alt combined fragment nested in
an Alt combined fragment: 1st level has n
alternatives and all other levels have p
alternatives (with p! = n)
 =1
 =1
int m = [1..d]; where d is the number of nodes in
Flow graphs modeling Algorithm1.2
Flow graphs modeling Algorithm 1.3
the nested blocks have the same control structure
type (Opt combined fragment)
int i=0; // i = [0, l] i is the root or the1stlevel
alt=n=1; // n is the number of nodes in each level
For each level i
For each node xi
End for
End for
i++;
For each level i
For each node yi
out-degree (xi) = n=1</p>
        <p>(  ) = GSS(  )
out-degree (yi) = 1</p>
        <p>(  ) = GSS(  )
End for
End for
End
 ( ) = (   (  ) ∗ (   (  )/ ) )</p>
        <p>= 1 CSM
Algorithm 1.4 Each level contains iterative
control structures (LOOP Combined Fragment)
where the number of iterations is fixed (r)
inti=0; // i = [0..l] where i is the root or the1stlevel
int itr=r; // r is the number of iterations
i=1;
For each level i having r number of iterations
For each node xi
out-degree (xi) = r</p>
        <p>(  ) = GSS(  )
End for
i++;
For each level i having r number of iterations (r is
a fixed number equal to the fixed number in the
previous level)</p>
        <p>For each node yi
out-degree (yi) = r</p>
        <p>(  ) = GSS(  )
End for
End For</p>
        <p>( ) = 
End for
int m=1….d; where d is the number of nodes in 2nd level
out-degree (yim) = 1
   =    = ∑(GSS(  )+GSS( ))
  
= ∑ ( ∑(GSS( )+GSS( )) )



Algorithm 2.2: Each sequence flow in the Alt
combined fragment (i=0) contains Opt combined
fragment, and other alternatives in the followed
levels may have or not an Opt combined fragment
fragment
Else
combined fragment may or not have Opt combined
fragment in all levels
For each level i contains or not opt
For each node y
If Opt combined fragment=True
End if
End For
End For
End
   =    = ∑(   )

 =1
Algorithm 2.4: LOOP Combined Fragment nested
in the Alt combined fragment: Each alternatives
contains LOOP Combined Fragment (with u a
fixed number of iterations)
Begin
int i=0; // i is the number of levels
outdegree(x)=0;
Alt=n; // n is the number of nodes</p>
        <p>For each level i
For each node x
out-degree (x) = n*i</p>
        <p>= GSS( )
end for
i++
For each level i having u number of iterations
For each node y
out-degree (y) = u</p>
        <p>= GSS( )
end for
i++
For each level I (i=2) having w number of
iterations (wis a random number and it is NOT
equal to the previous levels)</p>
        <p>For each node z //z represents all nodes in any
levels except level 0 and 1.</p>
        <p>out-degree (z) = w</p>
        <p>= GSS( )
   = 
( ) ∗</p>
        <p>( ) =</p>
        <p>=   ( ) +   ( )
End for
End For
End for
end for
End
Flow graphs modeling Algorithm 2.4
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Case Study: Illustrative Example</title>
      <p>This section illustrates the application of our proposed method through the case study
“Digital-Training Center” web site. It considers the interactions among trainings in this
web site, as an example of UML2.x SD modeling the behaviors of a distributed system
(see Fig.1 and Fig.2). The web site has independent components: the training officer,
the home page, the custom page, the training page and the authentication page.</p>
      <p>We model the update of the training catalog by the training officer (Fig. 2): the
training officer must authenticate at first (Fig. 1). He enters the web site URL and he
can be redirected directly to the custom page if he has chosen, in the last connection,
the option to remain connected for a limited duration. Otherwise, he is redirected to the
authentication page. There are three possible cases:
1. successful authentication;
2. missing information - in this case the site asks the user to complete them;
3. wrong login and-or wrong password - in this case the site asks the training
officer to correct them.</p>
      <p>In the second case, domain name system (DNS) attacks may accidentally occur.
Fig. 2 depicts the update of the training catalog. The training officer requests to update
the training catalog: he is redirected to the training page where he has three possible
alternatives: i) he can add new training and create a calendar session; ii) he can choose
a training and update a session, iii) he can remove a training - the list of participants to
this training is displayed.</p>
    </sec>
    <sec id="sec-5">
      <title>Discussion and Limitations</title>
      <p>User requirements are the basis core of software projects and sizing requirements is a
crucial task for software project planning. Hence, if these requirements are poorly
described (in the analysis phase of the SLC) and modeled (in the design phase), the
software development/maintenance planning will be vulnerable. In practice, well
detailed User requirement are not always available since they require much time and
comprehension. However, the more time spent at the beginning of the process, the less
time will be required later. Consequently, detailed descriptions of user requirements are
needed: these detailed requirements can be easily represented in the form of sequence
diagrams that can be measured.</p>
      <p>In our work, the proposed algorithms dealing with the nested (muti-level)
Combined Fragments in the Sequence Diagram have been illustrated through the case
study “Digital-Training Center”. To explore the efficiency of our refined
measurementbased algorithms, these algorithms must next be applied and tested in an industrial setting,
particularly in projects having a complex functionality that requires to be modeled with
these nested multi-levels.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and Future Work</title>
      <p>This paper extends our previous work [20] on a structural size measurement method by
proposing additional algorithms for measuring the combination of all nested
(multilevel) combined fragments. This extension is based on the most popular combined
fragments (ALT, OPT and LOOP) identified in the sequence diagrams (SD) as a whole
(without parsing the SD). More specifically, we proposed several algorithms to measure
the different categories of partial order between the events. We also proposed some
additional contributions for refining our proposed structural size method by focusing
on the different combinations of nested combined fragments of the SD in order to
support nested multi–level Combined Fragment. In our future work, we will focus on
automating the combination of functional and the extended Structural Size
Measurement methods. Furthermore, we plan to investigate the combination of these
measures to improve projects and tests effort estimation models by taking into account
both Functional size measurement and this refined Structural Size Measurement.
Moreover, this combination of measures should be explored by scrum masters to
evaluate and prioritize user stories and make appropriate decisions within an agile
context.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. ISO/IEC 19761,
          <string-name>
            <surname>Software Engineering - COSMIC: A Functional Size Measurement Method</surname>
            , International Organization for Standardization,
            <given-names>ISO</given-names>
          </string-name>
          , Geneva, (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. ISO/IEC 20926,
          <article-title>Software</article-title>
          and Systems Engineering - Software
          <string-name>
            <surname>measurement - IFPUG Functional Size Measurement Method Geneva</surname>
          </string-name>
          , International Organization for Standardization,
          <source>ISO</source>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. ISO/IEC 20968,
          <string-name>
            <surname>Software Engineering - Mk II Function Point Analysis - Counting Practices</surname>
            Manual, International Organization for Standardization,
            <given-names>ISO</given-names>
          </string-name>
          , Geneva, (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. ISO/IEC 24570,
          <string-name>
            <surname>Software</surname>
            <given-names>Engineering</given-names>
          </string-name>
          <source>- NESMA Functional Size Measurement Method Version 2</source>
          .1
          <article-title>- Definitions and Counting Guidelines for the Application of Function Point Analysis</article-title>
          , International Organization for Standardization,
          <string-name>
            <surname>ISO</surname>
          </string-name>
          , Geneva, (
          <year>2005</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. ISO/IEC 29881,
          <string-name>
            <surname>Information</surname>
            <given-names>Technology</given-names>
          </string-name>
          <source>- Software and Systems Engineering - FiSMA 1</source>
          .1 Functional size Measurement Method, International Organization for Standardization,
          <string-name>
            <surname>ISO</surname>
          </string-name>
          , Geneva, (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. ISO/IEC 14143-
          <issue>1</issue>
          , Information Technology - Software
          <string-name>
            <surname>Measurement-Functional Size</surname>
          </string-name>
          Measurement-Part 1: Definition of Concepts, International Organization for
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. OMG,
          <article-title>Documents Associated with Unified Modeling Language (UML)</article-title>
          ,
          <source>V2.4</source>
          .1, (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Abran</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Software</surname>
            <given-names>Metrics</given-names>
          </string-name>
          <source>and Software Metrology</source>
          , John Wiley &amp; Sons, Inc. IEEE Computer Society Press, (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. COSMIC Group,
          <article-title>Non-Functional &amp; Project Requirements with COSMIC: Experts Guide</article-title>
          , , (
          <year>2020</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Booch</surname>
          </string-name>
          . G.
          <string-name>
            <surname>Object-Oriented Design</surname>
          </string-name>
          and Application, Benjamin/Cummings, Mento Park, CA. (
          <year>1991</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Brotoeabreu</surname>
          </string-name>
          . F. D “Metrics Set”,
          <source>in Proc. ECOOP'95 Workshop Metrics</source>
          . (
          <year>1995</year>
          )
          <fpage>12</fpage>
          .
          <string-name>
            <surname>Briand</surname>
          </string-name>
          . L. C,
          <article-title>Daly</article-title>
          . J. W and
          <string-name>
            <surname>Wust. J. K. “</surname>
          </string-name>
          <article-title>A Unified Framework for Cohesion Measurement in Object Oriented Systems”</article-title>
          ,
          <source>Empirical Software Eng., 1</source>
          ,
          <issue>1</issue>
          ,
          <fpage>65</fpage>
          -
          <lpage>117</lpage>
          . (
          <year>1998</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          13.
          <string-name>
            <surname>Bieman. J. M and B.K. Kang</surname>
          </string-name>
          . “
          <article-title>Cohesion and Reuse in an Object-Oriented System”</article-title>
          ,
          <source>in Proc. Symp. Software Reliability</source>
          ,
          <fpage>259</fpage>
          -
          <lpage>26</lpage>
          . (
          <year>1995</year>
          )
          <fpage>14</fpage>
          .
          <string-name>
            <surname>Chae</surname>
          </string-name>
          , H.S, Kwon. Y. R and
          <string-name>
            <surname>Bae.D.H. Cohesion</surname>
          </string-name>
          <article-title>Measures for Object-Oriented Classes”</article-title>
          ,
          <source>Software practice and Experiences</source>
          ,
          <volume>30</volume>
          ,
          <issue>12</issue>
          ,
          <fpage>1405</fpage>
          -
          <lpage>1431</lpage>
          . (
          <year>2000</year>
          )
          <fpage>15</fpage>
          .
          <string-name>
            <surname>Churcher</surname>
          </string-name>
          . N. I and
          <string-name>
            <surname>Shepperd. M. J.</surname>
          </string-name>
          <article-title>Comments on “A Metric Suite for Object-Oriented Design”</article-title>
          ,
          <source>IEEE Trans. on Software Engineering</source>
          .
          <volume>21</volume>
          ,
          <fpage>263</fpage>
          -
          <lpage>265</lpage>
          . (
          <year>1995</year>
          )
          <article-title>16</article-title>
          .
          <article-title>COSMIC: The COSMIC Functional Size Measurement Method</article-title>
          ,
          <year>Version5</year>
          .0., Measurement Manual, COSMIC Group https://cosmic-sizing.org/measurement-manual
          <source>/ (March</source>
          <year>2020</year>
          )
          <volume>17</volume>
          .
          <string-name>
            <surname>El-Emam</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <article-title>Object-oriented metrics: A review of theory and practice</article-title>
          . In: Erdogmus,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Tanir</surname>
          </string-name>
          ,
          <string-name>
            <surname>O</surname>
          </string-name>
          . (eds.) Advances in Software Engineering, pp.
          <fpage>23</fpage>
          -
          <lpage>50</lpage>
          . Springer, New York. (
          <year>2002</year>
          )
          <fpage>18</fpage>
          .
          <string-name>
            <surname>Jacobson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Griss</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Johnsson</surname>
            ,
            <given-names>P</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Software</surname>
            <given-names>Reuse</given-names>
          </string-name>
          , Architecture, Process, and
          <article-title>Organization for Business Success</article-title>
          . Addison-Wesley.
          <article-title>(</article-title>
          <year>1997</year>
          )
          <fpage>19</fpage>
          .
          <string-name>
            <surname>Lorenz</surname>
          </string-name>
          , Mark &amp; Kidd Jeff: “
          <string-name>
            <surname>Object-Oriented Software</surname>
            <given-names>Metrics”</given-names>
          </string-name>
          , Prentice Hall,
          <year>1994</year>
          20.
          <string-name>
            <surname>Sellami</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hakim</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abran</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Ben-Abdallah</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <article-title>“A Measurement Method for Sizing the Structure of UML Sequence Diagrams”</article-title>
          ,
          <source>Information and Software Technology - Elsevier IST - Elsevier</source>
          , Vol.
          <volume>59</volume>
          ,
          <string-name>
            <surname>March</surname>
          </string-name>
          , pp.
          <fpage>222</fpage>
          -
          <lpage>232</lpage>
          http://dx.doi.org/10.1016/j.infsof.
          <year>2014</year>
          .
          <volume>11</volume>
          .002 (
          <year>2015</year>
          )
          <fpage>21</fpage>
          . Standish Group,
          <source>The CHAOS Report</source>
          , Boston (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>