<!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 Corpus Builder: Retrieving Raw Data from GitHub for Knowledge Reuse In Requirements Elicitation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Roxana Lisette Quintanilla Portugal</string-name>
          <email>rportugal@inf.puc-rio.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hugo Roque</string-name>
          <email>hugo.roque@aluno.puc-rio.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Julio Cesar Sampaio do Prado Leite</string-name>
          <email>julio@inf.puc-rio.br</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Departamento de Informtica</institution>
          ,
          <addr-line>PUC-Rio / Rio de Janeiro RJ 22451-9000</addr-line>
          ,
          <country country="BR">Brasil</country>
        </aff>
      </contrib-group>
      <fpage>68</fpage>
      <lpage>73</lpage>
      <abstract>
        <p>Requirement elicitation is an important task, which can lead to cost reduction in the overall software process, as it avoids failures due to lack of proper understanding about what to build. However, usually, there is a lack of time devoted to proper elicitation during software construction. We assume information from similar projects is a valuable knowledge for requirements engineers when facing a new project in the same or related domain, and its acquisition can be speeded up by knowing their main features. This information is usually located in Readme documents of GitHub. We present a tool that helps in handle this large amount of information by retrieving a corpus of Readme documents given a domain-related query. It is described, in detail, how a corpus is created and stresses the importance of having a quality corpus as base for data mining, or as input for tools of qualitative data analysis.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Imagine the following situation: a group of
musicians is looking to produce a music application;
they believe it could be a hit. They contacted angel
investors, which are willing to invest, but needed
more details about the idea. As such, they decided
to hire a requirements engineering company to
organize the intentions, before contracting a
software developer company to build the application.
The musicians overall idea is to have an
application user to know a city, a neighborhood, or a place
like a university, by the music that it is being
listened around.</p>
      <p>It happens that the requirements engineering
company, hired to do the job, is not familiar with
the domain and would have to quickly gain
leverage on the contextual knowledge to better
collaborate with the musicians, as well as to build a
proper requirements for future developers. This
contextual knowledge must be both related to the
client side, but also to the possible software
ecology where the application will operate.</p>
      <p>
        We depart from the assumption that
requirements-related information can be elicited
from Big Data, in this case we use the software
repository GitHub, since this source owns, to date,
more than 35 million of projects in its repository
        <xref ref-type="bibr" rid="ref10">(Metz, 2016)</xref>
        . This assumption is founded on the
evidence that projects on GitHub has encoded
knowledge. Although this encoded knowledge is
mainly represented in programming languages,
there are annotations in natural language that
describe the project purpose. Of course, those
projects are different in several manners, either in
quality of its contents, as well as in the level of
information provided in natural language. However,
most of the projects we have retrieved from this
repository do provide some natural language texts
i.e., the Readme document of each project, which
helps in understanding a project purposes. Our
work is contextualized in what
        <xref ref-type="bibr" rid="ref9">(Markus, 2001)</xref>
        calls secondary knowledge miner which is defined
as “people who seek to answer new questions or
create new knowledge through analysis of records
produced by other people for different purposes”
and “extract knowledge from records that were
collected by others, possibly unknown to the
reusers. . . ”. Markus also noted that this reuse is
not limited to structured data. “Although most
research on data mining has focused on structured
data, this is data on databases or knowledge
datasets, similar issues are likely to apply in the
case of secondary reusers of documents”.
      </p>
      <p>
        A requirements elicitor could perform a
manual revision of GitHub projects given a
domainrelated query; however, the reading of hundreds of
projects may not be efficient in time-constrained
settings. For instance, a work from EMSE1 field
mentions that researchers manually extracted data
from 32 publications published in digital libraries
which it took 80 hours for two tasks: (1) extraction
and (2) analysis of data
        <xref ref-type="bibr" rid="ref4">(Ekaputra et al., 2014)</xref>
        .
Nowadays both Digital Libraries and GitHub own
a plethora of data; on that ground we automate the
documents extraction task from projects hosted on
GitHub, this time using its Readme perspective.
Thus, a set of documents is ready for the
analysis task that can be performed manually assisted
by tools for qualitative data analysis. e.g., Atlas.ti
or NVivo. Or to perform an automatic analysis by
using text-mining techniques.
      </p>
      <p>The remainder of this paper is structured as
