Low-level design (LLD) is a component-level design process that follows a step-by-step refinement process. This process can be used for designing data structures, required software architecture, source code and ultimately, performance algorithms. Overall, the data organization may be defined during requirement analysis and then refined during data design work. Post-build, each component is specified in detail.
The LLD phase is the stage where the actual software components are designed.
During the detailed phase the logical and functional design is done and the design of application structure is developed during the high-level design phase.
A design is the order of a system that connects individual components. Often, it can interact with other systems. Design is important to achieve high reliability, low cost, and good maintain-ability. We can distinguish two types of program design phases:
- Architectural or high-level design
- Detailed or low-level design
Structured flow charts and HIPO diagrams typify the class of software design tools and these provide a high-level overview of a program. The advantages of such a design tool is that it yields a design specification that is understandable to nonprogrammers and it provides a good pictorial display of the module dependencies.
A disadvantage is that it may be difficult for software developers to go from graphic-oriented representation of software design to implementation. Therefore, it is necessary to provide little insight into the algorithmic structure describing procedural steps to facilitate the early stages of software development (generally using PDLs).
The goal of LLD or a low-level design document (LLDD) is to give the internal logical design of the actual program code. High-level design is created based on the low-level design. LLD describes the class diagrams with the methods and relations between classes and program specs. It describes the modules so that the programmer can directly code the program from the document.
A good low-level design document makes the program easy to develop when proper analysis is utilized to create a low-level design document. The code can then be developed directly from the low-level design document with minimal debugging and testing. Other advantages include lower cost and easier maintenance.
- Pressman, Roger S. (2005). Software Engineering: A Practitioner's Approach. Palgrave Macmillan. ISBN 978-0-07-301933-8.
- Bell, Doug; Morrey, Ian; Pugh, John R. (1997). The Essence of Program Design. Prentice Hall. ISBN 978-0-13-367806-2.
- Survey of Program Design Languages (PDLs): Brian A. Nejmeh, Herbert E. Dunsmore