<!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 Data-Driven Approach to Improve the Process of Data- Intensive API Creation and Evolution</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alberto Abelló</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Claudia Ayala</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carles Farré</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cristina Gómez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marc Oriol</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oscar Romero</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universitat Politècnica de Catalunya</institution>
          ,
          <addr-line>BarcelonaTech</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>The market of data-intensive Application Programming Interfaces (APIs) has recently experienced an exponential growth, but the creation and evolution of such APIs is still done ad-hoc, with little automated support and reported deficiencies. These drawbacks hinder the productivity of developers of those APIs and the services built on top of them. In this exploratory paper, we promote a data-driven approach to improve the automatization of data-intensive API creation and evolution. In a release cycle, data coming from API usage and developers will be gathered to compute several indicators whose analysis will guide the planning of the next release. This data will also help to generate complete documentation facilitating APIs adoption by third parties.</p>
      </abstract>
      <kwd-group>
        <kwd>{aabello</kwd>
        <kwd>cayala</kwd>
        <kwd>farre</kwd>
        <kwd>cristina</kwd>
        <kwd>moriol</kwd>
        <kwd>oromero}@essi</kwd>
        <kwd>upc</kwd>
        <kwd>edu</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Nowadays, the use of Application Programming Interfaces (APIs) is crucial in
technology-driven businesses as they permit to expose and use (through standardised
protocols) diverse functionalities and data. APIs represent a powerful opportunity for
companies and developers not only to leverage business value and simplify the software
development lifecycle but also to promote innovation [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        From the wide API marketplace, we are interested on those APIs that extract huge
amounts of data from their organization repositories and share it with its customers. We
refer to them as data-intensive APIs, drawing an analogy with the same concept in other
fields (e.g., data-intensive applications [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]). We may find many success stories, like
Smart Cities, where data-intensive APIs are a means to share data with end-users.
      </p>
      <p>However, the rapid proliferation of data-intensive APIs has not been accompanied
by sufficient support in their engineering process and several challenges still remain. In
particular, there are neither creation nor evolution approaches considering their
specificities. The generation and evolution of the data flows to extract the company’s data
from its internal data sources to be exposed through APIs is a complex and cumbersome
task that may render unfeasible when facing Big Data scenarios (such as those of Social
Networks or Smart Cities). Moreover, existing research focused on how to create and
evolve APIs does not consider: 1) monitoring techniques to extract extensive API usage
information; 2) studying the software repositories used by developers in applications
that use the APIs; 3) analyzing explicit feedback given by end users and software
developers; 4) using techniques in the API creation process that favour their later
evolution; 5) systematically generating and evaluating alternative API evolution plans.</p>
      <p>To overcome these limitations, we explore in this paper the appropriateness of using
a data-driven approach to support the creation and evolution of data-intensive APIs.
This approach is based on the exploitation of the data sources mentioned above (i.e.,
software monitors, user feedback and exposed data repositories) through highly
automated processes. To this end, within a release cycle, data coming from both API
usage and developers (both monitored and provided explicitly) will be gathered and
analysed in order to compute several indicators whose analysis will guide the planning
of the next release. This data will also be used to improve API documentation, including
specific non-functional requirements and usage pattern examples, that will facilitate the
adoption of those APIs by third parties.</p>
      <p>The rest of the paper is structured as follows. Section 2 reviews the state of the art
in API creation and evolution and presents the challenges in the area. Section 3
describes the generic data-driven approach that we are envisaging. Section 4 discusses an
example of use of this approach in the Smart Cities context and Section 5 summarises
with the relevant conclusions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Challenges in Data-Intensive API Creation and Evolution</title>
      <p>In the next subsections, we summarise the state of the art in API creation and evolution,
and the challenges when considering the specific case of data-intensive APIs.
2.1</p>
      <sec id="sec-2-1">
        <title>API Creation</title>
        <p>
          Recent think tanks have advocated for automating data sharing and management in
