It explains the architecture that would be used for developing a software product. The architecture diagram provides an overview of an entire system, identifying the main components that would be developed for the product and their interfaces.
HLD is the overall system design - covering the system architecture and database design documents. It describes the relationship between various modules and functions of the system. Data flow, flow charts, and data structures are covered under HLD.
The HLD uses possibly nontechnical to mildly technical terms that should be understandable to the administrators of the system as it gives overall System Design in terms of Functional Architecture details and Database design.
In contrast, low-level design further exposes the logical detailed design of each of these elements for programmers.
In the preliminary stages of a software development, the need is to size the project and to identify those parts of the project that might be risky or time-consuming.
As the project proceeds, the need is to provide an overview of how the various sub-systems and components of the system fit together.
High-level design document
A high-level design document or HLDD adds the necessary details to the current project description to represent a suitable model for coding. This document includes a high-level architecture diagram depicting the structure of the system, such as the database architecture, application architecture (layers), application flow (navigation), security architecture and technology architecture.
A high-level design provides an overview of a system, product, service or process. Such an overview helps supporting components be compatible with others.
The highest-level design should briefly describe all platforms, systems, products, services, and processes that it depends on and include any important changes that need to be made to them.
In addition, there should be brief consideration of all significant commercial, legal, environmental, security, safety and technical risks, issues, and assumptions.
Every type of end-user should be identified in the high-level design and each contributing design should give due consideration to the customer experience.