<!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>Measurement for C</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Donatien Koulla Moulla</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oumate</string-name>
          <email>oumateb@gmail.com</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ernest Mnkandla</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hassan Soubra</string-name>
          <email>hassan.soubra@guc.edu.eg</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</institution>
          ,
          <addr-line>1100, rue Notre-Dame Ouest, Montréal, Québec, H3C 1K3</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>The German University in Cairo</institution>
          ,
          <addr-line>New Cairo</addr-line>
          ,
          <country country="EG">Egypt</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Maroua</institution>
          ,
          <addr-line>Maroua, P.O. Box 46</addr-line>
          ,
          <country country="CM">Cameroun</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>University of South Africa</institution>
          ,
          <addr-line>The Science Campus, Florida, 1710</addr-line>
          ,
          <country country="ZA">South Africa</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Functional size measurement (FSM) is an important basis for measuring productivity and estimating the effort required for software activities. Automating FSM can be very valuable for organizations with a large number of projects to measure in a very short time, and there are several issues related to manual FSM, including measurement errors due to human measurers, the cost of measurement, measurers' subjective interpretations, and assumptions regarding the project scope. This paper presents an automated FSM for the C programming language, selected for being the most popular programming language from 1965 to 2020 and, as of January 1, 2022, in the second position after Python language. The FSM procedure is based on COSMIC ISO 19761, which is an FSM method designed based on metrology and software engineering principles. An automated measurement prototype tool was also introduced. The automated measurement tool can be useful for organizations and practitioners.</p>
      </abstract>
      <kwd-group>
        <kwd>1 Functional Size Measurement</kwd>
        <kwd>COSMIC - ISO 19761</kwd>
        <kwd>C Programming Language</kwd>
        <kwd>Sizing Software Automation</kwd>
        <kwd>Automation Tool</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction and background</title>
      <p>
        In software engineering, as in other engineering disciplines, mastering and evaluating software
development is a concern for both practitioners and industry, and through effective measurement,
organizations can estimate, control, plan, and learn to perform software work more effectively [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ].
As Tom DeMarco said in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]: “You cannot control what you cannot measure”. Measurement is
fundamental engineering concept that helps managers to find effective strategies for improving
software management. According to the principles of metrology defined in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], the term of
measurement is used in the context of “measurement method”, “application of a measurement
method”, and “measurement results”. There are soepvtieoranls for sizing software: lines of code, Use
case Points, Object Points, Story Points, and functional size with Function Points.
      </p>
      <p>
        Huijgens et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] conducted a structured survey of 336 Functional size measurement (FSM)
specialists who concurred that automated FSM from source code is important, but challenging. Most
respondents think that automated FSM will help measurement specialists and decision-makers. In this
survey, COSMIC was the preferred FSM method for automation, followed by IFPUG and NESMA.
The respondents considered automated FSM to be most suitable for baseline, benchmarking,
maintenance, and legacy purposes.
      </p>
      <p>
        Compared with other options, the COSMIC functional size measurement (FSM) method is
designed according to basic software engineering and metrology principles and is
technologyindependent. Two main software artifacts are generally used to measure the functional size of a piece
of software [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ]: requirement documents in the early development stages and lines of code once the
code has been developed.
      </p>
      <p>
        Applying FSM procedures manually is time-consuming, which is problematic for organizations
