27 March 2007 - 18:22Reverse engineering 101
Lately I have been involved in some extensive reverse-engineering, I needed to talk to a system and the guy who wrote it wasn’t there. What I learned is that it pays off to think of the other system as a series of blocks that you use in order to achieve what you need to. Thinking about the system in terms of functionality rather than programming paradigms helps you navigate between a system’s components and make better choices about which component is liable to service what request. You should choose the granularity of your knowledge of the system and decide what you find interesting and what not. Actually, you should take a view as “high-level” as possible and try not to get caught in small items (which is not always possible).
The good thing about this approach is that you are in control of it: you choose how deep to go in order to achieve your results. In some cases you may go as deep as an interface’s contract, in other cases you may need to go all the way to the database.
No Comments | Tags: Development