Very large systems have an architecture that is designed to allow them to evolve through a long life. Such systems are developed by teams of architects. One of the first things the architects do is make a model of their architecture. This model constitutes the formal architecture description based on which software engineers will eventually build the real system. The architecture model is normally governed by a specialised metamodel whose rules determine the consistency and completeness of the description. The development of a system architecture is carried out cooperatively but independently by team members. Consequently it is quite normal for the architecture description as a whole to be both incomplete and inconsistent. The architects strive to eventually produce a complete overall (i.e. merged) description and to eliminate the inconsistencies. By means of an example, we show how and why the architecture model and the metamodel must co-evolve. We describe a design tool that we hav...
Peter Henderson, Matthew J. Henderson