with a large number of projects to measure in a very short time, either for project estimation purposes
or productivity studies [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In addition, the manual application of FSM to a very large set of source
code inputs requires specialized expertise when there are a variety of languages in which the source
code has been implemented.
      </p>
      <p>
        There are main ways to automate functional size measurement [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]:
1. Automate requirements analysis – with measurement based on key words and grammar
patterns.
 Input is a set of textual or modeled requirements ;
 Output is the functional size measured ;
 An example is the automated COSMIC function points (CFP) size measurement from UML
models in [
        <xref ref-type="bibr" rid="ref10 ref9">9, 10, 11</xref>
        ].
2. Automated code analysis:
 Input is source code;
 Output is the functional size measured;
 Here, lines of code measurement are usually automated against the standards and best
practices in any specific language, rather than on the quality of a specific piece of code. An
example is the automated COSMIC CFP size measurement from Java source code [12, 13, 14, 15].
In practice, there is a number of challenges to automated FSM:
 The requirements are almost always partial, incomplete, and ambiguous. The requirements do
not describe the full scope of the functionality of the software with all the necessary functional
details [16]. As a project progresses, the requirements will be detailed and changed as the project
moves through the life cycle.
 While FSM methods are technology-independent, an automation design is required to handle
the specifics of each programming language.
      </p>
      <p>The most common reason for measuring the functional size of software from the source code is to
develop a baseline of the relationship between size and effort in the form of an estimation model
based on functional size [17]. Moreover, the size measured from the source code reflects what has
been delivered with more accuracy than the incomplete and ambiguous requirements.</p>
      <p>The C programming language was created by Dennis Ritchie at the former Bell Laboratories in
1972 [18]. The C programming language was the most popular programming language from 1965 to
2020 [19], and as of January 1, 2022, it is in second position after the Python language [20]. For
example, Linux and Windows kernels are largely developed in the C programming language. In this
study, we focused on the automated measurement of the COSMIC CFP from C programs using regular
expressions.</p>
      <p>This study provides the first automated FSM from the source code using regular expressions. The
current study focuses on the design and implementation of an automated FSM for C programs based on
COSMIC ISO 19761 method. The automated measurement tool can be useful for organizations and
practitioners.</p>
      <p>The remainder of this paper is organized as follows. Section 2 presents an overview of related work
on the COSMIC FSM method and its measurement automation to date. Section 3 presents the proposed
automated measurement procedure for sizing C programs using the COSMIC rules and regular
expressions. Section 4 presents the automated measurement prototype. Section 5 concludes the paper
with directions for future research.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related work</title>
    </sec>
    <sec id="sec-3">
      <title>2.1. Benefits for sizing software with COSMIC – ISO 19761</title>
      <p>Over the past few decades, several FSM methods have been proposed, such as FPA [21], MkII
[22], NESMA [23], FisMA [24], and COSMIC [25]. The most common reason for measuring
software size is to estimate the effort or cost of development. Measuring software sizes can be
valuable for many purposes other than project estimation, as discussed in Sneed [26] and Symons
[27].</p>
      <p>
        Several studies have shown the quality of COSMIC as an FSM method. For instance, it has been
shown to perform better than Story Points when it comes to building effort estimation models and
productivity within an agile context [28, 29]. Di Martino et al. [30] empirically investigated the
performance of COSMIC and FPA methods for effort estimation of web applications: based on two
empirical studies using 25 web applications, they found that COSMIC outperformed FPA for effort
estimation. Symons et al. [
        <xref ref-type="bibr" rid="ref11">31</xref>
        ] demonstrated that these challenges for software project control and
estimating upcoming activities have been achieved through the advances made by the COSMIC
community over the years. The flexibility of the COSMIC method makes it possible to measure any
type of software and is used around the world.
      </p>
      <p>This motivated the current choice of COSMIC as a measurement method to design automated
functional size measurements for C programs. The COSMIC method defines four types of data
movement as follows:
1. ENTRY: A data movement that moves a data group from a functional user across the
boundary into the functional process where it is required.
2. EXIT: A data movement that moves a data group from a functional process across the
boundary to the functional user that requires it.
3. READ: A data movement that moves a data group from persistent storage to the functional
process that requires it.
4. WRITE: Data movement that moves a data group from inside a functional process to
persistent storage.
2.2.</p>
    </sec>
    <sec id="sec-4">
      <title>Functional size measurement automation in the literature</title>
      <p>
        To address FSM automation issues, several papers have been published on COSMIC-based
measurement automation, both from requirement and source code analyses. An example of the latter
is the study by Soubra et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] on an approach for a theoretical ‘universal’ tool based on C
ISO 19761 for the automated measurement of software written in different programming languages.
Their work included a prototype tool based on COSMIC and MIPS, with a small-scale validation, and
was limited to a specific release of the MIPS architecture and a specific instruction set.
      </p>
      <p>
        Ahmed et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] proposed an FSM procedure based on COSMIC ISO 19761 to measure software
artifacts expressed in the ARM's base 32-bit assembly code. They introduced an automated
measurement tool prototype that can produce the functional size in the CFP of an ARM program, but
did not include all ARM instructions.
      </p>
      <p>
        From a comparison and lessons learned from their previous studies [12, 13, 14], Tarhan et al. [
        <xref ref-type="bibr" rid="ref12">32</xref>
        ]
