<!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>Sustainability and Quality: icing on the cake</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Coral Calero</string-name>
          <email>Coral.Calero@uclm.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Instituto de Tecnologías y Sistemas de la Información University of Castilla-La Mancha Ciudad Real</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Instituto de Tecnologías y Sistemas de la Información University of Castilla-La Mancha Ciudad Real</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Ma Ángeles Moraga</institution>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Manuel F. Bertoa Departamento de Lenguajes y Ciencias de la Computación University of Malaga Malaga</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>- In the literature several definitions of sustainability and software sustainability can be found. However, we think none of them can be applied to the software development context. For that reason, in this poster we cook some existing definitions and we will propose a new one specific for the software development. From this definition we try to create a new recipe, discovering how to combine sustainability and quality. As a result several questions arise. From the result of answering these questions, next steps on our research will be defined. Index Terms-Sustainability, Software Sustainability, Software Quality, Non-Functional Quality Requirements.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>I. WHAT IS SUSTAINABILITY SOFTWARE?</p>
      <p>The most cited definition of sustainable development is
defined in [1] as “meets  the  needs  of  the  present  without 
compromising the ability of future generations to satisfy their
own  needs.”  According to [1], sustainable development needs
to satisfy the requirements of the three dimensions of society,
economy, and environment. A fourth dimension, human
sustainability, is less present in the public discussion.</p>
      <p>
        Naumann el al. in [
        <xref ref-type="bibr" rid="ref1">2</xref>
        ] define Green and Sustainable
Software as software, whose direct and indirect negative
impacts on economy, society, human beings, and environment
that result from development, deployment, and usage of the
software are minimal and/or which has a positive effect on
sustainable development. Fundamentally, a software product
has a direct impact related to resources and energy
consumption during its production and use. Indirect impacts are
(1) effects from the software product usage together with other
processes and (2) long term systemic effects.
      </p>
      <p>However, we have not found definitions on what is
software development sustainability. As we think it is
fundamental for our work, we will try to create a new
definition.</p>
      <p>And the first we need in order to do this is to think about
how a software product can affect the sustainability.</p>
      <p>Software products mainly affect the environment through
resource consumption that occurs during its use and
production. The most direct (and obvious) impact by a software
product is energy consumption, but other resources may also
have a negative impact on the sustainability of the software. In
this sense, the use of the processor, increased needs of memory
and disk storage, network utilization and bandwidth, potential
relocation of software production and use, among others, are
elements to take into account.</p>
      <p>If we mix up these two ingredients (sustainability and
resource consumption) and using as basis the UN report [1], we
can define sustainable software development as follows:</p>
      <p>Sustainable software development refers to a mode of
software development in which resource use aims to meet
product software needs while ensuring the sustainability of
natural systems and the environment.</p>
      <p>II. WHICH ARE THE RESOURCES TO OPTIMIZE (TO TAKE INTO</p>
      <p>ACCOUNT) IN SOFTWARE DEVELOPMENT</p>
      <p>Once we have the definition of sustainable software
development, based on the proper usage of resources, we need
to be clear which are these resources. In this way, we could
take them into account during the development of a software
product, improving their use, in order to increase the
sustainability of the final product.</p>
      <p>
        Recent systematic literature reviews [
        <xref ref-type="bibr" rid="ref2 ref3">3, 4</xref>
        ] have detected
that most of the measures found in the literature related to
software sustainability measurement, were defined to measure
energy consumption, either directly or as a performance
indicator.
      </p>
      <p>
        Agarwal et al in [
        <xref ref-type="bibr" rid="ref4">5</xref>
        ] state that software performance
depends on the basic computing resources like the CPU and the
memory. Software demands for faster CPUs and increased
memory, that derives in a mandatory computer upgrading. In
this situation the biggest sufferer is the earth’s sustainability, as 
manufacturing and disposal equally contribute to the carbon
footprint. Moreover, we need to evaluate the software products
sustainability in terms of memory requirements and processor
time. Other resources that appear in literature are network
bandwidth and wireless technology because they influence the
ecological footprint of a software product.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref5">6</xref>
        ] authors analyze the variation of the power
consumption in different versions of a software product. As a
result, authors were not able to relate power consumption with
size metrics. They also arrived to the conclusion that power use
was  not  just  the  CPU’s  fault:  disk  and  m emory usage also
matter.
      </p>
      <p>A few studies evaluated the use of other types of resources
