<!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>Supplying Collaborative Source-code Retrieval Tools to Software Developers</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Juan M. Fernández-Luna</string-name>
          <email>jmfluna@decsai.ugr.es</email>
          <email>una@decsai.ugr.es</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juan F. Huete</string-name>
          <email>jhg@decsai.ugr.es</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Julio C. Rodríguez-Cano</string-name>
          <email>jcrcano@uci.cu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Centro de Desarrollo Territorial, Holguín. Universidad de las, Ciencias Informáticas</institution>
          ,
          <addr-line>80100, Holguín</addr-line>
          ,
          <country country="CU">Cuba</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Departamento de Ciencias de</institution>
          ,
          <addr-line>la Computación e Inteligencia, Artificial, CITIC-UGR.</addr-line>
          ,
          <institution>Universidad de Granada</institution>
          ,
          <addr-line>18071 Granada</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Departamento de Ciencias de</institution>
          ,
          <addr-line>la Computación e Inteligencia, Artificial, CITIC-UGR.</addr-line>
          ,
          <institution>Universidad de Granada</institution>
          ,
          <addr-line>18071 Granada</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>One of the reasons that the existing IR systems do not Collaborative information retrieval (CIR) and search-driven adequately support collaboration is that there are not good software development (SDD) are both new emerging research models and methods that describe users' behavior during fields; the first one was born in response to the problem of collaborative tasks. To address this issue, the community satisfying shared information needs of groups of users that has adopted CIR as an emerging research field in charge to collaborate explicitly, and the second to explore source-code establish techniques to satisfy the shared information needs retrieval concept as an essential activity during software de- of group members, starting from the extension of the IR velopment process. Taking advantages of the recent con- process with the knowledge about the queries, the context, tributions in CIR and SDD, in this paper we introduce a and the explicit collaboration habits among group members. plug-in that can be added to the NetBeans IDE in order CIR community identifies four fundamental features in this to enable remote teams of developers to use collaborative multidisciplinary field that can enhance the value of collasource-code retrieval tools. We also include in this work borative search tools: user intent transition, awareness, diexperimental results to confirm that CIR&amp;SDD techniques vision of labor, and sharing of knowledge [2]. give out better search results than individual strategies. In addition, SDD is a new research area motivated by the observation that software developers spend most of their Categories and Subject Descriptors time searching pertinent information that they need in order to solve their tasks at hand. We identified that SDD context H.5.3 [Information Interfaces and presentation (e.g., was a very interesting field where collaborative IR features HCI)]: Group and Organization Interfaces; H.3.3 [Information could be greatly exploited. For this reason we use the phrase Storage and Retrieval]: Search Process. collaborative SDD to refer to the application of di↵ erent collaborative IR techniques in the SDD process [3]. General Terms It's known than some IDE incorporate tools with support Design, Human Factors. for developer's collaboration practices, but without making emphasis in source-code retrieval. In this sense, the objec-</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In the last few years, Information Retrieval (IR) Systems
have become critical tools for software developers. Today
we can use vertical IR systems focused in integrated
development environment (IDE) extensions for source-code
retrieval as such Strathcona [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], CodeConjurer [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], and
CodeGenie [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], but these only allow an individual interaction from
the team developers’s perspective.
      </p>
      <p>Copyright c 2011 for the individual papers by the papers’ authors.
Copying permitted only for private and academic purposes. This volume is
published and copyrighted by the editors of EuroHCIR2011.
2.</p>
      <p>
        There is a small body of work that investigates methods