follows. Section 2 provides a research baseline for
motivation. Section 3 explains the rationale for
selecting artifacts in GitHub. Section 4 details the
design and construction of the tool. Section 5
describes the qualitative analysis conducted in the
corpus of Readmes for the domain “music
application”. Section 6 concludes and points out future
work.
2</p>
      <p>
        Corpus of Documents
        <xref ref-type="bibr" rid="ref14">(Sinclair, 2005)</xref>
        states this principle when
building a Corpus: “The contents of a corpus should be
selected regardless of their language, but
according to their communicative function in the
community in which they occur”. In this respect, a
previous work
        <xref ref-type="bibr" rid="ref11">(Portugal et al., 2015)</xref>
        performed
an exploratory research to verify to what extent is
feasible the Readme document for use in
requirements engineering. In this regard, the Readme
perspective of GitHub projects has the
communicative function to describe the main features of a
project. Similarly, the Issues perspective has the
communicative function of tracking the evolution
of software features.
      </p>
      <p>
        Another aspect about the construction of a
Corpus is that it can be considered as the first step
towards the building of a web extraction tool,
specifically a Natural Language Processing NLP-based
wrapper (Laender et al., 2002). A Similar
approach to extract data given a query can be found
in the tool Webcorp
        <xref ref-type="bibr" rid="ref12">(Renouf, 2003)</xref>
        however, this
tool does not cope with our goal, as they mainly
1Empirical Software Engineering
use the Google API for gathering information; as
such this mechanism does not cover the internal
documents of GitHub projects. Another project,
very similar to ours is the GHTorent
        <xref ref-type="bibr" rid="ref7">(Gousios,
2013)</xref>
        , which in fact, can accomplish more than
a retrieval of Readmes, making database dumps
of all of the projects on GitHub. However,
we found some technical barriers, specially for
users not used to deal with this kind of
technology. For instance, to get projects related to a
query, the user may need to download a database
dump (around 30GB size in 10 hours) and then
supported by a Database Management System
(DMBS) as MySQL, the user will be able to query
in SQL format the information needed. Instead,
we are proposing a service to deal with other type
of queries; thinking in requirements, our
specification would be:
      </p>
      <p>Given a query e.g “music application”
the user may be able to download a
zip file of Readmes with extension .txt,
numbered by order of result’s
appearance, and each document should be
named with the project and its owner
name.</p>
      <p>
        Another barrier to accomplish our goal with
        <xref ref-type="bibr" rid="ref7">(Gousios, 2013)</xref>
        work is that the schema of
GHTorent database dump2 does not contain a
table related to Readmes information. However this
this tool would be useful when retrieving GitHub
Issues.
      </p>
      <p>Another constraint that motivated us to build a
service, is that Readmes can vary daily on GitHub,
when new projects are created or when the existing
change its relevant. This relevance is given by the
Forks, Stars, Pull-request, number of Issues and
Comments a project receives.
3</p>
      <p>
        GitHub Perspectives for Requirements
Elicitation
Using the concepts of viewpoints and perspectives
        <xref ref-type="bibr" rid="ref3">(do Prado Leite and Freeman, 1991)</xref>
        we, as
requirements engineers, see the GitHub in the
following way: A project, specifically an application,
can express a viewpoint, i.e. a way to address what
the user needs in certain domain. It happens that
each project, viewpoint, may use several
representations (perspectives), to describe a project. These
GitHub perspectives are: Readmes, Issues, Issue’s
2http://ghtorrent.org/dblite/
Comments, Commits, Commit’s Comments, and
Gits. We argue that each of this artifacts express a
perspective of a particular viewpoint (project)
because, on the Readme perspective a user is able
to see a summary of features that the application
implements. In the Issue perspective it is possible
to get more specialized information about features
(e.g. bugs or enhancements). Even more, it is
possible to see the decisions (Comments perspective)
taken about an issue before been implemented.
3.1
      </p>
      <p>
        The Readme Artifact
        <xref ref-type="bibr" rid="ref8">(Kupiec et al., 1995)</xref>
        state that “Abstracts are
