Generalisation is an abstraction for sharing similarities among classes while preserving their differences. For example, each piece of equipment has a manufacturer weight and cost . Pumps also have suction pressure and flow rate. Tank also have volume and pressure we would like to define equipment features just once and then add details for pump, tank and other equipment types.
Generalisation is a relationship between a class and one or more refined versions of it. The class being refined is called superclass and each refined version is called a subclass. For example equipment is the superclass of pump and tank. Attributes and operations common to a group of subclasses are attached to the superclass and shared by each subclass. Each subclass is set to inherit the feature of its superclass, for example, pump inherites attributes manufacturer, weight and cost from equipment. Generalisation is sometimes called the "is-a" relationship because each instance of a subclass is a instance of the superclass as well.
Each subclass not only inherits the features of its superclass but as its own specific attributes and operations as well , for example pump adds attributes flow rate, which is not shared by other kind of equipment.
Figure shows an equipment generalisation. Each piece of equipment is a pump, heat exchanger, tank or another type of equipment. There are several kinds of pumps: Centrifugal, diaphragm, and plunger. There are several kinds of tanks: floating roof, pressurized and spherical. Pump type and tank type both define second level generalisation class is down to the third level.
The above figure shows few entity instances that belong to subclasses of {SECRETARY, ENGINEER, TECHNICIAN} specialiZation. An entity that belongs to a subclass represents the same real-world entity as the entity connected to it in the EMPLOYEE superclass, even the same entity is shown twice, for example e1 is shown in both EMPLOYEE and SECRETARY, As figure suggest a superclass/subclass relationship such as EMPLOYEE/ SECRETARY somewhat resembles 1:1 relationship at instance-level. The main difference in is that 1:1 relationship two distinct entities are relative where as in superclass/subclass relationship the entity in the subclass in the same real-world entity as the entity in the superclass but is playing as a specialized role for example, and EMPLOYEE specialized in the role of SECRETARY, or an EMPLOYEE specialized in the role of TECHNICIAN.
In summary, the specialization process allow us to do the following:
- Define a set of subclass of an entity type
- Establish additional specific attributes with each subclass
- Establish additional specific relationship types between each subclass and other entity types or other classes
Did you know there's a 12 word phrase you can communicate to your man... that will trigger intense feelings of love and instinctual attraction for you buried within his chest?
ReplyDeleteThat's because hidden in these 12 words is a "secret signal" that triggers a man's impulse to love, adore and protect you with his entire heart...
12 Words That Fuel A Man's Desire Instinct
This impulse is so built-in to a man's mind that it will drive him to work harder than ever before to make your relationship as strong as it can be.
In fact, fueling this all-powerful impulse is absolutely mandatory to having the best ever relationship with your man that as soon as you send your man one of the "Secret Signals"...
...You will soon notice him expose his heart and mind to you in such a way he's never expressed before and he'll distinguish you as the only woman in the galaxy who has ever truly interested him.