Specialization is the process of defining a set of subclasses of an entity type; this entity type is called the superclass of the specialization.
This set of subclasses is defined on the basis of some distinguishing characteristic of the entities in the superclass.
For example, the set of subclasses {SECRETARY, ENGINEER, TECHNICIAN} is a specialization of the superclass EMPLOYEE that distinguishes among employee entities based on the job type of each employee entity.
It is possible to have several specializations of the same entity type based on different distinguishing characteristics. For example, another specialization of the EMPLOYEE entity type may yield the set of subclasses {SALARIED_EMPLOYEE, HOURLY_EMPLOYEE}; this specialization distinguishes among employees based on the method of pay.
Generalization:
Generalization is a reverse process of abstraction in which differences among several entity types are suppressed i.e. common features are identified and generalized into a single superclass.
For example, consider the entity types CAR and TRUCK, they have common attributes like model number, manufacturer name, etc. and can be generalized into the entity type VEHICLE.
The generalization process can be viewed as being functionally the inverse of the specialization process