Building an Experience Factory for Maintenance

Building an Experience Factory for Maintenance


Our goal is to build a set of models (data, processes, etc.) for software maintenance, similar to what we have been doing for software development at the Software Engineering Laboratory.


This project began in October 1993 and is being conducted using an empirical approach, AINSI, which is an instantiation of the more general Quality Improvement Paradigm (QIP) and the Goal/Question/Metric Paradigm (GQM).

Several models have been built. We have studied differences in process descriptions, with the goal of comparing benefits and costs, so we may recommend opportunities for improvement.

The experience we acquire with this project can be used in other software organizations to help us analyze qualitatively and quantitatively its maintenance environment. Based on the outputs provided by this analysis, we will be able to provide feedback, guidelines, and models for the maintenance task leaders and managers of the maintenance projects and, thus, help them schedule maintenance activities, predict maintenance costs, allocate resources, and define more accurate milestones.

Validation Strategy

First, qualitative studies were performed in order to better comprehend organization- and process-related issues. Here, the objective was to identify and understand, as objectively as possible, the real issues faced by the organization. Specific modeling techniques such as the Agent Dependency Model were used as part of this step. Such a technique can help capture important properties of the organizational context of the maintenance process and help to understand the cause-effect mechanisms leading to problems. Such qualitative data must be complemented with quantitative data.

In a subsequent step, the outputs produced by the first step were used to justify and define a relevant and efficient measurement program (i.e., what to collect, when to collect, and how to collect). In addition, interpreting the data coming from such a program was made easier because of the increased level of understanding of the process in place.

Once the measurement program began (i.e., data collection forms were available, data collection procedures defined, people trained, etc.), process and product data were collected and various issues identified as relevant to the maintenance process were analyzed. Based upon such analyses, the relationships between process attributes, such as effort, and other variables characterizing the changes, the product to be changed, and the change process were identified.


  1. Understanding and Predicting the Process of Software Maintenance Releases.
    V. Basili, L. Briand, S. Condon, Y.-M. Kim, W. L. Melo and J. Valett.
    In Proc. of the 18th Int'l Conf. on Software Engineering, Berlin, Germany, 1996.

  2. An Inductive Method for Process Improvement: Concrete Steps and Guidelines.
    L. Briand, K. El-Emam and W. L. Melo .
    In Proc. of the ESI-ISCN'95: Measurement and Trainning Based Process Improvment, Sep. 11-12, 1995. Vienna, Austria.

  3. Characterizing and Assessing a Large-Scale Software Maintenance Organization."
    L. Briand, W. L. Melo C. Seaman and V. Basili.
    In Proc. of the 17th Int'l Conf. on Software Engineering, Seattle, WA, April 24-28, 1995.

  4. A Change Analysis Process to Characterize Software Maintenance Projects.
    L. Briand, V. Basili, Y. Kim, and D. Squier.
    In Proc of the Int'l Conf. on Software Maintenance, Sept 1994.

<- Back to ESEG Home Page
Last updated on Nov 23 1995 by Walcélio Melo