Architecture Tools

In his show about Scenario Based Architecture Validation, Ron Jacobs talks with Dragos Manolescu (Architecture Evaluation in Practice) about how difficult it is to evaluate and validate an architecture.

There are a few tools that can help you validate the architecture of your application or framework, though. Here are two of them.

Lattix LDM 3.0

This tool from Lattix uses Dependency Structure Matrix (DSM) to communicate the architecture, identify critical dependencies, and define rules to flag dependency violations.

  • Where can it be used?
    • Java
      jar, zip or class files
    • C/C++
      Microsoft Visual Studio C/C++: bsc files
      All other C/C++: Doxygen xml output files
    • .NET
      exe and dll files
    • Oracle
      9i or 10g database catalog
  • What I like about it
    • The way I can tweak my architecture and get a work list with what I need to get there.
    • I can define my own validation rules.
    • Some level of integration with Visual Studio 2005 that keeps the model in sync with the builds.
  • What I don't like about it
    • I have nothing against Java, but I'm a .NET developer and I don't like the fact that I need to install Java to work with my .NET assemblies.
  • What I would like it to have
    • A .NET version.
    • SQL Server support.
    • More integration with Visual Studio (build targets, check in policies, etc.).

NDepend

This is a tool from fellow C# MVP Patrick Smacchia, and goes more deeply in the application's structure. Besides being an analysis tool, this is also a diagnostics tool that can be integrated in build processes to guarantee architectural quality.

  • Where can it be used?
    • Any .NET assembly.
  • What I like about it
    • Tree map of assemblies/classes
    • Dependence Structure Matrix.
    • CQL (Code Query Language). An amazing SQL like query language used to query the code and extract metrics or define constraints.
    • Build comparison.
    • Import Visual Studio 2005 solutions and projects.
    • Integration with MSBuild, NAnt and CruiseControl.NET.
  • What I don't like about it
    • The NDpend Console that pops up.
  • What I would like it to have
    • The NDepend Console running integrated in VisualNDepend.
    • More analysis and prescriptive tools to help us achieve a better architecture.

This is, by no means, an extensive analysis of these two very complex tools and you should try them by yourselves (or, at leat, watch the various screen casts provided) to come to your own conclusions.

Comments are closed.