<!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>Software Component Quality Evaluation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mebarka YAHLALI</string-name>
          <email>Yahlali@univ-usto.dz</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Abdellah CHOUARFIA</string-name>
          <email>Chouarfia@univ-usto.dz</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computer Science Department, USTO-MB University</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2014</year>
      </pub-date>
      <fpage>2</fpage>
      <lpage>4</lpage>
      <abstract>
        <p>- Component-Based Software Engineering (CBSE) provides for developers the ability to easily reuse and assemble software entities to build complex software. It is based on the composition of prefabricated software entities called components. In this context, the selection step is very important. It consists of searching and selecting appropriate software components from a set of candidate components in order to satisfy the developer-specific requirements. In the selection process, both functional and nonfunctional requirements are generally considered. In this paper we present a method enabling the evaluation of software components quality. This method allows us choosing the best component in term of non-functional needs.</p>
      </abstract>
      <kwd-group>
        <kwd>- Software components quality</kwd>
        <kwd>Component quality model</kwd>
        <kwd>Quality evaluation</kwd>
        <kwd>components selection</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>The components approach has become an
important alternative for building software
applications, and specially distributed systems.
This approach tries to improve the flexibility,
reusability and maintainability of applications, and
helps develop complex and distributed
applications deployed on a wide range of
platforms, by plugging commercial off-the-shelf
(COTS) components, rather than building them
from scratch.</p>
      <p>
        Software component. One of the definitions
most often quoted is given by Szyperski and
Pfister [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ][
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]: "A Software component is a unit of
composition with contractually specified
interfaces and explicit context dependencies
only. A Software component can be deployed
independently and is subject to composition by
third parties". A software component
has mainly three elements [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]: (a)Functional
interfaces and configuration properties: The
required functional interfaces must be satisfied
when a component instance is created so that
this later can be used through the provided
interfaces.(b) Control interfaces
(provided/required): are the set of methods
which allow managing the component instances’
life cycle during the execution. These methods
are intended to be called by the execution
environment of the components model. (c)
Dependences and deployment properties: the
dependences are specific to each
implementation of a component.
      </p>
      <p>Currently, we can find several similar
components .i.e. they provide the same
functional requirements. The problem is "how to
choose a component of good quality?". In this
article we try to estimate the quality of each
component in order to select the best among
several equivalent propositions. Summarize the
main function of our evaluation methods is to
produce a single numerical value representing
the quality offered by each component.</p>
      <p>This paper is organized in three sections. After
