High Level Design Vs. Low Level Design: Find the Difference Between High Level Design and Low Level Design
Both of these are the ways in which we design a system/ application and its modules. Although they serve a similar purpose, there is still a fundamental difference between high level design and low level design.
The high level design deals on a macroscopic level while the low level language deals on a microscopic level. There are more ways in which both of them vary. Read ahead to learn more.
What is High Level Design?
Commonly abbreviated as HLD, the high level design is a general system of design. In simpler words, it refers to the overall design of a system and describes the overall architecture/ description of any application. It is also called system/ macro-level design.
A high level design includes the overall description of a system architecture along with the design of its database and a brief description of its services, systems, platforms used, and the relationship between modules. A solution architect creates the HLD. It basically converts the overall client/ business requirements into a high level solution. It comes into play before the low level design.
What is Low Level Design?
Commonly abbreviated as LLD, the low level design basically contains a detailed description of every module. In simpler words, the LLD describes every module in detail by including the actual logic of every component in the system. It goes deeply into every system specification and is thus known as detailed/ micro-level design.
The designers and developers basically create and implement the low level design. It is capable of converting a high level solution to a very detailed solution. Thus, the LLD comes into play only after the design and implementation of the HLD.
Difference Between High Level Design and Low Level Design
Here is a list of the differences between High Level Design and Low Level Design.
|Parameters||High Level Design||Low Level Design|
|Abbreviation||It has a common abbreviation as HLD.||It has a common abbreviation as LLD.|
|Meaning and Definition||It is a general system of design that concerns the entire system as a whole.||It is a detailed form of HLD that includes the design at the component level along with the process of design and everything else.|
|Alternative Name||HLD is also called the system or macro-level design of a system.||LLD is also called the detailed or micro-level design of a system.|
|Description||HLD describes the overall architecture/ description of a system/ application as a whole.||It comes with a detailed design and description of every module associated with the application/ system.|
|Description of Functions||It describes the functionalities of individual modules in brief.||It helps in expressing the functional logic of every module in a system in detail.|
|Creator||The solution architects create HLD.||The developers and designers create LLD.|
|Participants||The participants in a high level design are the client team, review team, and design team.||The participants in a low level design are the operation teams, design team, and implementers.|
|Creation Time||One needs to create and implement HLD before the LLD.||We only design and implement LLD once we complete the design on the higher level.|
|Input Criteria||The input criteria in the case of JLD is SRS (Software Requirement Specification).||The input criteria in the case of LLD is the reviewed HLD (High Level Design).|
|Conversion||It performs the conversion of a client/ business requirement into a high level solution.||It performs the conversion of a solution of higher level into a detailed solution.|
|Output Criteria||The output criteria of HLD are the review record, function design, and database design.||The output criteria of the LLD are the unit test plan and the program specification.|