CacOphoNy: Metamodel-Driven Architecture Recovery

Far too often, architecture descriptions of existing software systems are out of sync with the implementation. If they are, they must be reconstructed, but this is a very challenging task. The first problem to be solved is to define what "software architecture" means in the company. The answer can greatly vary, especially among the many stakeholders. In order to solve this problem, this paper presents CacOphoNy, a generic metamodel-driven process for reconstructing software architecture. This paper provides a methodological guide and shows how metamodels can be used (1) to define architectural viewpoints, (2) to link these viewpoints to existing metaware and (2) to drive architecture reconstruction processes. The concepts presented in this paper were identified over the last decade in the context of Dassault Systemes, one of the largest software companies in Europe, with more than 1200 developers. CacOphoNy is however a very generic process pattern, and as such it can be applied in many other contexts. This process pattern is in line with the MDA and ADM approaches from the OMG. It also complies with the IEEE Standard 1471 for software architecture. A megamodel integrating these standards is presented.