this introduction, section 2 presents an outline on
software quality and in section 3 we present our
assessment process.</p>
    </sec>
    <sec id="sec-2">
      <title>2. THE QUALITY</title>
    </sec>
    <sec id="sec-3">
      <title>2.1. Standardized</title>
    </sec>
    <sec id="sec-4">
      <title>Evaluation.</title>
    </sec>
    <sec id="sec-5">
      <title>Factor or Characteristic: Software</title>
      <p>
        characteristic which contributes to its quality [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
It relates to the used of characteristics. The
factors translate the external vision [6].
      </p>
    </sec>
    <sec id="sec-6">
      <title>Criteria or Subcharacteristic: a factor can be</title>
      <p>
        evaluated via these elements [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
    </sec>
    <sec id="sec-7">
      <title>Aspects of</title>
    </sec>
    <sec id="sec-8">
      <title>Quality</title>
      <p>Attributes: The quality criteria are connected to
attributes which are a posteriori measurements.</p>
    </sec>
    <sec id="sec-9">
      <title>2.2. Software Component quality model</title>
      <p>
        A Quality Model is defined as: “The set of
characteristics and the relationships between
them which provide the basis for specifying and
evaluating quality requirements.”[
        <xref ref-type="bibr" rid="ref6">7</xref>
        ].
      </p>
      <p>
        There are more than 300 developed standards
and maintained by more than 50 different
organizations[
        <xref ref-type="bibr" rid="ref6">7</xref>
        ].The first quality model
considered as a standard was developed and
published by the International Standardization
Organization in 1991 as ISO 9126 [8]. Ten
years A new international initiative Software
product QUality Requirements and Evaluation
(SQuaRE) was set up aiming to develop set of
norms ISO/IEC 25000 [9]. This new approach is
perceived as new generation of software quality
models.
      </p>
      <p>Characteristics</p>
      <p>Maintainability
Portability
Functionality
Reliability
Usability
Efficiency</p>
      <p>Sub-characteristics
Accuracy, Security, Suitability,
Interoperability ,Compliance
Faults Tolerance, Recoverability,
Maturity , Compliance
Configurability, Understability,
Learnability , Attractiveness,
Operability, Compliance
Time Behavior,Resource Behavior,
Compliance
Stability , Changeability , Testability
, Analysability , Compliance
Deployability, Replaceability ,</p>
      <p>Adaptability, Reusability</p>
    </sec>
    <sec id="sec-10">
      <title>Table1. SQuaRE quality model [10]</title>
    </sec>
    <sec id="sec-11">
      <title>3. SOFTWARE COMPONENT Quality</title>
      <p>The objective of this work is to calculate the
software component quality value.</p>
      <p>
        In such quality evaluation process, the presence
of a quality characteristics’ description of each
component is crucial; that means to be able to
satisfy the quality it is important to add the
necessary quality attributes to the product
description [
        <xref ref-type="bibr" rid="ref7">11</xref>
        ]. For this we have proposed in
[
        <xref ref-type="bibr" rid="ref8">12</xref>
        ] syntax for specifying the software
component quality. The following example
illustrates the specification of a quality of a
component according to the syntax defined in
[
        <xref ref-type="bibr" rid="ref8">12</xref>
        ].
      </p>
    </sec>
    <sec id="sec-12">
      <title>Example 1:</title>
      <sec id="sec-12-1">
        <title>DEFINE-QUALITY</title>
        <p>Reliability ={
Maturity = {Volatility =0,25;</p>
        <p>Failureremoval=0.49}
FaultTolerance= { Mechanismavailability=0.6;
Mechanism_Efficiency =0.31};
Recoverability={ Error –Handling=0.20}
};
Usability = {</p>
        <p>Operability={ Provided_interface =0.55;
Required_interface=0.36};</p>
        <p>Configurability ={ Configuration Effort =0,3 }
}.</p>
      </sec>
    </sec>
    <sec id="sec-13">
      <title>3.1 Component Quality Evaluation</title>
      <p>Let assume that:
F: a set of component factors: F= {fi / i=1.. n}
C: a set of criteria for F: C= {cj /j=1.. m}
A: a set of attributes relating to C: A= {al/ l=1.. k}
The quality model is decomposed into 03 levels:
the first is the attributes, the second criteria and
the third represents the factors. For this we
define two relations:
1. “presented by”: this relation is defined as
follow:
Ei is presented by ej j=1..n : means that the
element Ei is presented by the set (e1,e2,e3…en)
For this work two cases can be distinguished:
fj ∈ F each factor fj is presented by a set of
criteria</p>
      <p>ci ∈ C, each criterion cj is presented by a set
of attributes
2. “ Evaluated by ”: if an element Ei is
presented by ej j=1..n the quality value of Ei :
V(Ei) can be calculated based on the quality
values of the elements ej: V (ej). Whereas:
If Ei is presented ej j=1..n
evaluated by V(ej ) / j=1..n
V(Ei) is</p>
    </sec>
    <sec id="sec-14">
      <title>3.1. Evaluation Process</title>
      <p>
        Our evaluation process contains 03 main steps:
Step 1: In this step the user must classify the
quality characteristics (factors) according to his
non functional needs.
Step 2: Factors weights are calculated
depending on the user classification using ROC
(Rank Order Centroid) concept [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Centroids
classification is a way to convert from the ranks
(1st, 2nd, 3rd) in notes or weights which are
numerical value. If n is the number of attributes,
the weight (W) of attribute k (Ak) is [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] :
 
=
      </p>
      <p>1

 = 

For Criteria and attributes weights we assign
equal weights, that is to say if an element E has
n sub-element E’, the weight of each
element
E’ is:</p>
      <p>W(E)=</p>
      <p>Step 3: Evaluation : Figure.2 summarizes the
calculating process, with the following rules:</p>
      <p>_ =
 
 
Such as:


example, there are two quality factors: reliability</p>
      <sec id="sec-14-1">
        <title>These factors are defined as and usability. follows: 1. Reliability is presented by (Maturity,</title>
      </sec>
      <sec id="sec-14-2">
        <title>FaultTolerance, Recoverability).</title>
        <p>2. Usability is presented by (Learnability,</p>
      </sec>
      <sec id="sec-14-3">
        <title>Operability, Configurability)</title>
        <p>Factor
International Conference on Advanced Aspects of Software Engineering</p>
        <p>Criteria
Maturity
Fault
Tolerance
Recoverability
Now, we use R2 to calculate Usability value:
V(Usability)=V(operability)*W(operability)+V(Lea
rnability)*W(Learnability)+</p>
        <p>V(Configurablity)*W(Configurablity)
= 0.33*0.45+0.33*0.69+0.33*0.3=0.47
V(Usability)=0.47</p>
      </sec>
    </sec>
    <sec id="sec-15">
      <title>Reliability value: We</title>
      <p>calculation process,
V(Reliability)=0.34
will apply the same
we find:
Overall quality: for this level we use R1;
V_qual =V(Reliability)*W(Reliability)+V(Usability)
*W(Us-ability)=0.34*0.25+0.47*.75
V_qual =0.43</p>
    </sec>
    <sec id="sec-16">
      <title>4. Conclusion and future work</title>
      <p>This paper presents a method allowing
comparison of software components in term of
quality. We have proposed a method for
assessing the component quality. This method
is Applicable to any quality model, it facilitates
the comparison of components by producing a
digital value represents the quality that a
component can offer, and it minimizes the time
to compare a few equivalent components. In
order to enhance this methodology, we
proposed a generalization of the proposed
process of assembling software system based
on the assembly of several components, i.e. to
know the value of the quality offered by an
application from its components.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Brown</surname>
          </string-name>
          , K. Wallnau,(
          <year>1999</year>
          ), “
          <article-title>The Current State of CBSE”</article-title>
          .
          <source>IEEE Software</source>
          ,
          <volume>37</volume>
          _
          <fpage>46</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>C.</given-names>
            <surname>Szyperski</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Pfister</surname>
          </string-name>
          ,(
          <year>1996</year>
          ), “COP'96 Workshop Repor”, International Workshop on Component-Oriented Programming, University of Linz, Austria.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Humberto</surname>
            <given-names>CERVANTES</given-names>
          </string-name>
          , “
          <article-title>Towards a components directed services model to support the availability dynamic“</article-title>
          ,
          <source>Doctoral Thesis, 29 March</source>
          <year>2004</year>
          , University of Joseph Fourier, GrenoubleI; France.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>McCaffrey</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Koski</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <article-title>Competitive Analysis Using MAGIQ</article-title>
          .
          <source>MSDNMagazine. Octobre</source>
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>McCaffrey</surname>
            ,
            <given-names>J.D</given-names>
          </string-name>
          ,
          <article-title>Using the Multi-Attribute Global Inference of Quality (MAGIQ) Technique for Software Testing</article-title>
          ,
          <source>Information Technology: New Generations</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Neelam</given-names>
            <surname>Bawane</surname>
          </string-name>
          nd
          <string-name>
            <given-names>C. V.</given-names>
            <surname>Srikrishna</surname>
          </string-name>
          (
          <year>2010</year>
          )
          <article-title>: A Novel Method for Quantitative Assessment of Software Quality</article-title>
          ,
          <source>International Journal of Computer Science and Security</source>
          , Volume
          <volume>3</volume>
          :
          <string-name>
            <surname>Issue</surname>
          </string-name>
          (6) [8]ISO/IEC 9126 (
          <year>1991</year>
          )
          <article-title>“JTC1/SC7</article-title>
          , Information Technology - Software Product Quality”, International Standardization Organization, [9] ISO/IEC 25000(
          <year>2005</year>
          )
          <article-title>“ JTC1/SC7, Software Engineering - Software product Quality Requirements and Evaluation (SQuaRE)”</article-title>
          , International Standardization Organization, [
          <volume>10</volume>
          ]
          <string-name>
            <surname>Dave</surname>
            <given-names>Zubrow</given-names>
          </string-name>
          ,(
          <year>2004</year>
          ),”
          <article-title>Software Quality Requirements and Evaluation, the ISO 25000 Series”</article-title>
          , Carnegie Mellon University.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Antkiewicz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Bąk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Murashkin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Olaechea</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          ,
          <year>2013</year>
          , “
          <article-title>Clafer Tools for Product Line Engineering”</article-title>
          ,
          <source>Software Product Line Conference</source>
          , Tokyo, Japan.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Chouarfia</surname>
            <given-names>Abdallah</given-names>
          </string-name>
          , Yahlali Mebarka,(
          <year>2009</year>
          ), “
          <article-title>Software Components Assembly with an Appreciated Qos”</article-title>
          ,
          <source>Aug</source>
          <year>2009</year>
          ,
          <source>Journal of Software</source>
          , Vol
          <volume>4</volume>
          , No 6.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>