System Analysis and Design
System Analysis and Design
These decisions shape the system’s architecture and directly impact its performance,
scalability, maintainability, and overall success. Key considerations include:
Common Decisions
2. Architectural Views
Common Views
1. Logical View:
o Focuses on functionality.
o Represents system components and their relationships.
o Diagrams: UML class or sequence diagrams.
2. Physical View:
o Depicts hardware and system deployment.
o Diagrams: Deployment diagrams.
3. Development View:
o Focuses on software structure (modules, packages).
o Diagrams: Component diagrams.
4. Process View:
o Describes system runtime behavior (threads, processes).
o Diagrams: Activity diagrams.
5. Use Case/Scenarios View:
o Represents how the system interacts with users.
3. Architectural Patterns
Layered Pattern:
o Divides the system into layers like Presentation, Business Logic, and Data.
o Suitable for systems requiring clear separation of concerns.
Microservices Pattern:
o Structures the system as a collection of small, independent services.
o Best for highly scalable systems.
Event-Driven Pattern:
o Reacts to events and uses event queues or buses.
o Ideal for systems with asynchronous communication.
Client-Server Pattern:
o Separates clients from servers for resource sharing.
o Common in web applications.
Model-View-Controller (MVC):
o Separates user interface, business logic, and data management.
o Popular in web frameworks like Django and Laravel.
4. Application Architectures
These refer to the overall structure of an application, defining how different modules interact.
Web-Based Applications:
o Uses client-server architecture.
o Typically built using frameworks (e.g., React, Angular, Django).
Mobile Applications:
o Native apps: Built for specific platforms (iOS or Android).
o Hybrid apps: Use web technologies but function like native apps (e.g.,
Flutter).
Desktop Applications:
o Standalone apps running on local systems (e.g., Microsoft Word).
Enterprise Applications:
o Large-scale apps for business operations (e.g., ERP, CRM systems).
Cloud-Native Applications:
o Designed to run on cloud infrastructure, leveraging containers, microservices,
and CI/CD.
Do you need further detail on any specific pattern or architecture, or would you like help
applying these concepts to a project?
Here’s a more in-depth explanation of each concept, including real-world examples and
technical reasoning, for a deeper understanding of Architectural Design:
These are choices made during the system's design that influence its structure, functionality,
and performance. Architectural decisions must balance technical and business goals.
2. Architectural Views
1. Logical View:
o Focuses on the software's functionality and structure.
o Example: In an online bookstore, logical view defines classes like Book,
User, and Order.
2. Process View:
o Depicts runtime behaviour, including concurrency and interactions.
o Example: In a chat application, process view shows concurrent threads
handling multiple user sessions.
3. Development View:
o Describes the software's structure for development purposes.
o Example: A mobile app might have modules for UI, backend logic, and API
handling.
4. Physical View:
o Represents the system's deployment on hardware.
o Example: A cloud-based application might have its database hosted on AWS
and application code running on a Kubernetes cluster.
5. Scenarios (+1):
o Use cases or stories that tie together all views.
o Example: A use case in a ticket booking system:
A user selects a seat (Logical View).
Backend processes the request (Process View).
Codebase for seat allocation module (Development View).
Server hosting the application (Physical View).
3. Architectural Patterns
Key Patterns
1. Model-View-Controller (MVC):
o Description: Separates system into:
Model: Manages data.
View: Manages presentation.
Controller: Handles user interaction.
o Use Case: Web frameworks like Django and Ruby on Rails.
o Benefits: Easy to update UI without changing data logic.
o Drawback: Adds complexity for simple applications.
2. Layered Architecture:
o Description: Divides functionality into layers (e.g., UI, Business Logic, Data
Access).
o Example: Email systems where:
UI handles the inbox view.
Logic layer filters spam.
Data layer stores emails.
o Benefits: Supports team-based development.
o Drawback: May result in performance overhead due to layered processing.
3. Repository Pattern:
o Description: Central data repository accessed by subsystems.
o Example: Integrated Development Environments (IDEs) store design
information in a central database.
o Benefit: Promotes consistency and data sharing.
o Drawback: A single point of failure.
4. Client-Server Architecture:
o Description: Clients request services from servers.
o Example: A library system where clients search books, and the server
handles requests.
o Benefit: Services can be replicated for scalability.
o Drawback: Server failures affect clients.
5. Pipe and Filter:
o Description: Data flows through components (filters) that transform it.
o Example: Unix shell commands (grep | sort | uniq).
o Benefit: Easy to add new stages (filters).
o Drawback: Requires standardized data format between components.
4. Application Architectures
Examples
Data Models define how data is structured, stored, and accessed, while architecture
defines where and how those data operations occur.
Integration Example:
o Repository Architecture works best when shared, structured data models
(e.g., ER diagrams) are needed.
o Pipe and Filter Architecture often processes data modeled as sequential
transformations, like CSV processing or ETL pipelines.
Process Models (e.g., Data Flow Diagrams - DFDs) describe how data moves and is
transformed within the system.
In architectural design, these processes can map directly to components or modules.
o Example:
A Client-Server Architecture might handle user requests (DFD
processes) by dividing responsibilities:
Client: Captures input data.
Server: Processes and stores the data.
Let’s combine the two fields for designing a Library Management System:
Here’s another case study integrating Data and Process Modeling with Architectural
Design:
Requirements:
ER Diagram:
o Entities: User, Order, Product.
o Relationships: User places Order, Order contains Product.
DFD:
o Context Diagram: Captures external interactions like user queries and admin
actions.
o Level 1 DFD: Details processes:
Add product to cart.
Check out and update inventory.
Step 3: Integration