Podcast
Questions and Answers
What is a common difficulty in layered architecture?
What is a common difficulty in layered architecture?
What is a performance issue in layered architecture?
What is a performance issue in layered architecture?
What is the primary advantage of the repository pattern?
What is the primary advantage of the repository pattern?
How do sub-systems exchange data in the repository model?
How do sub-systems exchange data in the repository model?
Signup and view all the answers
When should you use the repository pattern?
When should you use the repository pattern?
Signup and view all the answers
What is an example of the repository pattern?
What is an example of the repository pattern?
Signup and view all the answers
What is a characteristic of the repository pattern?
What is a characteristic of the repository pattern?
Signup and view all the answers
What is the purpose of including redundant components in system design?
What is the purpose of including redundant components in system design?
Signup and view all the answers
Why is the repository pattern efficient?
Why is the repository pattern efficient?
Signup and view all the answers
What is the main benefit of using replaceable components in system design?
What is the main benefit of using replaceable components in system design?
Signup and view all the answers
What is the primary focus of the process view in the 4+1 view model of software architecture?
What is the primary focus of the process view in the 4+1 view model of software architecture?
Signup and view all the answers
What is the purpose of the development view in the 4+1 view model of software architecture?
What is the purpose of the development view in the 4+1 view model of software architecture?
Signup and view all the answers
What is the purpose of the physical view in the 4+1 view model of software architecture?
What is the purpose of the physical view in the 4+1 view model of software architecture?
Signup and view all the answers
What is the purpose of the conceptual view in the 4+1 view model of software architecture?
What is the purpose of the conceptual view in the 4+1 view model of software architecture?
Signup and view all the answers
Why is UML not considered suitable for high-level system description?
Why is UML not considered suitable for high-level system description?
Signup and view all the answers
What is the primary benefit of presenting multiple views of a system's architecture?
What is the primary benefit of presenting multiple views of a system's architecture?
Signup and view all the answers
What is the primary limitation of box and line diagrams in architectural design?
What is the primary limitation of box and line diagrams in architectural design?
Signup and view all the answers
What is the key factor that influences the architectural design process?
What is the key factor that influences the architectural design process?
Signup and view all the answers
What is the benefit of thinking of architectural design as a series of decisions?
What is the benefit of thinking of architectural design as a series of decisions?
Signup and view all the answers
What is the primary advantage of architecture reuse?
What is the primary advantage of architecture reuse?
Signup and view all the answers
What is the primary goal of localizing critical operations in a system's architecture?
What is the primary goal of localizing critical operations in a system's architecture?
Signup and view all the answers
What is the primary benefit of using a layered architecture in system design?
What is the primary benefit of using a layered architecture in system design?
Signup and view all the answers
What is the primary goal of localizing safety-critical features in a system's architecture?
What is the primary goal of localizing safety-critical features in a system's architecture?
Signup and view all the answers
What is the primary characteristic of architectural patterns or 'styles'?
What is the primary characteristic of architectural patterns or 'styles'?
Signup and view all the answers
What is a disadvantage of the Model-View-Controller pattern?
What is a disadvantage of the Model-View-Controller pattern?
Signup and view all the answers
What is the primary purpose of the Layered architecture pattern?
What is the primary purpose of the Layered architecture pattern?
Signup and view all the answers
What is an advantage of the Layered architecture pattern?
What is an advantage of the Layered architecture pattern?
Signup and view all the answers
When is the Layered architecture pattern often used?
When is the Layered architecture pattern often used?
Signup and view all the answers
What is a characteristic of the Layered architecture pattern?
What is a characteristic of the Layered architecture pattern?
Signup and view all the answers
What is an example of a system that might use the Layered architecture pattern?
What is an example of a system that might use the Layered architecture pattern?
Signup and view all the answers
What is a benefit of using the Layered architecture pattern?
What is a benefit of using the Layered architecture pattern?
Signup and view all the answers
What is a characteristic of the Model-View-Controller pattern?
What is a characteristic of the Model-View-Controller pattern?
Signup and view all the answers
What is a major disadvantage of a repository architecture?
What is a major disadvantage of a repository architecture?
Signup and view all the answers
What is a characteristic of the client-server architecture?
What is a characteristic of the client-server architecture?
Signup and view all the answers
What is an advantage of a repository architecture?
What is an advantage of a repository architecture?
Signup and view all the answers
What is the purpose of servers in a client-server architecture?
What is the purpose of servers in a client-server architecture?
Signup and view all the answers
What is a characteristic of a client-server architecture?
What is a characteristic of a client-server architecture?
Signup and view all the answers
When is the client-server architecture commonly used?
When is the client-server architecture commonly used?
Signup and view all the answers
What is an advantage of the client-server architecture?
What is an advantage of the client-server architecture?
Signup and view all the answers
What is an example of a system that can be organized as a client-server system?
What is an example of a system that can be organized as a client-server system?
Signup and view all the answers
Study Notes
Box and Line Diagrams
- Box and line diagrams are very abstract and do not show the nature of component relationships nor the externally visible properties of sub-systems.
- Despite their abstractness, they are useful for communication with stakeholders and for project planning.
Architectural Design Decisions
- Architectural design is a creative process that differs depending on the type of system being developed, the background and experience of the system architect, and the specific requirements for the system.
- It is useful to think of architectural design as a series of decisions rather than a sequence of activities.
- System architects have to make a number of structural decisions that affect the system, its development process, and its non-functional characteristics.
Architecture Reuse
- Systems in the same domain often have similar architectures that reflect domain concepts.
- Application product lines are built around a core architecture with variants that satisfy particular customer requirements.
- The architecture of a system may be designed around one or more architectural patterns or 'styles'.
Architecture and System Characteristics
- Performance: localize critical operations and minimize communications; use large rather than fine-grain components.
- Security: use a layered architecture with critical assets in the inner layers.
- Safety: localize safety-critical features in a small number of sub-systems to reduce the costs and problems of safety validation.
- Availability: include redundant components and mechanisms for fault tolerance.
- Maintainability: use replaceable components that can be readily changed and separate producers of data from consumers.
Architectural Views
- What views or perspectives are useful when designing and documenting a system's architecture?
- Each architectural model only shows one perspective of the system.
- For both design and documentation, you usually need to present multiple views of the software architecture.
4 + 1 View Model of Software Architecture
- A logical view, which shows the key abstractions in the system as objects or object classes.
- A process view, which shows how, at run-time, the system is composed of interacting processes.
- A development view, which shows how the software is decomposed for development.
- A physical view, which shows the system hardware and how software components are distributed across the processors in the system.
- A conceptual view (+1), which is an abstract view of the system that decomposes high-level requirements into more detailed specifications.
Representing Architectural Views
- Some people argue that UML is an appropriate notation for describing and documenting system architectures.
- However, UML does not include abstractions appropriate for high-level system description.
Organization of the Model-View-Controller
- The organization of the Model-View-Controller (MVC) pattern.
Web Application Architecture using the MVC Pattern
- Web application architecture using the MVC pattern.
Layered Architecture
- Used to model the interfacing of sub-systems.
- Organizes the system into a set of layers each of which provides a set of services.
- Supports the incremental development of sub-systems in different layers.
- When a layer interface changes, only the adjacent layer is affected.
The Layered Architecture Pattern
- Name: Layered architecture
- Description: Organizes the system into layers with related functionality associated with each layer. A layer provides services to the layer above it.
- Example: A layered model of a system for sharing copyright documents held in different libraries.
- When used: When building new facilities on top of existing systems; when development is spread across several teams with each team responsible for a layer of functionality; when there is a requirement for multi-level security.
- Advantages: Allows replacement of entire layers so long as the interface is maintained. Redundant facilities (e.g., authentication) can be provided in each layer to increase the dependability of the system.
- Disadvantages: In practice, providing a clean separation between layers is often difficult, and a high-level layer may have to interact directly with lower-level layers rather than through the layer immediately below it. Performance can be a problem because of multiple levels of interpretation of a service request as it is processed at each layer.
Repository Architecture
- Sub-systems must exchange data, which can be done in two ways: shared data is held in a central database or repository and may be accessed by all sub-systems, or each sub-system maintains its own database and passes data explicitly to other sub-systems.
- When large amounts of data are to be shared, the repository model of sharing is most commonly used and is an efficient data-sharing mechanism.
The Repository Pattern
- Name: Repository
- 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.
- Example: Figure 6.9 is an example of an IDE where the components use a repository of system design information.
- When used: 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.
- Advantages: Components can be independent—they do not need to know of the existence of other components. Changes made by one component can be propagated to all components. All data can be managed consistently (e.g., backups done at the same time) as it is all in one place.
- Disadvantages: The repository is a single point of failure so problems in the repository affect the whole system. May be inefficiencies in organizing all communication through the repository. Distributing the repository across several computers may be difficult.
Client-Server Architecture
- Distributed system model which shows how data and processing is distributed across a range of components.
- Can be implemented on a single computer.
- Set of stand-alone servers which provide specific services such as printing, data management, etc.
- Set of clients which call on these services.
- Network which allows clients to access servers.
The Client-Server Pattern
- Name: Client-server
- 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.
- Example: Figure 6.11 is an example of a film and video/DVD library organized as a client–server system.
- When used: Used 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 system is variable.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
This quiz covers architectural design decisions, including box and line diagrams, and their importance in communication with stakeholders and project planning.