m, modules, types and operations), different kinds of abstractions (functional/data, types/objects etc.) without falling into a loose collection of diagram languages. Considering an architecture as a construction plan in a cooperative, creative, and dynamic software development process, the necessity arises to allow flexible adaptations with respect to given constraints, e.g. performance, interaction with legacy systems, integration of external (sub-)systems, distribution in a network etc. On one hand, a clean structure is required to make the architecture in itself and its parts understandable, robust, maintainable, and reusable. On the other hand, it has to be dealt with that a realistic software development process may need divergence from the desired structure. A fundamental notion in this dissertation therefore is to consider a clean logical architecture as well as concrete architectures reflecting respective modifications as individual results of architecture modelling. Furthermo...