Shortcut for denoting or implying getters and setters in UML class diagrams

kdbanman picture kdbanman · Jan 25, 2015 · Viewed 24.3k times · Source

In a UML class diagram, if a class has 5 private attributes that need to be mutable and readable, the UML gets pretty ugly with 10 get/set methods even without any of the class' interesting functionality:

Bloated

Ugliness aside, I feel like the UML should focus on the class' more interesting functionality. Am I correct?

Is there some standard shortcut for denoting or implying getters and setters for private attributes?

Answer

Gerd Wagner picture Gerd Wagner · Jan 25, 2015

You are correct: there is no need to include the (noise of) "boilerplate" signatures of standard setters and getters in a class model. Unfortunately, UML does not define a standard notation for implying getters and setters for private attributes. So, you'd have to use your own convention. For instance, you could include a general explanation (that all private properties have getters and setters, while private read-only properties have only getters) as a UML Comment, shown as a rectangle with the upper right corner bent (also called a “note symbol”) attached to the diagram.

If you prefer to make the getter/setter convention more explicit for the properties concerned, then create your own stereotypes (e.g., «get/set» and «get») to be used for categorizing these private properties, as shown in the following diagram:

Class with get/set attribute stereotypes

I'm also using this for describing/documenting the implicit getters and setters of ECMAScript 6 classes.