scispace - formally typeset
Search or ask a question

Showing papers in "Journal of Software Maintenance and Evolution: Research and Practice in 2001"


Journal ArticleDOI
TL;DR: The paper provides a classified list of maintenance activities and a condensed decision tree as a summary guide to the proposed evidence-based classification of the types of software evolution and software maintenance.
Abstract: The past two decades have seen increasing sophistication in software work. Now and in the future, the work of both practitioners and researchers would be helped by a more objective and finer granularity recognition of types of software evolution and software maintenance activities as actually done. To these ends, this paper proposes a clarifying redefinition of the types of software evolution and software maintenance. The paper bases the proposed classification not on people's intentions but upon objective evidence of maintainers' activities ascertainable from observation of activities and artifacts, and/or a before and after comparison of the software documentation. The classification includes taking into account in a semi-hierarchical manner evidence of the change or lack thereof in: (1) the software, (2) the documentation, (3) the properties of the software, and (4) the customer-experienced functionality. A comparison is made with other classifications and typologies. The paper provides a classified list of maintenance activities and a condensed decision tree as a summary guide to the proposed evidence-based classification of the types of software evolution and software maintenance. Copyright © 2001 John Wiley & Sons, Ltd.

412 citations


Journal ArticleDOI
Ben Light1
TL;DR: In this paper, the authors present two case studies of ERP projects where customizations have been performed and show that while customization can give true organizational benefits, careful consideration is required to determine whether a customization is viable given its potential impact upon future maintenance.
Abstract: Enterprise resource planning (ERP) software is a dominant approach for dealing with legacy information system problems. In order to avoid invalidating maintenance and development support from the ERP vendor, most organizations reengineer their business processes in line with those implicit within the software. Regardless, some customization is typically required. This paper presents two case studies of ERP projects where customizations have been performed. The case analysis suggests that while customizations can give true organizational benefits, careful consideration is required to determine whether a customization is viable given its potential impact upon future maintenance. Copyright © 2001 John Wiley & Sons, Ltd.

125 citations


Journal ArticleDOI
TL;DR: A new category pertaining to ‘communication, coordination and knowledge exchange with external parties’ and herein labeled ‘external Parties’ is introduced to highlight the supporting role of external parties in ERP maintenance.
Abstract: A multiple case study approach was employed to identify maintenance activities pertaining to enterprise resource planning (ERP) implementation, classify them into maintenance categories, and assess their relative frequency at various stages of the ERP maintenance lifecycle. Five maintenance categories (corrective, adaptive, perfective, preventive, user support) were identified from a review of the literature on software maintenance. A new category pertaining to ‘communication, coordination and knowledge exchange with external parties’ and herein labeled ‘external parties’ is introduced to highlight the supporting role of external parties in ERP maintenance. This category includes reporting problems to vendors and consultants, tracking their progress towards problem resolution, and coordinating work and relations with vendors, consultants, and external user-organizations. This study also highlights some differences between maintenance trends of ERP versus traditional systems. Copyright © 2001 John Wiley & Sons, Ltd.

91 citations


Journal ArticleDOI
TL;DR: A longitudinal case study of one firm's emergent maintenance of its SAP R/3 system is reported, revealing that maintenance-related roles and relationships differ substantively from those typical of traditional maintenance.
Abstract: How a firm supports its enterprise resource planning system after putting it into production, when its maintenance may be said to be emergent, is critical to the benefits it will eventually derive. Here we report a longitudinal case study of one firm's emergent maintenance of its SAP R/3 system. The study reveals that maintenance-related roles and relationships differ substantively from those typical of traditional maintenance. We view this firm's maintenance practices to be a harbinger of broader and longer-term change in maintaining application portfolios. We suggest that the roles and relationships involved are likely to be more complex and therefore more varied in organizational form. In particular, we anticipate: (1) greater sharing of the maintenance task among more participants, with the firm's users often assuming the lead, supported by vendors and third parties; (2) the IS department often playing a more limited, but still key role in providing a portfolio's ongoing support services; and (3) a contingency approach to maintenance, the best approach being a function of specific organizational and systems circumstances. Copyright © 2001 John Wiley & Sons, Ltd.

