Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

Modeling vs Drawing

Many users are confusing the difference between diagramming or drawing tools such as Microsoft Visio and modeling tools such as ZenUML or Rational Software Architect. First, you need to understand that a diagram is not a model.

A model or software model is a description of an aspect of a software system such as structure, behavior, requirement, etc. A software model can be represented in textual or visual form.

A diagram is a visual geometric symbolic representation of a software model. A software model can be represented in one or more diagrams with different aspects. For example, sequence diagrams (a type of interaction diagram) focus on the interaction between objects. Diagrams consist of view elements, which are visual representations of a model element.

ZenUML is a language to describe your model. It is good at modeling interaction in a timeline. Let’s have a look at the following piece of ZenUML. Note that the diagram at the right is generated from the model on the left automatically with the ZenUML Sequence Diagram Confluence Plugin.


Code Block
// This is a model for the flow of a RESTFul Service
// The client calls the `GetBook` API on the controller
BookController.GetBook(id) {
  // The controller in turn then calls the `Find` API on
  // BookService

Diagram (Generated from the Model automatically):

Zenuml sequence macro
BookController.GetBook(id) {

When you finish the above, you do not only get the diagram on the right side. Mor More importantly, you get the model on the left side.