Constraints can also be specified for associations and roles. It is quite a simple language and expresses some complex ideas simply yet precisely. This looks like a normal class with a shadow. In the UML it is assumed that when a operation is called and there are several alternative classes that have the operation defined then the object to which the operation is applied always determines the operation that is executed. This is true even if the access is via a pointer to the object and if the variable holding the pointer is declared to be of the Base type.
Polymorphism is useful in modeling several common situatoins.
In a complex project it can be difficult to get a complete and correct UML diagram at the start of a project. For each class of object you ask if it depends on an object of another class - for example a student can not exist unless the student is a person, an enrollment can not exist unless it has a student to be enrolled, and a class to be enrolled in. You write down the names of the objects and show dependency as a line going up from the dependent object to the name of the class of the one that must also exist. Kinds of Classes Found in Business Peter Coad's work analysing lots of commercial systems has uncovered certain kinds of classes and relations that appear again and again. He suggests that they can be color-coded.