<!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>Why Do We Need To Compare Research Software, And How Should We Do It?</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Neil P. Chue Hong Software Sustainability Institute University of Edinburgh JCMB</institution>
          ,
          <addr-line>Peter Guthrie Tait Road Edinburgh, EH9 3FD</addr-line>
          ,
          <country country="UK">United Kingdom</country>
          <addr-line>ORCID: 0000-0002-8876-7606</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>- How can we measure research software? Is it possible to compare it, given the myriad different research domains, practices and pieces of software? Do we even need to do this, and what benefits might it bring? This position paper sets out the reasons for why different stakeholders, from users to developers to funders, might wish to undertake this difficult task, and describes a proposed framework for doing so (based around measures of accessibility, usability, maintainability and portability) which takes into account the possibility of variation between different communities about how they prioritise different aspects of research software.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Index Terms — software, research software, software metrics,
software engineering, software sustainability.</p>
      <p>I. BACKGROUND</p>
      <p>Software underpins much of the scientific research
undertaken today. As well as the “traditional” use of software for
modelling and simulation, it is used to manage and control
instruments, and analyse and visualise data. A challenge for
users, funders, and developers of scientific software is how to
determine how “good” a piece of software is – in large part
because they have differing notions of what “good” means.
This has implications for the software’s usability and
reusability, as well as its impact and return on investment.</p>
      <p>
        An incredible amount of investment of effort and money is
