SE Exp.3
SE Exp.3
3
Aim: Implement an appropriate design/Architectural pattern for chosen problem Statement.
Theory:
Architectural patterns are general reusable solutions to commonly occurring problems in
software architecture within a given context. They provide a structured approach to designing
software systems and help to ensure that software is scalable, maintainable, and robust.
Here’s a brief overview of some popular architectural patterns:
1. Layered Pattern:
Description: Divides the application into layers, each with distinct responsibilities (e.g.,
presentation, business logic, data access).
Usage: Common in enterprise applications; promotes separation of concerns.
2. Client-Server Pattern:
Description: Separates the client (user interface) from the server (data storage and
processing).
Usage: Widely used in web applications where clients interact with a centralized server.
3. Microservices Pattern:
Description: Structures an application as a collection of loosely coupled services, each
responsible for a specific function.
Usage: Facilitates scalability and independent deployment; popular in cloud-native
applications.
4. Event-Driven Pattern:
Description: Focuses on the production, detection, and reaction to events. Components
communicate through events rather than direct calls.
Usage: Ideal for applications requiring high scalability and responsiveness, such as IoT
systems.
5. Service-Oriented Architecture (SOA):
Description: Organizes software as a collection of services that communicate over a
network, often using standardized protocols.
Usage: Promotes reusability and integration of disparate systems.
6. Model-View-Controller (MVC):
Description: Separates application into three interconnected components: Model (data),
View (UI), and Controller (business logic).
Usage: Commonly used in web applications to promote organized code and enhance user
interaction.
7. Repository Pattern:
Description: Abstracts the data layer, providing a collection-like interface for data access
while hiding the underlying data storage details.
Usage: Promotes separation of concerns and makes it easier to swap out data storage
implementations.
8. Broker Pattern:
Description: Enables communication between decoupled components via a broker
(middleware) that handles message routing.
Usage: Useful in distributed systems where different services need to communicate
without tight coupling.
9. Pipeline Pattern:
Description: Processes data through a series of processing steps (stages), where the
output of one stage becomes the input for the next.
Usage: Common in data processing and transformation scenarios.