Component-based software engineering is increasingly being adopted for software development. This approach relies on using reusable components as the building blocks for contructing 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 toal 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 andnew components, and corresponding retesting strategies are provided.