We have been developing a requirements model for a travel agency system. There are two kinds of member users: premium and free. Both users are able to cancel their previous reservations. Unlike premium users, free users have to pay a cancellation fee as a result of cancellation.
In the use case diagram for the previous functions we have the following struggle: Shall we distinguish the
cancel use case for different user types? That is, when a free user makes a cancellation, it should include the
fee payment use case. But, we also know that reservation cancellation is a function that is same for both kinds of users (Although it may result in some other use case if it is a free user). So we are not sure whether a single use case is enough to show system capability. Moreover, we should use extends relation to show that sometimes it may include the fee payment. But if two different cancel use cases are used, we can show explicitly the includes relation of a free user. We will appreciate any suggestions. Thanks in advance.