Few important keywords in UML.
A generalization is used when two classes or actor are similar, but have some differences, one class shares its structure and/or behavior with one or more other classes. Its more like inheritance.
When behavior of one class/object depends on behavior of another class/object then dependency relation ship applied.
Association, Aggregation, and Composition:
Some good UML tool can be seen on http://www.uml-forum.com/tools.htm
Can a class diagram show the dynamic behavior of a system?
No, Class Diagram is static diagram, cant show the dynamic behavior of the system.
What is class diagram ?
The class diagram is used to refine the use case diagram and define a detailed design of the system. The class diagram classifies the actors defined in the use case diagram into a set of interrelated classes. The relationship or association between the classes can be either an "is-a" or "has-a" relationship. Each class in the class diagram may be capable of providing certain functionality. These functionality provided by the class are termed "methods" of the class. Apart from this, each class may have certain "attributes" that uniquely identify the class.
What is association ends ? or role of association ?
Association ends specify the role of the association end, its multiplicity, visibility, navigability, and constraints
Can deployment diagram be used for forward and reverse engineering?