The potential benefits of evolving legacy systems to component-based system architectures are well documented. These include rapid, non-intrusive modernization through the use of commercial off-the-shelf (COTS) components and significantly reduced post-maintenance costs. However, the hype has not translated to a corresponding increase in the migration of legacy systems to component-based architectures. There are two main reasons for this. First, many legacy systems provide adequate core functionality. For this type of system, replacement may not be the most cost-effective solution. Second, there is a general lack of scalable methods and tools that support component-based modelling and evolution for legacy systems. The article discusses challenges of evolving legacy systems and proposes COMPonent-Oriented Software Engineering (COMPOSE), a component-based approach built on an extensible ADL that provides a framework for modelling, verifying and evolving legacy systems using black-box components. We also describe our experience of using it to evolve a legacy system.