Solved

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

Posted on 2013-05-10
6
652 Views
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.
0
Comment
Question by:RonMexico
6 Comments
 
LVL 7

Accepted Solution

by:
jax79sg earned 167 total points
ID: 39157657
Hi,

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.

Design
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.
0
 
LVL 32

Assisted Solution

by:phoffric
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++
   http://www.ibm.com/developerworks/downloads/r/rhapsodydeveloper/
0
 
LVL 32

Expert Comment

by:phoffric
ID: 39157685
Here are some specific diagrams for you to peruse:
   http://warren.chinalle.com/2008/01/10/uml-2-diagrams/
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 31

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)
0
 

Author Comment

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

Or .NET class diagrams.  Does nobody use those?
0
 

Author Closing Comment

by:RonMexico
ID: 39176388
Thanks all!
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

What is Waterfall Model? Waterfall model is the classic Software Development Life Cycle method practiced in software development process. As the name "waterfall" describes, this development is flowing downwards steadily like waterfall, i.e., procee…
Introduction This article explores the design of a cache system that can improve the performance of a web site or web application.  The assumption is that the web site has many more “read” operations than “write” operations (this is commonly the ca…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
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.

757 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

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now