24 research outputs found

    ANALYSIS AND RECOMMENDATIONS FOR DEVELOPER LEARNING RESOURCES by

    No full text
    Developer documentation helps developers learn frameworks and libraries, yet developing and maintaining accurate documentation require considerable effort and resources. Contributors who work on developer documentation need to at least take into account the project’s code and the support needs of users. Although related, the documentation, the code, and the support needs evolve and are not always synchronized: for example, new features in the code are not always documented and questions repeatedly asked by users on support channels such as mailing lists may not be addressed by the documentation. Our thesis is that by studying how the relationships between documentation, code, and users ’ support needs are created and maintained, we can identify documentation improvements and automatically recommend some of these improvements to contributors. In this dissertation, we (1) studied the perspective of documentation contributors by interviewing open source contributors and users, (2) developed a technique that automatically generates the model of documentation, code, and users ’ support needs, (3) devised a technique that recover

    Recommending adaptive changes for framework evolution

    No full text
    Application frameworks provide a general design that connects together the different parts of a program and that free developers from low-value activities. In the course of a framework's evolution, changes ranging from a simple function renaming to major modifications of the design can break client programs that depend on the framework. Finding suitable replacements for framework elements that were accessed by a client program and deleted as part of the framework's evolution can be a challenging task. We present a recommendation system, SemDiff, that suggests adaptations to client programs by analyzing how a framework was adapted to its own changes. In a study of the evolution of a large open-source framework and three client programs, our approach recommended relevant adaptive changes with a high level of precision, and detected non-trivial changes typically undiscovered by current changes detection techniques.Les cadres d'applications fournissent un design gĂ©nĂ©ral qui relie les diffĂ©rentes parties d'un programme et qui libĂšre les dĂ©veloppeurs des tĂąches Ă  faible valeur ajoutĂ©e. Durant l'Ă©volution d'un cadre d'applications, des changements allant d'un simple renommage d'une fonction Ă  des modifications majeures du design peuvent briser les programmes clients qui dĂ©pendent du cadre d'applications. Trouver un remplacement adĂ©quat pour les Ă©lĂ©ments du cadre d'applications qui Ă©taient accĂ©dĂ©s par le programme client et qui ont Ă©tĂ© supprimĂ©s durant l'Ă©volution du cadre d'applications peut s'avĂ©rer ĂȘtre une tĂąche difficile. Nous prĂ©sentons un systĂšme de recommandations, SemDiff, qui suggĂšre des adaptations aux programmes clients en analysant comment un cadre d'applications a Ă©tĂ© adaptĂ© Ă  ses propres modifications. Dans une Ă©tude sur l'Ă©volution d'un grand cadre d'applications en code source libre et de trois programmes clients, notre systĂšme a recommandĂ© des adaptations pertinentes avec un haut degrĂ© de prĂ©cision. Notre systĂšme a aussi dĂ©tectĂ© des changements non triviaux qui sont typiquement ignorĂ©s par les techniques de dĂ©tection de changements courantes

    Aiding evolution with concern-oriented guides

    No full text
    Program documentation is often incomplete and out of date due to its tediousness and perceived low value. This requires evolution tasks to be preceded by time-consuming exploration. In this paper, we explore a concern-oriented approach to documentation that focuses on the code artifacts and their relationships to make the process of creating and using program documentation more efficient. As opposed to traditional documents or tutorials, guides created using this approach are interactive, almost wordless and automatically maintain implementation examples. We also present the rationale and the architecture of Mismar, a toolset tightly integrated in the Eclipse environment and implementing this approach. Moreover, since program documentation involves different artifact types, Mismar was build from the ground up to be extensible, and to support artifacts written in multiple languages or modeling approaches
    corecore