Maintaining Evolving Component-Based Software with UML

Proceedings Seventh European Conference on Software Maintenance and Reengineering, Benevento, Italy, March 2003, pp 133 -142.

Ye Wu and Jeff Offutt


Component-based software engineering is increasingly being adopted for software development. This approach relies on using reusable components as the building blocks for constructing software. On the one hand, this helps improve software quality and productivity; on the other hand, it necessitates frequent maintenance activities. The cost of maintenance for conventional software can account for as much as two-thirds of the total cost, and it is likely to be more for component-based software.

This paper presents a UML-based technique that attempts to help resolve difficulties introduced by the implementation transparent characteristics of component-based software systems. This technique can also be useful for other maintenance activities. For corrective maintenance activities, the technique starts with UML diagrams that represent changes to a component, and uses them to support regression testing. To accommodate this approach for perfective maintenance activities, more challenges are encountered. We provide a UML-based framework to evaluate the similarities of the old and new components, and corresponding retesting strategies are provided.

Back to my home page.