Low-level design (LLD) is a component-level
design process
A design is a plan or specification for the construction of an object or system or for the implementation of an activity or process or the result of that plan or specification in the form of a prototype, product, or process. The verb ''to design'' ...
that follows a step-by-step
refinement process. This process can be used for designing
data structures
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, a ...
, required
software architecture
Software architecture is the fundamental structure of a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.
...
,
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the w ...
and ultimately,
performance algorithms
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
. Overall, the
data
In the pursuit of knowledge, data (; ) is a collection of discrete Value_(semiotics), values that convey information, describing quantity, qualitative property, quality, fact, statistics, other basic units of meaning, or simply sequences of sy ...
organization may be defined during
requirement analysis
In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the ...
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.
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 The term Hipo may refer to:
* Hippopotamus
* Hilfspolizei, an auxiliary police force
* HIPO model, a 1970s tool for planning and documenting a computer program
* 289 HiPo, a Ford Windsor engine
The Ford small-block (aka Windsor V8) is a series ...
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 non-programmers 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
Program Design Language Program Design Language (or PDL, for short) is a method for designing and documenting methods and procedures in software. It is related to pseudocode, but unlike pseudocode, it is written in plain language without any terms that could suggest the us ...
s (PDLs).
[Survey of Program Design Languages (PDLs): Brian A. Nejmeh, Herbert E. Dunsmore]
Purpose
The goal of LLD or a low-level design document (LLDD) is to give the internal logical design of the actual program code. Low-level design is created based on the high-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..
References
{{Design
Design
Software design