Effexis Software, LLC


Spending Too Much Time Drawing Sequence Diagrams?

Try Sequence Diagram Editor!

View Sequence Diagram Editor screenshots

Sequence Diagram Editor is a Windows tool that significantly reduces the amount of time required to create and maintain great-looking UML sequence diagrams and call flows.

Buy Sequence Diagram Editor        Download Sequence Diagram Editor 

Sequence Diagram Editor saves you time and effort by automatically taking care of tedious drawing, layout and formatting tasks allowing you to create sequence diagrams much faster than with drawing programs such as Visio® or even generic UML tools.

One of our users credited Sequence Diagram Editor for cutting his sequence diagram creation time in half, while another said our tool provided an "incredible time savings." (source: ZiffDavis DevSource article).

Download Sequence Diagram Editor for a Risk Free 14-day Trial

How is Sequence Diagram Editor different from other UML tools or drawing programs?

The fact is that sequence diagrams are just one of the many diagrams that most UML tools support. Generic UML tools are simply not optimized for sequence diagrams, and it can still take a long time to draw anything but the simplest diagrams using them.

Here are several reasons why Sequence Diagram Editor is better than other UML tools and drawing programs for creating and maintaining sequence diagrams:

  • Less time and effort. Sequence Diagram Editor uses an input-form interface (see screenshots) that significantly speeds up the sequence diagram creation process. Features like auto-complete and diagram templates allow you to create a number of related diagrams much faster.

  • Multi-page diagram support. Sequence Diagram Editor seamlessly handles diagrams that are longer than a page. Pagination is done automatically based on your selected paper size; similar to a word processor but for sequence diagrams!

  • Diagram maintenance. You can add, remove or move (using drag/drop or cut-n-paste) elements without having to worry about numbering or layout. You don't have to fiddle with lines and text boxes to make things line up, and you don't have to worry about moving things around to make room for new elements or when you delete something.

  • Additional elements. Sequence Diagram Editor provides additional elements like states, actions, timers and scenarios (see full list) that are not available in many UML tools. These are particularly useful for telecom/wireless/embedded designs.

  • Add meaningful documentation. You can add documentation text notes directly to the diagram and choose whether or not to display them based on desired detail levels. Each element can be tagged with a documentation note that "follows" it as it is moved.

  • View diagrams as you build them. Unlike text-based tools, you can see the resulting diagrams as you build them. Any changes are reflected instantly in the display.

  • Export & Printing. You can print diagrams directly or export them to RTF (Microsoft Word®) or Adobe PDF for distribution.

  • Sequence diagram auto-generation. Sequence Diagram Editor uses an XML file to store diagram information. You can autogenerate this file from your data (using your own program/editor) and use Sequence Diagram Editor to display and print it.

You can find an example of a sequence diagram generated using Sequence Diagram Editor below.

Download Sequence Diagram Editor for a Risk Free 14-day Trial

Why Sequence Diagram Editor is better than Visio for drawing sequence diagrams

Visio is a great drawing program that works well for many types of diagrams, including UML class diagrams, but it is very tedious for drawing sequence diagrams. We know this from experience having previously drawn a large number of these diagrams (for a wireless company) using Visio and other similar drawing programs.

The problem is that you have to draw many of the individual diagram elements (boxes, lines, labels, etc.) separately. If something changes, you have to manually move things around to make room for new messages (or move things back if you delete a message). Things get even worse if your diagram starts getting longer than a page.

Sequence Diagram Editor automates these tedious drawing, layout and formatting tasks (across multiple pages if required) allowing you to focus on your design. Many of our users report significant time savings using Sequence Diagram Editor instead of Visio. It is not a replacement for Visio, but complements it rather well. You can find an example of a sequence diagram generated using Sequence Diagram Editor below.

"I've been evaluating your software package. It's phenomenal. Having normally used Visio for sequence diagrams I'm used to spending too much time monkeying with how the diagram looks and keeping it consistent. Your sequence diagram editor gives a better graphic presentation and captures additional information."

UML Sequence Diagram Example

The sample sequence diagram (Figure 1) below models the potential interactions between components of an automated school registration system as a student registers for classes. It was generated using Sequence Diagram Editor and exported to PNG format.

Figure 1 - Sample UML sequence diagram for an automated registration system

Example of a UML sequence diagram for an automated registration system generated using Sequence Diagram Editor

(see this diagram in full size with RTF/PDF export examples)

