<!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>Measuring the Functional Size of Conceptual Models in an MDA Environment1</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Beatriz Marín</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nelly Condori-Fernández</string-name>
          <email>nelly@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oscar Pastor</string-name>
          <email>opastor@dsic.upv.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alain Abran</string-name>
          <email>abran.alain@etsmtl.ca</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Information Systems and Computation, Technical University of Valencia</institution>
          ,
          <addr-line>Camino de Vera s/n, 46022 Valencia</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Software Engineering &amp; Information Technology, École de technologie supérieure - Université du Québec</institution>
          ,
          <addr-line>1100 Notre-Dame Ouest, Montréal (Québec)</addr-line>
          ,
          <country country="CA">Canada</country>
          <addr-line>H3C 1K3</addr-line>
        </aff>
      </contrib-group>
      <fpage>33</fpage>
      <lpage>36</lpage>
      <abstract>
        <p>The measurement of the functional size of applications generated in MDA environments is a challenge for the software development industry. This paper presents the OO-Method COSMIC Function Points (OOmCFP), a measurement procedure that has been designed to measure the functional size of object-oriented applications generated from their conceptual models by means of model transformations.</p>
      </abstract>
      <kwd-group>
        <kwd>Conceptual modeling</kwd>
        <kwd>Object orientation</kwd>
        <kwd>Functional size measurement</kwd>
        <kwd>COSMIC</kwd>
        <kwd>MDA</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        The MDA approach separates application and business logic from the platform
technology, allowing code generation by means of model transformations. This is the
case of the OO-Method approach [
        <xref ref-type="bibr" rid="ref6">7</xref>
        ], which is an object-oriented method that
provides the semantic formalization needed to define complete and unambiguous
conceptual models, allowing the automatic generation of software products using a
MDA-based technology.
      </p>
      <p>
        The adoption of MDA-based technology has presented new challenges, such as
measuring the size of the generated products. The COSMIC measurement method [
        <xref ref-type="bibr" rid="ref4">5</xref>
        ]
can be used to perform this task. Currently, there are some approaches that apply
COSMIC to estimate the functional size of future software applications from
highlevel specifications [2] [
        <xref ref-type="bibr" rid="ref2">3</xref>
        ]. Since the functionality to be measured using these
proposals is not detailed enough to generate the final application, the definition of an
FSM procedure that allows the measure of the correct size of applications is needed.
1 This work has been developed with the support of MEC under the project SESAMO
      </p>
      <p>TIN2007-62894 and co financed by FEDER.</p>
      <p>In practical settings, it is very important to know the correct size of the conceptual
models that are built with the MDA-based approaches, since the functional size of the
models must be known in order to estimate the cost of the software product that is
generated automatically. This paper presents the OOmCFP proposal, which is a
procedure based on COSMIC that allows the measurement of the functional size of
the OO-Method conceptual models from which the applications will be generated.</p>
      <p>The rest of the paper is organized as follows: section 2 presents the design of the
OOmCFP, and section 3 presents some conclusions and suggestions for further work.</p>
    </sec>
    <sec id="sec-2">
      <title>2 Design of a Measurement Procedure</title>
      <p>
        According to the process model for software measurement proposed by Jacquet and
Abran [
        <xref ref-type="bibr" rid="ref5">6</xref>
        ], the design phase of a measurement procedure is related to the definition of
the concept to be measured and the rules to measure this concept. This relevant phase
is divided into four sub-steps: the definition of the objectives, the characterization of
the concept to be measured, the selection of the metamodel, and the definition of the
numerical assignment rules.
      </p>
      <p>In the sub-step definition of the objectives, the objective of OOmCFP is to design a
procedure in accordance with the COSMIC functional size measurement method for
measuring the functional size of software applications that are generated using an
MDA approach from their conceptual models which are built with OO-Method.</p>
      <p>
        In the sub-step characterization of the concept to be measured, we define the entity
and the attribute to be measured. The input artefact used to measure the functional
size of the OO-Method applications is the Conceptual Model. This model is
comprised of four models (Object, Dynamic, Functional, and Presentation) that allow
the generation of a fully working software application. The conceptual model of
OOMethod is described in detail in [
        <xref ref-type="bibr" rid="ref6">7</xref>
        ]. Therefore, the entity to be measured by OOmCFP
will be an OO-Method conceptual model, and the attribute to be measured will be the
functional size, which is defined by the ISO/IEC 14143-1 standard as the size of
software derived by quantifying the functional user requirements [
        <xref ref-type="bibr" rid="ref3">4</xref>
        ].
      </p>
      <p>
        In the sub-step selection of the metamodel, we have selected the COSMIC standard
because, in contrast to other FSM standards like IFPG FPA, NESMA FPA or MARK
II FPA, it allows the functional size measurement of multi-layer applications (like
OO-Method) from different viewpoints. Figure 1 shows the COSMIC metamodel
according to the COSMIC measurement manual version 3.0 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], which illustrates the
information that should be represented by the software artefact to be measured.
      </p>
      <p>The purpose of the measurement in OOmCFP is to measure the functional size of
the OO-Method conceptual models to estimate the cost of the applications generated
by the OlivaNova Suite.</p>
      <p>The scope of the measurement in OOmCFP is the OO-Method Conceptual Model
from which the final software application will be built.</p>
      <p>The granularity level of the measurement is low because all the details in the
OOMethod conceptual model are needed to generate the applications.</p>
      <p>The OO-Method software applications are generated according to a three-tier