sometimes used as full document surrogates, for
example as an input to text search systems, but
they also speed access by providing an easily
digested intermediate point between a documents
title and its full text, that is useful for rapid
relevance assessment”. We judge that Readmes
have the role of abstracts on GitHub environment.
Fig.1 shows the Readme document of the project
android-node-music-sync from user benkaiser.
This project was found with the query “music
application android”. Using the GitHub API v3.0
to access the data, we obtained its raw version
Fig.2. As we analyzed the raw data, we figure
it out that in our ongoing research, we will be
facing the mining of documents of different
nature, this is, structured data: source code,
semistructured data: documents with markups such us
html, xml, markdown3 among others, and
unstructured data: free texts in comments and other
documents. This time, by using the Readme
document we are dealing with semi-structured texts, as
most of the Readmes follow the predefined
markdown format. For instance (see Fig.2) to indicate
an url, they used [texto](url). In other exemplars
we found ![alt text](image path) to indicate an
image.
3.2
      </p>
      <p>The Requirement-Related Information
What we pursue with a corpus of Readmes is the
finding requirement-related information, which
are phrases that can be mined to give an idea of the
project purposes. Thus, the reader can reuse this
knowledge for learning or generating new ideas
in requirements elicitation tasks. From Readme
(Fig.1) some candidate phrases to be mined would
be:</p>
      <p>“A syncing application for Android to sync
playlist from Node Music Player to an Android
phone”
“This app does not actually play the music on
your phone, it just syncs the songs and the
playlist across. You can use one of the following
music players to play your music”
4</p>
      <p>
        Working Towards the Tool
As we started to explore GitHub, we built a script
to extract readmes just for the query “Real Estate
in: readme”
        <xref ref-type="bibr" rid="ref11">(Portugal et al., 2015)</xref>
        . This serve
us for our initial purpose of discover ideas and
find domain-independent regularities
        <xref ref-type="bibr" rid="ref1">(Arora et al.,
3Markdown is a lightweight markup language with plain
text formatting syntax designed so that it can be converted to
HTML. source: Wikipedia
2014)</xref>
        ,
        <xref ref-type="bibr" rid="ref13">(Ridao et al., 2001)</xref>
        which may allow us to
find requirement-related information. Following,
using the SADT (Structured Analysis and Design
Technique)
        <xref ref-type="bibr" rid="ref2">(Chen, 1976)</xref>
        we modeled a process to
address our approach. Fig.3 highlights one of the
activities, Retrieve, which points the construction
of this tool.
4.1
      </p>
      <p>The Retrieve Activity
The Retrieve describes the inputs: the
domainrelated query (search terms) and the GitHub
opensource projects. With this, it is requested the
projects that match with the query. The
constraints: our process was designed to be
suitable for any artifact with natural language
descriptions. It was considered the request limits using
the GitHub API4. We took care in backward
traceability; thus, once a Readme is in a corpus it is
possible to locate its source on GitHub. A concern
is the quantity of search results limited to 1000,
this fact, made us to think in a situation where the
project 1001 could be the interesting one for an
requirements elicitor; therefore, we created
heuristics taking advantage of GitHub metadata to
improve the recall of results. Finally, we had to deal
with a variety of document extensions (.md, .rtf,
.html, .doc, etc.) and normalize them to .txt before
4GitHub API v3: Rate
https://developer.github.com/v3/#rate-limiting
Limiting.
a Readme is inserted in the corpus. The unique
situation where a Readme is not retrieved, is when
this is located out of the root of its project. The
outputs: it is expected the corpus of Readmes
in .txt format and the package zipped containing
them.
In order to bring more than 1000 results through
the search, our tool explored five of the possible
sorts a user may do: best match, most starts,
fewest stars, most forks, fewest forks. Each
sorting becomes a new query. We combine them
to surpass the 1000 results limitation (Fig.4), and
with the current GitHub API we were able to
perform those five queries in a single task.</p>
      <p>There is a possibility of leaving out many
