High-level design (HLD)
High-level design (HLD) is a design methodology that focuses on a system’s overall structure and the connections between its key parts. It provides a high-level overview of the system that makes it easier to understand how it will operate generally and how to satisfy the criteria.
In summary, whereas LLD concentrates on the specifics of how the system will be implemented, HLD offers a broad picture of the complete system.
High-level design is often the initial phase in the system design process. It assists in the definition of the general structure and needs of the system, as well as serving as a blueprint for the low-level design. It is a good starting point for determining the project’s scope and defining the primary components and their relationships.
Some key aspects of the high-level design include:
- Recognizing the system’s essential elements and how they work
- Defining the interfaces that connect the parts
- Determining the external systems and interfaces the system will communicate with
- Describing the general design of the system
- Figuring out any restrictions or demands that will have an impact on the design
Low-level design(LLD)
Low-level design, on the other hand, concentrates on the precise implementation of a module or component. It defines the data structures, algorithms, and other technical information required to develop the module.
Low-level design is often built on high-level design and extends on it by providing more precise information regarding implementation.
Some key aspects of the low-level design include:
- Defining the data structures and algorithms required to run the module.
- The interfaces between the module and other components must be defined.
- Identifying any needs for performance or scalability
- Defining the module’s testing and validation processes
The design process for a system includes both high-level design and low-level design, both of which are important. While low-level design concentrates on the exact implementation details of individual components, high-level design helps define the overall structure and needs of the system.