The boxes at the top of the sequence diagram constitute the diagram header and represent the components or units of the system. Sequence diagram editor supports four types of header elements (see the full list of supported sequence diagram elements):

  • Actors - Actors represent a person or other external entity that interacts with the system.

  • Objects - Objects are used to represent object instances in an object-oriented programming language such as Java or C++.

  • Units - Units are used to represent logical entities in the system such as components, servers, threads and tasks that may or may not be implemented using objects. They can also be used to distinguish objects from classes.

  • Separators - Separators do not interact with the diagram but rather represent a boundary between header elements.

Header elements can be grouped together (see group elements) into components or subsystems to illustrate the logical layering of the system. In Figure 1, the web server components are grouped together into the Web Server group to indicate that these elements are part of the Web Server.

Separator elements can be used to show boundaries between the components of the sequence diagram (such as the air interface between cell phone and base station, or the Internet in a distributed or web-based application).

The body of the sequence diagram shows the interactions between the various units as they collaborate to accomplish a particular purpose. The dotted horizontal lines are called guidelines, which are typically used with their corresponding line numbers to refer to portions of the diagram in documentation or during design meetings (Sequence Diagram Editor allows you to configure whether or not to display these guidelines and/or line numbers in your sequence diagrams.)

Messages are by far the most common elements and are used to model the interactions and interfaces between components. Sequence diagram editor supports six different types of message elements:

  • Simple Messages - Simple messages can be used to represent interactions between components that are not direct method calls (could be IPC, remoting, http or web services)

  • Asynchronous Messages - Asynchronous messages represent stimuli that can occur at any time based on external events (e.g. interrupts/sensors or user input)

  • Call Messages - Call messages are usually reserved for method calls between objects in the same thread/task where the calling object waits for the return from the recipient before continuing

  • Return Messages - Return messages indicate a response to a call message, although they can also be used with simple messages to represent request/response pairs.

  • Create Messages - Create messages are used to represent the dynamic creation of an object instance. They can also be used to represent the creation of a thread or task.

  • Destroy Messages - Destroy messages are used to represent the dynamic destruction of an object instance. They can also be used to represent the shutdown of a thread or task.

Action elements can be used to represent an action or processing performed by a single entity without involving other units. In the sequence diagram example above, the Registration Page entity renders the page in line 16 using an action.

State elements are useful for units representing a state machine to describe state transitions that occur as a result of sending a messages or some other event. Sates for different header elements can be configured to share the same guideline.

Timer elements can be used to show the start, stop or expiration of a timer associated with a particular header element. They are used extensively in state machine design to handle error conditions when communicating with external systems.

Diagram links represent a complex action performed by multiple header elements without showing all the details. For example, the "user login" box (line 7) in the sequence diagram typically involves interactions between the all the components. The details can be elaborated and shown in a separate sequence diagram with a link from the current diagram. Using diagram links to abstract details that are not specific or relevant to the current scenario reduces the size and clutter of the diagrams and enhances maintainability (used like a function call in a programming language.)

Blocks are useful for representing simple alternation or looping constructs for a given header element. For example, in the sequence diagram of Figure 1 the student may not have to go through the login process if they are already logged into the system (line 6-7).

If there are significant differences between the alternatives in the sequence diagram, using scenario elements like scenario start, scenario case, and scenario end rather than blocks may be more appropriate as illustrated in figure 2 (lines 22-29). You can always use additional sequence diagrams to describe different scenarios if it would be more clear.

Figure 2 - Continuation of Figure 1 using scenario elements to show alternatives instead of blocks

Continuation of sequence diagram example for automated registration system generated using Sequence Diagram Editor

(see this UML sequence diagram in full size with RTF/PDF export examples)

This sequence diagram shows the two alternative scenarios (course full found line 22, and No Service Found line 26) in the same diagram. Notice also that Sequence Diagram Editor automatically takes care of pagination by repeating the diagram title and header elements for each page.

Documentation notes and Flow Notes are used throughout the sequence diagram to add additional descriptive text. These can be selectively hidden or displayed based on the desired detail level. Free Notes can also be used to add detail or annotations.

See the full list of diagram elements supported by Sequence Diagram Editor.

Download Sequence Diagram Editor for a Risk Free 14-day Trial

What can be modeled using sequence diagrams?