projects (see the cells in gray and red), that is
because, it is shown just the first 1000 results of any
sorting query; after that is not guaranteed the
order of projects relevance. We had another
concern, which is the project rating given by users,
giving a star or performing a fork, resulting in
projects repeated in any of the sorting operations.
Our heuristic uses a union operation in order to
capture those intersections. Finally, we organize
the corpus in the order shown in Fig.5. As a user
would not be able to get this extra through GitHub
website, we consider we improved the recall of
results.
The tool5 presentation (Fig.6) is simple and just
for the purpose to retrieve a corpus of Readmes
given a query. To continue with the GitHub
spirit providing Open-source software (OSS) to
the community, we made available the script6 code
and also a complementary script7 developed to
support the performance of the application on web
browsers.
5</p>
      <p>
        Analyzing the Raw Data Retrieved
Our assumption that a corpus of Readmes could be
useful for finding requirements-related
information is based on knowledge reuse literature as well
as on our own evidence. This premise can be
questionable, as the Readme is a brief user
documentation of software projects and may seen hardly a
reliable way for obtaining requirements for your
own project. In fact, The best one can discover
is what features these other projects offer for later
reuse. The usefulness of Readme documents is the
identification of relevant projects, for later
exploration of another perspectives (Issues, Commits)
which probably does contain more data with the
stereotypical of requirements. In this regard, we
are looking for the type of reuse that
        <xref ref-type="bibr" rid="ref5">(Goldin and
Berry, 2015)</xref>
        state “Reuse can take place during
any phase of a computed-based system
development, including during proposal consideration and
marketing analysis, requirements elicitation,
requirements analysis, architecture design, code
implementation, and testing. . . Thus, reusing
requirements can be most beneficial, because if it leads to
off-the-shelf reuse of the required product,
result
      </p>
    </sec>
    <sec id="sec-2">
      <title>5http://corpus-retrieval.herokuapp.com/ 6https://github.com/nitanilla/corpus-retrieval 7https://github.com/nitanilla/github-proxy</title>
      <p>ing in greatest reduction of development effort and
time to market”.</p>
      <p>We wanted to test two hypotheses:
Hypothesis 1: A corpus builder of Readmes
permits the finding of features using a similar-based
projects approach.</p>
      <p>Hypothesis 2: The mined
requirements-relatedinformation is useful for reuse.</p>
      <p>For this, we built a corpus for the “music
application” query with 1206 Readmes and took a
representative sample of 291 Readmes to be read
manually with the aim to find reusable knowledge.
Once some phrases in context with high chances
of being re-used are identified, they were shown
for a Music Aplication Startup.</p>
      <p>It is worth noting that the selection of Readmes
was conducted randomly with an script8 we
created for future test.
5.1</p>
      <p>Findings
A remarkable finding from our notes is the GitHub
limitation9 which leads to not support a phrase
query, resulting in Readmes vaguely related to the
“music application” query. This happens because
some Readmes contained just the word “music”
and others only with“application”. This fact
impacts the precision to filter relevant projects within
a corpus created.</p>
      <p>
        As we are investigating patterns to anchor
requirements, the manual reading allowed us to see
some patterns motivated by the work of
        <xref ref-type="bibr" rid="ref1">(Arora et
al., 2014)</xref>
        . We identified six concurrent patterns
(Table 1) and then we mined them on the entire
corpus (2016 Readmes) to obtain its frequency of
appearance.
      </p>
      <p>
        To answer hypothesis 1 and 2, we select the
pattern with the lowest rank “allows users to”.
We grouped 861 Readmes with similar file size
(0kb-1kb), and the mining of this pattern using
the package Qdap
        <xref ref-type="bibr" rid="ref6">(Goodrich et al., 2016)</xref>
        for R
project, resulted in 14 Readmes matching within
these Readmes, then a manual extraction of
phrases in context was done. Below we show four
phrases shown to a music application startup10,
and in italic, the startup assessment.
      </p>
    </sec>
    <sec id="sec-3">
      <title>8https://github.com/nitanilla/Random-Readme</title>
      <p>9
