Reputation: 23234
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 :-)
Upvotes: 3
Views: 3120
Reputation: 5242
What you are looking for is round-trip engineering ( reverse as well as forward software engineering) . I have used several UML tools and according to me Rational Rhapsody is the best roundtrip UML tool that supports several languages(C, C++, C#, Java™, or Ada) and all the features you are looking for.
Upvotes: 0
Reputation: 16
3 is possible and supported by Visual Studio 2010 Ultimate, which stores all project and model information using XML files.
Upvotes: 0
Reputation: 15658
I like Enterprise Architect better than Visio. To me, EA has better UML support and is closer to UML standards.
Upvotes: 1
Reputation: 8516
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.
Upvotes: 3
Reputation: 694
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
Upvotes: 2
Reputation: 20200
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.
Upvotes: 0