Generic architectures are made of building blocks. Building blocks are software components that can be configured to fit an application purpose. Several ongoing studies intend to deliver prototypes of building blocks. The successful reuse of building blocks depends on several conditions:
the generic architectures are defined in the scope of avionics families, through a process called “domain engineering”
the building blocks interface is standardised enough to minimize the need for building block configuration
the building block interface standard is, however, flexible enough to allow an efficient business model in a multi-vendor policy
Building blocks can be found in the application software (for example: data handling, control), in the communication layer (for example: Spacecraft On-board Interface Services (SOIS)), in the operating system or in the middleware.