Résumé
Software architectures are the blueprint of software systems construction and evolution. During the overall software lifecycle, several changes of its architecture may be considered (e.g. including new soft- ware requirements, correcting bugs, enhancing software performance). To ensure a valid and reliable evolution, software architecture changes must be captured, verified and validated at an early stage of the soft- ware evolution process. In this paper, we address this issue by proposing a set of evolution rules for software architectures in a manner that pre- serves consistency and coherence between abstraction levels. The rules are specified in the B formal language and applied to a three-level Adl that covers the three steps of software development: specification, imple- mentation and deployment. To validate our rules, the approach is tested on a running example of Home Automation Software.