https://help.github.com/articles/searchingcode/#considerations-for-code-search
10Hear: https://www.facebook.com/apphear
1.- Moment is a web application that stores all
your special memories with the music you love.
By tapping into Spotify’s Web API, Moment
allows users to bookmark music they enjoy in
a journal format and navigate all their previous
memories with music. A good idea to take into
consideration</p>
      <p>2.- SoundShack Leverages the Power of
Broadcom’s Latest Wiced chip to Stream HD Audio
to Wifi enabled android devices. This Android
application allows users to syn-chronously stream
music with no lag. User can also asynchronously
manage speaker groupings, giving users the power
to listen to the football game on their living room
speakers and rock out to their patio speakers at
the same time. Being built for the current release.</p>
      <p>3.- Powerful web application that allows users
to query music and instantly down-load that
music. The project was done using nodejs and
expressjs. A good idea to take into consideration.</p>
      <p>4.- This android application allows users to
listen to a music playlist tailored to them based on
their mood. Their mood is extracted using
sentiment analysis on diary en-tries in the app. Being
built for the current release.</p>
      <p>Notes and Future work. We are testing the
phrases with other two members of the music
application Startup, with the intention to perceive
how much they differ in points of view as they
have different background profiles. We are also
working on identify more requirement patterns
and test them in different Corpus of Readmes.
6</p>
      <p>Conclusion
Mining existing information is becoming a strong
ally in the process of requirements elicitation,
since more and more information is being stored
with open access in the web. GitHub as an open
access repository for software projects is a strong
candidate as an information source. However,
to use GitHub information, which is scattered in
thousands of projects, there is a need to compose
a proper corpus, where mining heuristics could be
applied.</p>
      <p>This work describes the challenges and what
has been done to build a Requirements
Engineering oriented corpus taking GitHub project’s
Readme as a source.</p>
      <p>With the results so far, we are more close
