2-Patterns (2)
2-Patterns (2)
Categories
M2 – Design thinking
What is a pattern?
• A pattern addresses a recurring design problem that arises in specific design situations, and
presents a solution to it
Eg:
• The Model-View-Controller pattern specifies two forces:
• it should be easy to modify the user interface,
• but the functional core of the software should not be affected by its modification.
What is a pattern?
Properties of patterns for software architecture
1. Architectural patterns
2. Design patters
3. Idioms
Types of Patterns
1. An architectural pattern expresses a fundamental structural organization schema for
software systems. It provides a set of predefined subsystems, specifies their
responsibilities, and includes rules and guidelines for organizing the relationships between
them.
• Eg; MVC
• Advantages
• Multiple views for same model
• Synchronized views
• Pluggable views and controllers
• Framework potential
• Disadvantages
• Increased complexity
• Excessive number of updates
• Closely connected view and controller
• Inefficient data access in view: multiple calls
Interactive Systems
• Presentation Abstraction Control
The Presentation-Abstraction-Control pattern (PAC) defines a structure for interactive software
systems in the form of a hierarchy of cooperating agents.
Every agent is responsible for a specific aspect of the application's functionality and consists of three
components: presentation, abstraction, and control.
This subdivision separates the human-computer interaction aspects of the agent from its functional
core and its communication with other agents.
Eg: AI agents
Interactive systems
• Presentation-Abstraction-Control
The main responsibility of the top-level PAC
agent is to provide the global data model of the
software. This is maintained in the abstraction
component of the top-level agent.
The control component of the top-level PAC
agent:
• Allow lower level to make use of services
of top level
• Coordinate hierarchy of PAC agents
• Maintains information about the
interaction of the user with the system
Microkernel
• The Microkernel architectural pattern applies to software systems that must be able to
adapt to changing system requirements.
• It separates a minimal functional core from extended functionality and customer-specific
parts.
• The microkernel also serves as a socket for plugging in these extensions and
coordinating their collaboration.
Advantages
Scalability, Reliability, Transparency
Disadvantages
Performance, Complexity
Microkernel - Virtualization
hardware
● The software layer that creates the virtual environment is called a Virtual Machine
23
Microkernel - Types in virtualization
VM1
VM1 VM1
App App
Guest OS Guest OS
Type II
App App
Hypervisor
Type I Hypervisor Host OS
Hardware Hardware
● Hosted Hypervisor
● baremetal
● Eg: VMware workstation,
● Eg: Xen, Microkernel based
Oracle Virtual Box, Microsoft
virtual PC
24