Difference between High Level Design(HLD) and Low Level Design(LLD)


When a system is designed, it includes high level design and low level design. This helps in making a project that works smoothly without any errors. High level design and low level design are two main features of a system design. Let us know the difference between high level design and low level design.

High Level Design

High level design consists of the description of the architecture of the system. The system design consists of the following −

  • Database design
  • System architecture
  • Description of systems which includes platforms, relationships, and services

A diagram is created for the high level design which consists of all the design aspects needed as per the requirements. The diagram consists of the following features −

  • The diagram consists of the details of software interfaces, user interfaces, and hardware
  • High level design is also known as macro level design
  • A solution architect is responsible to create a high level design diagram

Models used in High Level Design

The models that are used in the high level design are −

  • Flow Diagrams
  • Decision Tables
  • Decision Trees
  • Flow Charts
  • Data dictionaries

Concise Breakdown of High Level Design

High level design can be divided into the following −

  • Requirements Analysis − Stakeholders and end users are involved in understanding the functional and non-functional design.
  • System Architecture − System components are defined along with the interaction between them. It also includes the handling of data flow so that functionality can be achieved.
  • Component Design − This is the phase in which the structure of each module is detailed along with data processing mechanisms and behavior.
  • Data Design − It consists of data structure, databases, and data flows for proper memory allocation and efficient storage.
  • Interface Design − It consists of system security which includes encryption, authorization, and authentication.
  • Performance Design − It consists of scalability, response time, and resource optimization strategies.
  • Error Handling − This is an aspect in which plans are made to report different kinds of errors and their reporting.
  • Technology Selection − This is a phase in which required languages and technologies are selected.
  • Documentation − Detailed documentation is written which consists of all the aspects of the high level design.

Low Level Design

Low level design is a process that is a part of software development. This design consists of the system, components, and their details along with communication between them. The features of low level design are as follows −

  • The logic for each system component is described here which can be divided into modules.
  • It is also known as micro level design
  • Designers and developers create the low level design
  • High level design can be converted into a blueprint with the help of low level design

Concise Breakdown of Low Level Design

Low level design can be divided into the following −

  • Refinement of High Level Design − The high level design is broken down into smaller aspects so that it can be implemented easily.
  • Module Design − The modules in the high level design are divided into functions, methods, classes, and data structures.
  • Algorithmic Details − This is a phase in which logic and algorithms are decided for each module.
  • Data Structure Design − Detailed data structures are made which can be stored and modified easily in any module.
  • Database Design − Requirements of the database are included here which consists of tables, queries, and other aspects of a database.
  • Code Logic − Coding guidelines are created which include variables, constants, functions, etc.
  • Interfaces Implementation − The interface specifications are taken from the high level design and included in the code.
  • Resource Allocation − This is a phase in which memory allocation and processing are considered.
  • Security Implementation − Security mechanisms like encryption, authentication, authorization, etc. are decided.
  • Testing − Strategies are made for unit testing of the project.
  • Documentation − Detailed code documentation has to be written.

Difference between High Level Design and Low Level Design

There are many differences between high level design and low level design and they can be found in the table below −

High Level Design Low Level Design
High level design is the design of the entire system. Low level design deals with the component-level design.
It is known as macro level design. It is known as micro level design.
It consists of the description of the architecture of the entire application. It consists of the details of each component and module.
A brief functionality of each module is described in the high level design. Low level design consists of the details of the functional logic of a module.
Solution architects are responsible to create high level system design. Designers and developers are responsible for the creation of low level system design.
The review team, design team, and client are the parts of high level design. The design team, operations team, and implementers are the part of low level design.
Software requirement specification is the input criteria in the high level design. The input criteria are reviewed in the low level design.
Business requirements can be converted to a high level solution. The high level solution can be converted into a detailed solution.
Output criteria include database design, review record, and functional design. Output criteria include program specification and unit test plan.
System components and interactions are focused on in the high level design. Low level design deals with the implementation of different modules.
High level design deals with the major system modules and the interaction between them. Low level design includes the process of breaking down the modules into data structures and functions.
High level design deals with overall flow and user interaction. Low level design deals with user interface.
System changes in the future are accommodated in high level design. The extension of the module is planned without making any major changes.

Conclusion

High level design and low level design are a part of system design. High level design consists of system architecture which includes database design, description of platforms, relationships, services, etc. Low level design consists of aspects included in the software development. Both of them are important parts of the system design and have a lot of differences.

FAQs on High Level Design Vs. Low Level Design

1. Which design consists of all the aspects of the entire system?

High level design consists of all the aspects of the entire system.

2. What are the other names of high level design and low level design?

High level design is known as macro design and low level design are known as micro design.

3. Who is responsible for the creation of high level design and low level design?

Solution architects create high level designs while designers and developers create a low level designs.

4. In which design database design is included?

Database design is included in the high level design.

5. Which design deals with the implementation of modules?

Low level design deals with the implementation of modules.

Updated on: 15-Jul-2024

Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements