Some terms are self-explanatory. Such is the case with reverse engineering, which is literally taking something apart and putting it back together. This can be done physically or virtually, and the intent is to figure out how something works in order to create something similar.
Reverse engineering has been done for many centuries, almost as long as people have been creating things. Sometimes, reverse engineering is done with the purpose of improving on an existing creation while other instances of reverse engineering involve stealing technology. The latter has especially been the case with weapons throughout the history of warfare.
It's not just weapons, that are subjects of reverse engineering. Everyday things like vehicles, DVDs, and appliances are the subject of intense scrutiny in quarters around the world. Some companies make a habit of importing goods from other countries, taking those goods apart piece by piece, and then using reverse engineering to make their own.
Reverse engineering is done in the virtual world as well. Computer artists and scientists practice reverse engineering by making 3D models of real-world devices and then deconstructing them virtually in order to see how they work. At times they put them back together, either exactly or in a slightly different way. The advent of heavy-duty servers and graphics suites has made this both possible and desirable.
Computers practice reverse engineering on a more fundamental level as well. One form of this kind of reverse engineering is decompiling. Decompiling is a process during which a computer will convert information from a low-level format (computer code) into a high-level format (ASCII text and numbers), in order to allow people to read things like instructions and Web articles. Common occurrences of decompiling involve transferring of files from one user to another, like an exchange of data or images in an email, or for the rebuilding of coding that has been damaged or was never completed. Decompiling can also come in the form of security breaches, in which a hacker will use reverse engineering to reconstruct the data that someone else so desperately wanted to hide via encryption.
Another dual use of reverse engineering is in the creation and prevention of computer viruses. Virus creators delve into the innards of computer code in order to find places to bury their creations. By rebuilding the machine code as source code, the virus creator can find what he or she is looking for. On the flip side of those actions are the people who seek to prevent or destroy computer viruses. They, too, use reverse engineering to deconstruct the virus itself and destroy or anticipate the harmful executables.