views:

554

answers:

9

Do you use visual studio's class diagram generator? Or, do you suggest any other better tool?

The main features I'm expecting out of such a tool are:

  1. Ability to generate C#/VB.net code skeletons
  2. Ability to reverse engineer C#/VB.net code (Ability to update class diagram if I modified my source code)
  3. Integration with Visual Studio, if possible
  4. SVN integration (To keep track of the changes in the class diagram)
A: 

I am using the built-in class designer. It's specialized for .NET code, has all the features you mentioned and worked quite well in any cases I experienced.

OregonGhost
+1  A: 

I just use code. I see no reason for any 'class designer'.

I don't understand what the rest of your list has to do with what you are asking either.

  1. Visual Studio

  2. Reflector

3/4. Ankh SVN

Geoffrey Chetwood
The rest of the list is the feature list Vijesh expects from the class designer.
OregonGhost
@OregonGhost: Yes I gathered that. It still makes no sense.
Geoffrey Chetwood
1 and 2 mean that the designer should work both ways (i.e. changes in the diagram are reflected in code and vice versa) and 4 means that the class diagram should be in a SVN-friendly format.
OregonGhost
@OregonGhost: Again, I think you miss the point.
Geoffrey Chetwood
Rich, I'm basically looking out for a tool which could help me to generate class diagrams during design phase. Once I'm done with the class design I want to generate the code skeletons out of the diagram, so that I can add further logic into my classes.
Vijesh VP
@ Rich: Huh? Then tell me what Reflector and Ankh SVN have to do with a class designer tool?
OregonGhost
@OregonGhost: There is no tool for what he wants. Except VS. And both integrate into VS. Therefore he wants what I provide in my answer.
Geoffrey Chetwood
@Vijesh: My list will enable you to do any of that.
Geoffrey Chetwood
@Rich: So you provide some random tools that integrate into VS, because Vijesh wants a class designer tool that integrates into VS and plays well with SVN?
OregonGhost
@ Rich: Just to make my point clear, "reverse engineering source code" in the context of a class deisgn tool means the ability to update class diagram if I modified my source code.
Vijesh VP
@OregonGhost: Again, I don't think you understand the train of thought here. Integrating source control into a class designer is silly. Using the SVN integration in VS that will store the class files it generates is correct. Everything he needs is in VS or in my list.
Geoffrey Chetwood
@Vijesh: Sure, and VS class designer does that for you. Problem solved.
Geoffrey Chetwood
@OregonGhost: Please explain where you answered his list since you seem to be so critical of mine.
Geoffrey Chetwood
Your list is fine, but Vijesh didn't want a decompiler and he didn't want to integrate SVN with the class designer, nor an SVN tool. He wanted the class designer to be easily used with SVN, i.e. have text files that can be diffed. Your point 1 (VS) alone is the answer to questions 1, 2, 3 and 4 :)
OregonGhost
Wow, it's hard to say so much with just 300 characters.Anyway. Guess in the end we both meant the same ;)
OregonGhost
+2  A: 

The only thing which I use from such tools is a nice, generated Diagram to present. I won't ever use something like this to generate sourcecode.

MADMap
+7  A: 

A whiteboard and peer developers.

Translating that into code is a reasonably straightforward task, in my experience. The downside of this with traditional whiteboards is that even if you take a photo, it's hard to edit later. Ideally I'd like a digital whiteboard for this kind of thing.

The tactile, ad hoc, not-on-a-monitor nature of it is quite important to me though. In particular, because I'm not constrained by UML etc, I can express the important concepts and talk through them with other developers, potentially adding extra relationship types which aren't normally covered by tools but which are important in the design.

Jon Skeet
A: 

If you are after a low cost / free option, I like StarUML. It has a few missing features but is great for class diagrams. It has the facility to create the code too but, like other people who have answered, I prefer to create the code myself.

Having said that, I usually start out on a Whiteboard or a pad of paper.

BlackWasp
A: 

We use Sparx System's Enterprise Architect for creating UML diagrams of classes, and generating code. (Not for c# but I believe it can). It can do the forward and reverse generation.

Douglas Leeder
+1  A: 

I have used the CRC Card approach described by Cunningham / Beck and many others for a number of years. Works well. Its fast, flexible and allows me to make progress quickly

http://c2.com/doc/oopsla89/paper.html

Thomas Wagner
A: 

I would recommend using a pen and paper or a white board because of the ease of use and the fact that you do not have any constraints. but in case you wish to have a tool on your computer I would recommended Visual Paradigm solution for UML modeling with visual studio integration.

Dror Helper
A: 

I use Visio for Enterprise Architects. It doesn't have SVN integration though.

Robert S.