derived an operational scenario for automated FSM from software code and proposed a set of
requirements that must be considered in automation. The authors replicated the study in [
        <xref ref-type="bibr" rid="ref13">33</xref>
        ] by
developing a tool called “COSMIC Solver” for Java Business Applications (JBA), and their result
indicated that CFPs measured manually and automatically converged at 77%.
      </p>
      <p>Chamkha et al. [15] proposed a “JavaCFP” plugin tool for measuring the COSMIC functional si
of Java source code being developed. Their measurement tool can be used to control the completeness
of the implemented functionality against specified requirements, to identify deviations, and to
generate progress reports on the implementation of new functions. Sahab et al. [17] developed a
CFP4J library to automate COSMIC functional size measurements from Java web applications using
the Spring Web MVC framework. Their contribution lies in defining mapping rules from code and a
publicly available software library to automate the COSMIC functional size of Java web applications
that use the Spring MVC framework.</p>
      <p>
        Ungan et al. [
        <xref ref-type="bibr" rid="ref14">34</xref>
        ] presented ScopeMaster®, the first commercial tool to perform COSMIC
measurement on a set of free-form textual requirements in English. ScopeMaster performs several
successive steps of analysis, individually and collectively, on the textual requirements to detect
candidate COSMIC Objects of Interest, potential functional users, potential data movements, and
potential defects. The details of how ScopeMaster® performs these techniques are proprietary and are
protected by a pending patent application; however, the measurement results are fully transparent.
      </p>
      <p>
        Bagriyanik et al. [
        <xref ref-type="bibr" rid="ref15">35</xref>
        ] proposed an ontology model for transforming requirements into COSMIC
function point method concepts, and a method was developed to automatically measure the functional
size of software using the designed ontology. To validate their method, they implemented a software
application using requirement data from several real projects. Their findings indicated that manual
and automated measurement results were in agreement.
      </p>
      <p>Meiliana et al. [11] used the XML structure of the UML sequence diagram to automate software
size measurements. Functional size was measured using the COSMIC method, while structural size
was calculated based on the control structures in sequence diagrams.</p>
      <p>
        Zaw et al. [
        <xref ref-type="bibr" rid="ref16">36</xref>
        ] proposed an automated software size measurement tool, including a generation
model based on UML, SysML, and Petri nets. General mapping rules between the COSMIC FSM and
a generation model to measure the size of the software have been proposed.
      </p>
      <p>
        Sellami et al. [
        <xref ref-type="bibr" rid="ref17">37</xref>
        ] designed an extended sizing method by considering the structural aspects of a
sequence diagram to quantify its size. These functional and structural sizes can then be used as
distinct independent variables to improve the effort estimation models. Their findings showed that the
size of sequence diagrams can be measured from two perspectives, both functional and structural, and
at different levels of granularity with distinct measurement units. The authors refined their previous
study through the assessment of the nested (multi-level) control structures in the sequence diagram
and a web site case study “-DTriagintainlg Center” were used to depict and apply the proposed
measurement algorithms [
        <xref ref-type="bibr" rid="ref18">38</xref>
        ].
      </p>
      <p>
        Abrahão et al. [
        <xref ref-type="bibr" rid="ref19">39</xref>
        ] defined a measurement procedure (OO-HCFP) for Object-Oriented
Hypermedia method (OO-H) web applications based on COSMIC. They argued that the results
obtained using their proposed approach were more accurate than those obtained using other
measurement approaches based on function points and design measures.
      </p>
      <p>
        De Vito et al. [
        <xref ref-type="bibr" rid="ref20">40</xref>
        ] provided a measurement procedure to derive the COSMIC functional size from
UML software artifacts, and developed a prototype tool (J-UML COSMIC). To assess the
measurement procedure, they carried out two case studies and compared the measurement results
provided by the tool with those obtained by experts by applying the standard COSMIC method. They
concluded that the tool allowed incremental accurate measurements to be obtained when new or
existing models were considered.
      </p>
      <p>In summary, a number of studies have proposed COSMIC FSM automation, but none yet have