software architecture: the presentation tier (Client layer), the logic tier (Server layer),
and database tier (Database layer) – see Figure 2. Each tier can be developed for
different software environments.</p>
      <p>As Figure 2 shows, the human user is a functional user of the client layer of the
software and is separated from that layer by a boundary. In turn, the client layer of the
software is a functional user of the server layer and is separated from that layer by a
boundary. The server layer of the software is both a functional user of the client layer
and a functional user of the database layer of the software and is separated from these
layers by a boundary. In addition, the legacy systems are functional users of the
server layer and are separated from that layer by a boundary.</p>
      <p>The human user carries out the triggering events that occur in the real world. This
user starts the functional processes that are direct successors of the hierarchy action
tree (HAT) of the presentation model of OO-Method conceptual model. Each child
represents a single functional process. The ‘client user’ starts the functional processes,
which are the actions that the server layer carries out in response to the functional
processes that occur in the client layer. The ‘server user’ starts the functional
processes, which are the actions related to the database layer in response to the
functional processes that occur in the server layer. The ‘legacy user’ starts the
functional processes, which are the actions that the server layer carries out in response
to the functional processes that occur in the legacy systems.</p>
      <p>Every functional process has a set of data movements that can be entry data
movements (E), exit data movements (X), read data movements (R) or write data
movements (W). In the measurement guide2 we have defined 69 mapping rules for the
data movements that can occur in the OO-Method applications – see Figure 2.</p>
      <p>Each single data movement moves one data group. The data groups are the classes
of the object model of OO-Method that participate in a functional process. Every class
has a set of attributes that will be the data attributes of a data group.
2 http://oomethod.dsic.upv.es/labs/images/OOmCFP/guide.pdf</p>
      <p>In the sub-step definition of the numerical assignment rules, we have determined
the measurement rules for the data movements that can occur in an OO-Method
application. One size unit, referred to as 1 cfp, will be assigned to each data
movement. Thus, the functional size of a functional process will be the addition of the
data movements that occur in that functional process. Next, the functional size of a
layer will be the addition of the functional sizes of the functional processes that are
contained in that layer. Last, the functional size of a generated OO-Method
application will be the addition of the functional size of every layer of the application.</p>
      <p>In terms of the validation of the OOmCFP procedure, we have verified how the
measurement process works in practice using some predefined OO-Method
conceptual models. In addition, we can infer that OOmCFP has been theoretically
validated because the theoretical validation of COSMIC was carried out successfully
in [2] using the DISTANCE framework. Moreover, an expert3 has validated the
conformity of the OOmCFP procedure with the COSMIC version 3.0.</p>
    </sec>
    <sec id="sec-3">
      <title>3 Conclusions and Further Work</title>
      <p>In this paper, we have presented OOmCFP, which is an FSM procedure based on
COSMIC for object-oriented applications generated in MDA environments from their
conceptual models. The design of OOmCFP was presented using a generic process
model for software measurement. We consider that OOmCFP specifies the issues that
must be considered for the development of a tool to automate the measurement of the
functional size of applications generated in MDA environments. Further work
includes empirical studies of the reproducibility and the repeatability of OOmCFP,
and the creation of a tool that automatically implements OOmCFP.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abran</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Desharnais</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Lesterhuis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Londeix</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Meli</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ; Morris,
          <string-name>
            <given-names>P.</given-names>
            ;
            <surname>Oligny</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <article-title>;</article-title>
          <string-name>
            <surname>O'Neil</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Rollo</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Rule</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Santillo</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Symons</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Toivonen</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <source>The COSMIC Functional Size Measurement Method, version 3</source>
          .
          <article-title>0 In GELOG web site www</article-title>
          .
          <source>gelog.etsmtl.ca 2</source>
          .
          <string-name>
            <surname>Condori-Fernández</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , Un procedimiento de medición de tamaño funcional a partir de especificaciones de requisitos,
          <source>Doctoral thesis</source>
          , Univ. Politécnica de Valencia, España,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          3.
          <string-name>
            <surname>Grau</surname>
          </string-name>
          , G.;
          <string-name>
            <surname>Franch</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <article-title>Using the PRiM method to Evaluate Requirements Model with COSMIC-FFP In: IWSM-MENSURA 2007, Mallorca</article-title>
          , Spain,
          <year>November 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          4. ISO, ISO/IEC 14143-
          <issue>1</issue>
          ,
          <string-name>
            <given-names>Information</given-names>
            <surname>Technology - Software Measurement - Functional Size</surname>
          </string-name>
          Measurement - Part 1:
          <source>Definition of Concepts</source>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          5. ISO, ISO/IEC 19761,
          <string-name>
            <surname>Software Engineering - CFF - A Functional Size Measurement Method</surname>
          </string-name>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          6.
          <string-name>
            <surname>Jacquet</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Abran</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <source>From Software Metrics to Software Measurement Methods: A Process Model In: 3rd International Standard Symposium and Forum on Software Engineering Standards, ISESS</source>
          <year>1997</year>
          ,
          <string-name>
            <surname>Walnut</surname>
            <given-names>Creek</given-names>
          </string-name>
          , USA,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          7.
          <string-name>
            <surname>Pastor</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Molina</surname>
            ,
            <given-names>J. C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Model-Driven Architecture</surname>
          </string-name>
          in Practice, Springer,
          <year>2007</year>
          .
          <article-title>3 We would like to thank to Charles Symons for his helpful comments</article-title>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>