put into scientific software. In the UK, the Engineering and
Physical Sciences Research Council (EPSRC) estimated that it
had invested approximately £9m per annum on scientific
software [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Studies done by the Software Sustainability Institute
suggest that a total of £840m was invested in RCUK research
grants that rely on software to undertake the proposed research
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. It is clear that something is required to make it easier to
understand which software should be promoted, which
software reused, and which software retired. The question is what
this should be.
      </p>
      <p>
        In the UK, the e-Infrastructure Leadership Council1 created
a Software Taskforce to identify issues related to scientific
software, and make recommendation for how the impact of
scientific software could be improved. As part of this, the
conThis work is licensed under a CC-BY-4.0 license.
1 https://www.gov.uk/government/groups/e-infrastructure-leadership-council
cept of a Software Accreditation Framework was discussed.
This initial concept was similar to the “traffic light” labelling
scheme for nutritional information applied in the UK [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], where
information on each of a defined set of categories are displayed
on packaging based on both standardised and serving based
sizes, highlighting levels using red/amber/green colouring to
give guidance to consumers.
      </p>
      <p>One of the benefits of such a system is that it gives a small
set of quantitative indicators for a consumer to look at, and the
colouring can be used in different ways depending on the type
of product. For instance, whilst a cake and a salad will have
very different measurements for fat, it is not the case that a
high (red) fat level is bad for both. Many people would choose
a cake with a high fat level because they prioritised other
factors associated with fat (e.g. as a proxy for taste).</p>
      <p>Similarly for research software, there are differing priorities
which might factor into a users choice. Rapid releases might be
welcomed as a sign of continued development and support by
some users, whereas for others it is an indication that the
software changes too fast to be integrated into a larger stable
system. Likewise some users may prioritise extensibility (e.g. to
use a different chemical structure model) whilst others may
prioritise performance – it would be impossible to come up
with a single metric that satisfied both, hence the need for a
software assessment framework that could be used to provide
ways for different stakeholders to make informed and
appropriate decisions, based on their own requirements.</p>
      <p>The benefits of assessing software in this way might
include:
•</p>
      <p>Providing measures understandable to an end-user
which are reasonable proxies for software quality
Facilitating discovery and choice of software by other
researchers and small and medium-sized enterprises
(SMEs)
Improving software reuse and commercialisation
Increasing recognition for developers
Increasing recognition for good software development
practice
Creating a basis for a marketplace for research
software
•
•
•
•
•</p>
      <p>To ensure adoption and impact, it is important that the use
of this framework is both bottom-up (encouraging code owners
to be proactive in getting their codes accredited); easy-to-use
(with objective measures); simple (to avoid confusion); enable
community norms (be understanding of the relative priorities of
different communities); and minimise game playing.</p>
      <p>This means that wherever possible, a framework should
concentrate on objective measures, which can be used to guide
subjective indicators.</p>
      <p>II. RELATED WORK</p>
      <p>Many aspects of what one might choose to measure about
software have been investigated separately.</p>
      <p>
        Models have been proposed to define such elements as cost
models for software reuse [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ][
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], maturity models [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ][
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], and
component reusability [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ][
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] across software in general. This
author’s own Five Stars of Research Software [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] posited a set
of categories which “good” scientific software could be
assessed on, but did not fully define how each category could be
objectively measured.
      </p>
      <p>
        The software engineering community has developed a large
body of knowledge regarding software quality and the
measurement of software [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ][
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and more recently looking at the
various aspects of sustainability beyond natural/environmental
(green) sustainability [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. However much of this knowledge is
not widely disseminated within the research software
community, either because it is not openly licensed, or it is perceived
to only be relevant to large commercial software projects with
large resources.
      </p>
      <p>
        Certain aspects of the software source code can be defined
and automatically measured, for instance McCabe’s
(cyclomatic) complexity, code metrics (including source lines of code
(SLOC), number of comment lines), and Halstead’s complexity
metrics (based on numbers of operators and operands) all of
which look at measures of size and complexity which may
make a program harder to understand, more difficult to
maintain, and increase the likelihood of errors. Visual Studio, a
common development tool, calculates its own Maintainability
Index [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] that represents the relative ease of maintaining the
code based on a combination of these measures and this has
been implemented in other tools for popular languages like
Python (Radon) and JavaScript (JSComplexity). However a
significant issue with these types of metrics is that they are
based on work from the 1990s using data from very different
types of programming languages and software from modern
systems, which means they may not have relevance for
contemporary codes [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        Other work focuses specifically on research software.
Depsy2 is a tool which mines papers to find fulltext mentions of
software (currently only those written in Python and R) and
analyses GitHub repositories to see where software is being
used, thus giving a measure of the impact of a piece of research
software or library. Ontosoft [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] defines an ontology for
software which categorises many of the aspects that intuitively are
part of understanding its quality. The Software Discovery
      </p>
    </sec>
    <sec id="sec-2">
      <title>2 Depsy: http://depsy.org/</title>
      <p>Dashboard3 aims to search multiple code hosting services, such
as Zenodo, Figshare, and GitHub, for scientific software and
undertake analysis of it, utilising the Codemeta4 metadata
standards for describing scientific software and building on
previous work by Mozilla Science Lab, Github and Figshare on
Code as a Research Object5.</p>
      <p>Another set of work looks at certifying the process of
production. For instance, the Data Archiving and Networked
Services (DANS) Data Seal of Approval6 enables self-certification
and peer review of data repositories to ensure they are storing
research data in a reliable manner such that the data can be
accessed and reused, and are seeking to create a Software Seal
of Approval, focussed on software projects. The Open Data
Institute’s Open Data Certificates7 uses a similar
questionnairestyle assessment to recognise open data that has been published
in a sustainable and reusable way. The Software Sustainability
Institute’s online sustainability evaluation tool8 enables
developers to self-evaluate the reusability and maintainability of
their research software.</p>
      <p>
        Finally, there is a body of work looking at the indicators of
success for open source projects, which in some ways are
similar to research software projects due to the nature of the teams,
but differ because of their differing goals. Research has
examined projects in major public repositories to identify potential
indicators [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ][
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and categorise different levels of success in
initiating and growing projects [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ][
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. The identification of
time-invariant vs time-variant variables and the application of
machine learning techniques has been used to identify potential
indicators for open source project success [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>III. DEFINING A FRAMEWORK</title>
      <p>As mentioned above, the success of nutritional information
comparison has relied on defining a relatively small number of
“headline measures”. For research software, we wish to define
a similar small set of measures which enable the key
characteristics of:
•</p>
      <p>Availability: ability for the software to be found and
obtained by a potential user
• Usability: ability for the software to be used,
integrated and extended by a potential user
• Maintainability: ability for the software to be
sustained by developers
• Portability: ability for the software to be used in areas
outside its original user base, for instance subject area,
operating system, hardware architecture or different
type of user.</p>
      <p>These terms are used more loosely than the definitions
commonly used in software engineering, to reflect the differing
perceptions of software by typical research users.
3 Software Discovery Dashboard:
https://github.com/mozillascience/softwarediscovery-dashboard
4 CodeMeta: https://github.com/codemeta/codemeta
5 Code as a Research Object: https://science.mozilla.org/projects/codemeta
6 Data Seal of Approval: http://www.datasealofapproval.org/en/
7 Open Data Certificates: https://certificates.theodi.org/
8 Online sustainability evaluation:
http://www.software.ac.uk/onlinesustainability-evaluation</p>
      <p>In defining these characteristics, the author has drawn on
their experience, and that of their colleagues in working in over
100 research software projects of different sizes and in
different domains. This paper documents a synthesis of previous
ideas, aiming to narrow it down to a useful subset of all
potential measures of research software in an attempt to create a set
which can be used for further study and checking, by assessing
existing software in a follow-up study.</p>
      <sec id="sec-3-1">
        <title>A. Availablity</title>
        <p>There are two key parts to availability: can a user find the
software (discovery), and can they obtain the software
(access)?</p>
        <p>The important metadata associated with this category
include:
•</p>
        <p>Discovery and Choice
o Software Name: as this is often used as a</p>
        <p>search term
o Software Description: which can be matched</p>
        <p>in searches and read by users
o Categories: such as operating system
support, type of software
Keywords: again used for search terms</p>
        <p>Features
o
o
Access</p>
        <p>o
•
•</p>
        <p>Website: as this is often where scientific
software is distributed
o Repository: for source code and possibly
bi</p>
        <p>nary distribution
o License: governing the terms of use and
re</p>
        <p>use
The proposed measures for this category are:
• Is the software easy to find, if a user attempted to
search for it based on name or keywords?
• Can the software be downloaded from the website or
repository addresses provided?
• Is the license obvious, and is it commercial, copyleft,
permissive, academic, or public domain?
• Is the software widely used by other members the
users’ community? Does it have a high market share of
the potential market (which may be small for niche
products)?</p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Usability</title>
        <p>This category takes into account the ability of a user or
developer to obtain information that enables them to understand
the operation of the software, such that they can use it,
integrate it with other software, and extend or modify it.</p>
        <p>The important metadata associated with this category
include:
•</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Execution</title>
      <p>o Documentation / Installation Instructions
o Operating System
o Dependencies
o Development Status
o Performance benchmarks
Integration
o Input data formats
o Output data formats
o Programming Language
• Extension
o API documentation
o Contribution Policy
The proposed measures for this category are:
• What is the Development Status of the software?
• What is the quality of the user documentation? Is a
readme file included which demonstrates the basic
usage of the software?
• Is test data made available?
• Is the software benchmarked against alternatives? Is it
faster or slower?
• What is the quality of the developer documentation?</p>
      <p>Does the software provide API-level documentation?
There is an open question about whether a measure for ease
of use should include something about whether cloud /
oneclick / containerised / bundled versions of a piece of software
exist.</p>
      <sec id="sec-4-1">
        <title>C. Maintainability</title>
        <p>This category assesses the likelihood that the software can
be maintained and developed over a period of time by
measuring the effort associated of the project, the code quality.</p>
        <p>The important metadata associated with this category
include:
•</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Effort</title>
      <p>o</p>
      <p>Vitality: What is the average time between
release cycles?
o Activity: number of commits. discussions
o Number of Contributors: including the trend
(rising/stable/falling)
o Number of Key Contributors: including bus
factor9 on each part of the software
o Average time to fix bugs
• Code Quality
o Code complexity
o Unit test coverage
o System tests
The proposed measures for this category are:
• What is the average time between major releases?
• Is the contributor community growing, staying stable
or falling?
• What is the test coverage?</p>
      <sec id="sec-5-1">
        <title>D. Portability</title>
        <p>This category assesses the ability of the software to be used
in a different area, particularly a different area of research, or to
be commercialised.</p>
        <p>Because this category is of higher perceived importance to
research software than other types of software, there is less in
the existing literature looking at potential measures and
indicators of success.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>9 Bus Factor: https://en.wikipedia.org/wiki/Bus_factor</title>
      <p>Intuitively, it would appear that measures for this category
would be split between those giving an indication of whether
the functionality of the software is useful to other areas / types
of users, and those giving an indication of how easy it is for the
software to be adapted and integrated. Therefore it is likely that
this category is actually a superset of other indicators, and
future work is necessary to identify if a combination of other
measures can be used to predict the portability of a piece of
software outside of the more common definitions of portability
with respect to operating system or hardware architecture.</p>
      <p>IV. DISCUSSION</p>
      <p>The previous section has set out a range of proposed
measures which this author has identified as being of potential
importance in enabling different stakeholders to assess research
software. An emphasis has been placed on choosing measures
where it can easily be identified if the software does not
provide measurable information at all (i.e. no license, no
documentation provided) as well as being relatively easy to measure
where it does. As noted at the start, the aim is to make this
something that developers of software will be happy to submit
their software to for assessment, without fear of inappropriate
comparison.</p>
      <p>One way of addressing this is by designing the framework
in such a way that it allows different communities to decide
which indicators to use that best represent their requirements
for comparing software. This also encourages more
“bottomup” adoption of the practice.</p>
      <p>On the other hand, adoption could be driven by funders
asking applicants to ensure that they have either chosen the
software they propose to use based on some set of agreed measures
(for instance license) or for software development projects
asking them to reach a particular target measure before a second
stage of funding will be released.</p>
      <p>A challenge is that it is not obvious which of these
measures can actually be used to provide an indication of
software quality and longevity. This is because the “success” of a
research software project is somewhat subjective: a piece of
software which is no longer maintained may still be the main
software used by a small niche of a research community to
publish world-leading research.</p>
      <p>Nevertheless, the only sensible approach is to attempt to
categorise and assess current research software projects, in
consultation with the community, to determine the correct
categories that would help benchmark best practice in scientific
software. This is being taken forward by a pilot study
combined with development of tooling to help with the assessment
by the Software Sustainability Institute in the second half of
2016.</p>
      <p>A final question relates to the frequency of assessment.
What are the right times to perform an assessment? In general,
assessment would take place at least at the release of every
major version of a piece of software. For some measures (for
instance test coverage), which can be automatically generated,
they can be incorporated into continuous integration systems.
For research software, there are some points which may also
have significance: the submission of a research paper; when
applying for new funding; when reproducing an existing study
or method.</p>
      <p>Comments on and contributions towards the measures
proposed in this paper are welcomed by the author.</p>
    </sec>
    <sec id="sec-7">
      <title>ACKNOWLEDGMENT</title>
      <p>The Software Sustainability Institute is supported by the
EPSRC, ESRC and BBSRC through grant EP/N006410/1.
This paper is based on input from many members of the
Software Sustainability Institute team, Fellows, and
collaborators including the participants of the CodeMeta
workshop10, Catherine Jones, and Patrick Aerts and Peter
Doorn.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>EPSRC.</surname>
          </string-name>
          <year>2012</year>
          .
          <article-title>Software as an Infrastructure</article-title>
          .
          <source>Accessed on 8th July</source>
          <year>2016</year>
          from: http://www.epsrc.ac.uk/newsevents/pubs/software-asan-infrastructure/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Hettrick</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <year>2014</year>
          .
          <article-title>£840 million: the UK's investment in software-reliant research in 2013. Accessed on 8th July f2016 from</article-title>
          : http://www.software.ac.uk/blog/2014-10-22-840
          <article-title>-millionuks-investment-software-reliant-research-2013</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3] UK Department of Health.
          <year>2013</year>
          .
          <article-title>Guide to creating a front of pack (FoP) nutrition label for pre-packed products sold through retail outlets</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Holibaugh</surname>
            ,
            <given-names>R</given-names>
          </string-name>
          et al.
          <year>1989</year>
          .
          <article-title>Reuse: where to begin and why</article-title>
          .
          <source>Proceedings of the conference on Tri-Ada '89:</source>
          <article-title>Ada technology in context: application, development, and deployment</article-title>
          . p266-
          <fpage>277</fpage>
          . DOI:
          <volume>10</volume>
          .1145/74261.74280.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Frazier</surname>
            ,
            <given-names>T.P.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Bailey</surname>
            ,
            <given-names>J.W.</given-names>
          </string-name>
          <year>1996</year>
          .
          <article-title>The Costs and Benefits of Domain-Oriented Software Reuse: Evidence from the STARS Demonstration Projects</article-title>
          .
          <source>Accessed on 21st July</source>
          <year>2014</year>
          from: http://www.dtic.mil/dtic/tr/fulltext/u2/a312063.pdf
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>CMMI</given-names>
            <surname>Product Team</surname>
          </string-name>
          ,
          <year>2006</year>
          .
          <article-title>CMMI for Development, Version 1.2</article-title>
          . SEI Identifier: CMU/SEI-2006
          <string-name>
            <surname>-</surname>
          </string-name>
          TR-
          <volume>008</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Gardler</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <year>2013</year>
          .
          <article-title>Software Sustainability Maturity Model</article-title>
          .
          <source>Accessed on 21st July</source>
          <year>2014</year>
          from: http://osswatch.ac.uk/resources/ssmm
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>NASA</given-names>
            <surname>Earth Science Data Systems Software Reuse Working Group</surname>
          </string-name>
          (
          <year>2010</year>
          ).
          <article-title>Reuse Readiness Levels (RRLs)</article-title>
          ,
          <source>Version 1.0. April 30</source>
          ,
          <year>2010</year>
          . Accessed from: http://www.esdswg.org/softwarereuse/Resources/rrls/
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Marshall</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Downs</surname>
            ,
            <given-names>R.R.</given-names>
          </string-name>
          <year>2008</year>
          .
          <article-title>Reuse Readiness Levels as a Measure of Software Reusability</article-title>
          .
          <source>In proceedings of Geoscience and Remote Sensing Symposium</source>
          . Volume
          <volume>3</volume>
          .
          <fpage>P1414</fpage>
          -
          <lpage>1417</lpage>
          . DOI:
          <volume>10</volume>
          .1109/IGARSS.
          <year>2008</year>
          .4779626
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Chue</given-names>
            <surname>Hong</surname>
          </string-name>
          ,
          <string-name>
            <surname>N.</surname>
          </string-name>
          <year>2013</year>
          .
          <article-title>Five stars of research software</article-title>
          .
          <source>Accessed on 8th July</source>
          <year>2016</year>
          from: http://www.software.ac.uk/blog/2013-04-09
          <string-name>
            <surname>-</surname>
          </string-name>
          five-stars-research-software
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Bourque</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Fairley</surname>
          </string-name>
          , R.E. eds., (
          <year>2014</year>
          )
          <article-title>Guide to the Software Engineering Body of Knowledge, Version 3</article-title>
          .0, IEEE Computer Society http://www.swebok.org
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12] ISO/IEC 25010:
          <year>2011</year>
          <article-title>(en) (2011) Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models 10 CodeMeta Participants</article-title>
          : http://codemeta.github.io/
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Penzenstadler</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Femmer</surname>
            <given-names>H.</given-names>
          </string-name>
          (
          <year>2013</year>
          )
          <article-title>A Generic Model for Sustainability with Process and Product-specific Instances</article-title>
          .
          <source>In First Intl. Workshop on Green In Software Engineering and Green By Software Engineering.</source>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Microsoft</given-names>
            <surname>Code Analysis Team Blog</surname>
          </string-name>
          .
          <year>2007</year>
          .
          <article-title>Maintainability Index Range and Meaning</article-title>
          .
          <source>Accessed on 8th July</source>
          <year>2016</year>
          from: https://blogs.msdn.microsoft.com/codeanalysis/2007/11/20/maintainabili ty-index
          <article-title>-range-and-meaning/</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Sjoberg</surname>
            ,
            <given-names>D.I.K</given-names>
          </string-name>
          et. al.
          <year>2012</year>
          .
          <article-title>Questioning Software Maintenance Metrics: A Comparative Case Study</article-title>
          .
          <source>In proceedings of ESEM'12. P107-110. DOI: 10.1145/2372251</source>
          .2372269
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Ratnakar</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Gil</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <year>2015</year>
          . Ontosoft.
          <source>Accessed on 8th July</source>
          <year>2016</year>
          from http://ontosoft.org/ontology/software/
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Crowston</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          et Al,
          <year>2006</year>
          .
          <article-title>Information systems success in free and open source software development: Theory and measures</article-title>
          ,
          <source>Software Process Improvement and Practice</source>
          , vol.
          <volume>11</volume>
          , pp.
          <fpage>123</fpage>
          -
          <lpage>148</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Subramaniam</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          et al.
          <year>2009</year>
          .
          <article-title>Determinants of open source software project success: A longitudinal study</article-title>
          .
          <source>Decision Support Systems</source>
          , vol.
          <volume>46</volume>
          , pp.
          <fpage>576</fpage>
          -
          <lpage>585</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>English</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Schweik</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <year>2007</year>
          .
          <article-title>Identifying success and abandonment of FLOSS commons: A classification of Sourceforge. net projects, Upgrade: The European Journal for the Informatics Professional VIII</article-title>
          , vol.
          <volume>6</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Wiggins</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Crowston</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <year>2010</year>
          .
          <article-title>Reclassifying success and tragedy in FLOSS projects</article-title>
          .
          <source>Open Source Software: New Horizons</source>
          , pp.
          <fpage>294</fpage>
          -
          <lpage>307</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Piggott</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Amrit</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <year>2013</year>
          .
          <article-title>How Healthy Is My Project? Open Source Project Attributes as Indicators of Success</article-title>
          .
          <source>In Proceedings of the 9th International Conference on Open Source Systems. DOI: 10</source>
          .1007/978-3-
          <fpage>642</fpage>
          -38928-
          <issue>3</issue>
          _
          <fpage>3</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>