[Last Call] Learn how to a build a cloud-first strategyRegister Now


Software diagramming techniques and tools -- what do you use?

Posted on 2013-05-10
Medium Priority
Last Modified: 2013-05-17
Question for you guys:

When you document your software design, do you create diagrams?
What kind of diagrams do you create?
What tools do you use to help you create them?  Anything automated?

I'm looking to learn more about what's out there for this.  My perception is that there are NOT very good tools for this, but maybe there's a killer app for this I'm not aware of.

(Sorry in advance, but please don't reply with google searches, I've done those too.  I'm trying to learn what people really use, and whether they find them effective.)

Thanks for your thoughts.
Question by:RonMexico

Accepted Solution

jax79sg earned 668 total points
ID: 39157657

I'm not very sure what kind of diagramming you are referring to, as there are several phases in software development that may require different diagramming aids.
I would stand to agree with you that there's no 'one size fits all' solution.  I ended up sourcing for free or open source solutions for different parts of software development.

Requirements Gathering
In this phase, you get to collect information on the requirements before you even start designing your software. Capturing of such information are usually on paper and there are several techniques, but i find that a Use Case Diagram is almost always a good representation in the last stages.

I'm a bit into agile now so i tend to use UI prototypes right into the design phases for validation. One tool i loved to use is Pencil. It allows me to draw some prelim models of what is expected from the users, in the UI framework which i intend to use later.

Depending on your software design, you may also see a need to create Class Diagrams or Sequence Diagrams. I also do traditional RDBMS database development for my software, so i see myself creating Entity Relationship Diagrams as well. For all these, i use the Visual Paradigm for UML  Community Edition. It runs a bit slow on my computer, but its able to provide me with a good planning of designs.

These are really disparate tools, i would say the holy grail for tools of this category is to automatically generate the codes for the final system, simply based on the designs we placed in.
LVL 32

Assisted Solution

phoffric earned 668 total points
ID: 39157682
I used IBM Rational Rhapsody for C++ to generate UML diagrams. This included Sequence Diagrams, Activity Diagrams, State Diagrams, Class Diagrams, Object Model Diagrams. I think it included Use Case Diagrams, but I didn't use them. My Use Cases were based on descriptions of the other diagrams mentioned.

With a subset of these diagrams, I presented our software design to the customer. The sequence diagrams in the form of Use Case Scenarios was the major thrust of the customer's understanding of how our design was matching the software requirements.

You can download a free trial of IBM Rational Rhapsody for C++
LVL 32

Expert Comment

ID: 39157685
Here are some specific diagrams for you to peruse:
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

LVL 33

Assisted Solution

by:Paul Sauvé
Paul Sauvé earned 664 total points
ID: 39158510
diagramming tool for data base structure (ex. entity-relationship diagrams)
diagramming tool for application structure (Structured Analysis and Design Technique)
diagramming tool for programs/modules of program (flow charts)

Author Comment

ID: 39168698
I'm surprised nobody mentioned doxygen.  Isn't this the most popular diagramming tool?

Or .NET class diagrams.  Does nobody use those?

Author Closing Comment

ID: 39176388
Thanks all!

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The Fluent Interface Design Pattern You can use the Fluent Interface (http://en.wikipedia.org/wiki/Fluent_interface) design pattern to make your PHP code easier to read and maintain.  "Fluent Interface" is an object-oriented design pattern that r…
Introduction This question got me thinking... (http://www.experts-exchange.com/questions/28707487/GLOBALS.html) Why shouldn't we use Globals? This is a simple question without a simple answer.  How do you explain these concepts to a programmer w…
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.
Suggested Courses

826 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question