Creating Class Diagrams in Visio 2019

Visio 2019 does not provide full support for creating object models/class diagrams. In fact, its support is rather meager, and much of the richness needed to depict realistic object models and class diagrams is simply missing. In addition, many of the defaults make for rather poor-quality diagrams. This page lists some of the ways to improve object models, to facilitate readability and compatibility with standard notation and conventions.

Selecting the correct template

The stencils and templates in Visio 2019 have been reorganized, and fewer options are now available. The preferred template is the UML CLass Diagram, which is available under the Software and Database category.

Resizing classes/objects

As a default, Visio 2019 has the dimensions of classes/objects locked. In prior versions, one could resize through changing font styles and sizes. This workaround does not work in Visio 2019. However, you can resize by right-clicking the class in the ClassName area. This should generate a couple of popups, plus highlight the 8 anchor points for the object. Grab the yellow dot on the right-middle, and you should be able to resize horizontally. Vertical resizing is automatic, based on horizontal wrap-around. Since the operations are not used for data modeling, you can highlight this section and delete it for improved readability.

Including multiplicities on the associations

After you have added and named the association, right-click on the association line. This should generate two popups. One option on the text popup should be Show Multiplicity, which you can toggle on. This will add four multiplicities to the association – M1, M2, M3, and M4. I’d recommend using M1 and M3, and deleting M2 and M4. Double-clicking on the multiplicity lets you add the appropriate text here. You can name the relationship by double-clicking on the association and entering the appropriate text in the popup. Directions are not supported, but can be faked using the “<" or ">” symbols – not an elegant solution but saves having to draw them in by hand on a printout.

Including association classes

There doesn’t appear to be a good solution for this one. A possible workaround, albeit rather ineffective, is to add a class for the association class, and draw a line to the appropriate association. Keep in mind that this will not anchor it to an appropriate glue-point, and any repositioning of the parent classes would cause some headache on this score.


Course Support

Skip to toolbar