1. A computer-implemented system for designing software-based components for systems of systems where the systems of systems consist of components that are themselves systems, the computer implemented system comprising: multiple software-based components saved in a relational database where the functions of each software component are defined by one or more examples of its operation using a natural language and where each software component is assigned a searchable, unique free-text field such that each of the components have multiple indexed levels in a literal restriction path; and a processor and memory, the processor and memory controlling retrieval, synthesis, substitution, reuse and modification of the components in the relational database at every level of the multiple levels, including means for defining a new software component, including functional I/O definitions where each component saved in the relational database is associated with one or more tests that serve to map a random input vector to a correct output vector; where the I/O definitions includes I/O specification vectors for testing the systems of systems; where the I/O definitions includes I/O specification rules for component construction and including I/O specification vectors which are local to each component and where each component has an input vector holding bin and an output vector holding bin and where the output bins feed the input bins to which they are connected so that a component will only produce outputs for those respective inputs which are found in its respective specification vector.