Architecture is an abstract representation of a system’s components and behaviours, so it doesn’t contain details about implementation. The architect gathers information about the problem and designs a flexible solution that covers functional and non-functional requirements.
We can distinguish two types of architecture:
It is the result of a design process for a specific system and must consider the functions of components, their interfaces, interactions, and constraints. This specification is the basis for application design and implementation steps.
– Defining architecture for a system serves many objectives. It abstracts the description of dynamic systems by providing simple models. In this way, architecture helps the designer define and control the interfaces and the integration of the system components. During a redesign process, the architecture strives to reduce the impact of changes to as few modules as possible. The architectural system model allows the architect to focus on the areas requiring the most change.
– Architectures are best represented graphically using a tool such as UML (Unified Modeling Language). An architect communicates the design of the system to other members of the team using UML.
It refers to a coherent design principle used in a specific domain. Example of such architectures is the Java Enterprise Edition (JEE) model for computer-based information systems. This architecture describes the kinds of system components and their responsibilities, dependencies, possible interactions, and constraints.
The reference architecture is the basis for designing the system architecture for a particular system. When designing a system according to an architectural style, the architect can select from a set of well-known elements and use them in ways appropriate to the desired system architecture. The JEE architecture is a component-based service architecture. The architect designs the system to utilize the appropriate components for each task. For example, as we will see later in the book, Java ServerPages (JSP) can be used to provide a user view of the system response to a user gesture.