UML sequence diagrams are particularly useful for modeling:

  • Complex interactions between components. Sequence diagrams are often used to design the interactions between components of a system that need to work together to accomplish a task. They are particularly useful when the components are being developed in parallel by different teams (typical in wireless and telephony systems) because they support the design of robust interfaces that cover multiple scenarios and special cases.

  • Use case elaboration. Usage scenarios describe a way the system may be used by its actors. The UML sequence diagram can be used to flesh out the details of one or more use cases by illustrating visually how the system will behave in a particular scenario. The use cases along with their corresponding sequence diagrams describe the expected behavior of the system and form a strong foundation for the development of system architectures with robust interfaces.

  • Distributed & web-based systems. When a system consists of distributed components (such as a client communicating with one or more servers over the Internet), sequence diagrams can be used to document and validate the architecture, interfaces and logic of each of these components for a set of usage scenarios.

  • Complex logic. UML sequence diagrams are often used to model the logic of a complex feature by showing the interactions between the various objects that collaborate to implement each scenario. Modeling multiple scenarios showing different aspects of the feature helps developers take into account special cases during implementation.

  • State machines. Telecom, wireless and embedded systems make extensive use of state machine based designs where one or more state machines communicate with each other and with external entities to perform their work. For example, each task in the protocol stack of a cellular phone goes through a series of states to perform actions such as setup a call or register with a new base station. Similarly the call processing components of a Mobile Switching Center use state machines to control the registration and transfer of calls to roaming subscribers. Sequence diagrams (or call flows as they are commonly referred to in the telecom and wireless industry) are useful for these types of applications because they can visually depict the messages being exchanged between the components and their associated state transitions.

Benefits of using the UML sequence diagram

These are some of the main benefits of using UML sequence diagrams.

1. Help you discover architectural, interface and logic problems early. Because they allow you to flesh out details before having to implement anything, sequence diagrams are useful tools to find architectural, interface and logic problems early on in the design process. You can validate your architecture, interfaces, state machine and logic by seeing how the system architecture would handle different basic scenarios and special cases.

This is particularly true for systems involving the interaction of components that are being implemented in parallel by different teams. In the cell phone example, each task would typically be implemented by a separate team.  Having a set of sequence diagrams describing how the interfaces are actually used and what messages/actions are expected at different times gives each team a consistent and robust implementation plan. You can also document how special cases should be handled across the entire system.

The very act of creating the sequence diagrams and making them work with your architecture is valuable because it forces you to think about details such as interfaces, states, message order, assignment of responsibilities, timers/timeouts and special/error cases ahead of time.

2. Collaboration tool. Sequence diagrams are valuable collaboration tools during design meetings because they allow you to discuss the design in concrete terms. You can see the interactions between entities, various proposed state transitions and alternate courses/special cases on paper as you discuss the design.

In our experience, having a concrete design proposal during design meetings greatly enhances the productivity of these meetings even if the proposed design has problems. You can narrow down the problems and then make corrections to solve them. The proposal serves as a concrete starting point for the discussion and as a place to capture proposed changes.

Sequence diagram editor makes it so easy to edit your sequence diagrams that you could even make the corrections in real time during the meeting and instantly see the result of the changes as you make them.

3. Documentation. Sequence diagrams can be used to document the dynamic view of the system design at various levels of abstraction, which is often difficult to extract from static diagrams or even the complete source code. The diagrams can abstract much of the implementation detail and provide a high level view of system behavior.

One of our colleagues shared this experience of joining the software team for a wireless switching subsystem component:

"Our component was the primary interface between the call processing component of the wireless base station and the Public Switched Telephone Network and had to support several different network protocols including T1, E1 and SS7. The previous lead had developed several dozen call flows describing the basic messaging and state transitions for common operations such as call setups including mobile and land originated, call teardowns and features such as call waiting and three way calling for each of the protocols, since each involved different states and messages with the switching component. I found these diagrams invaluable in helping me learn the software, interfaces and state machine and would refer to them often, even after working in the project for a couple of years."

See also UML Sequence Diagram Common Mistakes for things to avoid when using sequence diagrams.

For additional sequence diagram samples built using Sequence Diagram Editor please visit our Sample Diagrams page, or find out for yourself how quickly and easily you can build and maintain sequence diagrams and start your free trial now!

Please email support [at] effexis.com if you have any questions during your evaluation.

Visio, Word, Windows and Microsoft are trademarks of Microsoft Corporation.

Download Sequence Diagram Editor for a Risk Free 14-day Trial

Try It for Free
Buy Now/Pricing
Screenshots
Features and Benefits
Sample Diagrams

Online Documentation

Technical Support
Links
 

Only $50

 

Why is Sequence Diagram Editor better than Visio?

 

Links:

Programming Index -

A directory of computer programming websites organized alphabetically by topic.

 

Software Index -

A directory of software industry websites organized alphabetically by topic.