We present our experience in reorganizing an “inherited” monolithic piece of software in a component-based manner. We follow the guidelines of the UML Components in order to obtain a meaningful component architecture, which is then used for modifying and revising the inherited code. In this paper we describe both the defined component-based architecture and the stepwise process that we adopted for reorganizing the source code.