DEV Community

Rachit singh
Rachit singh Subscriber

Posted on

Started Learning System Design Day 1.

What HLD and LLD

The main difference between High-Level Design(HLD) and Low-Level Design(LLD) lies in their scope, level of abstraction, and purpose within the software development process:

  • Abstraction Level:
    • HLD is high-level and conceptual, focusing on the overall system architecture and major components.
    • LLD is low-level and implementation-specific, detailing the internal workings of each component
  • Scope & Focus
    • HLD defines the overall structure, major modules, their interactions, and the flow of data between them. It addresses the w*hat* and why of the system.
    • LLD specifies the internal design of individual modules, including algorithms, data structures, logic, and interfaces. It addresses the ‘how’ implementation.
  • Purpose:
    • HLD serves as a blueprint for system architects, project managers, and stakeholders to understand and validate the system’s architecture before development begins
    • LLD provides developers with precise instructions for coding and implementing each module, minimizing ambiguity and ensuring consistency
  • Deliverables:
    • HLD may include: system context diagrams, module decomposition, data flow diagrams, and use case diagrams
    • LLD may include: class diagram, sequence diagrams, activity diagrams, pseudo-code, detailed API specification , and database schemas.
  • Timing in SDLC:
    • HLD is created early, during the analysis and design phase
    • LLD follows HLD and is developed during the design and implementation phases
  • Audience:
    • HLD is intended for a broad audience, including stakeholders and architects
    • LLD is primarily for developers and QA teams.

Summary Table:

Aspect High-Level Design(HLD) Low-Level Design(LLD)
Abstraction Level High, conceptual Low, techincal/Implementaiton
Scope System architecture,modules Internal Logic, algorithms, details
Focus What & Why How
Purpose Blueprint for system structure Blueprint for coding
Deliverables Diagrams, module overviews class diagrams, pseudocode, APIs
Timing Early SDLC After HLD, before coding
Audicence Stakeholders, architects Developers, QA

In essence, HLD provides the vision, while LLD gives the detailed blueprint for execution

Top comments (0)