Software Reenginering

Untitled document

Software Reengineering, in contrast to Project Recovery, focuses on the actual source code. There are many reasons for reengineering:

  • Legacy code that is difficult to maintain.
  • Third-party code that is difficult to understand or maintain, or otherwise of sub-standard quality.
  • Own code that conatins many small, but sometimes hard-to-find, bugs.
  • Own code that otherwise needs improving.

Assuming that the code at hand represents a not insignificant investment and still does many things right, it is almost always more efficient to reengineer than to rewrite. Reeingineering is an often rather mechanical process, and as such is unlikely to introduce new bugs. After reengineering you will have software that is

  • More robust. i.e. it will run for a long time, ideally infinitely, without errors or failures.
  • More rugged, i.e. it will withstand harsh running conditions, such as high load, memory shortage, other resource shortages, bad input &c.
  • More maintainable

Software Reengineering pays off quickly. It is an efficient method of removing bugs without even looking for them. Considering that up to 2/3 of development time can be spent on bug hunting, it is obvious that preventing bugs by improving code qulity is an attractive proposition.

SDU can help you with all aspects of reeingineering. For a brief overview of the steps involved in reengineering C code, see the section on The Method.