The software development cycle goes through many processes, and HLSD and LLSD are just two parts.
The Software Development Life Cycle (SDLC) goes through various phases like planning, requirements assessment, analysis, design, execution, documentation, testing, etc. Each phase is further divided into tasks with properly defined objectives and results.
Analysis and Design are phases where the actual architecture, working model, and execution process of building a software product is laid down.
Two crucial steps in these phases are High-Level System Design and Low-Level System Design.
High-Level Design (HLD) provides a comprehensive overview of the software development process along with the system architecture, applications, database management, and complete flowchart of the system and navigation. It’s a blueprint that consolidates the various steps and modules, their objectives, variable components, results, architecture, and timeline to develop the software. HLD translates a business plan into a software product or service.
Examples of HLD in software development include system architecture documents, app development flowcharts, etc.
Low-Level Design (LLD) deals with the planning, coding, and execution of the various components, modules, and steps in the HLD, at an individual level. Each module in an HLD has a unique LLD document that provides comprehensive details about how the module will be coded, executed, tested for quality, and integrated into the larger program. LLD provides actionable plans by deconstructing HLD components into working solutions.
Examples of LLD in software development include cart integration, security testing, user interface design, etc.
HLD and LLD also serve different functions and purposes like high-level programming languages and low-level programming languages.
HLD is a macro-level design that provides a bird’s eye view of the software development process. It includes diagrams, flowcharts, navigational details, and other technical requirements that will form the crux of the development process.
In addition to flowcharts, diagrams, navigational information, and technical requirements, LLD also has comprehensive information about the step-by-step execution of each component of the HLD. It deals with software development at the micro-level.
Every component of an HLD has a unique LLD document.
HLD precedes the LLD phase. Once the HLD is in place and approved for execution, work on the individual LLDs can begin.
HLD begins once the planning and requirements stages are dealt with and has no other dependencies.
On the other hand, LLD needs to be executed in a particular order. Some modules must await execution until others have been completed.
LLD falls under the Design phase of the SDLC, whereas the HLD falls under the Analysis phase of the SDLC.
Solution architects are responsible for creating an HLD document. It can have internal and external stakeholders like the review team that takes cognizance of the software metrics, the design team, clients, and managers.
LLD is handled by software developers, web admins, security engineers, etc., who are part of the company or vendor teams. LLDs are generally restricted to internal stakeholders.
HLD documents have the target audience of managers, clients, and software development teams.
Software engineers, coders, testers, and developers working on the project are the target audience for LLD documents.
Software design documents outline the structural, functional, and logical aspects of developing a software product or service in addition to the technical requirements and other implementation details. Whether the design deals with macro-level or micro-level execution, programmers and other stakeholders should knowq and understand the scope and the various steps of the software development process.
Former corporate communications specialist who's worked with Uber, Google, and TCS, Al Kaatib has ten years of experience as a freelance writer specializing in B2B and B2C content.