to join collaborative information retrieval and search-driven
software development. On the one hand, some researchers
have identified di↵ erent search scenarios where it is
necessary to extend IR systems with collaborative capabilities. For
example, in the Web context, SearchTogether [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] is a
system which enables remote users to synchronously or
asynchronously collaborate when searching the Web. It supports
collaboration with several mechanisms of group awareness,
division of labor, and persistence. On the other hand, the
SDD community presents di↵ erent prototypes and systems.
For example, Sourcerer [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is an infrastructure for large-scale
indexing and analysis of open source code. Sourcerer crawls
Internet looking for Java code from a variety of locations,
such as open source repositories, public web sites, and
version control systems.
      </p>
      <p>
        CIR systems can be applied in several domains, such as
travel planning, organizing social events, working on a
homework assignment or medical environments, among many
others. We identified software development as another
possible application field where much evidence of collaboration
among programmers on a development task can be found.
For example, concurrent edition of models and processes
require synchronous collaboration between architects and
developers who can not be physically present at a common
location [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>However, current SDD systems do not have support for
explicit collaboration among developers with shared
technical information needs, which frequently look for additional
documentation on the API (Application Programming
Interface), read posts for people having the same problem,
search the company’s site for help with the API, or looking
for source code examples where other people successfully
used the API. Fortunately, in the last few years, some
researchers have realized that collaboration is an important
feature, which should be analyzed in detail in order to be
integrated with operational IR systems, upgrading them to
CIR systems.</p>
      <p>
        As an approach to these situations, we propose in this
work the COSME plug-in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. It makes the contribution in
current SDD providing explicit support for teams of
developers, enabling developers to collaborate on both the
process and results of a search. COSME provides
collaborative search functions for exploring and managing source-code
repositories and documents about technical information in
the software development context.
      </p>
      <p>In order to support such CIR techniques, COSME
provides some collaborative services in the context of SDD:
• The embedded chat tool enables direct communication
among di↵ erent developers.
• Relevant search results can be shared with the explicit
recommender mechanisms.
• Another important feature is the automatic division
of labor. By implementing an e↵ ective division of
labor policy the search task can be split across team
developers, thereby avoiding considerable duplication
of e↵ ort.
• Through awareness mechanisms all developers are
always informed about the team activities to save e↵ ort.
Awareness is a valuable learning mechanism that help
the less experienced developers to view the syntax used
by their teammates, being an inspiration to
reformulate their queries.
• All search results can be annotated, either for personal
use, like a summary, or in the team context, for
discussion threads and ratings.
3.</p>
    </sec>
    <sec id="sec-2">
      <title>THE COSME PLUG-IN</title>
      <p>
        To improve software developers with shared technical
information needs we implemented the COSME front-end as
a NetBeans IDE plug-in. The principal technologies that
we used to implement it include the CIRLab framework [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
NetBeans IDE platform, Java as programming language,
and AMENITIES (A MEthodology for aNalysis and desIgn
of cooperaTIve systEmS) as software engineering
methodology. COSME is designed to enable either synchronous
or asynchronous, but explicit remote collaboration among
teams of developers with shared technical needs. In the
following section we are going to outline COSME.
3.1
      </p>
    </sec>
    <sec id="sec-3">
      <title>Current Features</title>
    </sec>
    <sec id="sec-4">
      <title>EXPERIMENTAL EVALUATION</title>
      <p>In this section we are going to show how collaborative
features applied to SDD improves the traditional
operation without them. Then if we consider the null
hypothesis (H0) that AT SDD ACSDD, our alternative hypothesis
(H1) is that the collaborative work should help to improve
the retrieval performance in a SDD task: AT SDD &lt; ACSDD,
where TSDD stands for Traditional SDD and CSDD for
Collaborative SDD. To evaluate our proposal we compare 10
group interactions in two di↵ erent kinds of search scenarios
(SS) on SDD, SS2k+1 and SS2(k+1); k 2 0, . . . , 9. SS2k+1
represents a team of developers that use a conventional IR
system, this means that developers do not have access to
techniques of division of labor, sharing of knowledge, or
awareness (traditional SDD – TSDD), while S2(k+1)
represents a team of developers that uses a CIR system. Then, 5
teams worked in a TSDD context (those with odd subindexes)
and the other 5 with CSDD (even subindexes). In both
search scenarios, we used COSME with the appropriate
configurations for both settings.
The search scenario was a common task proposed to a
group of developers without Java background: select the
most relevant classes to manage GUI (Graphical User
Interface) components using di↵ erent Java API with a total
of 2420 files. Specifically, Jidesoft (634), OpenSwing (434)),
SwingX (732)) and Swing (620). We have focussed on these
API because they are directly related to the context of the
experiment although they are not complete: we have only
considered their most relevant API packages for the
experiment.</p>
      <p>For evaluation purposes, we created our own test
collection: a group of 10 experts proposed a set of 100 topics
strongly related to the objective of the experimentation,
then their corresponding queries were submitted to each of
the following search engines: Lucene, Minion, Indri and
Terrier. A document pool was obtained by ranking fusion and
later the experts, grouped in pairs, determined the relevant
documents for each topic.</p>
      <p>In collaborative SDD, it is very important to analyze the
interaction among group members, therefore, unlike the
evaluation of a traditional SDD system, we can not fix the
queries. Then each participating group could freely
formulate their queries to the search engine. In order to compare
team results, the search engine identified the most similar
queries formulated by the members of the teams with
respect to those formulated by experts. If the system found
enough similarity and if they occur in all the groups, then
these queries are considered that deals with the same topic
and selected for group comparison purposes. The
similarity measure between queries is calculated by Equation 1. A
user query (qu) and an expert query (qe) are considered to
be the same if they are within a given similarity threshold.
A new query qu0 is obtained applying the Porter stemmer
algorithm to qu’s terms, and analogously, we would obtain
qe0.</p>
      <p>sim(qu, qe) = | qu0 T qe0 | =
| qu0 S qe0 |
(1)</p>
      <p>In Equation 1, is a value between 0 and 1. For this
experiment we assumed that there exists an expert’s relevance
judgement to qu only if 9 N2N+1 , where N =| qu0 S qe0 |,
selecting the relevance judgements that correspond to max
for each qe.</p>
      <p>
        In order to measure the e↵ ectiveness of the described SST SDD
and SSCSDD scenarios, we considered as evaluation
measures the metrics proposed by Pickens et al. in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], i.e.
selected precision (Ps, the fraction of documents judged
relevant by the developer that were marked relevant in the
ground truth), and selected recall (Rs) as their dependent
measures. To summarize e↵ ectiveness in a single number we
use F1s measure.
      </p>
      <p>According to the documents that each team selected for
