— Software maintenance tools for program analysis and refactoring rely on a meta-model capturing the relevant properties of programs. However, what is considered relevant may change when the tools are extended with new analyses and refactorings, and new programming languages. This paper proposes a language independent meta-model and an architecture to construct instances thereof, which is extensible for new analyses, refactorings, and new front-ends of programming languages. Due to the loose coupling between analysis-, refactoring-, and frontend-components, new components can be added independently and reuse existing ones. Two maintenance tools implementing the meta-model and the architecture, VIZZANALYZER and XDEVELOP, serve as a proof of concept.