Code maps are one type of model that helps you see the organization and relationships in your code.
Use maps to examine program code so you can better understand its structure and its dependencies, how to update it, and estimate the cost of proposed changes.
Dependency diagrams let you define the structure of an application as a set of layers or blocks with explicit dependencies. Live validation shows conflicts between dependencies in the code and dependencies described on a dependency diagram.
Use dependency diagrams to:
Stabilize the structure of the application through numerous changes over its life.
Discover unintentional dependency conflicts before checking in changes to the code.
A DSL is a notation that you design for a specific purpose. In Visual Studio, it's usually graphical.
Use domain-specific language to:
Generate or configure parts of the application. Work is required to develop the notation and tools. The result can be a better fit to your domain than a UML customization.
For large projects or in product lines where the investment in developing the DSL and its tools is returned by its use in more than one project.
Edition support for architecture and modeling tools
Visual Studio is available in several editions. Not all of these provide support for the architecture and modeling tools. The following table shows the availability of each tool.
Feature
Enterprise edition
Professional edition
Community edition
Code maps
Yes
Only supports reading code maps, filtering code maps, adding new generic nodes, and creating a new Directed Graph from a selection.
You can use any canvas, physical or virtual, to create a data-flow diagram. Engineers at Microsoft recommend three tools to help you in your threat modeling journey.