Journal of Software: Evolution and Process

Cover image for Vol. 25 Issue 12

December 2013

Volume 25, Issue 12

Pages 1225–1383

  1. Research Articles

    1. Top of page
    2. Research Articles
    1. Simulation of software maintenance process, with and without a work-in-process limit (pages 1225–1248)

      Giulio Concas, Maria Ilaria Lunesu, Michele Marchesi and Hongyu Zhang

      Version of Record online: 16 MAY 2013 | DOI: 10.1002/smr.1599

      Thumbnail image of graphical abstract

      We present a software process simulator of maintenance processes, and study two real maintenance projects, one from a Microsoft team and another from a Chinese software firm.

      We demonstrate that it is possible to effectively model and simulate, using actors and events, a maintenance process where a flow of issues is processed through a sequence of activities, reproducing key statistics of real data.

      We find that Lean-Kanban process is able to increase the efficiency of software maintenance.

    2. Design and implementation of a dynamic symbolic execution tool for windows executables (pages 1249–1272)

      Ting Chen, Xiao-song Zhang, Cong Zhu, Xiao-li Ji, Shi-ze Guo and Yue Wu

      Version of Record online: 20 MAY 2013 | DOI: 10.1002/smr.1601

      Thumbnail image of graphical abstract

      SMAFE is an automatic test generation tool for Windows executables that is based on dynamic symbolic execution. The whole process for building a DSE tool is provided including symbolization of inputs, tracking of symbols, synchronization of overlapped symbols, environment handling, and so on. Code coverage achieved by SMAFE is beyond 90%.

    3. Managing changes in requirements: an empirical investigation (pages 1273–1283)

      Andrea Janes, Tadas Remencius, Alberto Sillitti and Giancarlo Succi

      Version of Record online: 5 JUN 2013 | DOI: 10.1002/smr.1602

      Thumbnail image of graphical abstract

      The paper presents an investigation on how companies manage changing requirements. Regarding the requirements changes that cannot be avoided or reduced, the survey has highlighted two kinds of potential solutions. The former can be applied in situations with low requirements uncertainty and high domain knowledge. The latter can be applied in situations in which the level of existing uncertainty does not allow the development team to anticipate or predict information.

    4. Embracing the C preprocessor during refactoring (pages 1285–1304)

      Alejandra Garrido and Ralph Johnson

      Version of Record online: 26 JUN 2013 | DOI: 10.1002/smr.1603

      Thumbnail image of graphical abstract

      C preprocessor directives are heavily used in C programs because they provide useful and even necessary additions to the C language. We propose a new preprocessing approach and special program representations that allow a program to be analyzed and transformed during refactoring without losing its preprocessor directives. We describe the challenges that preprocessor directives bring to refactoring and how the program representations that we propose solve those challenges. We give details of two refactorings and present some case studies.

    5. Improving globally distributed software development and support processes – A workflow view (pages 1305–1324)

      Teemu Tunkelo, Ari-Pekka Hameri and Yves Pigneur

      Version of Record online: 19 JUN 2013 | DOI: 10.1002/smr.1604

      Thumbnail image of graphical abstract

      By applying lead time measurement based indicators to monitor globally distributed software development and support processes we show how customer experience can be improved. Full end-to-end process visibility and centrally managed reporting at all levels of the company developing, delivering and supporting a complex software system with tailored hardware components and unique end-customer installations catalyzed a change process toward significantly better performance. Lead times to implement new features and to respond to customer issues and requests were reduced by 50%.

    6. A case study of software process improvement with CMMI-DEV and Scrum in Spanish companies (pages 1325–1333)

      Javier Garzás and Mark C. Paulk

      Version of Record online: 26 JUL 2013 | DOI: 10.1002/smr.1605

      Thumbnail image of graphical abstract

      This paper presents a case study of the relationship between level 2 of Capability Maturity Model Integration for Development (CMMI-DEV) 1.3 (the what) and Scrum (the how). The objective of this research paper is to evaluate how Scrum helps implement a process model such as CMMI-DEV. The results obtained show that most of the process areas of CMMI-DEV level 2 had been improved by using Scrum.

    7. Automating the maintenance of nonfunctional system properties using demonstration-based model transformation (pages 1335–1356)

      Yu Sun, Jeff Gray, Romain Delamare, Benoit Baudry and Jules White

      Version of Record online: 28 JUL 2013 | DOI: 10.1002/smr.1606

      Thumbnail image of graphical abstract

      We present a demonstration-based approach to automate the maintenance and management of non-functional system properties at the software modeling level. Without any programming knowledge or the understanding of the metamodels, end users such as domain experts can use the presented approach to perform complex and large-scale non-functional system properties maintenance tasks in an intuitive and effective way.

    8. FaultTracer: a spectrum-based approach to localizing failure-inducing program edits (pages 1357–1383)

      Lingming Zhang, Miryung Kim and Sarfraz Khurshid

      Version of Record online: 7 OCT 2013 | DOI: 10.1002/smr.1634

      Thumbnail image of graphical abstract

      We present a novel approach, FAULTTRACER, which ranks program edits according to their suspiciousness to reduce developer effort in manually inspecting potentially failure-inducing edits. FAULTTRACER adapts spectrum-based fault localization techniques, which assume that the statements that are primarily executed by failed tests are more suspicious, and applies them in tandem with an enhanced change impact analysis to identify failure-inducing edits more precisely.