RMP Resource - HLD (High Level Design)
Design is the second stage in Software Development Life Cycle. The design stage
includes two substages :
- HLD - High Level Design
- DLD - Detailed Level design
A High-Level Design is diagramatic representation of a solution, platform, system,
product, service, or process.It is important in mulit-project development and provides
an overview to make sure that each supporting component design will be compatible
with its neighbouring designs and with the big picture.The highest level solution
design should briefly describe all platforms, systems, products,services and processes
that it depends upon and include any important changes that need to be made to them.
A document that contains HLD will usually include a high-level architecture diagram
depicting the components, interfaces and networks that need to be further specified
or developed.
The purpose of this High Level Design (HLD) Document is to add the necessary detail
to the current project description to represent a suitable model for coding. This
document is also intended to help detect contradictions prior to coding, and can
be used as a reference manual for how the modules interact at a high level.The HLD
documentation presents the structure of the system, such as the database architecture,
application architecture (layers), application flow (Navigation), and technology
architecture. The HLD uses non-technical to mildly-technical terms which should
be understandable to the administrators of the system.
The HLD will present all of the design aspects and define them in detail. It also
describe the user interface beging implemented, the hardware and software interface
and the performance requirements. It includes design features and the architecture
of the project and describe the non-functional attributes like security, reliability,
maintainability, portability, reusability, application compatibility, resource utilization
and service ability. HLD also provide answers to more complex questions, such as
nonfunctional requirements. These requirements include system audit and control,
extensibility, resilence, vertical and horizontal scalability, multisite issues,
and integration of third-party tools.
Following steps can be followed in preparation of HLD:
- First step is to ascertain the components and then represent
them, SRS is used as the base document for HLD.
- Identify the constituents (attributes and methods) of each
class.
- Write a description of each constituent of identified classes,
no matter how trivial each constituent seems to be. This is called the data dictionary.
- Establish the relationship between the classes.
Some guidlines to design HLD are :
- It should be a diagram or set of diagrams with as few notes
as possible.
- Start simple and at as high a level as possible.
- Contain all the key objects that must be secured and represent
them generically.
- Contain all the key security relationships between objects.
- Serve to generate all security test cases and a starting
point from which to generate the DLD.