The process of figuring out how something works by observation, disassembly and/or analysis of its behaviour, attributes and effects.