proposed, to the best of our knowledge, an automated measurement solution for C programs. This
motivated the present study.</p>
    </sec>
    <sec id="sec-5">
      <title>3. COSMIC FSM procedure for sizing C programs</title>
      <p>This section presents an overview of C program structure and the proposed measurement
approach.
3.1.</p>
    </sec>
    <sec id="sec-6">
      <title>Overview of C program structure</title>
      <p>The general structure of the C program can be represented in a simplified form as follows (Figure
1):
[Preprocessor directives]
[Secondary functions]
int main(void){
Declaration of internal variables
Instructions
return 0;}</p>
      <p>The preprocessor directives are used to include libraries, and the secondary functions represent
subprograms, either procedures or functions. A subprogram is defined as a block of code that has a
name and consists of a sequence of instructions that perform a specific task. The main program is a
procedure that governs the operation of the program.</p>
      <p>In this study, a C program was represented as a function. These functions consist of two main
elements:
 Function header, where the name, type of input parameters, and type of output value are
defined;
 The body of the function where variables are defined, and all instructions are executed.</p>
      <p>These information will serve as guidelines for the mapping of COSMIC to C programs. The
structure of the C function is represented in a simplified form as follows (Figure 2):
type function_name(arguments){
declarations of internal variables
instructions
}
Figure 2: A simplified form of a function
3.2.</p>
    </sec>
    <sec id="sec-7">
      <title>The proposed approach: mapping COSMIC to C program</title>
      <p>The purpose of this procedure is to apply the COSMIC method to the source code of programs
written in C, for either effort estimation or productivity studies. We considered the whole set of
functional user requirements (FUR) expressed within a C program; therefore, the measurement scope
is the whole program written in C. We used a detailed functional process at the granularity level.</p>
      <p>Our COSMIC mapping process can be summarized by the identification of:
 Functional process: a C function is considered as a functional process.
 Data group: A data group consists of a unique set of data attributes that describe a single
object of interest. We assumed that each variable could be considered as a data group.
 Data movements: There were four data movement types: ENTRY, EXIT, READ, and
WRITE.</p>
      <p>Table 1 lists the proposed mapping rules between the COSMIC concepts and the elements of a
function. Any input parameter of a function should be mapped to COSMIC ENTRY (E) data
movements and the output of a function should be mapped to COSMIC EXIT(X) data movements.
For READ (R) and WRITE (W) COSMIC data movements, any assignment to a variable
(respectively from a variable) should be mapped to WRITE (W), ), (respectively a READ (R) and
WRITE (W)) WRITE (R) COSMIC data movements can also be linked to the initializations of
variables during their declaration.</p>
      <sec id="sec-7-1">
        <title>Elements of C program</title>
        <p>Identify an ENTRY (E) for each input parameter of a
function. The number of parameters of a function
corresponds to the number of ENTRY data movements.</p>
        <p>An EXIT (X) corresponds to the value returned by a
function. If there are several functions in a program, each
output of a function is an EXIT data movement.</p>
        <p>Identify a READ (R) during operations. Each variable read
to carry out a processing corresponds to the READ (R) data
movement.</p>
        <p>When the scanf function is called, it also corresponds to
a READ (R).</p>
        <p>Each printf function corresponds to a WRITE (W).</p>
      </sec>
      <sec id="sec-7-2">
        <title>Identify a WRITE (W) during assignment operations. Each</title>
        <p>assignment is a WRITE (W).</p>
        <p>The initialization of a variable is also considered as a
WRITE (W) data movement. Therefore, each initialization</p>
        <p>corresponds to a WRITE (W).</p>
        <p>As described in Section 3.1, a function consists of two main elements: the function header and the
body of a function. Table 2 presents the mapping of COSMIC to the C program instructions and their
corresponding regular expressions.</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>4. Automated measurement tool prototype</title>
      <p>This section presents the approach used to build the measurement tool prototype based on the
COSMIC C-mapping rules defined in Section 3.
4.1.</p>
    </sec>
    <sec id="sec-9">
      <title>Tool architecture and description of the algorithm</title>
      <p>The tool prototype is aimed at automating the COSMIC FSM from a C program file, visualizing it,
and saving the measurement results. The general architecture of the tool comprises three modules
(Figure 3).</p>
      <p>1. Graphical user interface (GUI) module: This module allows a user to select a C program file