each common topic, F1s measure was computed. In order to
accomplish the statistical analysis of the results, we use the
non parametric test of Wilcoxon (all against all). The Monte
Carlo method was used and adjusted with the 99% trust
intervals and 10000 signs. It was considered the existences
of significance (Sig.) as appear in Table 1.</p>
      <p>We could notice significative di↵ erences between TSDD
and CSDD groups, considered two by two. As F1s values for
CSDD groups are better than those computed from TSDD
groups for those cases, then we could conclude that when
teams works supported by collaborative tools, they obtain
better results. From Table 1, we could realize that apart
from SS5, each SST SDD has got at least one SSCSDD with
significant di↵ erence values of F1s. With this results we
accept H1, because AT SDD &lt; ACSDD.
0, 054
0, 290
0,090
0, 190
0, 029†
SS10 0, 290
†: significant di↵ erence (0, 01  Sig &lt; 0, 05)
‡: highly significant di↵ erence (Sig &lt; 0, 01)</p>
    </sec>
    <sec id="sec-5">
      <title>CONCLUSIONS AND FUTURE WORKS</title>
      <p>Collaboration in SDD is just being recognized as an
important research area. While in some cases collaborative
SDD can be handled by conventional search engines, we
need to understand how the collaborative nature of
sourcecode retrieval a↵ ects the requirements on search algorithms.
Research in this direction needs to adopt the theories and
methodologies of SDD and CIR, and supplement them with
new approach constructs as appropriate. In this work we
present COSME as a collaborative SDD tool that helps team
developers to find better sources than searching with
traditional SDD strategies, as well as an experimental approach
that confirms our hypotheses.</p>
      <p>Our ongoing work focuses on the COSME back-end which
poses fundamental research challenges as well as provides
new opportunities to let group members collaborate in new
ways:</p>
      <p>(i) Profile Analysis. We aim to analyze the user-generated
data using various techniques from the study of di↵ erent
collaborative virtual environments and recommender systems.
With the results, our goal is to provide better personalized
search results, support the users while searching and
recommend users to relevant trustworthy collaborators.</p>
      <p>(ii) P2P/hybrid-network Retrieval. Due to scalability
and privacy issues we favor a distributed environment by
means of a P2P (peer-to-peer) retrieval feature based on
hybrid architecture to store the user-generated data and
collections (CASPER – CollAborative Search in PEer-to-peer
netwoRks). The main challenges in this respect are to ensure
a reliable and e cient data analysis.</p>
    </sec>
    <sec id="sec-6">
      <title>ACKNOWLEDGMENTS</title>
      <p>This work has been partially supported by the Spanish
