High-level design
High-level design provides an overview of an entire system, identifying all its elements at some level of abstraction. This contrasts with Low level Design which exposes the detailed design of each of these elements.
Purpose
Preliminary design - 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.
Design overview - As the project proceeds the need is to provide an overview of how the various sub-systems and components of the system fit together.
In both cases the high level should be a complete view of the entire system breaking it down into smaller parts that are more easily understood. To minimize the maintenance overhead as construction proceeds and the lower level is done it is best that high level design is only elaborated to the degree needed to satisfy these needs.
Design overview
A high-level design provides an overview of a solution, platform, system, product, service, or process.
Such an overview is important in a multi-project development 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 high-level design document will usually include a high-level architecture diagram depicting the components, interfaces and networks that need to be further specified or developed.
The document may also depict or otherwise refer to work flows and/or data flows between component systems.
In addition, there should be brief consideration of all significant commercial, legal, environmental, security, safety and technical risks, issues and assumptions.
The idea is to mention every work area briefly, clearly delegating the ownership of more detailed design activity whilst also encouraging effective collaboration between the various project teams.
Today, most high-level designs require contributions from a number of experts, representing many distinct professional disciplines.
Finally, every type of end-user should be identified in the high-level design and each contributing design should give due consideration to customer experience.
References
- "Designing in a Big Way - a practical guide for managers", High Level Designs Ltd, ISBN 978-0-9562164-0-3
See also
- Software development process
- Lower level design