Chapter 1.3: Understanding Architectural Design

Get Started. It's Free
or sign up with your email address
Chapter 1.3: Understanding Architectural Design by Mind Map: Chapter 1.3: Understanding Architectural Design

1. 1.3.1 Explain Architectural Process

1.1. Architectural design is concerned with understanding how a system should be organized and designing the overall structure of that system.

1.2. It identifies the main structural components in a system and the relationships between between design and requirements engineering.

1.3. The output of the architectural design process is an architectural model that describes how the system is organized as a set of communicating components.

2. Architectural Patterns

2.1. Patterns are a means of representing, sharing and reusing knowledge.

2.2. An architectural pattern is a stylized description of good design practice, which has been tried and tested in different environments.

2.3. Patterns should include information about when they are and when the are not useful.

2.4. Patterns may be represented using tabular and graphical descriptions.

3. 1. Layered Architecture

3.1. Description: Organizes the system into layers with related functionality associated with each layer. A layer provides services to the layer above it so lowest-level layers represent core services that are likely to be used throughout the system.

3.2. Usage: When building new facilities on top of existing systems. When the development is spread across several teams with each team responsibility for a layer of functionality; when there is a requirement for multi-level security.

4. 2. Repository Architecture

4.1. Description: All data in a system is managed in a central repository that is accessible to all system components. Components do not interact directly, only through the repository.

4.2. Usage: You should use this pattern when you have a system in which large volumes of information are generated that has to be stored for a long time. You may also use it in data-driven systems where the inclusion of data in the repository triggers an action or tool.

5. 3. Client-Server Architecture

5.1. Description: In a client-server architecture, the functionality of the system is organized into services, with each service delivered from a separate server. Clients are users of these services and access servers to make use of them.

5.2. Usage: When data in a shared database has to be accessed from a range of locations. Because servers can be replicated, may also be used when the load on a systems is variable.

6. 4. Pipe and Filter Architecture

6.1. Description: The processing of the data in a system is organized so that each processing component (filter) is discrete and carries out one type of data transformation. The data flow (as in the pipe) from one component to another to processing.

6.2. Usage: Commonly used in data processing applications (both batch-based and transaction-based) where inputs are processed in separate stages to generate related outputs.