It is a model for describing the architecture of software-intensive systems, based on the use of multiple, concurrent views. This use of multiple views allows to address separately the concerns of the various 'stakeholders' of the architecture: end-user, developers, systems engineers, project managers, etc., and to handle separately the functional and non functional requirements.
Software architecture deals with abstraction, with decomposition and composition, with style and esthetics. To describe software architecture, we use a model composed of multiple views or perspectives. In order to eventually address large and challenging architectures, the model proposed is made up of five main views.
• The logical view, which is the object model of the design (when an object-oriented design method is used),
• The process view, which captures the concurrency and synchronization aspects of the design,
• The physical view, which describes the mapping(s) of the software onto the hardware and reflects its distributed aspect,
• The development view, which describes the static organization of the software in its development environment.
The description of an architecture which is nothing but the decisions made can be organized around these four views, and then illustrated by a few selected use cases, or scenarios which become a fifth view. The architecture is in fact partially evolved from these scenarios.