89 citations


Journal ArticleDOI
TL;DR: This paper describes and explains the reformulation of Yau and Collofello's ripple-effect algorithm and its validity within the software-maintenance process, and shows how the approximation algorithm helps to overcome this.
Abstract: Recent software maintenance models have included impact analysis and accounting for ripple effect as one of their stages. This paper describes and explains the reformulation of Yau and Collofello's ripple-effect algorithm and its validity within the software-maintenance process. Completely automatic computation of ripple effect has until now proved troublesome; we show how our approximation algorithm helps to overcome this. Our Ripple Effect and Stability Tool (REST) which uses our approximated algorithm to compute ripple effect for C programs, is described. Eleven C programs are used in an initial investigation into whether our approximated algorithm can replace Yau and Collofello's original algorithm for the purpose of automatic computation of ripple effect. The Pearson correlation coefficient for the two versions of the algorithm across the eleven programs shows a high correlation.

85 citations


Journal ArticleDOI
TL;DR: It is concluded that the existing in-house software and hardware replacement models are insufficient for ERP situations and a preliminary ERP decision model is proposed that overcomes the observed insufficiencies.
Abstract: Over the last decade, many large organizations have been shifting from developing their own information system (IS) to licensing and installing large software packages known as enterprise resource planning (ERP) systems. These organizations now face the challenge of maintaining these costly systems and many are about to make their first upgrade decisions. The study reported herein aims to address the following research questions from the ERP-client perspective: (1) What are the fundamental factors driving ERP maintenance and upgrade decisions? (2) How do these factors differ from those for traditional custom, in-house software? and (3) Do existing software and hardware replacement models suffice for ERP maintenance and upgrade decision modeling? A single case study method and empirical data analysis were conducted and are presented here. We observe that ERP maintenance and upgrade characteristics are indeed unique in three ways: (1) most organizations maintain and upgrade their ERP systems in order to realize increased business benefits from the systems; (2) a new version upgrade reduces the number of ERP-client-done enhancement modifications; and (3) a new version upgrade potentially reduces future legal change patch (LCP) maintenance distributed by the ERP vendor. It was also found that on average LCP maintenance is almost as costly as user enhancements. Based on these findings, we conclude that the existing in-house software and hardware replacement models are insufficient for ERP situations. We propose a preliminary ERP decision model that overcomes the observed insufficiencies. Copyright © 2001 John Wiley & Sons, Ltd.

75 citations


Journal ArticleDOI
TL;DR: Detailed function-point analysis measurement rules using design specifications based on the Unified Modelling Language are proposed and a function- point measurement tool is described, whose inputs are design specifications developed on Rational Rose®.
Abstract: Function-point analysis was introduced to help measure the functionality of software systems. For more than a decade, function points have been widely used to measure the size of information systems, often as a part of estimating the effort required for software development and maintenance processes. Limiting the use of function point measurement have been concerns about variable judgements on the part of the personnel doing the measurement, yielding differences in function-point measures for the same software product even in the same organization. Also, if an organization tries to introduce function-point analysis, the process normally starts with measurements from the organization's own past software products—a time consuming task with start-up costs. In this paper, we propose detailed function-point analysis measurement rules using design specifications based on the Unified Modelling Language and describe a function-point measurement tool, whose inputs are design specifications developed on Rational Rose®. Then in this paper, we report tool validation work on software involved in software evolution at an organization where we have applied the tool to actual design specifications and examined the differences between the function point values obtained by the tool and those of an experienced function point measurement specialist at the organization. Copyright © 2001 John Wiley & Sons, Ltd.

57 citations


