views:

80

answers:

4

Unfortunately I'm not familiar with UML (yet) and I don't know what validations are in place in the standard tools. But after reading this it seems validation is missing so I ask SO for advice.

I want it to find stuff like

  • logical inconsistencies
  • disconnected parts (islands)
  • unreachable parts (for example a state with only from transitions)
  • missing cases (a item is defined with 3 transitions but only 2 is used)
  • Other things I don't know about but someone used to UML would want.
+1  A: 

No, I'm not aware of any UML tools that do these things. I've done a fairly recent survey of tools for my employer, and I didn't see any such features.

You realize, of course, just what a high level of functionality you're asking for. You write as if you expect these to be common.

duffymo
One can hope...
Nifle
A: 

I could point to some research prototype tools, specially for the verification and validation of class diagrams with or without OCL constraints (e.g. my own verification tool http://gres.uoc.edu/UMLtoCSP/ or http://www.db.informatik.uni-bremen.de/projects/USE/) but these are tools are just that: research tools (with all the limitations this implies).

I'm not really aware of any commercial CASE tool that offers advanced verificacion/validation capabilities.

Jordi Cabot
+1  A: 

Sparx Enterprise Architect does a lot of those validations. I don't know if it does all of them.

John Saunders
+1  A: 

If you use Visual Studio, you might try the RC release of VS 2010 Ultimate. You can generate dependency graphs for .NET code to find disconnected or unreachable code. You can create layer diagrams from dependency graphs or from existing artifacts, draw the permitted dependencies, and then use layer validation to make sure invalid dependencies aren't introduced. This version also includes 5 UML diagrams: class, component, sequence, use case, and activity.

How to: Generate Graph Documents from Code: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

You can use Visual Studio Ultimate to explore the relationships and organization in existing code by generating directed graph documents. These graphs represent code elements and their relationships as a set of nodes that are connected by links, or edges. You can use these graphs to help you visualize, explore, and analyze code.

How to: Find Code Using Architecture Explorer: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

You can select vertical sections or "slices" of code that you want to visualize by using Architecture Explorer. You can explore source code in a Visual Studio solution or compiled managed code in .dll files or .exe files. You can use Architecture Explorer to browse other domains by installing additional providers. When you find the code that you want to visualize, you can generate graphs to explore the relationships in that code.

How to: Create Layer Diagrams from Artifacts: http://msdn.microsoft.com/en-us/library/dd465141%28VS.100%29.aspx

...use layer diagrams to visualize the high-level architecture of your system and to verify that the code complies with this design. To perform this task, organize and associate the artifacts from a Visual Studio solution into logical, abstract groups, or layers. These layers describe major tasks that these artifacts perform or the major components of your system. Arrows between the layers represent the interdependencies that exist or should exist between these artifacts. To enforce architectural constraints on the code, describe the intended dependencies on the diagram and then validate the code against the diagram. By using layer diagrams in this manner, you can help make the code easier to understand, reuse, and maintain.

Layer Diagram

How to: Validate Code Against Layer Diagrams: http://msdn.microsoft.com/en-us/library/dd409395%28VS.100%29.aspx

Validating code against a layer diagram helps you enforce architectural constraints on the code as it evolves. When you perform this task, dependencies in the code are compared with dependencies on the diagram.

RC download: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a.

Visual Studio 2010 Architectural Discovery & Modeling Tools forum: http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads

Esther Fan - MSFT