to measure, visualize, and save the measurement results.
2. Filtering and data extraction module: This module is organized into two parts. The first part
extracts all the function headers defined in the program to identify the ENTRY and EXIT data
movements. The second part groups instructions per category. Persistent storage exists in this
module.
3. Measurement module: This module contains a list of the identified data movements. In
addition, the numerical values are assigned to each data movement (one CFP per COSMIC data
movement), and then the aggregation of all the identified CFP is made.</p>
      <sec id="sec-9-1">
        <title>The algorithm describing the tool functions is shown in Figure 4.</title>
        <p>Algorithm: Measurement process
Input: C program file
Outputs: size in CFP
Begin
{
1. Read file
2. Identify all functional processes
3. For Each functional process:</p>
        <p>For each output parameter:</p>
        <p>count 1 EXIT (X)
For each input parameter:
(If there are two separated words with at least one space then count 1 ENTRY (E)
If there are comas, then ENTRY &lt;– Count (number of comas) + 1)
For each body of the function:</p>
        <p>If the instruction is the initialization, then count 1 WRITE (W)
If the instruction is an arithmetic instruction, then count 2 READ (R) and 1 WRITE (W)
If the instruction is an value assignment to a variable, then count 1 WRITE (W)
If the instruction is an variable assignment to a variable, then count 1 READ (R) and 1</p>
        <p>WRITE (W)
If the instruction is an logical expressions Type 1 (between variable and constant), then</p>
        <p>Count 1 READ (R)
If the instruction is an logical expressions Type 2 (between variable and variable), then</p>
        <p>Count 2 READ (R)
If the instruction is an increment, then count 1 READ (R) and 1 WRITE (W)
If the instruction is printf, then count 1 WRITE (W)</p>
        <p>If the instruction is the scanf, then count 1 READ (R)
4. Add ENTRIES, EXITS, READS and WRITES from step 3.</p>
        <p>5. Aggregate the CFP for all functional processes</p>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>Validation of the prototype</title>
      <p>The automated measurement tool prototype was implemented using Python language. As a test
case example, the source code of the C program, as shown in Figure 5, was used.</p>
      <p>From Table 3, the same number of COSMIC function points was obtained from both the
automated and manual measurements.</p>
    </sec>
    <sec id="sec-11">
      <title>5. Conclusion</title>
      <p>Several studies have shown the importance of FSM automation for the software industry, and
while there are a number of studies on COSMIC FSM automation for a variety of contexts and
programming languages, none have tackled automated measurement solutions for C programs. In this
study, we proposed a measurement procedure for sizing C programs using the COSMIC rules,
including relevant C regular expressions.</p>
      <p>Next, an automated measurement tool prototype is introduced, with a test example as a case study.
The measurement results for this automated measurement tool prototype were similar to those
obtained manually. Such work on the COSMIC FSM automation of C programs can be useful for
organizations’ estimation purposes or benchmarking studies.</p>
      <p>
        Limitations refer to influences or shortcomings that are beyond researchers’ control and place
restrictions on the methodology and analysis of research data [
        <xref ref-type="bibr" rid="ref21">41</xref>
        ]. The limitations of this study
related to the research problem under investigation are as follows:
 The proposed prototype tool correctly identified the Main() function as a COSMIC functional
process. However, this tool does not identify the triggering Entry. However, this limitation should
be addressed in future studies.
 Our research relates exclusively to software written in C programming language.
 A test case example given in this study is relatively simple for both humans and the software
to handle. More tests should be done on the different data structures.
      </p>
      <p>This study was limited to software written in C programming language. We plan to extend our
study to other languages with similar syntax in terms of regular expressions such as Java, JavaScript,
and Python. We also plan to explore existing tools for lexical analysis to extract COSMIC function
points from source code. To reveal any limitations or threats to validity of automated measurement
from source code, we plan to compare the size measured based on the user requirement of the same
piece of software and the source code.</p>
    </sec>
    <sec id="sec-12">
      <title>6. Acknowledgment</title>
      <sec id="sec-12-1">
        <title>We are grateful to anonymous reviewers.</title>
      </sec>
    </sec>
    <sec id="sec-13">
      <title>7. References</title>
      <p>[11] Meiliana, S. Karim, S. Liawatimena, A. Trisetyarso, B. S. Abbas, and W. Suparta, Automating
functional and structural software size measurement based on XML structure of UML sequence
diagram, in: Proceedings of the IEEE International Conference on Cybernetics and
Computational Intelligence (CyberneticsCom), IEEE, Phuket, Thailand, 2017, pp. 24–28.
doi:10.1109/CYBERNETICSCOM.2017.8311709.
[12] A.A. Akca, and A. Tarhan, Run-time measurement of COSMIC functional size for java business
applications: Initial results, in: Proceedings of the IWSM-Mensura, IEEE, Assisi, Italy, 2012, pp.
226–231. doi: 10.1109/IWSM-MENSURA.2012.40.
[13] R. Gonultas, and A. Tarhan, Run-time calculation of COSMIC functional size via automatic
installment of measurement code into Java business applications, in: Proceedings of the 41st
Euromicro Conference on Software Engineering and Advanced Applications. IEEE, Madeira,
Portugal, 2015, pp.112–118. doi: 10.1109/SEAA.2015.30.
[14] M.A. Sag, and A. Tarhan, Measuring COSMIC software size from functional execution traces of
Java business applications, in: Proceedings of the IWSM-Mensura 2014, IEEE, Rotterdam,
Netherlands, 2014, pp. 272–281. doi: 10.1109/IWSM.Mensura.2014.29.
[15] N. Chamkha, A. Sellami, and A. Abran, Automated COSMIC Measurement of Java Swing
Applications throughout their Development Life Cycle, in: Proceedings of the IWSM-Mensura,
Beijing, China, 2018, pp. 20-33.
[16] A. Abran, Software Estimation: How to use ISBSG data for early software sizing?, IT</p>
      <p>Conference – ISBSG, 2020.
[17] A. Sahab, and S. Trudel, COSMIC Functional Size Automation of Java Web Applications Using
the Spring MVC Framework, in: Proceedings of the 30th IWSM-Mensura, Mexico city, Mexico,
2020.
[18] Gartner, C (Programming Language), 2022. URL:
https://www.gartner.com/en/informationtechnology/glossary/c-programming-language.
[19] Statistics and Data, The Most Popular Programming Languages – 1965/2022 – New Update,
2022. URL:
https://statisticsanddata.org/data/the-most-popular-programming-languages-19652022-new-update/.
[20] TIOBE Software, 2022. URL: https://www.tiobe.com/tiobe-index/.
[21] ISO/IEC 20926: Software and systems engineering - Software measurement - IFPUG functional
size measurement method 2009, 2nd ed., ISO, Geneva, 2009.
[22] ISO/IEC 20968: Software engineering - Mk II Function Point Analysis - Counting Practices</p>
      <p>Manual, ISO, Geneva, 2002.
[23] ISO/IEC 24570: Software engineering - NESMA functional size measurement method
Definitions and counting guidelines for the application of function point analysis, 2nd ed., ISO,
Geneva, 2018.
[24] ISO/IEC 29881: Information technology - Systems and software engineering - FiSMA 1.1
functional size measurement method, ISO, Geneva, 2010.
[25] ISO/IEC 19761: Software engineering - COSMIC: a functional size measurement method, ISO,</p>
      <p>Geneva, (2011, reviewed and confirmed in 2019).
[26] H. Sneed, Purpose of Software Measurement, Software Measurement News, Volume 26,</p>
      <p>Number 1, March 2021.
[27] C. Symons, Why COSMIC functional Measurement?, Measurement News, Volume 25, Number
2, September 2020.
[28] C. Commeyne, A. Abran, and R. Djouab, Effort estimation with story points and COSMIC
function points - an industry case study, Software Measurement News, Volume 21, Number 1,
2016.
[29] M. Salmanoglu, T. Hacaloglu, and O. Demirors, Effort estimation for agile software
development: comparative case studies using COSMIC functional size measurement and story
points, in: Proceedings of the 27th IWSM-Mensura, ACM, Göteborg, Sweden, 2017.
[30] S. Di Martino, F. Filomena, C. Gravino, and F. Sarro, Web Effort Estimation: Function Point
Analysis vs. COSMIC, Information and Software Technology 72 (2016) 90-109. doi:
10.1145/3143434.3143450.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] cosmic-sizing</article-title>
          .org,
          <source>Why measure software size?</source>
          ,
          <year>2022</year>
          . URL: https://cosmic-sizing.org/cosmicsizing/intro/why-measure-size/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Unterkalmsteiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Gorschek</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.M.M. Islam</surname>
          </string-name>
          , C.K. Cheng, R.B.
          <string-name>
            <surname>Permadi</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Feldt</surname>
          </string-name>
          ,
          <article-title>Evaluation and measurement of software process improvement: a systematic literature review</article-title>
          ,
          <source>IEEE Transactions in Software Engineering</source>
          ,
          <volume>38</volume>
          (
          <issue>2</issue>
          ) (
          <year>2012</year>
          )
          <fpage>398</fpage>
          -
          <lpage>424</lpage>
          . doi:
          <volume>10</volume>
          .1109/TSE.
          <year>2011</year>
          .26
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>T. DeMarco</surname>
          </string-name>
          , Controlling Software Projects, New Jersey, Yourdon Press,
          <year>1982</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>VIM</given-names>
            <surname>ISO</surname>
          </string-name>
          <article-title>/IEC Guide 99 International vocabulary of metrology - Basic and general concepts and associated terms (VIM), International Organization for Standardization -</article-title>
          ISO, Geneva,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>H.</given-names>
            <surname>Huijgens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Bruntink</surname>
          </string-name>
          , A. van Deursen, T. van der Storm, and
          <string-name>
            <given-names>F.</given-names>
            <surname>Vogelezang</surname>
          </string-name>
          ,
          <source>An Exploratory Study on Functional Size Measurement Based on Code, in: Proceedings of IEEE/ACM International Conference on Software and System Processes (ICSSP)</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>56</fpage>
          -
          <lpage>65</lpage>
          . doi:
          <volume>10</volume>
          .1145/2904354.2904360
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Darwish</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Soubra</surname>
          </string-name>
          ,
          <article-title>COSMIC Functional Size of ARM Assembly Programs, in: Proceeding of the 30th IWSM-Mensura</article-title>
          .
          <article-title>Mexico city</article-title>
          , Mexico,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>H.V.</given-names>
            <surname>Heeringen</surname>
          </string-name>
          ,
          <source>Automated Function Points, the Game Changer!</source>
          , IT Conference - ISBSG,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>H.</given-names>
            <surname>Soubra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Abufrikha</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Abran</surname>
          </string-name>
          ,
          <article-title>Towards Universal COSMIC Size Measurement Automation, in: Proceedings of the 30th IWSM-Mensura, Mexico city</article-title>
          , Mexico,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>V.</given-names>
            <surname>Bévo</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Lévesque, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Abran</surname>
          </string-name>
          ,
          <article-title>UML notation for functional size measurement method</article-title>
          ,
          <source>in: Proceedings of the International Workshop in Software Measurement - IWSM</source>
          , LacSupérieur, Canada,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>T.M. Fehlmann</surname>
            , and
            <given-names>E. Kranich,</given-names>
          </string-name>
          <article-title>COSMIC functional sizing based on UML sequence diagrams</article-title>
          ,
          <source>in: Proceedings of the MetriKon</source>
          , Kaiserslautern, Germany,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>C.</given-names>
            <surname>Symons</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Abran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ebert</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Vogelezang</surname>
          </string-name>
          , Measurement of Software Size:
          <article-title>Advances Made by the COSMIC Community, in: Proceedings of the IWSM-Mensura</article-title>
          ,
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          , Berlin, Germany,
          <year>2016</year>
          , pp.
          <fpage>75</fpage>
          -
          <lpage>86</lpage>
          . doi:
          <volume>10</volume>
          .1109/IWSM-Mensura.
          <year>2016</year>
          .
          <volume>021</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>A.</given-names>
            <surname>Tarhan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Özkan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.C.</given-names>
            <surname>İçöz</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          <article-title>Proposal on Requirements for COSMIC Automation from Source Code, in: Proceedings of the IWSM-Mensura</article-title>
          ,
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          , Berlin, Germany,
          <year>2016</year>
          , pp.
          <fpage>195</fpage>
          -
          <lpage>200</lpage>
          . doi:
          <volume>10</volume>
          .1109/IWSM-Mensura.
          <year>2016</year>
          .
          <volume>038</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>A.</given-names>
            <surname>Tarhan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.A.</given-names>
            <surname>Sag</surname>
          </string-name>
          , COSMIC Solver:
          <article-title>A Tool for Functional Sizing of Java Business Applications</article-title>
          ,
          <source>Balkan Journal of Electrical &amp; Computer Engineering</source>
          <volume>6</volume>
          (
          <issue>1</issue>
          ) (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>E.</given-names>
            <surname>Ungan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Hammond</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Abran</surname>
          </string-name>
          ,
          <source>Automated COSMIC Measurement and Requirement Quality Improvement Through ScopeMaster® Tool</source>
          .,
          <source>in: Proceedings of the IWSM-Mensura</source>
          , Beijing, China,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bagriyanik</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Karahoca</surname>
          </string-name>
          ,
          <string-name>
            <surname>Automated COSMIC Function</surname>
          </string-name>
          <article-title>Point measurement using a requirements engineering ontology</article-title>
          ,
          <source>Information and Software Technology</source>
          <volume>72</volume>
          (
          <year>2016</year>
          )
          <fpage>189</fpage>
          -
          <lpage>203</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>T.</given-names>
            <surname>Zaw</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.Z.</given-names>
            <surname>Hlaing</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. M. Lwin</surname>
            , and
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Ochimizu</surname>
          </string-name>
          ,
          <source>An Automated Software Size Measurement Tool based on Generation Model using COSMIC Function Size Measurement, in: Proceedings of the International Conference on Advanced Information Technologies (ICAIT)</source>
          , IEEE, Yangon, Myanmar,
          <year>2019</year>
          , pp.
          <fpage>268</fpage>
          -
          <lpage>273</lpage>
          .doi:
          <volume>10</volume>
          .1109/AITC.
          <year>2019</year>
          .
          <volume>8920991</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>A.</given-names>
            <surname>Sellami</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Hakim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Abran</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Ben-Abdallah</surname>
          </string-name>
          ,
          <article-title>A measurement method for sizing the structure of UML sequence diagrams</article-title>
          ,
          <source>Information and Software Technology 59 (C)</source>
          (
          <year>2015</year>
          )
          <fpage>222</fpage>
          -
          <lpage>232</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>H.</given-names>
            <surname>Hakim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sellami</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Ben-Abdallah</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Abran</surname>
          </string-name>
          ,
          <article-title>Improving the Structural Size Measurement Method Through the Assessment of Nested (Multi-Level) Control Structures in UML Sequence Diagram, in: Proceedings of the IWSM-Mensura, Mexico city</article-title>
          , Mexico,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>S.</given-names>
            <surname>Abrahão</surname>
          </string-name>
          , L. De Marco,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ferrucci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gomez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gravino</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Sarro</surname>
          </string-name>
          ,
          <article-title>Definition and evaluation of a COSMIC measurement procedure for sizing Web applications in a model-driven development environment</article-title>
          ,
          <source>Information and Software Technology</source>
          <volume>14</volume>
          (
          <year>2018</year>
          )
          <fpage>144</fpage>
          -
          <lpage>161</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [40]
          <string-name>
            <surname>G. De Vito</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Ferrucci</surname>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Gravino</surname>
          </string-name>
          ,
          <article-title>Design and automation of a COSMIC measurement procedure based on UML models</article-title>
          ,
          <source>Software and Systems Modeling</source>
          <volume>19</volume>
          (
          <year>2020</year>
          )
          <fpage>171</fpage>
          -
          <lpage>198</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>A.</given-names>
            <surname>Filippova</surname>
          </string-name>
          , E. Trainer, and
          <string-name>
            <given-names>J.D.</given-names>
            <surname>Herbsleb</surname>
          </string-name>
          ,
          <article-title>From diversity by numbers to diversity as process: Supporting inclusiveness in software development teams with brainstorming</article-title>
          ,
          <source>in: Proceedings of the 39th International conference on software engineering</source>
          , IEEE,
          <string-name>
            <surname>Buenos</surname>
            <given-names>Aires</given-names>
          </string-name>
          , Argentina,
          <year>2017</year>
          , pp.
          <fpage>152</fpage>
          -
          <lpage>163</lpage>
          .doi:
          <volume>10</volume>
          .1109/ICSE.
          <year>2017</year>
          .
          <volume>22</volume>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>