views:

2171

answers:

28

I've never been happy with anything I've ever found. But not having good UML, or at a minimum some clear class diagrams, makes it difficult to move forward with design on a team. Especially if you're a team deeply engrained in Agile concepts wrapped in Scrum.

UML Tools? Visio? Visual Studio? Other?

+2  A: 

UModel by Altova Software is my UML modeling tool of choice. Other people will still use Visio just for the availability and familiarity. Another big and popular tool which will probably do more than most people ever really need is Rational Rose.

TheTXI
+5  A: 

Personally, I really like using Microsoft Visio and the following UML 2.2 template (http://softwarestencils.com/uml/index.html)

This gives me the freedom to draw whatever I want, where I can decide myself if I really want to follow full UML syntax, or have a bit more freedom if that makes a model easier to understand.

Arnaud Gouder
+10  A: 

Whiteboards and digital cameras.

If we need something more maintainable, I like SmartDraw. It's a lot easier to use (and prettier) than Visio.

Chris Pebble
You're doing it wrong. There has to a wooden table and a scanner or a fax machine somewhere in there too.
TheTXI
+1. For me, a diagram only has to stick around until the code is in place (at least a skeleton). Thereafter the code IS your diagram. Why spend countless hours modeling in UML?
Jon B
Arnaud Gouder
Jon B: Because you'll fail the class. Wait, you mean we're not in school anymore?
TheTXI
+1 - Big white board right behind me. First time boss saw it he asked who had the beautiful mind moment.
Otávio Décio
"fax machine", :-) good one!
tekBlues
@ocdecio: +1 for the beautiful mind
DForck42
Well, unfortunately I work for a government contractor. Cameras aren't allowed. {-o(
Boydski
In most of my (state) government experience, we've had printing whiteboards available. Those things are GREAT.
RolandTumble
+2  A: 

Check Balsamiq Mockups and the myriad of cloners. Great help at least for the UI designing part.

And of course, check paper prototyping! (seriously)

http://www.paperprototyping.com/

tekBlues
+26  A: 
George Stocker
Man, I LOVE Balsamiq! I'm actually in the middle of writing up a review for it on my blog. I've never looked at its potential for class diagrams though, only UI design. But I'll take a closer look. +1! (I'd give you +10 if I could. This app towtally rawks!)
Boydski
It would be fantastic if Balsamiq Mockups had UML support
Jeffrey Hines
@Jeffrey Hines - Yea; but you can 'fake it' easily enough. The author asked for 'conceptual design' and this is as conceptual as it gets.
George Stocker
@Gortok That's true but he did mention UML Tools and I think it would be great to have UML objects in Balsamiq Mockups or maybe it would be a different product from Balsamiq.
Jeffrey Hines
There is great danger in things like Balsamiq. Non-technical people see sorta-working mockups and then wonder why producing the real program takes so long. We used to refer to this as the "Powerpoint Compiler" effect, because of all the managers who would see a Powerpoint demo on Friday and expect a working program by Monday.
MusiGenesis
I think avoiding that danger is kind of one of the goals of Basalmiq with it's cartoonish appearance. Yes it's still *possible* for the non-technical to get the wrong idea, but one must admit it's a bit of a stretch to conflate a Basalmiq sketch with a working prototype... particularly compared to an HTML or other mock-up that looks just like the end result.
I Have the Hat
Agreed with @I Have The Hat. Its feature set of letting you get the 'gist' of the end product without promising it to unsuspecting business people is important.
George Stocker
+1 I'm a huge fan of this one. It's part of my daily life now.
Brian MacKay
+1  A: 

Whiteboard, paper, smartboard, and Visio.

DForck42
+17  A: 

Pen(cil) and paper

phsr
So much for the paperless office. I just heard a tree fall in the forest somewhere.
MusiGenesis
It could be recycled paper, or discarded printouts. :-)
phsr
Trees are a renewable resource.
Brian Ensink
+3  A: 

I like Visio, but Dia will do in a pinch. Typically, I put together high-level architecture diagrams and then class diagrams, have them peer reviewed, and then use them as a reference while I implement from the bottom up using TDD. I find that this tends to result in loosely coupled code and systems, and pretty good adherence to the YAGNI principle.

MattK
+2  A: 

Microsoft Visio (UML) and Balsamiq Mockups for UI Wireframes.

Jeffrey Hines
+3  A: 

Plenty of alcohol and coffee ;)

Hooray Im Helping
...that would be Irish coffee!
none
+2  A: 

Pencil and paper, or Delphi (RAD).

Ian Boyd
+4  A: 

On Mac OS you've got Ommnigraffle. Sweet.

Xavier Guardiola
+2  A: 

I use BOUML. It's opensource, round-trip (sort-of), and can do multiple languages including C++, Java, PHP, and Python. It's also very fast and robust. I use it under both Windows and Linux.

Master1588
+19  A: 

There are many parts to a conceptual design. Depending on which part you focus on a variety of tools are out there.

As with most computer things, Capturing it is easy, filing it away so you can find it later is critical. You won't use all of these tools 100% of the time, but they all need to flow to one central spot.

For me that is Fogbugz because it's simple, works, has a wiki and forum built in and I can do some basic workflow management.

Building a system that files things at the point of capture without having to process it many times (create it, then process it, and then file it so you can find it later) will save you a ton of time.

