In the context of use case modeling the actor generalization refers to the relationship which can exist between two actors and which shows that one actor (descendant) inherits the role and properties of another actor (ancestor). The generalization relationship also implies that the descendant actor can use all the use cases that have been defined for its ancestor.
For those of you familiar with object oriented concepts: actors in UML are classes and the generalization is simply the inheritance relationship between two actors by which one actor inherits all the properties and relationships of another actor.
Example 1:
When it comes to air travel, both a "Business Traveler" and a "Tourist" are "Passengers". The fact that they are passengers allow them to have common behavior such as "Buy Ticket" but the fact that they are separate actors implies they can also have differences. The "Business Traveler" might be able to "Redeem Business Miles" while the "Tourist" cannot.

Example 2:
Another scenario often found in many systems is when the system administrator, who gets additional functionality, is actually one of the normal users. So let's say that the system is an accounting system with the main actor being "Accountant" and with another actor called "Administrator". In our scenarios the Administrator should be able to perform all the normal accounting functions in addition to his/her administrator role.
The way to model this would be to show relationships between the Administrator actor and all the admin only use cases, then show all the accounting specific use cases related to the "Accountant" actor. And now, the only other thing you need to do for the "Administrator" to have access to the accounting features is to use the generalization relationship between the "Accountant" and the "Administrator" with the Administrator actor (descendant) inheriting from the Accountant actor (the ancestor). |