Podcast
Questions and Answers
Which category of architectural patterns helps in decomposing an overall system task into cooperating subtasks to avoid a 'sea' of components?
Which category of architectural patterns helps in decomposing an overall system task into cooperating subtasks to avoid a 'sea' of components?
- Distributed Systems
- From mud to structure (correct)
- Adaptable Systems
- Interactive Systems
Which architectural pattern category specifically addresses the organization of software systems emphasizing human-computer interaction?
Which architectural pattern category specifically addresses the organization of software systems emphasizing human-computer interaction?
- Adaptable Systems
- From mud to structure
- Distributed Systems
- Interactive Systems (correct)
In the context of software architecture, what is the primary purpose of an architectural pattern?
In the context of software architecture, what is the primary purpose of an architectural pattern?
- To select the programming language for development.
- To provide a solution to a recurring design problem. (correct)
- To define the project management timeline.
- To dictate the specific lines of code to be written.
Which of the following best describes the role of 'Architecture Tactic' in relation to 'Architecture Pattern' and 'Quality Attributes'?
Which of the following best describes the role of 'Architecture Tactic' in relation to 'Architecture Pattern' and 'Quality Attributes'?
Which architectural pattern is most suitable for a system needing a complete infrastructure for distributed applications?
Which architectural pattern is most suitable for a system needing a complete infrastructure for distributed applications?
What is the primary goal of the 'Layer' architectural pattern?
What is the primary goal of the 'Layer' architectural pattern?
In the Layer architectural pattern, how are components typically placed within layers?
In the Layer architectural pattern, how are components typically placed within layers?
In Jacobson's Layer Architecture, what is the role of the 'Business Specific' layer?
In Jacobson's Layer Architecture, what is the role of the 'Business Specific' layer?
Which of the following is an example of the Layer architectural pattern in practice?
Which of the following is an example of the Layer architectural pattern in practice?
Which statement accurately describes a key consequence of utilizing the Layer architectural pattern?
Which statement accurately describes a key consequence of utilizing the Layer architectural pattern?
What is the primary purpose of the Pipe & Filter architectural pattern?
What is the primary purpose of the Pipe & Filter architectural pattern?
In the Pipe & Filter pattern, what distinguishes a 'Push' system from a 'Pull' system?
In the Pipe & Filter pattern, what distinguishes a 'Push' system from a 'Pull' system?
In the context of Pipe & Filter architecture, which characteristic contributes most to flexibility?
In the context of Pipe & Filter architecture, which characteristic contributes most to flexibility?
For what type of problems is the Blackboard architectural pattern most suitable?
For what type of problems is the Blackboard architectural pattern most suitable?
In a Blackboard system, what is the role of specialized subsystems?
In a Blackboard system, what is the role of specialized subsystems?
Which of the following accurately describes a characteristic of the Blackboard pattern?
Which of the following accurately describes a characteristic of the Blackboard pattern?
What is the primary responsibility of the Broker component in a distributed system?
What is the primary responsibility of the Broker component in a distributed system?
What is the primary function of a Broker in a distributed system, analogous to real-world concepts?
What is the primary function of a Broker in a distributed system, analogous to real-world concepts?
If a Broker fails in a distributed system, what is a likely consequence?
If a Broker fails in a distributed system, what is a likely consequence?
Which architectural pattern is most suitable for systems with a high degree of user interaction?
Which architectural pattern is most suitable for systems with a high degree of user interaction?
In the Model-View-Controller (MVC) pattern, what is the responsibility of the 'View' component?
In the Model-View-Controller (MVC) pattern, what is the responsibility of the 'View' component?
In the Model-View-Controller (MVC) pattern, what is the role of the 'Controller'?
In the Model-View-Controller (MVC) pattern, what is the role of the 'Controller'?
Within the MVC architectural pattern, what is a key characteristic of the 'Model'?
Within the MVC architectural pattern, what is a key characteristic of the 'Model'?
Which of the following is a valid use case of the Model-View-Controller (MVC) pattern?
Which of the following is a valid use case of the Model-View-Controller (MVC) pattern?
What is a primary benefit of using the Model-View-Controller(MVC) pattern?
What is a primary benefit of using the Model-View-Controller(MVC) pattern?
What does ADR stand for and what is their primary purpose in software development?
What does ADR stand for and what is their primary purpose in software development?
Why is 'context' an important element of an Architectural Decision Record (ADR)?
Why is 'context' an important element of an Architectural Decision Record (ADR)?
What is the purpose of documenting the 'rationale' within an Architecture Decision Record (ADR)?
What is the purpose of documenting the 'rationale' within an Architecture Decision Record (ADR)?
In the structure of an Architecture Decision Record (ADR), what do 'consequences' primarily describe?
In the structure of an Architecture Decision Record (ADR), what do 'consequences' primarily describe?
According to the content covered, which of the following consideration is most important when making technological decisions?
According to the content covered, which of the following consideration is most important when making technological decisions?
What is the first step of implementing a Layer Pattern?
What is the first step of implementing a Layer Pattern?
Which of the following is correct about Layer and Tier?
Which of the following is correct about Layer and Tier?
Choose the correct answer about broker pattern.
Choose the correct answer about broker pattern.
What are the components in MVC?
What are the components in MVC?
Which of the following is correct about ADR's content?
Which of the following is correct about ADR's content?
What is the correct way to access the data of lower layer in Layer Pattern architecture?
What is the correct way to access the data of lower layer in Layer Pattern architecture?
What is the benefit of Pipe and Filter?
What is the benefit of Pipe and Filter?
Why developer create application-specific?
Why developer create application-specific?
Fill in the blank: ______________layer contains element that are specific to application in question.
Fill in the blank: ______________layer contains element that are specific to application in question.
What is the difference between Push and Pull in Pipe & Filter?
What is the difference between Push and Pull in Pipe & Filter?
What is the bad consequence of Blackboard Architecture Pattern?
What is the bad consequence of Blackboard Architecture Pattern?
Flashcards
Architectural Pattern
Architectural Pattern
Solutions for recurring problems in software design. They're like architectural building styles.
Quality Attribute
Quality Attribute
A fundamental attribute determining overall quality (security, performance, scalability).
Mud to Structure
Mud to Structure
Patterns that help avoid a "sea" of components by decomposing tasks and improving structure
Distributed System
Distributed System
Signup and view all the flashcards
Interactive System
Interactive System
Signup and view all the flashcards
Adaptable Systems
Adaptable Systems
Signup and view all the flashcards
Layer Pattern
Layer Pattern
Signup and view all the flashcards
Pipe and Filter
Pipe and Filter
Signup and view all the flashcards
Blackboard Pattern
Blackboard Pattern
Signup and view all the flashcards
Broker Pattern
Broker Pattern
Signup and view all the flashcards
MVC Pattern
MVC Pattern
Signup and view all the flashcards
Architecture Decision Record
Architecture Decision Record
Signup and view all the flashcards
Context (in ADR)
Context (in ADR)
Signup and view all the flashcards
Decision (in ADR)
Decision (in ADR)
Signup and view all the flashcards
Rationale (in ADR)
Rationale (in ADR)
Signup and view all the flashcards
Consequences (in ADR)
Consequences (in ADR)
Signup and view all the flashcards
Study Notes
- Software Architecture consists of architectural patterns and styles
- Nacha Chondamrongkul is an Assistant Professor at the School of IT, Mah Fah Luang University
Agenda:
- Architectural patterns
- Architecture Decisions
- Architectural patterns provide a way to structure systems from interactive to distributed
The Architecture
- Architects look at previous architectures when designing new ones
Architectural Pattern
- Architectural patterns are solutions for recurring problems and are synonymous with architectural styles
- Architectural patterns are similar to building styles like Gothic, Pyramid, or Greek
- They specify the fundamental structure of an application
Overview of Relation:
- Basic Architecture is the basis of Architecture Patterns
- Architecture Pattern provides solutions that resolve multiple problems
- "Most system software has multiple patterns"
- Architecture Tactic includes Architecture Pattern
- Architecture Tactic can focus on a specific quality attribute
- Quality attributes can allow you to achieve the desired outcome
- “In order to address multiple required quality attributes"
Categories of Pattern
- Patterns are grouped into 4 categories.
- “From mud to structure” helps avoid "sea" of components and supports decomposing system tasks into subtasks.
- Distributed systems include the Broker pattern, which provides a complete infrastructure for distributed applications.
- Interactive Systems support structuring software systems with human-computer interaction.
- Adaptable Systems support extension of applications and adapting to evolving technology and functional requirements.
From Mud to Structure
- There are 3 patterns in this category:
- Layer
- Pipe & Filters
- Blackboard
Layer Pattern
- Helps structure applications so they can be decomposed into subtasks at particular abstraction levels.
- Suitable for large systems that require decomposition.
- Higher-level operations handle higher-level issues by relying on lower-level operations.
- Lower-level operations handle lower-level issues and adaptors and interfaces can be used as connectors.
- It allows you to structure a system into different layers
- Design the upper layers by delegating subtasks to lower layers, while supporting subtasks, until it reaches the highest level
- The solution is extremely simple from a high-level viewpoint.
- Example: VAT calculation software
Layer Pattern Example:
- User visible element: Button, Textfield, windows
- Specific Application Module: Calculate VAT 7%
- Common Service Level: Basic mathematic operation +, -, *, /
- Operating System: Driver for monitor, keyboard, CPU
- Hardware: Monitor, keyboard, CPU
Layer vs Tier
- Tier and Layer are often confused
- The layer pattern places components within layers according to their generality.
- More general-purpose components (most reusable) are in the lower layers, with a focus on reusing.
- A tier is a physical machine or server that hosts one or more layers and tiers are not the same thing as layers.
Jacobson's Layer Architecture:
- Proposed layer architecture (Jacobson 1997)
- Application-Specific layer contains elements specific to the application.
- Business-Specific layer contains elements specific to a business or application domain (e.g., financial systems).
- These can be reusable across applications.
- Business-Independent layer contains elements independent of business or application domain, such as UI frameworks or databases.
Usage of Layer
- Network OSI 7 Layer Model
- Virtual Machine – JVM
- API – Application Programming Interface
- MS Windows
- Information System
Layer Pattern - Consequence:
- Reuse of Layer: Achieved with well-defined abstraction and documentation.
- Exchangeability: Achieved with standardized interfaces and adaptors that connect components between layers.
- Dependencies Kept Local: Achieved with standardized interfaces and adaptors that connect components between layers.
Pipe & Filter
- Provides structure for processing a stream of data.
- Suitable for systems that process data streams.
- These system youtube that detects internet speed to adjust video quality
- It contains : Data sources, Filter 1, Filter 2, Filter 3 and a Data sink
Pipe & Filter – Push vs. Pull:
- Push: Data source source pushing to sink downstream
- Pull: Filters reading from source to sink upstream
Flexibility of Pipe & Filter
- Flexibility by filter exchange to rearrange and create new fitlers
- Reuse of filter to reuse components
- Efficiency by parallel processing to start fitler component in parralel
Known uses of Pipes & Filters:
- Unix
- LASSPTool
- streaming video/audio over internet
Blackboard
- Useful for problems lacking deterministic solution strategies as it acts as Specialized subsystems whose knowledge allows them to assemble a solution
- Each subsystem specializes in solving a part of the overall task.
- This is useful when we do not know the exact solution
What it is useful for
- Suitable for problems that do not have feasible deterministic solutions for transformation of raw data into high-level data structures:
- Diagrams
- Tables
- English phrases
- Vision
- Image recognition
- Speech recognition
Blackboard Sample
- Speech recognistion is a sample
- It leverages control to build a "solution" using segmented Knowledge sources
Consequence of blackboard
- Supports modifiability and maintainability
- There are difficulties for testing due to not having a deterministic algorithm
- There is no good solution that is guarantee
- It typically has low efficiency
Distributed System
- The broker pattern is used to structure distributed software systems with decoupled components and allows interaction by remote service invocations
- A broker component coordinates communication
Broker
- Suitable for distributed and heterogeneous systems with independently cooperating components.
- A Broker acts like a directory (yellow book) and messenger, servers resgister in the broker
- They forward requests from the cient
- They encapsulate connectivity, which can hide IP addresses to create VPNs
- Example : Bangkok bridge Tokyo
The Broker facilitates:
- Implementation of service by registering itself with broker to respond back
- Supports un/register server, transfer of service, location of server and communication with other brokers
- Implements functionality to encapsulate system
- Implement the client functions, and the request sent
Known Uses of Brokers:
- World Wide Web (WWW)
- CORBA - Common Object Request Broker Architecture
- The network specific functionality it enables involves mediating local brokers
Consequences of Broker
- Portability of system
- Changeability/Extensibility of components.
- Location Transparency.
- Suffers from Restricted efficiency due to indirect communication because if broker faces it crashes it cannot access
Interactive System:
- For systems with high degree of user interaction and usability enhancement.
- There are 2 patterns within this group
- Model View Controller (MVC)
- Presentation Abstraction Control
Model View Controller (MVC):
- Suitable for interactive applications with a flexible human-computer interface.
- Divides the system into 3 parts:
- Model: Core functionality & data
- View: Information displayed to user (Output)
- Controller: Handles user input (Input)
- View & Controller together are the user interface.
- The model is indepedent from output to input
- It displays info and propagates change, and often works controller 1 to 1 where the view translates events
Functional Core
- Has model to provide function, register dependancies to controller, and notify data changes
- Translate events and send the request for propogation and disables buttons
- Separate human-computer interaction from core functionality
Consequence of MVC:
- Multiple Views of the same Model.
- Exchangeability of look-and-feel.
- Framework potential.
- Increased Complexity.
- Potential Inefficiency with data access in view if updates are frequent.
Decision:
- The decision to develop a UI in mobile as opposite to web, a UI in Authetication as compared to 2 factor Authetication
- Architects take responsiblity to guding technology and decisions
Architecture Description Record
- ADR is a document that captures and communicates important decisions made during the software architecture design process.
- ADRs provide the way to document standardized context, consideration, and rationale behind a specific architectural decision.
- Context is needed to find which issues we need to motivate for a change
- We need to find the best solution and why we choose it
- The consequences are the pros and cons for why it becomes easier and difficult
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.