Journal ArticleDOI
TL;DR: In this article, the authors generalize some of the symptoms of ageing of a legacy system and define reengineering requirements to ensure long life to the system despite successive evolutions of the application and the operation domain.
Abstract: This study generalizes some of the symptoms of ageing of a legacy system. Each symptom is specified by metrics and the results of the measurements made suggest what operations should be undertaken to renew the software. The study is based on retrospective analysis of data collected during the execution of a large renewal process of a very old legacy system. It therefore provides evidence of the expected efficacy of such renewal processes and can be used to decide how best to plan them and manage them in order to increase their efficacy. It can also be used to define the reengineering requirements to ensure long life to the system despite successive evolutions of the application and the operation domain. The metrics can provide a basis for monitoring a software system to ensure that its quality does not degrade to such an extent that the most costly and risky renewal processes then have to be performed to improve it. Finally, the paper points out the problems with renewal processes that still remain open. Copyright © 2001 John Wiley & Sons, Ltd.

56 citations


Journal ArticleDOI
TL;DR: This paper seeks to stimulate research on large application package software maintenance by presenting a tentative framework for future research in the area, partially instantiating that framework with examples from the papers in this special issue of the Journal of Software Maintenance and Evolution, highlighting other specific areas of research need and neglect, and posing a long list of related research questions.
Abstract: This paper seeks to stimulate research on large application package software maintenance by presenting a tentative framework for future research in the area, partially instantiating that framework with examples from the papers in this special issue of the Journal of Software Maintenance and Evolution, highlighting other specific areas of research need and neglect, and posing a long list of related research questions. The user-organization-centric research framework captures relevant and interacting factors that can impact maintenance strategy, including software-source, support-source, and organizational and environmental contexts. These are viewed from the perspectives of four key stakeholders in the new distributed maintenance arrangement. In addition to the user-organization, stakeholders include the software vendor, third-party service providers, and society. Key messages from the paper include: maintenance generates benefits as well as costs; all stakeholders must have a lifecycle-wide view of maintenance costs and benefits; there is value in understanding all stakeholder perspectives; various software and related support sourcing alternatives have substantial maintenance incidence implications (incidence of costs, benefits, and responsibilities); and maintenance knowledge sourcing decisions should be made in the light of lifecycle-wide maintenance knowledge requirements.

45 citations


Journal ArticleDOI
TL;DR: This paper presents a framework to analyze warranty, maintenance, and upgrade decisions for software packages under different market conditions, and identifies a class of optimal policies that are surprisingly robust and easy to implement.
Abstract: Maintenance of large software systems is one of the least-structured problems in information systems. In this paper, we present a framework to analyze warranty, maintenance, and upgrade decisions for software packages under different market conditions. We discuss the impact of various factors, such as quality, market volatility, and technological obsolescence, on the software supplier's policies and economic return. We identify a class of optimal (or near optimal) policies that are surprisingly robust and easy to implement, and report on the effectiveness of these policies under different market conditions. Copyright © 2001 John Wiley & Sons, Ltd.

36 citations


Journal ArticleDOI
TL;DR: The approach for the inference of recurrent design patterns directly from the code was applied to three C++ applications for which the structural relations among classes led to the extraction of a set of design patterns, which could be enriched with non-structural information about class members and method invocations.
Abstract: When designing a new application, experienced software engineers usually adopt solutions that have proven successful in previous projects. Such reuse of code organizations is seldom made explicit. Nevertheless, it represents important information, which can be extremely valuable in the maintenance phase by documenting the design choices underlying the implementation. In addition it can be reused whenever a similar problem is encountered. In this paper an approach for the inference of recurrent design patterns directly from the code is proposed. No assumption is made on the availability of any pattern library, and the concept analysis algorithm—adapted for this purpose—is able to infer the presence of class groups which instantiate a common, repeated pattern. In fact, concept analysis provides sets of objects sharing attributes, which—in the case of object-oriented design patterns—become class members or inter-class relations. The approach was applied to three C++ applications for which the structural relations among classes led to the extraction of a set of design patterns, which could be enriched with non-structural information about class members and method invocations. The resulting patterns could be interpreted as meaningful organizations aimed at solving general problems which have several instances in the applications analyzed. Copyright © 2001 John Wiley & Sons, Ltd.

