What is System Design?
System design is the process of defining the architecture, components, and
interfaces of a system to meet specific requirements. Here's a brief breakdown:
- Identify Requirements: Determine what the system needs to do.
- High-Level Design: Outline the system's major components and their interactions.
- Detailed Design: Specify the internal workings of each component.
- Implementation: Write the code and integrate the components.
- Testing: Verify that the system meets all requirements and functions correctly.
- Maintenance: Update and improve the system over time.
Functional vs Non-Functional Requirements
Functional: Basic functionalities that the system should offerNon-Functional: Quality constraints in application like portability, maintainability,reliability, security etc.
What are the components of System Design?
- Architecture: The overall structure of the system, including how components interact and the flow of data.
- Components: The individual parts of the system, such as modules, services, or microservices.
- Interfaces: The points of interaction between different components or with external systems.
- Data Storage: How and where data is stored, including databases, data warehouses, and data lakes.
- APIs (Application Programming Interfaces): Interfaces that allow different components or systems to communicate with each other.
- Security: Measures to protect the system and data from unauthorized access and vulnerabilities.
- Scalability: The system’s ability to handle increased load and expand as needed.
- Performance: Ensuring the system operates efficiently and meets performance requirements.
- Fault Tolerance and Reliability: The system’s ability to continue functioning correctly even when parts fail.
System Design Life Cycle | SDLC (Design)
This is actual and practical way for proceeding to solve any design problem:
- Requirements
- Estimation and Constraints
- HLD
- LLD
- Data Model Design
- API Design
- Identify and Resolve Bottlenecks
Structured Analysis and Structured Design
Structured Analysis is a technique used to understand and define the
requirements of a system. It involves creating models that represent the system's
functions, data, and control flow. The primary goal is to convert system
requirements into a blueprint for development.
[Data Flow Diagrams (DFDs), Entity-Relationship Diagrams (ERDs), State-Transition
Diagrams, Process Specifications] .
Structured Design follows Structured Analysis and focuses on creating a
blueprint for constructing the system. It uses the results of the analysis phase to
design the system architecture and components.
[Modularity, Top-Down Design, Structure Charts, Coupling and Cohesion]
Please see other posts for system design key concepts.
No comments:
Post a Comment