Visual Studio ALM … stepping through Brian’s HOLs (Part 2) – Code Discovery

Continued from Visual Studio ALM … stepping through Brian’s HOLs and creating a DRAFT checklist (Part 1), giving us the following bread crumbs to date:

Define Business Requirements > Project Planning … today’s menu includes Code Discovery.

This is an area which has just caused a slight delay and refactoring of the Rangers Architecture Guidance. We were using the term “reverse engineering” which has some connotations and should be avoided … but if we are not to reverse engineer, what are we to do? We debated the options analyze and explore. Brian’s HOLs use analyze code, but we decided to align ourselves with user education (UE) and used explore an existing system, which promises slightly less in terms of results … but at the end of the day we are reverse engineering code, analyzing it and producing visualizations (models).

Focus Area Reference Material Suggested steps for the quick reference poster
Reference Material

Back to Brian’s HOL … instead of duplicating the HOL and the architecture guidance, I have decided to document some of the user nuggets I discovered:

Dependency Graph

  • Dependency graphs can be generated by assembly and/or namespace and/or class.
  • Dependency graphs can be fine tuned by using the access filter.
  • Dependency graph zooming can be done by using CTRL + Mouse Scroll Wheel
  • When you hover over a blue relationship line, you can expose:
    • Navigate to source
    • Navigate to target
    • (+) Generate new graph with just source and target nodes.
  • You can delete nodes from the dependency graph to reduce noise … which deletes from the graph, not the solution 🙂
    • We could, for example, delete the Externals node
    • If we do, we should use the Legend and add IsExternal node property with a very conspicuous colour.
  • Dependency graph includes Externals
    • Reflection is used to explore the inner world of externals
    • We should use the legend to add IsExternal and add a conspicuous colour.
  • Note that the vertical bar can be selected to display further properties … this one had me staring at the screen for a while:

At this stage I will stop the blog post, because there are gazillion filters and options  which you should experiment with. There is no finite guidance as to how to explore … experiment with the tooling and create a strategy that works for you.

In part 3, we will look at class coupling …

| Acronyms | CTRL – Control Key | HOL - Hands-On-Lab | RI – Reverse Integration (merge) | TFS – Team Foundation  Server | UE – User Education |

Skip to main content