Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I want to create an illustration for a product purchase wizard, and I want to illustrate the way user interacts with the wizard. It's basically a simple flowchart or a simple workflow:

  1. User starts the wizard
  2. User selects product
  3. User should check the availability of that product (manually)
  4. If the product is available, then the next button is enabled, else it's disabled
  5. If user change the product type, then the next button should be disabled
  6. User goes to the next step
  7. Based on the product type, a different UI is shown to him in the next step
  8. He should adjust some other settings, ...

I started creating a sequence diagram, but soon it proved not to be a good fit. Then I changed to activity diagram, again no success.

What type of diagram should I choose to illustrate this flowchart (which is full of conditions, branching, state management, user interaction and more)? Do we have such a general diagram at all? What software should I use?

Update: To clarify further, I'd like to draw a diagram of a scenario rather than a workflow.

share|improve this question

closed as too broad by gnat, Snowman, durron597, MichaelT, GlenH7 Nov 2 at 18:00

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

Why did the activity diagram not work out for you? It is designed for the kind of modeling that you are trying to do. – Thomas Owens Oct 3 '11 at 11:25
@ThomasOwens, I also want to include some rules in the activity diagram. For example, how can I show "if user changed the product type, then the state of the step should become unverified" in the activity diagram? – Saeed Neamati Oct 3 '11 at 11:29
Activity diagrams offer conditionals, branching, and joining. See: – Thomas Owens Oct 3 '11 at 11:30

3 Answers 3

up vote 6 down vote accepted

Rather than trying to find a general diagram and only producing one diagram, consider using multiple diagrams and types of diagrams to capture specific information.

I would consider using an activity diagram for modeling the high level flow control of the application and the business processes that happen. For particular (the most important) use cases, consider using a sequence diagram and/or communication diagram to drill down a little deeper and show interactions between objects. A state diagram can also be used to show valid state transitions throughout the operation of the application.

The idea is that you don't want to show everything on a single diagram. For example, you don't want to get into particular method calls on an activity diagram and you don't want to show multiple use cases on a sequence diagram. If you did, it would be too difficult to read, and the documentation wouldn't add any value.

share|improve this answer

In addition to UML Activity Diagrams, there is Business Process Modeling (BPMN 2.0) - This is an accepted method/standard of showing business process flow.

The notation is simple to grasp and there free tools. The interesting this is that some tools allow you to measure the performance by running simulation of the process and some tools generate ready to run applications from the diagrams without writing code.

Also BPM uses swim lanes and actors much like UML Activity Diagram but they are not the same.

One of the good tools is Bizagi at : Bizgi BPM

If you want to see a tutorial, see: [Resources1]2

The net is full of other resources ofcourse.

share|improve this answer

Flow charts are perfectly fine for this, Visio is my preferred application. Knowing and using all/most shapes is important (e.g. triangle is a decision, oval is a start or conclusion, box is a process, etc..). This is what I find best for ultra high level diagrams, where one diagram might represent the architecture of 100,000 lines of code.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.