Journal ArticleDOI
TL;DR: An impact analysis technique that identifies which parts should be retested after a system written in C++ is modified is described, showing some evidence that this approach gives reasonable efficiency and precision as well as being practical for analyzing change impacts of C++ programs.
Abstract: This paper describes an impact analysis technique that identifies which parts should be retested after a system written in C++ is modified. We are interested in identifying the impacts of changes at the class member level by using dependency relations between class members. We try to find out which member functions need unit-level retesting and which interactions between them need integration-level retesting. To get precise analysis results, we adopt a technique that classifies types of changes and analyze the impact for each type. Primitive changes, changes which are associated with C++ features, are first defined and their ripple effects are computed in order to construct a firewall for each type of change systematically. We have applied our prototype tool to a real system with small size. This case study shows some evidence that our approach gives reasonable efficiency and precision as well as being practical for analyzing change impacts of C++ programs. Copyright © 2001 John Wiley & Sons, Ltd.

Journal ArticleDOI
TL;DR: In this case study, the prediction process is shown to be integral and one of the most important parts of the software maintenance process, and the process for determining the value for the break point is presented.
Abstract: In this paper we present a case study of the software maintenance practice that has been successfully applied to real-time distributed systems, which are installed and fully operational in Moscow, St. Petersburg, and other cities across Russia. In this paper we concentrate on the software maintenance process, including customer request servicing, in-field error logging, role of information system, software deployment, and software quality policy, and especially the software quality prediction process. In this case study, the prediction process is shown to be integral and one of the most important parts of the software maintenance process. We include a software quality prediction procedure overview and an example of the actual practice. The quality of the new software update is predicted on the basis of the current update's quantity metrics data and quality data, and new update's quantity metrics data. For management, this forecast aids software maintenance efficiency, and cost reduction. For practitioners, the most useful result presented is the process for determining the value for the break point. We end this case study with five lessons learned. Copyright © 2001 John Wiley & Sons, Ltd.

Journal ArticleDOI
TL;DR: The results show that for a context of corrective maintenance, principal components analysis together with classification trees are good descriptors for tracking software evolution.
Abstract: Summary Many of today’s software systems evolve through a series of releases that add new functionality and features, in addition to the results of corrective maintenance. As the systems evolve over time it is necessary to keep track of and manage their problematic components. Our focus is to track system evolution and to react before the systems become difficult to maintain. To do the tracking, we use a method based on a selection of statistical techniques. In the case study we report here that had historical data available primarily on corrective maintenance, we apply the method to four releases of a system consisting of 130 components. In each release, components are classified as fault-prone if the number of defect reports written against them are above a certain threshold. The outcome from the case study shows stabilising principal components over the releases, and classification trees with lower thresholds in their decision nodes. Also, the variables used in the classification trees’ decision nodes are related to changes in the same files. The discriminant functions use more variables than the classification trees and are more difficult to interpret. Box plots highlight the findings from the other analyses. The results show that for a context of corrective maintenance, principal components analysis together with classification trees are good descriptors for tracking software evolution. Copyright © 2001 by John Wiley & Sons, Ltd.

Journal ArticleDOI
TL;DR: This paper introduces an innovative approach to recovering domain knowledge with enhanced reliability from source code, rooted in cognitive science and social psychology, which adds rigour to the comprehension process.
Abstract: This paper introduces an innovative approach to recovering domain knowledge with enhanced reliability from source code. Domain knowledge is divided into inter-connected knowledge slices which are matched against the source code. Each knowledge slice has its own authenticity evaluation function which takes the belief of the evidences it needs as input and the authenticity of the knowledge slice is produced. These slices are arranged to exchange beliefs with each other through inter-connections, i.e., concepts, to obtain a better evaluation of the authenticity. Rooted in cognitive science and social psychology, the approach adds rigour to the comprehension process.

Journal ArticleDOI
TL;DR: In this article, the authors propose a novel approach for the extraction of code fragments for implementing functionality from program source code, which helps the software maintainer identify affected code fragments and make changes to program functionality.
Abstract: A data-intensive program interacts with its environment through accepting and delivering information from and to its environment respectively. As such, the functionality in a program is achieved through its input/output statements. Based on this hypothesis, this paper proposes a novel approach for the extraction of code fragments for implementing functionality from program source code. This helps the software maintainer identify affected code fragments for making changes to program functionality. The code fragments extracted may also be suitable for reuse in other software projects. Copyright © 2001 John Wiley & Sons, Ltd.


