ArchitechturalDesign Assignment
ArchitechturalDesign Assignment
Q1) Select and justify suitable architectures for the following software
systems and explain the rationale (Justification) behind your suggestion:
i) Lip-reading system
ii) Smart notice board
iii) Analytical module for customers buying in online website.
Solution:
There are various architectures available. They are Model View Controller
(MVC, repository, client-server architecture, pipe-filter architecture, and layered
architecture.
i. Lip-Reading System:
Architectural Pattern: Pipe-Filter
Pipe: Represents the flow of data (e.g., video frames).
Filter: Represents processing units (e.g., lip-reading algorithms).
Application Layer:
Course Management
User Authentication and authorization
Communication Module->Announcements
and discussions.
Calculating grades and progress
Data Layer:
Manage data storage and retrieval.
Storing course content, activity logs,
grades, and user information.
Infrastructure Layer:
Logging and monitoring.
Application storage
Security.
1. Presentation Layer:
Focuses on User Interface and interaction.
For presenting courses, assignments and grade information.
2. Application Layer:
Responsible for Business logic.
For course management, user authentication and authorization,
communication for assignments and announcements, and calculating and
storing grades and progress.
3. Data Layer:
Manage data storage and retrieval.
Storing course content, activity logs, grades, and user information.
4. Infrastructure Layer:
Manages security, logging and monitoring services, and application
storage.
Q8) Select suitable architectural patterns (more than one) and propose an
architecture for the following applications. Justify your selection.
a. OTT (over-the-top) application (similar to Amazon Prime or
Netflix
b. Document Scanner application
Solution:
a. OTT Application
1. Event-Driven Architecture:
Justification:
Events like user interactions, content availability, and user preferences are
critical in OTT applications. An event-driven architecture helps in handling
asynchronous communication and responding to events in real-time.
It facilitates the implementation of features such as personalized
recommendations, content updates, and notifications based on user behavior.
2. Client-Server Architecture:
Justification:
Thin Client-Server Architecture is also applicable here because most of the
work is inclined to the Server side where the streaming is monitored. The client-
side work is just to choose what to stream. It also supports multiple users.
Hence this architecture is better suited.