<!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>A Method of Software Quality Comparison based on PCA</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Wenpeng Li</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wei Su</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jianxun Guo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kuan Feng</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Xiuming Yu</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>China Electronics Standardization Institute</institution>
          ,
          <addr-line>Beijing</addr-line>
          ,
          <country country="CN">China</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>functional characteristics: Functional Suitability</institution>
          ,
          <addr-line>Performance efficiency, Compatibility, Usability, Reliability, Security, Maintainability, and Portability, along with their respective sub-characteristics and properties [4]</addr-line>
        </aff>
      </contrib-group>
      <fpage>13</fpage>
      <lpage>16</lpage>
      <abstract>
        <p>The platform software has a large number of functional and performance efficiency quality indicators, as well as differences in fixed basic hardware and software environments, making it impossible to effectively compare the quality. Considering that different users have different concerns about the product indicators of platform software, it brings certain difficulties to the selection of users. This paper proposes a software quality comparison method based on PCA, which extracts principal components by analyzing the correlation between data, reasonably allocates and evaluates software quality through dimensionality reduction and weighting, avoids errors caused by subjective experience, and can effectively adapt to changes in evaluation dimensions and the number of software products. Achieve the goal of horizontal comparison between products through a score.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;quality comparison</kwd>
        <kwd>quality models</kwd>
        <kwd>PCA 1</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>1. Introduction
With the rapid advancement of information
technology, the level of information digitization in all
aspects of social life is continuously improving, and
software has emerged as a modern infrastructure.
However, software is a product of human intellectual
labor with poor visibility in terms of quality. The
complexity and fuzziness of software make it
challenging to quantify, thereby complicating users'
ability to objectively comprehend its quality. The
construction of a software quality model establishes a
framework for measuring software quality attributes,
establishing the relationship between measurable
attributes and software quality, thereby providing a
basis for evaluating and comparing the quality of
software products.</p>
      <p>In 1991, ISO/IEC JTC1/SC7 issued the ISO/IEC
9126 standard, which is based on McCall and Boehm's
quality model. It reformulated the quality of software
into 6 main attributes and 21 sub-attributes, marking
a significant milestone in the standardization of
software quality.</p>
      <p>
        In the research of software quality evaluation,
methods such as Delphi method, fuzzy fuzzy
comprehensive evaluation, topsis, evidential theory,
and so on are often used. Most of these methods rely
on subjective experience or fuzzy theory to construct
quality measurement models, making them
susceptible to human subjective influence in
determining weights, introducing a level of
uncertainty [
        <xref ref-type="bibr" rid="ref1 ref2 ref3">1, 2, 3</xref>
        ].
      </p>
      <p>ISO/IEC 25010 provides the software product
quality model (as shown in Fig. 1), offering eight
5th International Workshop on Experience with SQuaRE Series andits
Future Direction, December 04, 2023, Seoul, Korea
liwp@cesi.cn (W. Li); yuxiuming@cesi.cn (X. Yu)
0009-0001-4065-2527 (W. Li)
© 2023 Copyright for this paper by its authors. The use permitted under
Creative Commons License Attribution 4.0 International (CC BY 4.0).</p>
      <p>CEUR Workshop Proceedings (CEUR-WS.org)</p>
      <p>
        ISO/IEC 25023 provides quality measures for
subcharacteristics of the software product quality model,
which are widely used for measurement functions.
These include mean response time and mean
turnaround time for time behavior measurement;
mean processor utilization, mean memory utilization,
mean I/O utilization, and bandwidth utilization for
resource utilization measurement; transaction
processing capacity, user access capacity, and
adequacy of user access increase in capacity measures
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>The platform software has a large number of
functional and performance efficiency quality
indicators, as well as differences in fixed basic
hardware and software environments, making it
impossible to effectively compare the quality.
Considering that different users have different
concerns about the product indicators of platform
software, it brings certain difficulties to the selection
of users. In the quality testing of large-scale platform
product, function indicators of platform product
capability and performance indicators are widely
concerned. The results of test records are usually a
numerical value (e.g. how many algorithms the
platform supports, and the maximum concurrency
supported by the performance result is 10,000).
Inconsistent data dimensions make it difficult to
compare and analyze products, and inconvenience
users in comparing products.</p>
      <p>This paper introduces a method for analyzing data
