Class Diagrams Revisited
Parameterized Classes
Parameterized Classes  - are used torepresent relationships between templates.
Abstract Classes
Abstract Classes - are classes for whichinstances are not generated.
These classes may have abstract methods.
Examples:
an abstract superclass account and subclasscheque, loan and savings;
an abstract superclass customer and subclassescredit and cash customer.
Utility Classes
Are collections of global variables andfunctions.
Example:
Object Diagrams
Are used to specify instances of a classwith specific values for the data elements.
Example:
Interface Classes
Interface classes - represent interfaces.
Example:
Conceptual vs. ImplementationClass Diagrams
Conceptual class diagrams are used todescribe the objects and behaviours inthe domain.
Class diagrams can also be used forimplementation purposes, i.e. to modelclasses to be implemented as aprogram.
Associations
Aggregation is a type of association andcomposition is a type of aggregation.
Aggregation is an association whichlinks a part to an entirety.
Composition - is an aggregation inwhich the “part” will not exist if the“entirety” did not exist.
Aggregation
Syntax
Example
Composition Example
Attributes
Specify the type of the attribute
Specify the accessibility of the attribute: + forpublic, # for protected and - for private
Derived attributes - the value of the attributeis derived from other attributes, e.g. the ageattribute will be derived from the current datesubtract the birth date.  This is denoted by/age=date-birthdate.
Methods
Specify the return type if not void
Specify the type of each parameter
Specify the accessibility of the method:+ for public, # for protected and - forprivate
Some methods may be abstract.  Thismust be indicated in brackets“{abstract}”