Seems straightforward enough to me. The only thing I find puzzling is why interfaces are treated as they are. An implementation of an interface is shown as a little lollipop projecting from the class that makes the implementation, and the interface itself is shown as a separate box. But there's no connection between the two - nothing indicates visually that the lollipop represents the interface box. Seems odd. Also, you can add a class property or inheritance relationship to a class through context menus in the class diagram, but you can't add the implementation of an interface. Again, that seems odd. Apart from those two things, though, everything is as I would have imagined.