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

Posted on 2013-05-10
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
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

Accepted Solution

jax79sg earned 167 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 167 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:
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

LVL 32

Assisted Solution

by:Paul Sauvé
Paul Sauvé earned 166 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: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

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

Iteration: Iteration is repetition of a process. A student who goes to school repeats the process of going to school everyday until graduation. We go to grocery store at least once or twice a month to buy products. We repeat this process every mont…
Dependencies in Software Design In software development, the idea of dependencies ( is an issue of some importance. This article seeks to explain what dependencies are and where they …
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below.…

726 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