Software Architectural Styles Flashcards
(42 cards)
What does software architecture represent?
The high-level logical structure of software, composed of components and their interfaces.
What does the interface of a component include?
The interaction with other components, the system, end-users, or hardware devices.
According to IEEE, what is software architecture?
The fundamental organization of a system embodied in its components, their relationships, and the principles governing its design and maintenance.
Why is software architecture critical for success?
It represents the earliest and most significant design decisions.
What is the role of software architecture among stakeholders?
A communication medium to help them understand the application.
What are some architectural styles? (5)
Data flow (pipe and filter), data-centred, object-oriented, layered (n-layer), and model-view-controller (MVC).
What are the components of a data flow architecture?
Filters and pipes.
What is a filter in a data flow architecture?
An independent, self-contained processing unit.
What are the benefits of a data flow architecture?
Filters can be executed in parallel, improving efficiency.
What are the 2 types of filters?
Passive and active.
What are the 2 types of pipes?
Bounded and typed.
What are the two groups of data flow styles?
Pipe and filter, and pipeline.
What are the benefits of the data flow style?
Maintainability, reusability, and support for concurrent processing.
What are the components of a data-centred architecture?
Data store (shared memory) and clients.
What are the 2 types of data stores?
Repository and blackboard.
What is the repository style?
Passive; clients check the data store for changes.
What is the blackboard style?
Active; the data store notifies clients of changes.
What are examples of repository styles?
Relational and non-relational databases.
What are examples of blackboard styles?
Expert systems and knowledge bases.
What are the benefits of the data-centred style?
Reduced data duplication, data availability, and easy addition/deletion of clients.
What does a class describe?
The properties of an entity in terms of attributes, data types, and operations.
What is the connector between classes?
Functional code (method invocation).
What are the benefits of object-oriented architecture?
Information hiding, inheritance, and data integrity.
What is information hiding?
Hiding implementation details from clients.