Documentation Reuse: Hot Or Not? an Empirical Study Mohamed Oumaziz, Alan Charpentier, Jean-Rémy Falleri, Xavier Blanc

Total Page:16

File Type:pdf, Size:1020Kb

Documentation Reuse: Hot Or Not? an Empirical Study Mohamed Oumaziz, Alan Charpentier, Jean-Rémy Falleri, Xavier Blanc Documentation Reuse: Hot or Not? An Empirical Study Mohamed Oumaziz, Alan Charpentier, Jean-Rémy Falleri, Xavier Blanc To cite this version: Mohamed Oumaziz, Alan Charpentier, Jean-Rémy Falleri, Xavier Blanc. Documentation Reuse: Hot or Not? An Empirical Study. 16th International Conference on Software Reuse (ICSR), May 2017, Salvador, Brazil. pp.12-27, 10.1007/978-3-319-56856-0_2. hal-02182142 HAL Id: hal-02182142 https://hal.archives-ouvertes.fr/hal-02182142 Submitted on 6 Jan 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Documentation Reuse: Hot or Not? An Empirical Study Mohamed A. Oumaziz, Alan Charpentier, Jean-R´emy Falleri, Xavier Blanc CNRS, Bordeaux INP, Univ. Bordeaux LaBRI, UMR 5800 F-33400, Talence, France {moumaziz,acharpen,falleri,xblanc}@labri.fr Abstract. Having available a high quality documentation is critical for software projects. This is why documentation tools such as Javadoc are so popular. As for code, documentation should be reused when possible to increase developer productivity and simplify maintenance. In this paper, we perform an empirical study of duplications in JavaDoc documentation on a corpus of seven famous Java APIs. Our results show that copy- pastes of JavaDoc documentation tags are abundant in our corpus. We also show that these copy-pastes are caused by four different kinds of relations in the underlying source code. In addition, we show that popular documentation tools do not provide any reuse mechanism to cope with these relations. Finally, we make a proposal for a simple but efficient automatic reuse mechanism. Keywords: documentation, reuse, empirical study 1 Introduction Code documentation is a crucial part of software development as it helps devel- opers understand someone else's code without reading it [13,25]. It is even more critical in the context of APIs, where the code is developed with the main intent to be used by other developers (the users of the API) that do not want to read it [12, 16, 17]. In this context, having a high quality reference documentation is critical [5]. Further, it has been shown that the documentation has to be close to its cor- responding code [8,9,14]. Developers prefer to write the documentation directly in comments within the code files rather than in external artifacts [22]. Popular documentation tools, such as JavaDoc or Doxygen, all share the same principle which is to parse source code files to extract tags from documentation comments and to generate readable web pages [20, 24]. Writing documentation and code are highly coupled tasks. Ideally, developers should write and update the documentation together with the code. However, it has been shown that the documentation is rarely up-to-date with the code [8,9, 14] and is perceived as very expensive to maintain [4, 5]. 2 Mohamed A. Oumaziz, Alan Charpentier, Jean-R´emy Falleri, Xavier Blanc We think that one possible reason for this maintenance burden is that docu- mentation tools lack reuse mechanisms whereas there are plenty of such mecha- nisms in programming languages. Developers that write documentation therefore copy-paste many documentation tags, which is suspected to increase the main- tenance effort [11]. As an example, let us consider a case of delegation as shown in the Figure 1. In this example, the right method is just returning directly a value computed from the left method. As expected, some documentation tags from the left method are copy-pasted in the right method: the common parameters and the return value. As a consequence, if the documentation of the callee method is updated, an update of the caller documentation will have to be carried out manually, which is well known to be error-prone [11]. /** /** * @param a the first collection, must * @param a the first collection, must not be null not be null * @param b the second collection, must * @param b the second collection, must not be null not be null * @return true iff the collections * @param equator the Equator contain the same elements with the used for testing equality same cardinalities. * @return true iff the collections */ contain the same elements with the public static boolean same cardinalities. isEqualCollection(final */ Collection a, final public static boolean Collection b) { isEqualCollection(final ... Collection a, final return true; Collection b, final Equator } equator ) { ... return isEqualCollection(collect(a, transformer), collect(b, transformer)); } Fig. 1. Extract of a documentation duplication due to method delegation (in the Apache Commons Collections project). Duplicated tags are displayed in bold. In this paper, we investigate this hypothesis and more formally answer the two following research questions: { RQ1: Do developers often resort to copy-paste documentation tags? { RQ2: What are the causes of documentation tags copy-paste and could they be avoided by a proper usage of documentation tools? We answer our research questions by providing an empirical study performed on a corpus of seven popular Java APIs where the need of documentation is crit- ical (see Section 2.1). We answer the first research question by showing how big is the phenomenon of documentation tags copy-pasting (see Section 3). To that extent, we automatically identify what we call documentation tags duplications (Section 2.2), count them, and manually check if they are intended copy-pastes Documentation Reuse: Hot or Not? An Empirical Study 3 or just created by coincidence. We answer the second research question by in- vestigating the intended copy-pastes we observed with the objective to find out their causes. Then we analyze whether existing documentation tools can cope with them (see Section 4). We further extend our second research question by providing a proposal for a simple but useful documentation reuse mechanism. Our results show that copy-pastes of documentation tags are abundant in our corpus. We also show that these copy-pastes are caused by four kinds of relations that take place in the underlying source code. In addition, we show that popular documentation tools do not provide any reuse mechanism to cope with these relations. The structure of this paper is as follows. First, Section 2 presents our corpus and the tool we create to automatically identify documentation duplications. Then, Section 3 and Section 4 respectively investigate our two research questions. Finally, Section 5 describes the related works about software documentation and Section 6 concludes and describes future work. 2 Experimental Setup In this section, we first explain how we create our corpus (Section 2.1), and give general statistics about it. Then, we describe how we extract documentation duplications contained in our corpus (Section 2.2). 2.1 Corpus The corpus of our study is composed of seven Java APIs that use JavaDoc, arbi- trary selected from the top 30 most used Java libraries on GitHub as computed in a previous work of Teyton et al. [23]. We just considered the source code used to generate the documentation displayed on their websites. We also choose to focus only on methods' documentation, as this is where there is most of the documentation. In the remainder of this paper, we therefore only discuss about the documentation of Java methods written in JavaDoc. Table 1 presents these seven APIs. All the data gathered for this study is available on our website1. As we can see in the General section of this table, the projects are medium to large sized (from 33 to 1,203 classes). As expected, they contain a fair amount of documentation: from about 28% to 97% of the methods are documented. The Tags section of this table gives some descriptive statistics of the JavaDoc tags used. As we can see, the most frequent tags are usually, in order: @description, @param, @return and @throw. Finally, the inheritDoc section of this table shows that there are few @inheritDoc tags. Such tags are used to express a documentation reuse between two methods but the method that reuses the documentation must override or implement the method that contains the reused documentation. 1 http://se.labri.fr/a/ICSR17-oumaziz 4 Mohamed A. Oumaziz, Alan Charpentier, Jean-R´emy Falleri, Xavier Blanc Table 1. Statistics computed from our corpus and the documentation it contains. acc1 acio2ggson3Guava JUnit Mockito SLF4J General # of classes 466 119 72 1,203 205 375 33 # of methods 4,078 1,173 569 9,928 1,319 1,716 433 % of documented methods 61.53 97.27 52.55 36.37 43.44 28.15 36.49 Tags # of @description 1,939 922 265 3,073 448 436 128 # of @param 1,199 734 106 749 178 237 51 # of @throw 438 209 65 462 12 11 5 # of @return 892 322 92 414 90 131 42 inheritDoc # of usage 85 18 0 112 2 0 0 1 Apache Commons Collections 2 Apache Commons IO 3 google-gson 2.2 Documentation Duplication Detector A documentation duplication is a set of JavaDoc tags that are duplicated among a set of Java methods. If it is intended then it was created by a copy-paste, if not then it was created by coincidence. We propose a documentation duplication detector that inputs a set of Java source code files and outputs the so-called documentation duplications2. The detector first parses the Java files and identifies all the documentation tags they contain by using the GumTree tool [7].
Recommended publications
  • Doxydoxygen User Guide Release 0.79.4
    DoxyDoxygen User Guide Release 0.79.4 20Tauri Aug 16, 2021 MANUAL 1 Welcome to DoxyDoxygen 1 2 Installation 3 2.1 Software installation with Package Control...............................3 2.2 Manual software installation.......................................3 2.3 License installation............................................4 2.4 EULA (End User License Agreement)..................................4 2.4.1 Licenses.............................................4 2.4.2 Description of other rights and limitations...........................4 2.4.3 No warranties..........................................5 3 Usage 7 3.1 Create a documentation block......................................7 3.2 Update / wrap an existing documentation block.............................8 3.3 Switch between comment styles.....................................9 3.4 Extend a documentation block......................................9 3.4.1 Auto-completion........................................9 3.4.2 Comment continuation..................................... 10 3.5 Navigate in documentation........................................ 10 3.5.1 Move to the right column.................................... 10 3.5.2 Follow references........................................ 10 3.6 Fold / Unfold comments......................................... 11 3.7 Translate................................................. 11 3.8 Generate documentation......................................... 12 4 Customization 13 4.1 Settings.................................................. 13 4.1.1 Understand
    [Show full text]
  • Java™ Technology Test Suite Development Guide
    Java™ Technology Test Suite Development Guide 1.2 For Java Compatibility Test Suite Developers Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 U.S.A. 650-960-1300 November 2003 Copyright © 2003 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, California 95054, U.S.A. All rights reserved. THIS SOFTWARE CONTAINS CONFIDENTIAL INFORMATION AND TRADE SECRETS OF SUN MICROSYSTEMS, INC. USE, DISCLOSURE OR REPRODUCTION IS PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SUN MICROSYSTEMS, INC. U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements. Sun, the Sun logo, Sun Microsystems, Java, the Java Coffee Cup logo, JavaTest, Java Community Process, JCP,J2SE, Solaris and Javadoc are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. The Adobe®logo is a registered trademark of Adobe Systems, Incorporated. This distribution may include materials developed by third parties. Third-party software, including font technology, is copyrighted and licensed from Sun suppliers. UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. The Adobe® logo is a registered trademark of Adobe Systems, Incorporated. Products covered by and information contained in this service manual are controlled by U.S. Export Control laws and may be subject to the export or import laws in other countries. Nuclear, missile, chemical biological weapons or nuclear maritime end uses or end users, whether direct or indirect, are strictly prohibited. Export or reexport to countries subject to U.S.
    [Show full text]
  • Java Programming Standards & Reference Guide
    Java Programming Standards & Reference Guide Version 3.2 Office of Information & Technology Department of Veterans Affairs Java Programming Standards & Reference Guide, Version 3.2 REVISION HISTORY DATE VER. DESCRIPTION AUTHOR CONTRIBUTORS 10-26-15 3.2 Added Logging Sid Everhart JSC Standards , updated Vic Pezzolla checkstyle installation instructions and package name rules. 11-14-14 3.1 Added ground rules for Vic Pezzolla JSC enforcement 9-26-14 3.0 Document is continually Raymond JSC and several being edited for Steele OI&T noteworthy technical accuracy and / PD Subject Matter compliance to JSC Experts (SMEs) standards. 12-1-09 2.0 Document Updated Michael Huneycutt Sr 4-7-05 1.2 Document Updated Sachin Mai L Vo Sharma Lyn D Teague Rajesh Somannair Katherine Stark Niharika Goyal Ron Ruzbacki 3-4-05 1.0 Document Created Sachin Sharma i Java Programming Standards & Reference Guide, Version 3.2 ABSTRACT The VA Java Development Community has been establishing standards, capturing industry best practices, and applying the insight of experienced (and seasoned) VA developers to develop this “Java Programming Standards & Reference Guide”. The Java Standards Committee (JSC) team is encouraging the use of CheckStyle (in the Eclipse IDE environment) to quickly scan Java code, to locate Java programming standard errors, find inconsistencies, and generally help build program conformance. The benefits of writing quality Java code infused with consistent coding and documentation standards is critical to the efforts of the Department of Veterans Affairs (VA). This document stands for the quality, readability, consistency and maintainability of code development and it applies to all VA Java programmers (including contractors).
    [Show full text]
  • Java Code Documentation Example
    Java Code Documentation Example Fruitless Martino sometimes quick-freeze his peritonitis hugely and night-club so dispraisingly! Glottogonic and sublinear Finn melt his bodice permeates podding benevolently. Oswald usually medicines surgically or orbs telescopically when polyunsaturated Hugh dement evidentially and lewdly. The javadoc itself an unsupported extension and is also important in the description for code documentation comment merely repeats the banner section DocsapijavanetURLhtmlgetAuthority-- a method getAuhority in the. API reference code comments Google Developers. Omitting many times classes being documented type, and java example of each field, all trademarks and description below code completion window, which we used to. Java Programming Style Guide. The keyboard shortcut to comment multiple in Windows is shift alt A. 10 Best Practices to multiple While Writing Code Javarevisited. Concise presentations of java programming practices tasks and conventions amply illustrated with syntax highlighted code examples. Java Documentation Comments Tutorialspoint. Java Programming Guidelines. If this tag easily comment related comments java code, this user to new field in the dependency. The following examples demonstrate a pain line summary followed by detailed documentation in song three. CS 302 Commenting Guide Program Commenting Guide File. For sober you spawn use author tag to identify the author of a. Opinions expressed by the code example code documentation is overridden in the documentation for example code base classes and decide to allow bikes to achieve these methods. Example slope from the Javadoc documentation code can be documented inline Single Line comments are started by each may be positioned after a. The Documentation Comment Specification permits leading asterisks on enough first.
    [Show full text]
  • The Java® Language Specification Java SE 8 Edition
    The Java® Language Specification Java SE 8 Edition James Gosling Bill Joy Guy Steele Gilad Bracha Alex Buckley 2015-02-13 Specification: JSR-337 Java® SE 8 Release Contents ("Specification") Version: 8 Status: Maintenance Release Release: March 2015 Copyright © 1997, 2015, Oracle America, Inc. and/or its affiliates. 500 Oracle Parkway, Redwood City, California 94065, U.S.A. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. The Specification provided herein is provided to you only under the Limited License Grant included herein as Appendix A. Please see Appendix A, Limited License Grant. To Maurizio, with deepest thanks. Table of Contents Preface to the Java SE 8 Edition xix 1 Introduction 1 1.1 Organization of the Specification 2 1.2 Example Programs 6 1.3 Notation 6 1.4 Relationship to Predefined Classes and Interfaces 7 1.5 Feedback 7 1.6 References 7 2 Grammars 9 2.1 Context-Free Grammars 9 2.2 The Lexical Grammar 9 2.3 The Syntactic Grammar 10 2.4 Grammar Notation 10 3 Lexical Structure 15 3.1 Unicode 15 3.2 Lexical Translations 16 3.3 Unicode Escapes 17 3.4 Line Terminators 19 3.5 Input Elements and Tokens 19 3.6 White Space 20 3.7 Comments 21 3.8 Identifiers 22 3.9 Keywords 24 3.10 Literals 24 3.10.1 Integer Literals 25 3.10.2 Floating-Point Literals 31 3.10.3 Boolean Literals 34 3.10.4 Character Literals 34 3.10.5 String Literals 35 3.10.6 Escape Sequences for Character and String Literals 37 3.10.7 The Null Literal 38 3.11 Separators
    [Show full text]
  • Java Api Documentation Generator
    Java Api Documentation Generator Select Download Format: Download Java Api Documentation Generator pdf. Download Java Api Documentation Generator doc. examplesDeem appropriate are made javadoc, by default. the Alsojava documentationbe used as image generator files you reads design, all code,making copy a printer. to advanced As a much implementationthe generator classes is responsive through and initial use? overview Dependency summary chain and they how do to aircrafthook up of a the super url. classOas definitionnames and can hasbe just been created written by a thefree! play. Nifty Command search in linegenerating description api documentationand then outputs that a milliondemonstrates developers how have to also sunconsume conventions an optionalshort for chrome summary is copied and for documentation.your research! Sql Accompanying auto recompile the processopen source to load code plugins by the for annotationsinstance the ortools. more. Can Blog easily posts generate by class similar or conditions output format of documentation of the java files output or any any additional pattern in. Various youmethods can be and downloaded get access andto the it? webProbably service take operations a user has in yourdeveloped oas and are is they that? use Streamlined to find user approach friendly mayoutput be any the ofindex. api? BothContaining machines only and for theis very generator much timedoes i notstill properlya simpler parsed and formats through the any service. import path producedArgument byis mydefault javascript or inline api tag documentation and price. Scope generator of as istheir a replacement. java documentation Inspired generator by describing is the the value. facilitatingPosts by tools interaction. like adding We extendedfound in the descriptions, classpath environmentwrite og tag isvariable, it? During and its website uses of in api number generator of class.
    [Show full text]
  • Java Platform, Standard Edition Javadoc Guide
    Java Platform, Standard Edition Javadoc Guide Release 14 F23120-01 March 2020 Java Platform, Standard Edition Javadoc Guide, Release 14 F23120-01 Copyright © 2014, 2020, Oracle and/or its affiliates. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or “commercial computer software documentation” pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in the applicable contract.
    [Show full text]
  • Javadoc Guide
    Java Platform, Standard Edition Javadoc Guide Release 11 E94885-02 November 2018 Java Platform, Standard Edition Javadoc Guide, Release 11 E94885-02 Copyright © 2014, 2018, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency- specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S.
    [Show full text]
  • Oracle® Universal Content Management 1 Java Content Repository (JCR) 2 Required Apis and Runtime Libraries
    Oracle® Universal Content Management Content Server JCR Repository Adapter 10g Release 3 (10.1.3.3.2) May 2008 This document describes the Oracle Content Server JCR Repository Adapter and provides deployment and configuration information. Oracle adapters are fully standards-based and compliant with both the J2EE Connector Architecture and the Web Services Architecture. The Content Server JCR adapter can be deployed on any JSR-170-compliant application to enable communication with Oracle Content Server via the standards-based JCR specification. 1 Java Content Repository (JCR) The Java Content Repository API is a specification for accessing content repositories in a standardized manner. This specification was developed under the Java Community Process as JSR-170 and includes the Content Repository for Java API and the Java Content Repository (JCR). The standard APIs associated with the JSR-170 specification are functional and exposed in the Content Server JCR adapter. The JCR 1.0 API is required and must by pre-deployed and integrated as part of the underlying framework. Content Server JCR Adapter API Documentation The API documentation for the Content Server JCR adapter is provided as a JavaDoc, and is included in the Oracle Content Server JCR Repository Adapter distribution file. JCR 1.0 API Documentation The API documentation for the JCR 1.0 API is available online as a JavaDoc and can be referenced from the Apache Software Foundation website or the Java Community Process website. Apache Software Foundation: http://www.apache.org/ Java Community Process: http://www.jcp.org/ 2 Required APIs and Runtime Libraries The Content Server JCR adapter can be used with any application that supports the JSR-170 specification, but requires a custom integration.
    [Show full text]
  • Concept Maps in Product Development Preparing to Redesign Java.Sun.Com
    A case study from Exposing the Magic of Design: A Practitioner’s Guide to the Methods and Theory of Synthesis Using concept maps in product development Preparing to redesign java.sun.com Hugh Dubberly — Dubberly Design Offi ce — [email protected] Dubberly Design Offi ce consults on development of The Benefi ts of Concept Mapping software and services. We follow a user-centered process that often involves mapping. We use concept Deepening Understanding We developed a concept maps to represent factors that infl uence the product map of Java as a way to understand Java. The map development process. We regularly map user goal helped us prepare to redesign and re-launch Sun’s main structures and user interactions; business models and web site for Java developers, java.sun.com. Concept resource fl ows; and hardware and software mapping was one of many tools that we used in the infrastructure and information fl ows. Increasingly, we design process, including auditing the existing site, are called on to map data models and content domains. reviewing site traffi c logs, and interviewing Java Many of today’s new software applications and developers. This case study focuses on the Java concept online services integrate content more deeply than map and does not describe the other tools or the larger earlier desktop productivity applications. As Nicholas site redesign effort. Negroponte predicted, content, computing, and The main question that we faced was this: How communications have converged. should we organize java.sun.com? What should the A concept map is a collection of terms related to information architecture be? Answering these questions a main idea.
    [Show full text]
  • Mysql Connector/J 5.1 Release Notes
    MySQL Connector/J 5.1 Release Notes Abstract This document contains release notes for the changes in each release of MySQL Connector/J 5.1. It also contains release notes for earlier series of Connector/J. Support EOL for MySQL Connector/J 5.1 Per Oracle's Lifetime Support policy, as of Feb 9th, 2021, MySQL Connector/J 5.1 series is covered under Oracle Sustaining Support. Users are encouraged to upgrade to MySQL Connector/J 8.0 series. For additional Connector/J documentation, see MySQL Connector/J 5.1 Developer Guide. Updates to these notes occur as new product features are added, so that everybody can follow the development process. If a recent version is listed here that you cannot find on the download page (https://dev.mysql.com/ downloads/), the version has not yet been released. The documentation included in source and binary distributions may not be fully up to date with respect to release note entries because integration of the documentation occurs at release build time. For the most up-to-date release notes, please refer to the online documentation instead. For legal information, see the Legal Notices. For help with using MySQL, please visit the MySQL Forums, where you can discuss your issues with other MySQL users. Document generated on: 2021-09-24 (revision: 23364) Table of Contents Preface and Legal Notices ................................................................................................................. 4 Changes in MySQL Connector/J 5.1 ................................................................................................... 5 Changes in MySQL Connector/J 5.1.49 (2020-04-29, General Availability) .................................... 5 Changes in MySQL Connector/J 5.1.48 (2019-07-29, General Availability) ...................................
    [Show full text]
  • Seahawk: Stack Overflow in The
    Seahawk: Stack Overflow in the IDE Luca Ponzanelli, Alberto Bacchelli, Michele Lanza REVEAL @ Faculty of Informatics – University of Lugano, Switzerland Abstract—Services, such as Stack Overflow, offer a web plat- Despite Q&A services being broadly used and deemed useful form to programmers for discussing technical issues, in form for practical programming tasks, they are currently isolated of Question and Answers (Q&A). Since Q&A services store the from the integrated development environments (IDEs) that discussions, the generated “crowd knowledge” can be accessed and consumed by a large audience for a long time. Nevertheless, programmers use in their daily activities, and where they spend Q&A services are detached from the development environments most of their working time [4]). In fact, the web browser is the used by programmers: Developers have to tap into this crowd only gate to Q&A crowd knowledge: There is no integration knowledge through web browsers and cannot smoothly integrate with IDEs or programming and team workflow. it into their workflow. This situation hinders part of the benefits We claim that this status hinders the benefits brought by of Q&A services. To better leverage the crowd knowledge of Q&A services, we Q&A services for a number of reasons, such as: created Seahawk, an Eclipse plugin that supports an integrated (1) the quality of the results returned by Q&A service and largely automated approach to assist programmers using relies on the quality of queries manually formulated by Stack Overflow. Seahawk formulates queries automatically from developers [11], who must accurately phrase the meaning of the active context in the IDE, presents a ranked and interactive their current programming task into useful terms; list of results, lets users import code samples in discussions through drag & drop and link Stack Overflow discussions and (2) developers have no support for sharing functional source code persistently as a support for team work.
    [Show full text]