<!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>
      <journal-title-group>
        <journal-title>Chatfield, C.: The Holt - Winters forecasting procedure. Appl. Statist.</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.2307/2347162</article-id>
      <title-group>
        <article-title>The Comparison of Holt - Winters and Box - Jenkins Methods for Software Failures Prediction</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vitaliy Yakovyna</string-name>
          <email>vitaliy.s.yakovyna@lpnu.ua</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oleksandr Bachkai</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Lviv Polytechnic National University</institution>
          ,
          <addr-line>Lviv 79013</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2017</year>
      </pub-date>
      <volume>27</volume>
      <issue>3</issue>
      <fpage>264</fpage>
      <lpage>279</lpage>
      <abstract>
        <p>Software reliability has proven to be a very important issue in several past decades. Software failures may result in a low-quality product, which is probably unacceptable for customer and other stakeholders. So that, additional works and budget will be required to rise the reliability to an appropriate level. This could be avoided by managing software quality throughout the whole development process. In order to manage the resources in optimal way, project coordinator might need some quantitative indicators, like predicted number of failures, which can be obtained by forecasting. In case of software failures, the most common forecasting approaches include software reliability models. Their main disadvantage is that they do not fit all different types of software, because they rely on the assumptions about software properties and behavior. This paper deals with statistical time-series forecasting techniques, which depend only on the previous values, and hence can be the ultimate solution for failure prediction of different types of software. The Holt - Winters smoothing model and ARIMA regression model were considered to predict the Angular software failures on a weekly basis. It is shown that while the performance of ARIMA model is almost twice worse than that of Holt - Winters model, the accuracy is almost an order of magnitude better.</p>
      </abstract>
      <kwd-group>
        <kwd>Software Reliability</kwd>
        <kwd>Time-Series</kwd>
        <kwd>Failures Prediction</kwd>
        <kwd>Holt - Winters Model</kwd>
        <kwd>ARIMA model</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Today the process of software development is highly imposed by certain limitations on
cost and time, as well as requirements for quality and reliability. Many organizations,
involved in software development, spend large amount of their funds on testing and
refactoring in order to prevent failures.</p>
      <p>
        The greatest problem facing the industry today is how to assess quantitatively