correlation. This approach eliminates the need for
subjective experience and is suitable for conducting
large-scale comparisons of product quality.
2. Principal Component</p>
      <p>Analysis</p>
      <p>
        Principal Component Analysis (PCA) accomplishes
the objective of eliminating correlations between
features by transforming a set of potentially correlated
variables into a set of linearly independent variables
through orthogonal transformation. This process
retains crucial features while minimizing information
loss. PCA generates two types of coefficients to achieve
these goals: 'weights' that define the transformation
from raw data to summary scores, and 'loadings' that
indicate the strength of association between the raw
variables and the low-dimensional representations [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>PCA can be represented by the following
mathematical model：
(1)
 x1 = a11F1 + a12F2 +

 x2 = a21F1 + a22F2 +


xp = ap1F1 + ap2F2 +
+ a1mFm + a11
+ a2mFm + a2 2
+ apmFm + ap p
where, x1，x2，x3， ，xp represent p primitive</p>
      <p>F1，F2，F3， ，Fm
variables, represent m factor
variables, matrix form can be expressed as：</p>
      <p>X = AF + a (2)
where, F represent common factors, A represent
a
factor loading matrix, ij represent factor loading.</p>
      <p>For determining the weights of indicators in
principal component analysis, the first step is to
b
calculate the coefficients ( ij ) of indicators in the
linear combinations of each principal component and
c
the variance contribution rate ( ij ) of each principal
component. The coefficient of each indicator in
different linear combinations of principal components
b a
( ij ) equals the ratio of the loadings ( ij ) of each

indicator to the square root of the eigenvalues ( i ) of
a
bij = ij
each component, which is i . Secondly, the
indicator weight is the weighted average of the
coefficients of indicators in the linear combinations of
principal components, with the weights being the
variance contribution rates of the principal
components. Finally, the indicator weights are
normalized.</p>
      <p>In software quality comparison, the matrix used
for PCA can be represented as:
 x11
 x
X =  21


 xp1
x2m  =  x1</p>
      <p>
xpm 
x2
xp </p>
      <p>T</p>
      <p>Where, p represents the number of software
products, and m represents the number of quality
characteristics.
3. Software Quality Comparison
based on PCA</p>
      <p>Analyzing data from some tested blockchain
platforms, performance indicators of blockchain
platform products, specifically as follows:
⚫
⚫
⚫
⚫
⚫
⚫</p>
      <p>Average response time: the average time it
takes for a transaction to be processed and
confirmed. This metric is measured by
iterating multiple times (with a 1-second
interval) and obtaining the average response
time for each iteration.</p>
      <p>Transaction processing rate: the number of
transactions that can be processed per
second. This metric measures the overall
performance of the blockchain product in
terms of transaction processing speed.</p>
      <p>Concurrent user/request count: the
maximum number of users or requests that
can be processed simultaneously. This
metric measures the scalability of the
blockchain product and its ability to handle
multiple concurrent requests.</p>
      <p>Data processing volume: the amount of data
that needs to be processed for each
transaction. This metric measures the size of
the transactions being processed and the
overall data processing capacity of the
blockchain product.</p>
      <p>CPU utilization: the percentage of CPU
resources being used by the blockchain
product. This metric measures the efficiency
of the blockchain product in utilizing the
available CPU resources.</p>
      <p>Memory utilization: the percentage of
memory resources being used by the
blockchain product. This metric measures
the efficiency of the blockchain product in
utilizing the available memory resources.</p>
      <p>And, core functional indicators as following:
⚫</p>
      <p>Supported consensus mechanisms: the
number of different consensus mechanisms
that the blockchain product supports.
⚫</p>
      <p>Supported key algorithms: the number of
different key algorithms that the blockchain
product supports.</p>
      <p>Selecting data from six blockchain platform
products, see Table 1 for details.</p>
      <p>CPU
utilization
(%)</p>
      <p>Memory
utilization
(%)
consensus
mechanisms</p>
      <p>Obtain the value of a in formula (1), which shown
in Table 4.
Constructing a 9 6 matrix as following:</p>
      <p>Performing PCA analysis in the above matrix. The
cumulative variance explanation rate of the first four
eigenvalues in table 2 exceeds 95%. Ingredients, also
known as predictors or independent variables refer to
the original variables or features in the dataset that
you want to reduce the dimensionality. Components
are the new variables that are created by PCA to
represent the original data in a lower-dimensional
space. These components are linear combinations of
the original ingredients and are ordered so that they
capture the most variance in the data.
smart
contract
development
languages
3
4
5
4
5
4
0.762
-0.335
-0.036
-0.805
0.182
-0.43
0.803
0.54
-0.021</p>
      <p>F=(0.291/0.961)×F1+(0.278/0.961)×F2+(0.222/
0.961)×F3+(0.171/0.961)×F4
score</p>
      <p>Based on the score in Table 5, product 5 is the best,
and product 2 is the worst.
4. Conclusion
Blockchain platform products, as a typical software
system with functional and performance efficiency
indicators, need to comprehensively consider the
support of the platform for algorithms, languages,
consensus mechanisms, and performance efficiency
indicators for scoring.</p>
      <p>This paper proposed a software quality
comparison method based on PCA, which extracts
principal components by analyzing the correlation
between data, reasonably allocates and evaluates
software quality through dimensionality reduction
and weighting, avoids errors caused by subjective
experience, and can effectively adapt to changes in
evaluation dimensions and the number of software
products. Achieve the goal of horizontal comparison
between products through a score.</p>
      <p>Principal
component 1
0.967
-0.616
0.648
1.05
-0.846
-1.203</p>
      <p>Principal
component 3
-0.266
1.187
0.079
-0.258
0.888
-1.63</p>
      <p>Principal
component 4
1.643
0.205
-1.415
-0.49
0.108
-0.051</p>
      <p>The principal component scores and
comprehensive scores of the six products, which
listing in TABLE 5.</p>
      <p>Firstly, calculate the product of each principal
component's linear combination coefficient and its
corresponding variance explained rate, then
accumulate these products, and finally divide the total
variance explained rate by this sum to get the
comprehensive score.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Shi</surname>
            <given-names>H</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ma</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zou F . A Fuzzy Comprehensive</surname>
          </string-name>
          <article-title>Evaluation Model for Software Dependability Based on Entropy Weight[C]</article-title>
          .
          <source>International Conference on Computer Science &amp; Software Engineering. IEEE Computer Society</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Bo</surname>
            <given-names>L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            <given-names>C</given-names>
          </string-name>
          .
          <article-title>An Improved Comprehensive Evaluation Model of Software Dependability based on Rough Set Theory[J]</article-title>
          .
          <source>Journal of Software</source>
          ,
          <year>2009</year>
          ,
          <volume>4</volume>
          (
          <issue>10</issue>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Ding</surname>
            <given-names>S</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            <given-names>S L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fu</surname>
            <given-names>C .</given-names>
          </string-name>
          <article-title>A novel evidential reasoning based method for software trustworthiness evaluation under the uncertain and unreliable environment</article-title>
          [J].
          <source>Expert Systems with Applications</source>
          ,
          <year>2012</year>
          ,
          <volume>39</volume>
          (
          <issue>3</issue>
          ):
          <fpage>2700</fpage>
          -
          <lpage>2709</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <source>[4] ISO/IEC 25010. Systems and software engineering -Systems and software Quality Requirements</source>
          and
          <string-name>
            <surname>Evaluation (SQuaRE</surname>
          </string-name>
          ) -
          <source>Principal component 2 0.213 1.286 0.576 -0.772 -1.524 0.221 System and software quality models</source>
          ,
          <source>International Standard Organization</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5] ISO/IEC 25023.
          <article-title>Systems and software engineering -Systems and software Quality Requirements and Evaluation (SQuaRE) - Measurement of system and software product quality</article-title>
          ,
          <source>International Standard Organization</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Yumeng</surname>
            <given-names>C</given-names>
          </string-name>
          , Yinglan F .
          <source>Research on PCA Data Dimension Reduction Algorithm Based on Entropy Weight Method[C]//2020 2nd International Conference on Machine Learning, Big Data and Business Intelligence (MLBDBI)</source>
          .
          <year>2020</year>
          .DOI:
          <volume>10</volume>
          .1109/MLBDBI51377.20
          <fpage>20</fpage>
          .00084.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>