tags:

views:

533

answers:

9

I need some help - here are my requirements.

1: I should be able to modify the UML model without affecting the code, and then later apply the changes. This is because I need to print the changes, get them confirmed, and then develop them.

2: I should be able to reuse parts of the model. For example I would create one project which outputs A.dll assembly, and then another UML project would use the classes in the first to crate B.dll

3: Project stored as text so I can see changes in version control history.

4: Together is too expensive :-)

A: 

You might try Acceleo. I've used it with PHP before, but it supposedly can output C# code as well.

Weegee
A: 

Microsoft's Visio performs this task too. You can infer a UML model from existing C# code, or generate C# code from an existing model.

Steve Guidi
A: 

Sparx Enterprise Architect - best option.

ZokiManas
+1  A: 

VS2010 has UML support.

CD
+1  A: 

I like Enterprise Architect better than Visio. To me, EA has better UML support and is closer to UML standards.

mqbt
A: 

I agree with mqbt and ZokiManas. Sparx Enterprise Architect fulfils requirements 1,2, and 4. I am not sure that 3 is possible.

Main webpage: Enterprise Architect

For version control facilities look at: EA version control

Sam
A: 

EA is what I'm using. It's a powerful app.

+2  A: 

Visual Studio 2010 Ultimate supports UML class, sequence, component, use case, and activity diagrams, which do not affect your code. It also supports creating sequence and layer diagrams from code. You can then edit these diagrams without affecting the code. Other tools include dependency graphs that you can generate from code as well as Architecture Explorer, which lets you browse and explore your solution. You can create multiple modeling projects in a solution, and you can check these diagrams into Team Foundation version control.

I've posted more links on my profile for more info.

Esther Fan - MSFT
A: 

3 is possible and supported by Visual Studio 2010 Ultimate, which stores all project and model information using XML files.

That Guy