software reliability characteristics (see e.g. [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ] and others). Research on software
reliability engineering has been conducted during the past three decades and numerous
statistical models have been proposed for estimating software reliability. Most existing
models for predicting software reliability are based purely on the observation of
software product failures where they require a considerable amount of failure data to obtain
an accurate reliability prediction. Some other research efforts have recently developed
reliability models addressing fault coverage, testing coverage, and imperfect debugging
processes [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        The later a bug is discovered, the more expensive and difficult it is to resolve. This
is extremely valuable in case of Software as a Service or cloud software development,
which show constantly growing share of the market during the last decade. Quality
control methods such as inspection and testing aim to detect faults prior to release.
Unfortunately, code inspection and testing are costly in terms of time and manpower, so
managers seek to optimize their effectiveness. Bug prediction has been suggested as a
means to this end (see e.g. [
        <xref ref-type="bibr" rid="ref3 ref4 ref5">3–5</xref>
        ]). The growth of empirical software engineering
techniques has led to increased interest in bug prediction algorithms [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related Works Analysis</title>
      <p>Forecasting methods are commonly divided into two main groups: intuitive and
formalized (Fig. 1) [6].</p>
      <p>Forecasting
Intuitive</p>
      <p>Formal
Domain models</p>
      <p>Time series models</p>
      <p>Intuitive forecasting methods include expert judgments and estimates. Today, they are
often used in marketing, economics, politics and other domains, which behavior are
very complex or difficult to predict with mathematical models [7].</p>
      <p>Formalized methods are the methods, which use mathematical models to predict
future values. They are divided into domain models and time-series models.</p>
      <p>
        Domain models – models, based on processes, rules and mechanisms of domain. For
example, weather forecast model contains an equation of dynamics of fluids and
thermodynamics. In the context of software failures prediction the most common
approaches include software reliability models. Their main disadvantage: they do not fit
all different classes of software, because they depend on particular aspects of it [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In
order to create an adequate model of software reliability and be able to make decisions,
based on such a model, a deep understanding of the processes, methodologies and
technologies of creation and testing of software is required.
      </p>
      <p>Time-series models are mathematical models of forecasting, which seek to find the
dependence of the future value from the past value within the process itself and
calculate the prediction, based on this dependence. These models are universal for various
domains, that is, their general appearance does not change, depending on the nature of
the time series [8]. Time series models [9] can be further divided into (see Fig. 2):
 regression models;
 smoothing models;
 models based on neural networks.</p>
      <p>Time series models
Smoothing models</p>
      <p>Regression models</p>
      <p>Neural networks</p>
      <p>modesl</p>
      <p>Time-series prediction is based on different models and approaches and is widely used
for modelling various aspects of human activity [10–12]. The Holt – Winters
forecasting is one of the most used among the smoothing models. This forecasting procedure is
a variant of exponential smoothing which is simple, yet generally works well in
practice, and is practically suitable for producing short-term forecasts time-series data (see
e.g. [13, 14]). In [15] it was shown that Holt – Winters short-term model is equivalent
to particular ARIMA model, and generally do not lie within that subset of the ARIMA
class which forms the basis of the Box – Jenkins modelling approach. It is argued that
the models considered in [15] have a reasoned structure, and are to be preferred to the
Box – Jenkins models for most socio-economic applications.</p>
      <p>On the other hand, Auto-Regressive (AR) models were first introduced by in 1926
and subsequently supplemented in 1937 by Moving Average (MA) schemes [16]. Wold
[17] combined both AR and MA schemes and showed that ARMA processes can be
used to model a large class of stationary time series as long as the appropriate order of
 , the number of AR terms, and  , the number of MA terms, was appropriately
specified. The paper [16] concludes that the major problem of ARIMA models is the way of
making the series stationary in its mean that has been proposed by Box and Jenkins. In
addition, it was shown that using ARMA models to seasonally adjusted data slightly
improves post‐sample accuracies while simplifying the use of ARMA models [16].</p>
      <p>These two classes of forecasting techniques have been compared in number of
empirical studies (see e.g. [18–20]). Thus, in [18] the forecasting approach for short- and
long-term heat load forecasting on the three levels: monthly, weekly and daily
forecasting bases was presented. Based on chosen accuracy measures, Multiple regression was
recognized as the best forecasting method for daily and weekly short-term heat load
forecasting, whereas Holt–Winters methods ensured the best forecasting values in
purpose of long-term heat load forecasting and monthly short-term heat load forecasting
[18]. Paper [19] determines the forecasting accuracy of Holt – Winters and ARIMA
models for samples of telemarketing data, and concludes that ARIMA models with
intervention analysis perform better for the time series studied. Paper [20] uses intraday
electricity demand data from ten European countries as the basis of an empirical
comparison of univariate methods for prediction up to a day-ahead. The ARIMA and
principal component analysis methods performed well, but the method that consistently
performed the best was the double seasonal Holt – Winters exponential smoothing
method [20].</p>
      <p>Promising methods of software failures prediction are methods based on
nonparametric models [21, 22]. Such models do not have main drawbacks and difficulties of
analytical models because they do not make any assumption about the mechanism of
software failures. Besides smoothing and regression models, the artificial neural
networks are widely used for software failures prediction because of their proven quality
of generalization and approximation of almost any smooth functions [23]. In [24] the
study of the efficiency of software failures time-series prediction by RBF neural
networks was presented. The achieved root-mean-square error (RMSE) was as low as
1.3% [24].</p>
      <p>Thus, the performed related works analysis shows that for different domains with
the peculiar time-series features different forecasting methods could perform better.
Hence, the goal of this paper is to compare Holt – Winters and ARIMA forecasting for
software failures time-series.
3</p>
    </sec>
    <sec id="sec-3">
      <title>The Models Description</title>
      <p>A time series is a series of data points indexed in time order. Most commonly, a time
series is a sequence taken at successive equally spaced points in time [6, 10].</p>
      <p>There are many different models of time series forecasting, but all they are aimed to
investigate the following three components [25], shown in Fig. 3:
 Seasonal: patterns that repeat with a fixed period of time.
 Trend: the underlying trend of the metrics.
 Random: also call “noise”, “irregular” or “remainder”, this is the residuals of the
original time series after the seasonal and trend series are removed.
Smoothing methods are used to reduce the effect of random oscillations in time series.
They give the opportunity to receive “pure” values that consist only of deterministic
components [9].</p>
      <p>The most advanced method of this group is Holt – Winters method, which is also
called triple exponential smoothing [13–15]. Let the observed time series be denoted
by  1,  2, … ,   . A forecast of   +ℎ based on all of the data up to time  is denoted by
 ̂ +ℎ| . The model then is described by the forecast equation (1), which includes the
level (2), trend (3), and seasonal (4) components.</p>
      <p>̂ +ℎ| =   +   ℎ +   − +ℎ+ ,
  =  (  −   − ) + (1 −  )(  −1 +   −1),</p>
      <p>=  (  −   −1) + (1 −  )  −1.
  =  (  −   −1 −   −1) + (1 −  )  − .
(1)
(2)
(3)
(4)
Here  is the length of seasonality,   represents the level of the series,   denotes the
growth,   is the seasonal component,  ̂ +ℎ| is the forecast for ℎ periods ahead, and
ℎ+ = [(ℎ − 1)mod  ] + 1.
3.2</p>
      <p>ARIMA model
The acronym ARIMA stands for Auto-Regressive Integrated Moving Average. Lags of
the stationarized series in the forecasting equation are called “autoregressive” terms,
lags of the forecast errors are called “moving average” terms, and a time series, which
needs to be differenced to be made stationary, is said to be an “integrated” version of a
stationary series. Random-walk and random-trend models, autoregressive models, and
exponential smoothing models are all special cases of ARIMA models [8, 16].</p>
      <p>A non-seasonal ARIMA model is classified as an  ( ,  ,  ) model, where:
  is the number of autoregressive terms,
  is the number of non-seasonal differences needed for stationarity, and
  is the number of lagged forecast errors in the prediction equation.
To fit parameters a methodology was invented by Box and Jenkins [8]. It consists of
three steps.
1. Model Identification. Use plots and summary statistics to identify trends,
seasonality, and auto-regression elements to get an idea of the amount of differencing and
the size of the lag that will be required.
2. Parameter Estimation. Use a fitting procedure to find the coefficients of the
regression model.
3. Model Checking. Use plots and statistical tests of the residual errors to determine
the amount and type of temporal structure not captured by the model.
The main approaches to fitting Box–Jenkins models are nonlinear least squares and
maximum likelihood estimation. Maximum likelihood estimation is generally the
preferred technique.</p>
      <p>There is also a seasonal version of ARIMA It incorporates both non-seasonal and
seasonal factors in a multiplicative model. One shorthand notation for the model is
 ( ,  ,  ) × ( ,  ,  ) , with  – non-seasonal AR order,  – non-seasonal
differencing,  – non-seasonal MA order,  – seasonal AR order,  – seasonal
differencing,  – seasonal MA order, and  – time span of repeating seasonal pattern [8, 16].
4</p>
    </sec>
    <sec id="sec-4">
      <title>Experimental</title>
      <p>To carry out the research a desktop software application was developed, using Visual
Studio and C#. Non-seasonal Holt-Winters and ARIMA models were implemented as
separate modules (for reusability purposes). Besides, the module to calculate accuracy
and performance of prediction method was implemented as well.</p>
      <p>To receive a realistic estimation of forecasting methods, the failures data from real
software project were used. They input data were obtained from the GitHub
bug-tracking system. This study deals with the Angular project failure dates: 8 494 failures from
October 2014 to January 2016 were fetched from GitHub, then compiled into 120 time
series as number of failures per week.</p>
      <p>Then, the initial 90% of time-series were selected as previous values, while the last
10% were used to compare the predicted and actual software failures values.</p>
      <p>To estimate the prediction efficiency the RMSE was used as an accuracy measure,
while execution time was used as a performance measure.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Results and Discussion</title>
      <p>The studied Angular failures time-series is plotted in Fig. 4. As it can be seen from the
Fig. 4, there is clear seasonal component in this time-series. Using smoothing and
regression techniques as well as neural networks for such irregular data with seasonal
component is not very effective and result in large approximation and prediction errors.
However, there are several methods of increasing forecast accuracy. As mentioned in
[9], if time series are compiled in a manner of cumulative sums (i.e. each time interval
has sum of all previous values), a trend will be easier to estimate, and accuracy of
forecast might be better. This is confirmed also by the conclusions of the paper [24]. Hence,
the time-series were formed in a cumulative manner and models were used to predict
software failures.</p>
      <p>An example of the cumulative time series along with predicted using ARIMA model
and actual data are shown in Fig. 5. As it can be easily seen, the time-series became
smoother and the predicted software failures values are very close to the actual ones.</p>
      <p>It should be noted, that non-seasonal versions of both models were implemented.
Seasonal versions of models with non-cumulative time series should also give a better
accuracy, since it is obvious from chart, that there is a seasonality in series. However,
the efficiency of the seasonal versions of the models will be studied at the future work.
Typical results of the prediction efficiency of Angular software failures using Holt –
Winters and ARIMA models are listed in Table 1. While the performance of ARIMA
model is almost twice worse than that of Holt – Winters model, the accuracy is almost
an order of magnitude better. This could be explained by the range of the input data:
the observed failures period is more than two years, while Holt – Winters model is best
suited for short-range forecasting [18, 19].</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and Future Work</title>
      <p>Research on software reliability engineering has been conducted during the past three
decades and numerous statistical models have been proposed for estimating software
reliability. The growth of empirical software engineering techniques has led to
increased interest in software failures prediction. The prediction of software failures is of
large practical importance, because it provides project coordinators with some
estimations, which they can use to manage and maintain software quality. Common ways of
software failures prediction include usage of reliability models, which have a flaw –
they cannot be fitted to all types of software. Time-series prediction methods, which
are popular in economics domain, can solve this issue because they are do not rely on
domain-specific processes and properties.</p>
      <p>After analyzing different time series models two of them were selected as the most
advanced ones: Holt – Winters smoothing model and ARIMA regression model. The
software application was developed to study the efficiency of non-seasonal versions of
these models for software failures forecasting. The case study was based on the Angular
failures data obtained from the GitHub bug-tracking system, and included failures data
for more two years period. The time-series were presented as the cumulative number
of failures detected at all time intervals till the current one. To evaluate the efficiency
of prediction two parameters were used: the RMSE as an accuracy measure, and the
execution time as a performance measure.</p>
      <p>The obtained results show that Holt – Winters model has better performance, while
the ARIMA model was substantially better in sense of the prediction accuracy.</p>
      <p>The future work will be devoted to studying the efficiency of the seasonal versions
of the models, because the studied time-series have explicitly visible seasonality.
Another study will be devoted to the influence of the forecasting interval on the efficiency
of software failures prediction as well as studying different types of software both on
long- and short-range intervals.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Pham</surname>
          </string-name>
          , H.:
          <source>System Software Reliability</source>
          . Springer series in reliability engineering, SpringerVerlag London Limited (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Trivedi</surname>
            ,
            <given-names>K. S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bobbio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Muppala</surname>
            ,
            <given-names>J. K.</given-names>
          </string-name>
          :
          <article-title>Greenbook: Reliability and Availability Engineering: Modeling, Analysis and Applications</article-title>
          . Cambridge University Press (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Rahman</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Posnett</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hindle</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barr</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devanbu</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>BugCache for Inspections: Hit or Miss?</article-title>
          <source>In: Proc. of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering</source>
          , pp.
          <fpage>322</fpage>
          -
          <lpage>331</lpage>
          , ACM, Szeged, Hungary (
          <year>2011</year>
          ).
          <source>DOI: 10.1145/2025113</source>
          .2025157
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Lewis</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lin</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sadowski</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhu</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ou</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <source>Whitehead</source>
          Jr., E. J.:
          <article-title>Does Bug Prediction Support Human Developers? Findings from a Google Case Study</article-title>
          .
          <source>In: Proc. of the Int. Conf. on Software Engineering ICSE'13</source>
          , pp.
          <fpage>372</fpage>
          -
          <lpage>381</lpage>
          , IEEE, San Francisco, CA, USA (
          <year>2013</year>
          ). DOI:
          <volume>10</volume>
          .1109/ICSE.
          <year>2013</year>
          .6606583
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Sunghun</given-names>
            <surname>Kim</surname>
          </string-name>
          :
          <article-title>Adaptive bug prediction by analyzing project history</article-title>
          .
          <source>PhD thesis</source>
          , Univ. of California, Santa Cruz, (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>