research programme Consolider Ingenio 2010: MIPRCV
(CSD200700018), the Spanish MICIN project TIN2008-06566-C04-01
and the Andalusian Consejer´ıa de Innovacio´n, Ciencia y
Empresa project TIC-04526. We also would like to thank
Carmen Torres for support and discussions and for all of our
experiment participants.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bajracharya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ossher</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Lopes</surname>
          </string-name>
          . Sourcerer:
          <article-title>An internet-scale software repository</article-title>
          .
          <source>In SUITE '09: Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation</source>
          , pages
          <fpage>1</fpage>
          -
          <lpage>4</lpage>
          , Washington, DC, USA,
          <year>2009</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Ferna</surname>
          </string-name>
          <article-title>´ndez-</article-title>
          <string-name>
            <surname>Luna</surname>
            ,
            <given-names>J. F.</given-names>
          </string-name>
          <string-name>
            <surname>Huete</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <article-title>P´erez-Va´zquez, and</article-title>
          <string-name>
            <surname>J. C.</surname>
          </string-name>
          <article-title>Rodr´ıguez-Cano. Cirlab: A groupware framework for collaborative information retrieval research</article-title>
          .
          <source>Information Processing and Management</source>
          ,
          <volume>44</volume>
          (
          <issue>1</issue>
          ):
          <fpage>256</fpage>
          -
          <lpage>273</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Ferna</surname>
          </string-name>
          <article-title>´ndez-</article-title>
          <string-name>
            <surname>Luna</surname>
            ,
            <given-names>J. F.</given-names>
          </string-name>
          <string-name>
            <surname>Huete</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <article-title>P´erez-Va´zquez, and</article-title>
          <string-name>
            <surname>J. C.</surname>
          </string-name>
          <article-title>Rodr´ıguez-Cano. Improving search-driven development with collaborative information retrieval techniques</article-title>
          .
          <source>In HCIR '09: IIIrd Workshop on Human-Computer Interaction and Information Retrieval</source>
          , Washington DC, USA,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Ferna</surname>
          </string-name>
          <article-title>´ndez-</article-title>
          <string-name>
            <surname>Luna</surname>
            ,
            <given-names>J. F.</given-names>
          </string-name>
          <string-name>
            <surname>Huete</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <article-title>P´erez-Va´zquez, and</article-title>
          <string-name>
            <surname>J. C.</surname>
          </string-name>
          <article-title>Rodr´ıguez-Cano. Cosme: A netbeans ide plugin as a team-centric alternative for search driven software development</article-title>
          . In Group 2010: Ist Workshop on Collaborative Information Seeking, Florida, USA,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Holmes</surname>
          </string-name>
          .
          <article-title>Do developers search for source code examples using multiple facts?</article-title>
          <source>In SUITE 2009: First International Workshop on Search-Driven Development Users, Infrastructure, Tools and Evaluation</source>
          , Vancouver, Canada,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>W.</given-names>
            <surname>Janjic</surname>
          </string-name>
          .
          <article-title>Lowering the barrier to reuse through test-driven search</article-title>
          .
          <source>In SUITE 2009: First International Workshop on Search-Driven Development Users, Infrastructure, Tools and Evaluation</source>
          , Vancouver, Canada,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Jim</surname>
          </string-name>
          <article-title>´enez, M. Piattini, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Vizca</surname>
          </string-name>
          <article-title>´ıno. Challenges and improvements in distributed software development: A systematic review</article-title>
          .
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M. R.</given-names>
            <surname>Morris</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Horvitz</surname>
          </string-name>
          .
          <article-title>Searchtogether: an interface for collaborative web search</article-title>
          .
          <source>In UIST '07: Proceedings of the 20th annual ACM symposium on User interface software and technology</source>
          , pages
          <fpage>3</fpage>
          -
          <lpage>12</lpage>
          , New York, NY, USA,
          <year>2007</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J.</given-names>
            <surname>Pickens</surname>
          </string-name>
          , G. Golovchinsky,
          <string-name>
            <given-names>C.</given-names>
            <surname>Shah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Qvarfordt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Back</surname>
          </string-name>
          .
          <article-title>Algorithmic mediation for collaborative exploratory search</article-title>
          .
          <source>In SIGIR '08: Proceedings of the 31st annual international ACM SIGIR conference on Research and development in information retrieval</source>
          , pages
          <fpage>315</fpage>
          -
          <lpage>322</lpage>
          , New York, NY, USA,
          <year>2008</year>
          . ACM.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>