Low-level design (LLD) is the process of taking the high-level design of a software system or product and breaking it down into smaller, more detailed components. It involves specifying the detailed design of each component, including how it will function, its inputs and outputs, and how it will interact with other components in the system.
The LLD phase comes after the high-level design phase and before the implementation phase. Its primary goal is to provide a detailed plan for the implementation phase and to ensure that the system will meet its requirements and perform its functions as expected.
In the LLD phase, software architects and developers create detailed specifications for each component of the system, including algorithms, data structures, and interfaces. They also specify how the components will be integrated into the overall system, including how they will communicate with one another and how data will be exchanged.
The LLD phase typically results in detailed diagrams, flowcharts, and other visual representations of the system’s architecture and functionality. These diagrams help to communicate the design to stakeholders and team members, and serve as a reference for developers during the implementation phase.
LLD is an important step in the software development process because it ensures that the system is designed in a way that is efficient, maintainable, and scalable. By providing a detailed plan for the implementation phase, LLD helps to minimize errors and reduce the risk of project delays or failure.
In order to design Low Level Design (LLD) of a system you should have a good understanding of the following components
- OOPS fundamentals
- A hold on programming languages like java
- SOLID principles
- Design patters
- Strategy Pattern
- Observer Pattern
- Decorator Pattern
- Factory Pattern
- Abstract Factory Pattern
- Chain of Responsibility Pattern
- Proxy Pattern
- Null Object Pattern
- State Pattern
- Composite Pattern
- Adapter Pattern
- Singleton Pattern
- Builder Pattern
- Prototype Pattern
- Bridge Pattern
- Facade Pattern
- Flyweight Pattern
- Command Pattern
- Interpreter Pattern
- Iterator Pattern
- Mediator Pattern
- Memento Pattern
- Template Method Pattern
- Visitor Pattern