This is a high-level design of implementation,
specifying entities with enough detail so that
individual programmers could complete them independently
yet without so much detail that there is nothing
left to do but transcribe code.
In the conventional Waterloo practice of code design,
this will correspond to something like the
second or third level of refinement in a top-down
design.
For C++
classes or class hierarchies, this will correspond to an overview
of the class interfaces and entity relationships
without detail about the
implementation or stress on the private components.
It will also provide an overview of control flow and of the creation,
activity, and destruction of objects.