1. In a computer, a method comprising: designing a system of systems where the systems include a first designed system defined by passive granulated information components using context-free grammars, the method further comprising the steps of: randomizing all components to maximize reusability and minimize the incidence of error, including increasing the density of the passive granulated information components; applying components, as appropriate, such that an image of transformation which defines symmetry can either create a passive component, such as an object, or an active component, which is a component capable of transforming other components, including itself, in a more compact form; caching the image of transformation along with its transformative definition, including caching at least the fundamental derivation where the active transformation components create symmetric and creative designs; and, where all components are represented in a context-free grammar under direct human control, where the systems include iteratively defined sub-systems, and where the passive components and active components are reused in whole or in part, including using a version space of possible maps from the first system design to a second related system design, the version space having rules, which are automatically constrained by other cases in the first system design memory, which may not be contradicted, and the second system design automatically learns with use and user feedback how to generalize the first system design so as to enable the creation of the version space.