The term Software Reverse Engineering is oftentimes precepted as something related to the Dark Arts. Although, when it is used well, there is nothing dark about it. On the contrary, Software Reverse Engineering is a powerful tool that may help your business save much time and, therefore, money.
Software Reverse Engineering is almost unavoidable when it comes to the problem of legacy software. For example, there is an old software module that still does the work well, but is not compatible with other newer modules and the vendor has either gone out of business or dropped support for the version you have, or the source code has been lost or is no longer usable for whatever reasons. Ordering development of a new module with the same functionality may be impractical (meaning too expensive, too time- consuming and alike), as there is always a possibility to tweak the existing software or implement a relatively simple wrapper. This is where Software Reverse Engineering may save the situation.