Chapter 6- Review exam 2
Why is architectural design important?
Because it affects the performance, robustness, distributability, and maintainability of a
system
What shapes are symbols are used to represent a system architecture?
Boxes: are used to represent different components
or modules of the system. Each box represents a particular function or group of functions.
- Arrows: Arrows are used to show the flow of data or control between different
components or modules.
- Lines: Lines are used to represent different types of relationships between components or
modules.
Advantages of using a system architecture
- Stakeholder communication
- System analysis
- Large-scale reuse
Performance, Security, Safety, Availability, and Maintainability. (characteristics)
- Performance: Architecture should be designed to localize operations and minimize
communications.
- Security: use a layered architecture with critical assets protected in the innermost layers.
means being free of risks associated with people who have a deliberate intention to do
harm.
- Safety: localize safety-critical features in a small number of sub-systems.
is the protection against risks caused by non-deliberate external factors (ie. accidents,
natural disasters, diseases, etc..).
- Availability: Include redundant components and mechanisms for fault tolerance
- Maintainability: Use fine-grain, self-contained components that may readily be changed.
Four architectural views: Logical view, physical view, development view, and process view.
Know the meaning of each.
- Logical view: shows the key abstractions in the system as objects or object classes. Shows
functionality in these objects.
- Physical view: shows the system hardware and how software components are distributed
across the processors in the system.
- Development view: shows how the software is decomposed for development.
- Process view: shows how, at run-time, the system is composed of interacting processes.
This view is useful for making judgments about non-functional system characteristics such
as performance and availability.
Architectural patterns you learned in this class and their meanings. Pipes and filters,
layered, client-server, model-view-controller, repository.
- Pipes and filters: 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 flows (as in a water pipe) from one component to another for processing.
- Layered: Organizes the system into layers with related functionality associated with each
layer.
- Client-server: 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.
- Model-view-controller: This pattern is the basis of interaction management in many web-
based systems and is supported by most language frameworks.
- Repository: 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.
Meanings and examples of application types: data processing, transaction processing,
event processing, and language processing.
- Data processing: Data-driven applications that process data in batches without explicit
user intervention during the processing. Ex: billing system
- Transaction processing applications: Data-centred applications that process user requests
and update information in a system database. Ex: Online shopping, banking, hotel
reservation systems
- Event processing systems: Applications where system actions depend on interpreting
events from the system’s environment. Ex: video games, vending machines
- Language processing systems: Applications where the users’ intentions are specified in a
formal language that is processed and interpreted by the system. Ex: compiler, google
assistant, web search engines