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

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: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

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

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

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

I'd like to talk about something that is near and dear to my heart: build systems. Without them, building software is all about compiling locally, with software versions everywhere. It can be a mess. Today we are going to discuss building a small di…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
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.…

808 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