DEF/blueprint
Similar terms and concepts
|
A →formal description of the →structure of an →artefact that exists or shall be realised.
Note that this notion of blueprint captures all programs in executable programming languages. Therefore, in the area of software engineering a blueprint is always present, even if no formal approach is intended. Readers who are interested in software only might read ‘program’ where we write ‘blueprint’.
In summary: an artefact has or is supposed to have certain properties; a specification is a description of those properties; a blueprint is a description of the precise structure of the artefact, relative to the specification of the properties of its parts.
Definition
DEF/blueprint
A blueprint of arity n, n>=0 is a pair (s, X) where s is a sequence of n specifications and X is a structure description containing n numbered ‘place holders’ for components.
Explanation
{{{explanation}}}
Relations with other concepts
- realisation
- An →artefact is a realisation of a blueprint (s, X) if its →structure is that defined by the blueprint, i.e. if it is faithfully built according to X from parts implementing the corresponding specifications in s, with each part set in the position of the correspondingly numbered place holder.
- satification
- A blueprint satisfies a →specification if each of its realisations is an implementation of that specification.
Blueprints can have two different semantics: the structural semantics defines which realisations are meant; it induces a observational semantics ,viz. the class of properties that can be guaranteed for all its possible realisations.
Pragmatics
A blueprint forms the interface between the mathematical world of design and verification and physical reality. It must be understandable by the person or machine that has to realise it. An ideal blueprint resembles its realisations so much that it can easily be verified whether a given artefact is its realisation.
Note that an →artefact contains particular parts where a structure description only contains placeholders, to which a schema assigns requirements by way of specifications. The blueprint treats the parts as ‘black boxes’ of which only properties are prescribed, not the internal structure—while the structure itself is a ‘glass box’.
In practise, a part is defined by giving either its specification or a pointer to that specification. If the specifications of parts contain names (e.g. 'input port' and 'output port'), the semantics of the blueprint language may contain a renaming mechanism (which, in this example, changes 'input port' to something like 'input port of part 3). Assembly is defined by identification (of, e.q. 'output port of part 1' and 'input port of part 3').
Examples
- electronics: an electrical circuit diagram of an amplifier
- software engineering: a string of zeroes and ones representing a binary machine program
- software engineering: a program in some programming language
- formal verification: a collection of Uppaal automata
- architecture: a blueprint
- consumer electronics: a diagram showing how the components of a 5.1 surround installation have to be wired
Examples of assembly are • [software only] the linking of ‘object modules’ into an ‘executable’, • [hardware only] the manufacturing of chips and • [hard- and software together] the loading of an executable into a computer.
Open questions
This is a definition from Taxonomy of Computer Science (Hanno Wupper et al. 2008).