Software blueprint

Therefore, a true software blueprint should share a number of key properties with its building-blueprint counterpart.

Software blueprints focus on one application aspect, for clarity of presentation and to ensure that all of the relevant logic is localized.

The prescriptive nature of this description means that it can be machine translated into an executable framework that may be tested for structural integrity (detection of race conditions, deadlocks etc.)

Class designers allow the specification of arbitrarily complex data structures in a convenient form and the prescriptive nature of this description allows generation of executable code to perform list management, format translation, endian swapping and so on.

UML represents structure, associations and interactions between various software elements, like classes, objects or components.