to build a way of reusing unstructured,
semistructured and structured information linked to
code, as to help the task of eliciting
requirementsrelated information. As such, future work will
focus on mining heuristics and validation of their
application.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>C.</given-names>
            <surname>Arora</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sabetzadeh</surname>
          </string-name>
          , Briand L. C., and
          <string-name>
            <given-names>F.</given-names>
            <surname>Zimmer</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Requirement boilerplates: Transition from manually-enforced to automatically-verifiable natural language patterns</article-title>
          .
          <source>In Requirements Patterns (RePa)</source>
          ,
          <source>2014 IEEE 4th International Workshop on</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <given-names>Peter</given-names>
            <surname>Pin-Shan Chen</surname>
          </string-name>
          .
          <year>1976</year>
          .
          <article-title>The entity-relationship model&amp;mdash;toward a unified view of data</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <fpage>9</fpage>
          -
          <lpage>36</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>Julio</given-names>
            <surname>Cesar</surname>
          </string-name>
          . S. do Prado Leite and
          <string-name>
            <given-names>A.</given-names>
            <surname>Freeman</surname>
          </string-name>
          .
          <year>1991</year>
          .
          <article-title>Requirements validation through viewpoint resolution</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>17</volume>
          (
          <issue>12</issue>
          ):
          <fpage>1253</fpage>
          -
          <lpage>1269</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Fajar J. Ekaputra</surname>
            , Estefan´ıa Serral, and
            <given-names>Stefan</given-names>
          </string-name>
          <string-name>
            <surname>Biffl</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Building an empirical software engineering research knowledge base from heterogeneous data sources</article-title>
          .
          <source>In Proceedings of the 14th International Conference on Knowledge Technologies and Datadriven Business, i-KNOW '14</source>
          , pages
          <fpage>13</fpage>
          :
          <fpage>1</fpage>
          -
          <lpage>13</lpage>
          :
          <fpage>8</fpage>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>Leah</given-names>
            <surname>Goldin and Daniel M. Berry</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Reuse of requirements reduced time to market at one industrial shop: a case study</article-title>
          .
          <source>Requirements Engineering</source>
          ,
          <volume>20</volume>
          (
          <issue>1</issue>
          ):
          <fpage>23</fpage>
          -
          <lpage>44</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>Bryan</given-names>
            <surname>Goodrich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D</given-names>
            <surname>Kurkiewicz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Tyler</given-names>
            <surname>Rinker</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Bridging the gap between qualitative data and quantitative analysis</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <given-names>Georgios</given-names>
            <surname>Gousios</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>The ghtorent dataset and tool suite</article-title>
          .
          <source>In Proceedings of the 10th Working Conference on Mining Software Repositories, MSR '13</source>
          , pages
          <fpage>233</fpage>
          -
          <lpage>236</lpage>
          , Piscataway, NJ, USA. IEEE Press.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <given-names>Julian</given-names>
            <surname>Kupiec</surname>
          </string-name>
          , Jan Pedersen, and
          <string-name>
            <given-names>Francine</given-names>
            <surname>Chen</surname>
          </string-name>
          .
          <year>1995</year>
          .
          <article-title>A trainable document summarizer</article-title>
          . In Proceedings
          <string-name>
            <surname>Alberto H. F. Laender</surname>
          </string-name>
          , Berthier A.
          <string-name>
            <surname>Ribeiro-Neto</surname>
          </string-name>
          ,
          <article-title>Altigran S. da</article-title>
          <string-name>
            <surname>Silva</surname>
          </string-name>
          , and
          <string-name>
            <surname>Juliana</surname>
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Teixeira</surname>
          </string-name>
          .
          <year>2002</year>
          .
          <article-title>A brief survey of web data extraction tools</article-title>
          .
          <source>SIGMOD Rec</source>
          .,
          <volume>31</volume>
          (
          <issue>2</issue>
          ):
          <fpage>84</fpage>
          -
          <lpage>93</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Lynne</surname>
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Markus</surname>
          </string-name>
          .
          <year>2001</year>
          .
          <article-title>Toward a theory of knowledge reuse: Types of knowledge reuse situations and factors in reuse success</article-title>
          .
          <source>Journal of Management Information Systems</source>
          ,
          <volume>18</volume>
          (
          <issue>1</issue>
          ):
          <fpage>57</fpage>
          -
          <lpage>93</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <given-names>Cade</given-names>
            <surname>Metz</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>Triple play: Githubs code now lives in three places at once</article-title>
          . Wired, Last accessed
          <fpage>08</fpage>
          -14-
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <given-names>Roxana L.Q.</given-names>
            <surname>Portugal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Julio</given-names>
            <surname>Cesar</surname>
          </string-name>
          . S. do Prado Leite, and
          <string-name>
            <given-names>E.</given-names>
            <surname>Almentero</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Time-constrained requirements elicitation: reusing github content</article-title>
          .
          <source>In JustIn-Time Requirements Engineering (JITRE)</source>
          ,
          <source>2015 IEEE Workshop on</source>
          , pages
          <fpage>5</fpage>
          -
          <lpage>8</lpage>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <given-names>Antoinette</given-names>
            <surname>Renouf</surname>
          </string-name>
          .
          <year>2003</year>
          .
          <article-title>Webcorp: providing a renewable data source for corpus linguists</article-title>
          .
          <source>Language and Computers</source>
          ,
          <volume>48</volume>
          (
          <issue>1</issue>
          ):
          <fpage>39</fpage>
          -
          <lpage>58</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <given-names>M.</given-names>
            <surname>Ridao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Doorn</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Julio</given-names>
            <surname>Cesar</surname>
          </string-name>
          .
          <source>S. do Prado Leite</source>
          .
          <year>2001</year>
          .
          <article-title>Domain independent regularities in scenarios</article-title>
          .
          <source>In Requirements Engineering</source>
          ,
          <year>2001</year>
          . Proceedings. Fifth IEEE International Symposium on, pages
          <fpage>120</fpage>
          -
          <lpage>127</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <given-names>J.</given-names>
            <surname>Sinclair</surname>
          </string-name>
          .
          <year>2005</year>
          .
          <article-title>Corpus and Text - Basic Principles in Developing Linguistic Corpora: a Guide to Good Practice. Appendix: How to build a Corpus. Oxford-Oxbow Books</article-title>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>