using existing software artifacts to construct a new software system
reusing software components and abilities from previous systems
rely on directed retrieval of information from memory. association exploits the mind's ability to move from one idea to another. analogy employs similarity-driven searches of memory.