Journal ArticleDOI
TL;DR: An automatic tool for managing the software maintenance process according to MANTEMA, a rigorous methodology for maintenance, and how MANTOOL allows users to manage modification requests following the different stages of the methodology.
Abstract: SUMMARY In this paper we present MANTOOL, an automatic tool for managing the software maintenance process according to MANTEMA, a rigorous methodology for maintenance. After explaining briefly the MANTEMA structure, the article explains how MANTOOL allows users to manage modification requests following the different stages of the methodology, showing it with some examples. The data saved in MANTOOL can be used to extract different kinds of reports and to do estimations of future maintenance interventions. The paper also includes some experience reports about the construction and application of MANTEMA and MANTOOL, and some reflections on the benefits of its use. Copyright  2001 John Wiley &S ons, Ltd.

Journal ArticleDOI
TL;DR: The interpretation of these results is that the skill of the individual programmer is an important factor in ensuring that a software product remains maintainable over its lifetime and that software engineering education and training are therefore of major importance.
Abstract: RTP is a widely used commercial real-time product that has been maintained over a period of 13 years. We have analyzed multiple versions of RTP, which is written in C and Assembler. We measured increases in dependencies within the code between successive versions and performed statistical analyses on the data. There was no significant difference between the maintenance of Assembler files and C files. Also, there was no significant difference between the versions written by the original developers and those written by maintenance programmers not involved in the original development. The differences between individual programmers were very highly significant. Our interpretation of these results is that the skill of the individual programmer is an important factor in ensuring that a software product remains maintainable over its lifetime and that software engineering education and training are therefore of major importance. Copyright © 2001 John Wiley & Sons, Ltd.

Journal ArticleDOI
TL;DR: The results obtained show that the technique proposed makes assessment of which process components of a working process are candidates for making innovation more reliable, and is user independent and only a little training may be sufficient to sensibly improve the effectiveness of use of the scenarios.
Abstract: To improve a working process, one or more process components can be replaced by innovative ones. The literature provides a possible source of innovative process components. However, it is often difficult to evaluate whether a particular innovative process component satisfying an improvement goal can be introduced to replace a process component in the working software process to be improved. In previous works, the authors of this paper proposed a characterization and evaluation framework to address the above problem. To improve the usability of the framework, a scenario was defined for each question to help the user answer it methodically. The experiment presented in this paper aims to verify if a scenario-based reading technique improves the usability of the framework. The results obtained show that the technique proposed makes assessment of which process components of a working process are candidates for making innovation more reliable. Moreover, the scenario-based reading technique is user independent and only a little training may be sufficient to sensibly improve the effectiveness of use of the scenarios. The trustworthy results of this technique and its independence of the user's previous knowledge and ability ensure that it can be applied methodically. Copyright © 2001 John Wiley & Sons, Ltd.

Journal ArticleDOI
TL;DR: Software Maintenance: Concepts and Practice is an excellent paperback book that comprehensively covers a breadth of software maintenance issues and is a useful reference for software researchers and, to a lesser extent, practitioners.
Abstract: Software Maintenance: Concepts and Practice is an excellent paperback book that comprehensively covers a breadth of software maintenance issues. It is more than adequate as a textbook for a university-level course about software maintenance, although it has a few drawbacks in this respect (in particular a lack of technical guidance on key maintenance concerns such as impact analysis). In addition, it can be a useful reference for software researchers and, to a lesser extent, practitioners. Copyright © 2001 John Wiley & Sons, Ltd.

Journal ArticleDOI
TL;DR: Girish Parikh describes the factors that influenced his extensive work in software maintenance and describes his contributions to the field and their basis.
Abstract: Girish Parikh describes the factors that influenced his extensive work in software maintenance. He overviews his major publications, describes his contributions to the field and their basis. Copyright © 2001 John Wiley & Sons, Ltd.