CREATE:

  • Tabloid size graphing paper (never run out of space)

  • Balsamiq Mockups with xwiki (keep your mockups evolving and tracked easily in the wiki with each revision)

  • OmniGraffle / Visio (Flowcharts, graphs, etc.)

  • Whiteboard. I have one big whiteboard right now. I'm getting ready to purchase the superb WallTalker product. It doubles as a projector screen, can come pre-printed with a grid on it like graphing paper, about $27/linear foot for a 60" roll. $300 for 13' feet of writing space!

CAPTURE:

  • Fogbugz for tracking as much as I can. The key part is being able to email myself anything and everything. Free hosted editions for 2 users online. Integrates directly with Apache Subversion, etc.

  • Phone camera for whiteboard I use my cell phone and send it straight as an email into Fogbugz, making sure to put some notes in the subject and email of what it's about so I can find or link it together later. I know regular cameras take better photos, but do we really sync our cameras more, or our phones? I've had good success with an iPhone and my current HTC.

  • Skitch - Excellent for taking a screenshot and doodling on it. Can be done with images, screen renders, etc. Especially helpful when sending clients a screen to point out certain things. A comparable windows product would be Snag-It, etc.

  • Email everything - email yourself everything to Fogbugz. From your phone, from your software, from your servers, from your friends with ideas.

  • Fax - get a fax to email setup and send all faxes to Fogbugz. Aren't near a scanner, fax it to yourself, throw away the paper. You'll find it later if you really need it, and if not, you aren't letting paper distract you. When someone wants to send you paper, if there's no PDF file, voila.

ARCHIVING:

  • Neatreceipts scanner - scan to a PDF file and send to Fogbugz. Throw away the paper. How much old design drafts do you have that you don't want to throw away but seem to pile up? Both Mac and PC versions exist.
Jas Panesar
+1 Very thorough!
Lucas B
Yep, thorough indeed. Though, if you would, please come back and edit your post to include appropriate links for future reference. Thanx man!
Boydski
Links added. Glad it was of use! :)
Jas Panesar
If tabloid size graphing paper isn't enough just tear a hunk of paper off the plotter. Or find some discarded plotter print outs and use the back sides.
Bratch
+4  A: 

I'm using Enterprise Architect by Sparx Systems at work. It works fairly well for UML modeling and can round trip to stay in sync with the code/generate the code. It also will let you generate documents (RTF), but I haven't played with that very much.

Something that I like about it over Visio is that in Visio it was just a drawing. In EA you have an object that you define the relationships to/from, that object may appear in multiple diagrams.

However my one complaint is that the software updates lag behind the code language changes, for example it's only in the last month or two that C# 3 has been supported, which caused problems when reverse/forward engineering with C# 3 code.

confusedGeek
Enterprise Architect is bad once your project gets sufficiently large. It is always slow for us, even after compacting and all their suggested best practices...
Lucas B
Performance is environment-dependent. And, which edition are you using? Enterprise? And which repository? Simultaneous access?
John Saunders
+5  A: 

The universal tools: pen and napkins (with coffee stains, of course).

fortran
+7  A: 

My brain.

This makes sense, since my coworkers tell me I'm one of the biggest tools ever.

MusiGenesis
ROTFLMBO!!! +1! I'd love to work with you sir!
Boydski
this is another case where a "fun badge" on SO, would make sense!
none
+1  A: 

StarUML when it comes to UML modelling. I thought it was THE open source UML modelling tool (on Windows at least) :-). As far as I'm concerned, it rather complete.

vonolsson
+2  A: 

I like JUDE. It's very easy to use and has a lot of capabilities.

kgvgallon
+2  A: 
none
It looks horrible.
Elmo Gallen
+1  A: 

I find a combination of Balsamiq mockups for user interface design and A3 paper for business logic and database design works for me.
Using a pencil and eraser means you can just edit your mistakes as you go along.
If it's been a while since you used UML it might also be a good idea to do a refresher.

CaptainCasey
+1  A: 

The pencil add-on for Firefox is pretty good for simple diagrams and GUI sketches.

And if you don't like it as a Firefox add-on, you can download a standalone version for Linux or Windows.

Evan
A: 

Personally I use PowerDesigner, a really decent and intuitive UML diagramming tool.

One of the features I like the most is the ability to define a class in only one place and reference it in diagrams in another packages and even other kind of diagrams, like sequence diagrams. One change in the class (for example a method renamed) and all diagrams that use that class get automatically updated.

All objects and associations are fully customizable in case I need to do something "out of UML".

German
+1  A: 

Visual Studio 2010 Ultimate supports UML class, sequence, component, use case, and activity diagrams. It also supports creating sequence, dependency graphs, and layer diagrams from code. Other tools include Architecture Explorer, which lets you browse and explore your solution.

For more info, see the following links:

To download the RC release, visit: Microsoft Visual Studio 2010 Ultimate RC

To see the RC documentation, see Modeling the Application.

To discuss these tools, visit the Visual Studio 2010 Architectural Discovery & Modeling Tools forum.

Esther Fan - MSFT
A: 

Give PlantUmlEditor a try. You can code diagrams at the speed of writing emails. No more struggling with designer environment and stencils. Draw diagrams as fast as you write emails.

Omar AL Zabir
A: 

according to microsoft we should use sketchflow

more info here on this blog

the main benefit is that you have xaml for markup and can edit that in expression and continue with silverlight/wcf stuff

here is a nice 5 minute video of it worth checking out!

Youtube video of sketchflow explained in 5 minutes

JP Hellemons
A: 

Missing in this list is UMLCanvas http://umlcanvas.org - it is a browser-based solution that allows you to create and update UML diagrams with Firefox. Neat!

MichielB