Lecture 13: Architectural Patterns Flashcards
What is software architecture?
Set of structures that can be used to reason about a system
Comprises software elements, relations among them, and properties of both
What makes a good architectural model?
Contains a logical breakdown of subsystems
Documents interfaces between subsystems
Captures dynamics of component interactions
Outline shared data
Quality-driven
What is stability in terms of an architectural model?
Ensures maintainability and reliability
Stable means features and components can be added or changed without impacting the overall architecture
What is an architectural pattern?
Each pattern has a context, problem and solution
What is the Multi-Layer architectural pattern?
Problem: System components need to be built and tested independently
Solution: Define layers (groupings of cohesive modules) and allow unidirectional relation between them (stack of boxes)
What is the client-server architectural pattern?
Problem: Large number of distributed clients need access to shared resources or services
Solution: Client components initiate interactions with server components, invoking services
What is the transaction-processing architectural pattern?
Problem: System must read and handle series of inputs that change stored data
Solution: Dispatcher component that decides how to handle each transaction (input), calling a procedure
What is pipe-and-filter?
Stream of data is passed through a series of processes, each transforming it in some way, architecture is flexible
What is model-view-controller architectural pattern?
Problem: UI needs frequent modification without impacting system’s functionality
Solution: break system into three components: model, view and controller
Controller mediates between model and view
What is the service-oriented architectural pattern?
Problem: Service consumers must be able to use/access a number of service providers
Solution: Cooperating peers that request service from and provide services to one another across a network