The architecture is physically implemented as structures and interactions between system elements. The architecture can be applied as an abstraction in order to produce and apply knowledge about a complex system. The architecture of a system exhibits non-functional emergent qualities. We focus on architectures that support understandability, reusability, and modifiability. Evolution play an important role in large software system.
Architecture is a means towards designing a flexible system that can cope with change.
In addition the architecture can be changed itself. We focus on architectural refactoring. Models are also a crucial part of working with software architecture, as models capture and make explicit our abstract view of the system. An important quality of architecture models is hence understandability. Models facilitate development, change, and application of architectures.