<p>What software do you use when designing classes and their relationship, or just pen and paper?</p>

[{'answer_id': 14438, 'author': 'Martin', 'author_id': 770, 'author_profile': 'https://Stackoverflow.com/users/770', 'pm_score': 0, 'selected': False, 'text': '<p>Mostly pen and paper, although I occasionally break out Visio and just do some rough diagrams.</p>\n\n<p>Would be nice to have a fancy tool I guess, but it would just be another thing to learn.</p>\n'}, {'answer_id': 14440, 'author': 'Brian Warshaw', 'author_id': 1344, 'author_profile': 'https://Stackoverflow.com/users/1344', 'pm_score': 3, 'selected': False, 'text': "<p>I find pen and paper very useful, and I try to get as far away from a computer as possible. If I do it on the compy, I'm always too tempted to start programming the solution. That inevitably leads to me changing things later that I would have spotted in the planning phase had I actually spent a good measure of time on it.</p>\n"}, {'answer_id': 14445, 'author': 'Davide Vosti', 'author_id': 1812, 'author_profile': 'https://Stackoverflow.com/users/1812', 'pm_score': 1, 'selected': False, 'text': "<p>Pen and paper for the first draft. Umlet to digitalize it. It's very minimal but it does what I need</p>\n"}, {'answer_id': 14446, 'author': 'Jason Sparks', 'author_id': 512, 'author_profile': 'https://Stackoverflow.com/users/512', 'pm_score': 0, 'selected': False, 'text': "<p>When doing an initial design I like a whiteboard and 1 - 3 other developers to bounce ideas off of. That's usually enough to catch any glaring errors/fix any tricky situations that may arise without dropping the s/n ratio by too much.</p>\n"}, {'answer_id': 14449, 'author': 'Anders Sandvig', 'author_id': 1709, 'author_profile': 'https://Stackoverflow.com/users/1709', 'pm_score': 0, 'selected': False, 'text': '<p>I find pen and paper, a whiteboard and possibly some <a href="http://en.wikipedia.org/wiki/Class-Responsibility-Collaboration_card" rel="nofollow noreferrer">CRC cards</a> to be very useful. Most of the time I think a whiteboard and some stickers or cards with the class and/or module names written on them work best when doing planning and designing as a group. Pen and paper is fine if you are doing the activity alone. Once you have the basic structure set you can always make a pretty UML diagram.</p>\n'}, {'answer_id': 14456, 'author': 'Chris Porter', 'author_id': 1725, 'author_profile': 'https://Stackoverflow.com/users/1725', 'pm_score': 2, 'selected': False, 'text': '<p>I usually start with a empty interface then start writing tests. I then generate the members using refactoring tools. For me unit testing is part of the design.</p>\n'}, {'answer_id': 14460, 'author': 'Pascal Immerzeel', 'author_id': 1729, 'author_profile': 'https://Stackoverflow.com/users/1729', 'pm_score': 1, 'selected': False, 'text': "<p>I use pen and paper. </p>\n\n<p>For all planning purposes, it's the fastest way.\nI get lost in layout and finetuning when I use a UML package.</p>\n\n<p>But that is my burden.. :-)</p>\n"}, {'answer_id': 14465, 'author': 'Steve M', 'author_id': 1693, 'author_profile': 'https://Stackoverflow.com/users/1693', 'pm_score': 1, 'selected': False, 'text': "<p>Go for PENCIL and paper, or a whiteboard. Anything permenant-marking like a pen and you'll have a pretty messy design!</p>\n"}, {'answer_id': 14467, 'author': 'Huppie', 'author_id': 1830, 'author_profile': 'https://Stackoverflow.com/users/1830', 'pm_score': 0, 'selected': False, 'text': '<p>Pen and Paper and/or Whiteboards for drafting, a more comprehensive tool for documentation purposes.</p>\n\n<p>I mainly use Class Diagrams and a few sketches with Sequence Diagrams to get most of the relationships right.</p>\n\n<p>About the tools: At work I use <a href="http://www.sparxsystems.com.au/" rel="nofollow noreferrer">Enterprise Architect</a> but personally I find <a href="http://www.visual-paradigm.com/product/vpuml/" rel="nofollow noreferrer">Visual Paradigm for UML</a> a better choice. The latter is much more flexible and allows quick drafting as well.</p>\n\n<p>At VP they also have a version called <a href="http://www.visual-paradigm.com/product/ag/" rel="nofollow noreferrer">Agilian</a> for some time now (which I have not yet used) which seems to be even more flexible, allowing sketches to become documentation in no-time... maybe one day this tool will replace my paper sketches (save the trees :P).</p>\n'}, {'answer_id': 14470, 'author': 'Sören Kuklau', 'author_id': 1600, 'author_profile': 'https://Stackoverflow.com/users/1600', 'pm_score': 2, 'selected': False, 'text': '<p><a href="http://www.omnigroup.com/applications/omnigraffle/" rel="nofollow noreferrer">OmniGraffle</a> (Visio-esque app for Mac OS X), sometimes. Otherwise, just pen and paper will do.</p>\n'}, {'answer_id': 14483, 'author': 'Mike Woodhouse', 'author_id': 1060, 'author_profile': 'https://Stackoverflow.com/users/1060', 'pm_score': 2, 'selected': False, 'text': '<p>It\'s easy, while in the paper-and-pen (or whatever non-code equivalent you prefer) stage, to overstay, falling prey to the dreaded <a href="http://en.wikipedia.org/wiki/You_Ain%27t_Gonna_Need_It" rel="nofollow noreferrer">YAGNI</a> syndrome. How many of us have carefully designed in some "sexy" feature that ended up never being used? (Raises hand. Hands.)</p>\n\n<p>Small iterative test-driven steps and frequent refactoring - let the code tell you what it wants to be.</p>\n\n<p>Most of my projects start out with the only certainty being that we won\'t end up where we currently think we will. So spending very much time on Big Up-Front Design (or <a href="http://c2.com/cgi/wiki?BigDesignUpFront" rel="nofollow noreferrer">Big Design Up Front</a> if you prefer) is wasteful - better to start with the first thing we want to do and see where we end up.</p>\n\n<p>It kind of depends on where you consider design to end. I read an article a few years back that presented the idea that coding is design - or for the Big Process fans at least it\'s the back-end of design. It rang true to me and changed forever the way I viewed the stages of the development process. Of course, I\'ve just googled like crazy for the darn thing. Could I find it? Could I heck. Perhaps I dreamed the article and it\'s all my own idea. Yeah, that\'ll be it.</p>\n'}, {'answer_id': 14571, 'author': 'James A. Rosen', 'author_id': 1190, 'author_profile': 'https://Stackoverflow.com/users/1190', 'pm_score': 1, 'selected': False, 'text': "<p>Whiteboard for the first 35 or 40 drafts.  UML is nice after that, but not particularly necessary.  The best documentation after you've hashed out the details is clean code.</p>\n"}]
['https://Stackoverflow.com/questions/14435', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1703/']