I am a consultant and get handed new projects a lot. Usually they take the form of my latest, a SQL Server app containing 50,000+ lines of code spread over procs, funx, views etc, in addition to supporting tables PLUS the source and target DBs.
Fortunately the whole thing has been meticulously documented with detailed requirements, run books, comments,schematics, logical and data flow charts, etc. HAHAHAHAHAHAHA, I mean I got nothing.
So I have done this exercise a few times and am trying make best use of resources. Assuming I have no 3rd party tools,
what pointers can be offered for familiarizing myself effectively and effeciently with this beast?
My methods to date include:
1) DMVs (my new favorite toys) Reference and Referencing objects. I have script that loops through DB and writes what every object touches, so I have a nice table to query. Not 100% accurate but very handy. I don't look at indexes at this point.
2) SQL Profiler once I have to general map of what touches what I can see what are key proc and funx, then trace them. Using the logs I can see what they call, spawn, etc.
3) Debugger once I have a general sequence down I can walk through a single thread with the debugger. Bring plenty of snacks. I narrate the process into my phone then transcribe as well as taking notes.
Any thoughts? Is there a specific term for this process, more specific than "analysis" or "reverse engineering?" Getting to the next topic what 3rd party tools are useful?