You have free access to this content

Journal of Software: Evolution and Process

Cover image for Vol. 26 Issue 1

Special Issue: A Selection of Distinguished Papers from the 18th Working Conference on Reverse Engineering 2011

January 2014

Volume 26, Issue 1

Pages i–iii, 1–139

Issue edited by: Martin Pinzger, Denys Poshyvanyk

  1. Issue Information

    1. Top of page
    2. Issue Information
    3. Editorial
    4. Special Issue Papers
    1. You have free access to this content
      Issue Information (pages i–iii)

      Article first published online: 14 JAN 2014 | DOI: 10.1002/smr.1622

  2. Editorial

    1. Top of page
    2. Issue Information
    3. Editorial
    4. Special Issue Papers
    1. You have free access to this content
  3. Special Issue Papers

    1. Top of page
    2. Issue Information
    3. Editorial
    4. Special Issue Papers
    1. You have free access to this content
      An exploratory study of the evolution of communicated information about the execution of large software systems (pages 3–26)

      Weiyi Shang, Zhen Ming Jiang, Bram Adams, Ahmed E. Hassan, Michael W. Godfrey, Mohamed Nasser and Parminder Flora

      Article first published online: 25 FEB 2013 | DOI: 10.1002/smr.1579

      Thumbnail image of graphical abstract

      In this paper, we find that the communicated information changes at a high rate across versions, which could lead to fragile log processing apps. We find that up to 70% of these changes could have been avoided and the impact of 15%–80% of the changes can be controlled through the use of robust analysis techniques. We also found that log processing apps that track implementation-level communicated information (e.g. performance analysis) and the log processing apps that monitor error messages (system health monitoring) are more fragile than log processing apps that track domain-level communicated information.

    2. You have free access to this content
      Automatic Segmentation of Method Code into Meaningful Blocks: Design and Evaluation (pages 27–49)

      Xiaoran Wang, Lori Pollock and K. Vijay-Shanker

      Article first published online: 18 FEB 2013 | DOI: 10.1002/smr.1581

      Thumbnail image of graphical abstract

      This paper presents and evaluates a heuristic solution to the automatic blank line insertion problem by leveraging both program structure and naming information to identify ‘meaningful blocks’, consecutive statements that logically implement a high-level action. Our tool, SEGMENT, takes as input a Java method and outputs a segmented version that separates meaningful blocks by vertical spacing. The results indicate strong positive overall opinion of SEGMENT's effectiveness compared with developer-written blank lines and blank lines inserted by newcomers to the code.

    3. You have free access to this content
      Predicting dependences using domain-based coupling (pages 50–76)

      Amir Aryani, Fabrizio Perin, Mircea Lungu, Abdun Naser Mahmood and Oscar Nierstrasz

      Article first published online: 29 MAY 2013 | DOI: 10.1002/smr.1598

      Thumbnail image of graphical abstract

      We propose a novel approach to predicting software dependences by exploiting the coupling present in domain-level information. Our approach is independent of the software implementation; hence, it can be used without access to the source code or the database. We evaluate our approach with a case study on a large-scale enterprise system, in which we demonstrate how up to 68% of the source code dependencies and 77% of the database dependencies are predicted solely based on domain information

    4. You have free access to this content
      Detecting asynchrony and dephase change patterns by mining software repositories (pages 77–106)

      Fehmi Jaafar, Yann-Gaël Guéhéneuc, Sylvie Hamel and Giuliano Antoniol

      Article first published online: 14 OCT 2013 | DOI: 10.1002/smr.1635

      Thumbnail image of graphical abstract

      Software maintenance accounts for the largest part of the costs of any program. During maintenance activities, developers implement changes (sometimes simultaneously) on artifacts in order to fix bugs or/and to implement new requirements. They also introduce so-called change patterns that describe some typical change dependencies among files. In this paper, we introduce two novels change patterns: the asynchrony change pattern, corresponding to macro co-changes, that is, of files that co-change within a large time interval (change periods) and the dephase change pattern, corresponding to dephase macro co-changes, that is, macro co-changes that always happen with the same shifts in time.

    5. You have free access to this content
      Comparing text-based and dependence-based approaches for determining the origins of bugs (pages 107–139)

      Steven Davies, Marc Roper and Murray Wood

      Article first published online: 4 OCT 2013 | DOI: 10.1002/smr.1619

      Thumbnail image of graphical abstract

      Identifying bug origins is crucial for many software engineering activities, but doing so is challenging. Recently, two approaches have been developed, which examine textual and dependence-related changes preceding the bug fix, but only limited evaluation has been performed, partially because of a lack of available implementations and datasets. We identify 174 bug origins and compare them to a simulation of the approaches, and while both were partially successful, results suggest several potential improvements, which we explore in detail.

SEARCH

SEARCH BY CITATION