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.