that appear as a result of software product utilization: paper
wastage, ink and toner costs, etc.</p>
      <p>Copyright © 2013 for the individual papers by the papers' authors. Copying permitted only for private and academic
purposes. This volume is published and copyrighted by its editors.</p>
      <p>An open question is whether a software product can directly
produce CO2 emissions or another kind of pollution.</p>
      <p>As we can see all the proposals focus on the resource
utilization. So, it is clear that on the software development
these resources must be taken into account and must be
optimized in order to achieve a sustainable product.</p>
      <p>From this reflection, we can also define the sustainability of
a software product as the capacity of developing a software
product in a sustainable manner.</p>
    </sec>
    <sec id="sec-2">
      <title>III. NON-FUNCTIONAL QUALITY REQUIREMENTS</title>
      <p>Once software sustainability has been defined and the
software resources to be taken into account from the
sustainability perspective have been identified, the next step is
to study how to address software sustainability (we use
"software sustainability" with the meaning of "software product
sustainability").</p>
      <p>
        When a software product is developed it is necessary to
specify the requirements that the product should satisfy.
Software requirements can be classified into functional and
non-functional requirements. The former should define the
fundamental actions that must take place in the software in
accepting and processing the inputs and in processing and
generating the outputs [
        <xref ref-type="bibr" rid="ref6">7</xref>
        ]. Therefore, the functional
requirements are relatedt o the“ What” of a software product.
      </p>
      <p>
        Non-functional requirements can be seen as requirements
that constrain or set some quality attributes upon functionalities
[
        <xref ref-type="bibr" rid="ref7">8</xref>
        ]. This means that non-functional quality requirements can be
seena s the “How” of a software product.
      </p>
      <p>Taking into account the software sustainability definition it
is obvious that sustainability is a way to improve a software
product, and then it must be related to the how and not to the
what. So, based on the definitions of functional and
nonfunctional requirements we believe that software sustainability
is related to non-functional requirements.</p>
      <p>And now? We are sure that sustainability, similarly to
quality, is related to non-functional requirements but, how do
we combine both? This is the question we will try to answer
next.</p>
      <p>IV. ISO/IEC 25000</p>
      <p>
        ISO/IEC 25000 is a series of standards specific for System
and software product Quality Requirements and Evaluation,
namely SQuaRE [
        <xref ref-type="bibr" rid="ref8">9</xref>
        ]. In the ISO/IEC 25010 division, three
quality models are defined [
        <xref ref-type="bibr" rid="ref9">10</xref>
        ]. In fig. 1 the targets of the
quality models and the related entities are shown.
      </p>
      <p>From this figure we can observe that product quality is
reflected on the Product quality model which is related to the
target software.</p>
      <p>The product quality model is composed of eight
characteristics each one subdivided into several
subcharacteristics (see fig. 2).</p>
      <p>Non-functional requirements reflect the quality necessities
or desires for a software product. As sustainability is related to
non-functional requirements, we think that sustainability must
also be related (in some manner) to this product quality model.</p>
    </sec>
    <sec id="sec-3">
      <title>V. OPEN QUESTIONS</title>
      <p>A final conclusion about the question we are trying to
answer about how to mix quality and sustainability, is that
there are four possible ways to mix both. Unfortunately, these
possibilities derive on new open questions that we need to
discuss in order to decide which one is the good one:</p>
      <p>Q1. Should be software sustainability considered as a new
concept (at the same level of the software quality)
having its own characteristics and subcharacteristics
even sharing some of them with quality?
Q2. Should be software sustainability included as a new
characteristic into the software quality model proposed
by SQuaRE-25010?
Q3. Is the “performance efficiency” characteristic the same 
as the software product sustainability?
Q4. Is sustainability a way to achieve the quality, this
means, can we have a sustainable quality and a
nonsustainable quality?</p>
      <p>The first option, considers the sustainability as an
independent concept of quality. This means that sustainability
must be considered, from all the perspectives, independently of
quality. It will be necessary to think about sustainability, to
define it, creating a complete model (similarly to how quality is
defined) and explore how to work with it. Also it will be
necessary to plan how to include the sustainability in the
software development process.</p>
      <p>On the second option, sustainability belongs to quality,
being part of it. This means that sustainability must be
considered as a new characteristic on the model. Then, all the
operations and foundations given on the standard will be
applied to the sustainability. In that case will be necessary to
define</p>
      <p>The third option, considers that sustainability is the same
that the performance efficiency characteristic of ISO25010.</p>
      <p>This means that sustainability is already included on the
standard. In that case the work must be focused on studying if
really these two characteristics match (also their respective
subcharacteristics). If we demonstrate this, then, no more work
will be necessary.</p>
      <p>Finally, the fourth option puts the sustainability as an
influencing factor over the quality but no as a part of it. It is
like, let’s say, a way of doing things. The sustainability affects
to each of the quality characteristics in the way that a quality
characteristics can be achieved in a sustainable way or in a
non-sustainable way. In this case, it will be necessary to define
how to compose this new kind of interaction.</p>
      <p>All the options present difficulties but can be considered as
valid. However, choose the best option, or the correct one, will
affect all the rest of our work because it will put the bases over
which to follow the research on the achievement of sustainable
software products.</p>
      <p>So, considering fundamental to have the correct answer, we
want to know opinions about it, beyond our own opinions and
intuitions.</p>
      <p>This work is part of the GEODAS-BC
(TIN2012-37493C03-01), the PEGASO (TIN2009-13718-C02-01) and Sistemas
Inalámbricos de Gestión de Información Crítica
(TIN201123795) projects funded by the Spanish Ministerio de Economía
y Competitividad and by FEDER (Fondo Europeo de
Desarrollo Regional).
[1] United Nations World Commission on Environment and</p>
      <p>Development, "Report of the World Commission on
Environment and Development: Our Common Future," In
United Nations Conference on Environment and Development,
1987.
What is Sustainable
development?
Sustainable development
is a mode of human
development in which
resource use aims to
meet human needs while
ensuring the sustainability
of natural systems and
the environment</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Naumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dick</surname>
          </string-name>
          , E. Kern, and
          <string-name>
            <given-names>T.</given-names>
            <surname>Johann</surname>
          </string-name>
          ,
          <article-title>"The greensoft model: A reference model for green and sustainable software and its engineering,"</article-title>
          <source>Sustainable Computing: Informatics and Systems</source>
          , vol.
          <volume>1</volume>
          , (
          <issue>4</issue>
          ) pp.
          <fpage>294</fpage>
          -
          <lpage>304</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bozzelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Gu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Lago</surname>
          </string-name>
          .
          <article-title>A systematic literature review on green software metrics</article-title>
          . Available at: http://www.s2group.cs.vu.nl/wpcontent/uploads/2013/01/LS.PaoloBozzelli.GreenMetrics.pdf
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C.</given-names>
            <surname>Calero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. F.</given-names>
            <surname>Bertoa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Moraga</surname>
          </string-name>
          ,
          <article-title>"A Systematic Literature Review for Software Sustainability Measures,"</article-title>
          <source>in 2nd International Workshop on Green and Sustainable Software (GREENS</source>
          <year>2013</year>
          )
          <article-title>in conjunction with</article-title>
          <source>ICSE</source>
          <year>2013</year>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Agarwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Nath</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Chowdhury</surname>
          </string-name>
          ,
          <article-title>"Sustainable Approaches and Good Practices in Green Software Engineering,"</article-title>
          .
          <source>International Journal of Research and Reviews in Computer Science (IJRRCS)</source>
          , vol.
          <volume>3</volume>
          , (
          <issue>1</issue>
          )
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Hindle</surname>
          </string-name>
          ,
          <article-title>"Green mining: Investigating power consumption across versions</article-title>
          .,
          <source>" in 34th International Conference on Software Engineering (ICSE)</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>1301</fpage>
          -
          <lpage>1304</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>IEEE</given-names>
            <surname>Std</surname>
          </string-name>
          <article-title>830</article-title>
          .
          <source>IEEE Recommended Practice for Software Requirements Specifications</source>
          .
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Glinz</surname>
          </string-name>
          ,
          <article-title>"On non-functional requirements,"</article-title>
          <source>in International Conference on Requirements Engineering</source>
          ,
          <year>2007</year>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [9] ISO/IEC 25000,
          <article-title>"Systems and software engineering - Software product Quality Requirements</article-title>
          and
          <string-name>
            <surname>Evaluation SQuaRE</surname>
          </string-name>
          ,"
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [10] ISO/IEC 25010,
          <article-title>"Systems and software engineering - Software product Quality Requirements and Evaluation (SQuaRE) - Software product quality and system quality in use models</article-title>
          .,"
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>