I have experienced great success with visual modeling based on the Unified Modeling Language. I am not going to define UML nor describe its origin in any detail – you can check UML in Wikipedia for that! – but instead focus on what I perceive to be its benefits and provide some useful techniques.
UML is an industry standard modeling notation – with that come some foundational benefits:
- You have the potential of handing your diagram to someone who already knows how to interpret the notation without being told.
- You can find books, training, articles, web sites, and other educational and support resources for UML.
- There has been widespread tool adoption of UML, from drawing tool templates to repository based modeling tools to integrated development environments.
- Many of your stakeholders can increase their market value by mastering the notation – don’t forget to tell them that!
- You can hire people who know how to read and write your diagrams without having to train them.
UML is also a very structured notation. That also brings benefits:
- The precise structure of the diagrams assists with consistency, completeness, and scope. Recasting your architectural vision into a predefined structure forces you to flesh out the appropriate details.
- The fact that it is a structured notation makes it possible for tool vendors to provide functionality to transform a diagram from one view to another or even to code.
Additionally, I think the UML notation itself carries benefits:
- While the notation allows for creative use of icons, in practice the notation is pretty generic. This actually speeds the diagramming process as more time can be focused on content and less on form. It also increases the readability of the diagram as the reader is not required to interpret symbols.
- There are different diagrams for different purposes. For UML novices – and even sometimes experts – this can be challenging. I sometimes find myself really struggling to add information to a diagram only to eventually realize that I am having a tough time because it doesn’t belong there! This “separation of concerns” means that each diagram can clearly communicate information without distractions. A picture that looks different from different angles is cool, a diagram that does the same thing is not!
- The core notation is very consistent. It is easy to learn and easy to use. The complexity to producing good UML artifacts is not understanding the notation, but determining the correct content. That having been said, the exercise of refining the content stimulates the design process in addition to producing clear artifacts.
- UML evolved out of industry best practices in diagramming and has evolved and been refined for 10+ years. There is always value in experience.
As I have gained proficiency in UML and embraced it as a powerful tool in my personal toolkit, I have identified some techniques that help me produce better artifacts:
- Use only the core notation. Finding some obscure facet of the notation doesn’t make you brilliant, but it does make your diagram less consumable.
- Label every diagram with the UML diagram type, your diagram purpose, and the last modification date.
- Fit your diagram on on standard letter size. Clearly, there are situations where it makes sense to break this rule, but this is a good rule of thumb that helps keep your artifacts with the right level of information to be easily consumable by your stakeholders. It also makes it easier to print and embed in documents. Some techniques to keep it page sized are:
- Manage scope and detail and have more detailed diagrams with less scope roll up to a high level diagram with a broader scope but less detail.
- Identify some categorization that lets you break the domain into multiple sub-domains.
- Consider the purpose of the diagram and only put “fit to purpose” items on it. (see below)
- Only represent “fit to purpose” items on a diagram. One of the keys to “rightsized” diagramming is to only diagram what you need to be successful. If you are designing a solution in an Enterprise where every desktop contains Microsoft Word, you don’t need to include a component for Microsoft Word on the diagram unless the solution has some dependency or impact on it.
- Separate “concerns” onto separate diagrams. Some of this happens naturally due to the multiple diagrams available in UML. However, there are many things that can be depicted on each diagram type. Is the diagram for the hardware team? What is important to them? Certainly not the same things that are important to the code deployment team. This is a balance. You don’t want to have to maintain multiple similar artifacts, but, conversely, it is easy to over-populate a diagram with information and reduce its effectiveness. The information that is not of interest to the hardware team is nothing more than noise and distraction to them.
- If you are implementing diagramming standards for your organization – which I highly recommend you do – start with some clearly defined diagrams that are based on one of the UML diagram types, but provide users with guidance regarding the appropriate content and constrain which facets of the notation should be used. This will help people be successful with the contents of the diagrams, which is always more challenging than the notation itself.
- Scott Ambler’s Elements of UML Style is a fantastic primer of good technique.
I have truly found UML to be an extremely powerful tool and frequently use it to understand problems, design solutions, and broker stakeholder agreement! If you don’t already leverage it in your daily activities, you owe it to yourself to give it a try. It is an industry standard, so at the very least you can add it to your resume and increase your market value!