order to democratise the access to information [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. The Open Data paradigm builds upon
this idea and, aligned with it, a new market of external data is already available, which
represents a potential wealth of data to be used by data-intensive APIs. However, the
current state of the art on API creation ignores this type of data sources [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] and, in
general, how to deal with huge amounts of data in the API creation process. Considering
external data means extracting, integrating and consolidating them in order to be
efficiently exposed. These tasks are part of data-intensive flows (DIF) management,
massively studied in the Business Intelligence (BI) arena. Nevertheless, DIFs are still a key
challenge for next generation BI systems, which advocate for empowering end users in
the management of data [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>
          Currently, some of the works related to API creation deal with the modelling of the
static structure of the interfaces and/or their behaviour [
          <xref ref-type="bibr" rid="ref10 ref12 ref14 ref2 ref24 ref4">4, 2, 14, 12, 10, 24</xref>
          ]. These aim
to automate API creation but derived APIs and their implementation do not take into
account their posterior evolution.
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>API Evolution</title>
        <p>
          Most of the recent state of the art on API evolution consists of empirical studies that
address their impact on the consumer side (i.e., on the software developers and
applications that use the evolving APIs) [
          <xref ref-type="bibr" rid="ref21 ref23 ref25 ref5">23, 5, 21, 25</xref>
          ].
        </p>
        <p>
          The core of the problem in API evolution, however, is still to determine what, how,
and when to evolve. Therefore, it seems necessary to 1) collect runtime data from API
requests, and 2) decide, based on the analysis of such data, which changes are required
and how they are prioritised, scheduled, and enacted. Optimization-based approaches
proposed in the related field of software release planning [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] may be appropriate also
in the context of API evolution. To this end, the definition of key-performance
indicators may be of interest to compare alternative strategies [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
        </p>
        <p>
          The feedback of the community of software developers who use the APIs should
also be taken into account when planning their evolution. There are some examples of
methods and tools that allow users participate actively in this, e.g., My Experience [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ],
play.tools [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], Requirements Bazaar [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] or the commercial UserVoice1. In any case,
the users in these examples are end-users of applications or devices. To the best of our
knowledge, there is no initiative that takes into account the developers of applications
and services that have a high-stake interest in the data-intensive APIs that they use and
are able, at the same time, to provide high-quality technical feedback (e.g., on bugs or
missing features) that end users cannot.
2.3
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>API Documentation</title>
        <p>
          An important aspect related to both API creation and evolution is the generation and
evolution of a comprehensive and accurate documentation. Existing works on API
documentation have suggested that, in order to successfully use APIs, it is required that
their documentation includes explanations and examples of their use [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. Poor and
incomplete documentation is one of the main obstacles faced by developers to
understand and use new APIs [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]
        </p>
        <p>
          Usually, API documentation is generated manually and there is a lack of support for
evolving such documentation as APIs evolve over time. Therefore, API documentation
becomes obsolete quickly [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. Several tools, such as JavaDoc2, Swagger3, Blueprint4
and SpyREST [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] have been developed to automatically generate and maintain
up-todate API documentation, and some contributions have been made to improve it [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
However, other studies [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] reveal that there is still much room for improvement. [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
proposes to generate and maintain API documentation by first monitoring and then
analysing the requests to the API. However, the limitation is clear: the process of
synthesizing the requests needed to infer the documentation is manual, with the risk of not
covering all possible cases. Moreover, it also requires knowledge of the API that
obviously has not been acquired through its documentation.
1 https://www.uservoice.com
2 http://www.oracle.com/technetwork/articles/java/index-jsp-135444.html
3 http://swagger.io
4 https://apiblueprint.org
2.4
In this section, we detail the challenges to be faced by the data-driven approach for
creating and evolving data-intensive APIs.
        </p>
      </sec>
      <sec id="sec-2-4">
        <title>Ch1. Defining data-intensive API creation for evolving. Most of the existing</title>
        <p>works related to API creation deal with the modelling of their static structure and
behavioural part without considering their later evolution. Moreover, these works do not
take into account the specificities of data-intensive APIs. The complexity of
data-intensive API evolution requires new techniques and methods that consider future evolution
due to changes in both data sources and requirements.</p>
      </sec>
      <sec id="sec-2-5">
        <title>Ch2. Improving the automatic generation and maintenance of data-intensive</title>
        <p>API documentation. A complete, accurate and updated documentation is a key factor
for the wide use of data-intensive APIs. Currently, the quality, maintenance and the
automatic generation of API documentation are in question. So, new approaches are
needed to improve the automatic generation and maintenance of data-intensive API
documentation, which includes the internal transformations of data.</p>
      </sec>
      <sec id="sec-2-6">
        <title>Ch3. Exploiting available evidence to generate data-intensive API evolution</title>
        <p>proposals. The observations provided by data-intensive API users (developers of
software applications that consume those APIs and end-users of applications using such
APIs) as well as the analysis of data-intensive API usage and the software repositories
of applications that consume those APIs, are valuable information that needs to be
examined in more detail to generate data-intensive API evolution proposals.</p>
      </sec>
      <sec id="sec-2-7">
        <title>Ch4. Defining indicators to evaluate data-intensive API evolution proposals.</title>
        <p>When several evolution proposals emerge, it is difficult to choose among them the ones
to be implemented. The challenge is to define a set of strategic indicators that helps to
evaluate and prioritize the implementation of those proposals.</p>
      </sec>
      <sec id="sec-2-8">
        <title>Ch5. Automating the data-intensive API evolution process. The state of the art</title>
        <p>in API evolution shows that it is still quite manual. To deal with API evolution
challenges we will focus on exploiting information from diverse sources such as monitors,
software repositories, and explicit feedback.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>A Data-Driven Approach to the Creation and Evolution of</title>
    </sec>
    <sec id="sec-4">
      <title>Data-Intensive APIs</title>
      <p>As we have seen in the previous section, the process of creation and evolution of
dataintensive APIs has still much room for improvement. Increasing their automated
support would improve the efficiency and effectiveness of the API engineering process.
Thus, we propose a data-driven approach aiming to improve the process of creation and
evolution of data-intensive APIs. We label our proposal as “data-driven”, because its
formulation relies on gathering and analysing data coming from all the sources
mentioned in Section 2 (i.e., organization databases, software repositories, API usage, etc.).
We call Smart APIs those data-intensive APIs that have been generated and evolved
using the data-driven approach explored in this paper, and define three separate
processes (shown in Figure 1) in order to automate their creation and evolution.
P1. Smart API Generation. This process aims at gathering the information,
metadata and behaviour required to create a Smart API to be published by the API
provider. With this information, a Smart API, its documentation with related metadata
(including non-functional requirements, NFRs for short) and its implementation will be
generated and stored in a directory. Additionally, this process will automatically
generate and manage the DIFs mentioned in Section 2.1 and an ad-hoc API DB required to
efficiently consume relevant external data. This process will address challenges Ch1
and Ch2 described in the previous section.</p>
      <p>
        P2. Smart API Evolution Proposal Generation. As Smart APIs are invoked in an
execution environment (that can be obtained, for instance, from transformations applied
within the Model Driven Development (MDD) paradigm [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]), they will store data
coming from their execution. Information that will be generated at runtime (e.g., response
time of the Smart APIs), obtained from the developers who use the Smart APIs (e.g.,
detection of bugs), accessed through the software repositories of applications that
consume the Smart APIs (e.g., sequence of APIs invoked) and the information provided by
the Smart API users (developers and end-users) will be processed to recommend
candidate evolution proposals for the Smart APIs. Those proposals, which will be
evaluated using a set of strategic indicators, will be rendered to the Smart API provider who
will be able to make informed decisions. This process will address challenges Ch3 and
Ch4.
      </p>
      <p>P3. Smart API Evolution. The last process will automate the Smart API evolution
from the proposals obtained in P2. The API provider will select the Smart APIs that
wants to evolve and provide the additional information needed to implement it. This
process will finally evolve the Smart APIs, and the entries in the directory of the
corresponding APIs will be modified regenerating the data flows and API DB required to
the new version of the APIs. This process will address challenge Ch5.</p>
    </sec>
    <sec id="sec-5">
      <title>Example of Application: Smart APIs for Smart Cities</title>
      <p>
        Smart Cities is one of the domains where the use of data-intensive APIs is becoming
commonplace. Initiatives such as FIWARE5, CitySDK6 and iCity7, all of them with
public funding from European programs, propose API-centric platforms and standards.
The goal of these initiatives is to enable citizens and organizations to access Smart City
data and services through applications that consume such APIs. The confluence of huge
amounts of open data, e-government and real-time information from millions of sensors
and the citizens themselves, accessible via APIs, should contribute to a more efficient
and sustainable operation of Smart Cities [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Thus, Smart Cities show most of the challenges discussed in Section 2. For example,
Boyd refers to improving documentation as one of the challenges to improve the
usability and reliability of APIs [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], especially important in the Smart City context. To
illustrate how these challenges are currently being faced in these APIs, we describe
below some of the limitations and problems that we experienced when developing some
mobile apps exploiting the APIs provided by a city Smart City infrastructure8.
 Inconsistencies. Some of the APIs did not provide exactly the functionality that they
promised in the documentation. When we contacted with the Smart City department
and discussed the problem, they provided two main reasons for this: 1) simply, they
made some mistake due to the lack of tool support in the API creation; 2) at some
moment, some evolution in the data sources behind the API was not propagated to
the API itself (because the data source was not managed by the Smart City
department). Converting these APIs to Smart APIs would have avoided these problems
due to the generation of the APIs from the artefacts specified by the Smart City
department (acting as Smart API provider).
 Documentation. In general, as reported in Section 2, documentation was very
rudimentary, hard to follow (examples were scarce), and sometimes incomplete or even
inaccurate. For instance, some measurements of IoT sensors did not specify the units
of the provided data. Also, we discovered that some of the parameters in the methods
provided by the APIs were not yet implemented at that time, but only planned for
next releases, with no clear indication in the documentation. Service level
agreements were not specified, not allowing then to state reasonable NFRs, as for instance
response time, from the customer side since it was going to be not possible to check
them.
 Feedback. During the usage of APIs along some months, we identified and reported
some bugs in the system. For instance, some IoT sensors didn’t return measurements
reporting a time out. Such bug reports were done manually by e-mail, which was a
first hurdle to us. It was the case that we experienced some delays on the responses,
and we inquired the process followed: our reports were dispatched to the team of
5 www.fiware.org
6 www.citysdk.eu
7 www.icityproject.eu
8 We cannot disclose the name of the city due to confidentiality reasons.
developers, then team worked on the solution, and when fixed, they reported back
to our interlocutor, who informed us. All these steps made the interaction slow and
cumbersome, leading to a slow non-interactive process resolution. Furthermore, the
problem scaled up when the issue was related to third-party APIs (i.e. APIs for which
the Smart City systems acted as customers), such as when the Smart City used
thirdparty sensors: any reported issue took weeks before receiving any feedback.
Sophisticated feedback channels but especially, the replacement of explicit feedback by
API usage monitoring, should lead to dramatic improvements in the quality of
service delivered to customers and the time to fix any issue.
 Evolution. With respect to API evolution, the platform provided a forum with
several discussion channels, to potentially get feedback. However, the forum did not
attract many users, making it unsuitable for capturing user feedback enough to help
evolve the API. Therefore, at the end, evolution decisions were not really driven by
real opinions. We envision that with the data-driven approach proposed in this paper,
the developers will get the feedback required to help them identify the right direction
to evolve the API, not only from explicit feedback from the opinions of the users but
also from implicit indicators obtained by monitoring how the APIs are used.
5
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusions</title>
      <p>In this exploratory paper, we have proposed a novel data-driven approach to improve
the creation and evolution process for data-intensive APIs with the goal of overcoming
the limitations reported in the state of the art in this area and responding thus to some
resulting challenges. We have presented a general conception of the approach. Possible
instantiations may emphasise the link between the APIs and the data sources through
elaborated traceability links, or use goal models as a way to elicit and analyse the
optimal features to include in the APIs.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgements</title>
      <p>This work is funded by the Spanish project TIN2016-79269-R, AEI/FEDER, UE.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D.</given-names>
            <surname>Ameller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Farré</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Franch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Rufian</surname>
          </string-name>
          .
          <article-title>A Survey on Software Release Planning Models</article-title>
          .
          <source>In PROFES 2016</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>C.</given-names>
            <surname>Alexopoulos</surname>
          </string-name>
          , E. Loukis,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Charalabidis</surname>
          </string-name>
          .
          <article-title>A Platform for Closing the Open Data Feedback Loop Based on Web 2.0 functionality</article-title>
          .
          <source>In eJournal on eDemocracy and Open Government</source>
          <volume>6</volume>
          (
          <issue>1</issue>
          ),
          <fpage>2014</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>M.</given-names>
            <surname>Boyd. How Smart Cities Are Promoting API Usage</surname>
          </string-name>
          ,
          <source>ProgrammableWeb</source>
          .
          <fpage>04</fpage>
          -
          <lpage>05</lpage>
          -2015. Available: http://www.programmableweb.com/news/how
          <article-title>-smart-cities-are-promoting-apiusage/analysis/</article-title>
          <year>2015</year>
          /05/04. [Accessed:
          <fpage>21</fpage>
          -Nov-2016]
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. H. Ed-douibi,
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Cánovas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gómez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tisi</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Cabot.</surname>
          </string-name>
          <article-title>EMF-REST: Generation of RESTful APIs from Models</article-title>
          .
          <source>In SAC 2016</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>T.</given-names>
            <surname>Espinha</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zaidman</surname>
          </string-name>
          , H.-G. Gross.
          <article-title>Web API growing pains: Loosely coupled yet strongly tied</article-title>
          .
          <source>In Journal of Systems and Software</source>
          , vol.
          <volume>100</volume>
          ,
          <year>2015</year>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>J.</given-names>
            <surname>Froehlich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.Y.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Consolvo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Harrison</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.A.</given-names>
            <surname>Landay</surname>
          </string-name>
          .
          <article-title>MyExperience: a system for in situ tracing and capturing of user feedback on mobile phones</article-title>
          .
          <source>In MobiSys 2007</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>M.</given-names>
            <surname>Völter</surname>
          </string-name>
          , T. Stahl:
          <string-name>
            <surname>Model-Driven Software</surname>
          </string-name>
          Development: Technology, Engineering, Management. Wiley and Sons, New York, USA,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D.</given-names>
            <surname>Habich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Lehner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Richly</surname>
          </string-name>
          ,
          <string-name>
            <surname>U.</surname>
          </string-name>
          <article-title>Aßmann: Using Cloud Technologies to Optimize DataIntensive Service Applications</article-title>
          .
          <source>In IEEE CLOUD 2010</source>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <article-title>9. Unleashing the Potential of Big Data</article-title>
          .
          <source>White paper based on 2013 World Summit on Big Data and Organization Design</source>
          . Available: http://www.e-pages.
          <source>dk/aarhusuniversitet/775</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>A.</given-names>
            <surname>Ivanchikj</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Pautasso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Schreier</surname>
          </string-name>
          .
          <article-title>Visual modeling of RESTful conversations with RESTalk</article-title>
          .
          <source>In SSM</source>
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>P.</given-names>
            <surname>Jovanovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Romero</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Abelló: A Unified View of Data-Intensive Flows in Business Intelligence Systems: A Survey. Trans. Large-Scale Data-</article-title>
          and
          <string-name>
            <surname>Knowledge-Centered</surname>
            <given-names>Systems</given-names>
          </string-name>
          ,
          <volume>28</volume>
          (
          <issue>5</issue>
          ),
          <fpage>2017</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. L.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Chou</surname>
          </string-name>
          .
          <article-title>Designing Large Scale REST APIs Based on REST Chart</article-title>
          .
          <source>In ICWS 2015</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>M. A. Saied</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Sahraoui</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Dufour</surname>
          </string-name>
          .
          <article-title>An Observational Study on API Usage Constraints and Their Documentation</article-title>
          .
          <source>In SANER 2015</source>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. I.
          <string-name>
            <surname>Porres</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Rauf</surname>
          </string-name>
          .
          <article-title>Modeling Behavioral RESTful Web Service Interfaces in UML</article-title>
          .
          <source>In SAC 2011</source>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>A. M. Pitangueira</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Tonella</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Susi</surname>
            ,
            <given-names>R. S.</given-names>
          </string-name>
          <string-name>
            <surname>Pitangueira Maciel</surname>
          </string-name>
          , M. de Oliveira Barros:
          <article-title>Risk-Aware Multi-stakeholder Next Release Planning Using Multi-objective Optimization</article-title>
          .
          <source>In REFSQ 2016</source>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>D.</given-names>
            <surname>Renzel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Behrendt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Klamma</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Jarke</surname>
          </string-name>
          .
          <article-title>An open requirements bazaar for social requirements engineering in the long tail</article-title>
          .
          <source>In RE 2013</source>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Robillard</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Deline</surname>
          </string-name>
          .
          <article-title>A field study of API learning obstacles</article-title>
          .
          <source>In Empirical Software Engineering</source>
          <volume>16</volume>
          (
          <issue>6</issue>
          ),
          <fpage>2011</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>S.</given-names>
            <surname>Radevski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Hata</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Matsumoto. Towards Building API Usage Example</surname>
          </string-name>
          <article-title>Metrics</article-title>
          .
          <source>In SANER 2016</source>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. Sandoval Kristopher Sandoval.
          <article-title>Leverage Public APIs to Make Your System Better</article-title>
          .
          <fpage>16</fpage>
          -
          <lpage>11</lpage>
          - 2016. Available: http://nordicapis.com
          <article-title>/leverage-public-apis-to-make-your-system-better</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Sohan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Anslow</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Maurer. SpyREST: Automated RESTful API</surname>
          </string-name>
          <article-title>Documentation using an HTTP Proxy Server</article-title>
          .
          <source>In ASE 2015</source>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Sohan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Anslow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Maurer</surname>
          </string-name>
          .
          <article-title>A Case Study of Web API Evolution</article-title>
          .
          <source>In ICWS 2015</source>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>C.</given-names>
            <surname>Schueller</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Woerndl</surname>
          </string-name>
          .
          <source>Automated User Feedback Generation in the Software Development of Mobile Applications</source>
          . In Sonderdruck Schriftenreihe der
          <string-name>
            <surname>Georg-Simon-OhmHochschule Nürnberg</surname>
          </string-name>
          , Nr.
          <volume>42</volume>
          ,
          <year>2008</year>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>S.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Keivanloo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zou</surname>
          </string-name>
          .
          <article-title>How Do Developers React to RESTful API Evolution? In ICSOC 2014</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>C. Zolotas</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Diamantopoulos</surname>
            ,
            <given-names>K. C.</given-names>
          </string-name>
          <string-name>
            <surname>Chatzidimitriou</surname>
            ,
            <given-names>A. L.</given-names>
          </string-name>
          <string-name>
            <surname>Symeonidis</surname>
          </string-name>
          .
          <article-title>From requirements to source code: a Model-Driven Engineering approach for RESTful web services</article-title>
          .
          <source>In ASE 2016</source>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Zarras</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Vassiliadis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. Dinos. Keep</given-names>
            <surname>Calm</surname>
          </string-name>
          and
          <article-title>Wait for the Spike! Insights on the Evolution of Amazon Services</article-title>
          .
          <source>In CAISE 2016</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>