CIS224 Software Projects: Software Engineering and Research Methods
Workshop 3 (Thursday 19 October 2006)
Use case models - Example answer
The following answer is one of many that would achieve high marks on this course work. Each answer will be evaluated individually. Marks will be taken off for incorrect diagrams (e.g., incorrect use of the <extend> and < include> keywords) or for incorrect identification of actors.
Actors
Figure 1 Actors and relationships between them
Figure 1 shows the actors and the relationships between them. ClubMember represents a club member who is not participating in the leagues. All administrators are assumed to be able to carry out all the tasks that a ClubMember can perform with the system. A LeagueParticipant is a ClubMember who is participating in a league. A LeagueParticipant should be able to do things like enter league match scores in addition to all the things that a ClubMember can do with the system. The LeagueAdministrator should be able to perform all the tasks performed by a LeagueParticipant but also other tasks involved in administering the leagues (e.g., promoting and demoting players at the end of each month). The EventsCalendarAdministrator is assumed to be a ClubMember who has responsibility for keeping the events calendar up to date. A ClubCoach should be able to use the system to do things like allocate members to league levels as well as all the tasks that can be performed by a ClubMember. The PhoneDirectoryAdministrator is assumed to be a club member who is responsible for keeping the phone directory up to date. The SystemAdministrator has access to all parts of the system and is responsible for adding and removing members from the set of system users.
Use cases in which ClubMember is the primary actor
Figure 2 shows the use cases in which ClubMember is the primary actor. Each of these use cases will now be described in more detail. In all cases, the main success scenario is the goal and name of the use case.
Figure 2 The use cases in which ClubMember is the primary actor
Main success scenario / Look up phone number of club memberPrimary actor / ClubMember
Beneficiary / ClubMember
Description / A club member who is already logged into the system searches for the phone number of another club member in the online telephone directory. The club member should be able to search on surname. The system returns the full names and telephone numbers of club members with that surname.
Main success scenario / Book court
Primary actor / ClubMember
Beneficiary / ClubMember
Extensions / Book clay court, Book indoor court
Included use cases / View court-booking timetable
Description / A club member who is already logged in to the system views the court booking timetable (according to the use case “View court-booking timetable”). The member then selects a court and a time and reserves the court for that time. The system should allow the member to pay for the court online. This could be done using a credit system or another online payment system like PayPal whereby the user can buy court-booking credit using a credit or debit card. The cost of each court booking is then deducted from the user’s credit. The member pays £5 per hour for each indoor court and £2.50 per hour for a clay court.
Main success scenario / View court-booking timetable
Primary actor / ClubMember
Beneficiary / ClubMember
Description / Club member views court-booking timetable. This timetable shows all times in the future at which each court is booked.
Main success scenario / Join league
Primary actor / ClubMember
Beneficiary / ClubMember
Secondary actor / LeagueAdministrator
Specializations / Join league at beginning of season, Join league in lowest-level group
Description / Club member signs up for a league and is allocated a group in the league at a particular level. The process by which the initial group is selected depends on whether the member joins before the beginning of the season (see use case “Join league at beginning of season”) or at some other time (see “Join league in lowest level group”). The member will appear in the league table at the beginning of the month following joining. The league administrator will be notified that the club member has joined the league.
Main success scenario / Join league at beginning of season
Primary actor / ClubMember
Beneficiary / ClubMember
Secondary actor / ClubCoach, LeagueAdministrator
Generalizations / Join league
Description / Club member signs up for a league in a month preceding the start of a season. This causes a message to be sent to one of the club coaches who selects an initial group for the club member at a level that the coach thinks is appropriate. The coach will provide this information to the system which will enter the club member into the league and notify the league administrator. The club member appears in the league table at the beginning of the month following signing-up.
Main success scenario / Join league in lowest-level group
Primary actor / ClubMember
Beneficiary / ClubMember
Secondary actor / LeagueAdministrator
Generalizations / Join league
Description / Club member signs up for a league in month other than one preceding the beginning of a league. The member is automatically assigned to a group at the lowest level and appears in the league table at the beginning of the month following signing-up. The league administrator is notified.
Main success scenario / Modify system registration details
Primary actor / ClubMember
Beneficiary / ClubMember
Secondary actor / SystemAdministrator
Description / Club member views registration details and has opportunity to modify and save changes. Notification of modification sent to SystemAdministrator.
Name / View events calendar
Primary actor / ClubMember
Beneficiary / ClubMember
Description / Club member views events calendar which shows details of all planned future events at the club. Also indicates which courts will be used for each event.
Main success scenario / Log into system
Primary actor / ClubMember
Beneficiary / ClubMember
Secondary actor / SystemAdministrator
Description / Club member enters user name and password. If both are correct, then permitted access to system. If either is incorrect, given two more chances to enter correct user name and password before account is suspended. If account suspended, notification sent to system administrator.
Main success scenario / Log out of system
Primary actor / ClubMember
Beneficiary / ClubMember
Description / Club member logs out of system.
Main success scenario / View league table
Primary actor / ClubMember
Beneficiary / ClubMember
Description / Club member views current league table. Table shows which player is in which group, the level of each group and the results of all matches that have been played so far this month.
Use cases in which LeagueParticipant is the primary actor
LeagueParticipant is a specialization of ClubMember and therefore can be a primary actor in all the use cases in Figure 2. In addition, LeagueParticipant is the primary actor in the use cases shown in Figure 3. These use cases will now be described in more detail.
Figure 3 Use cases in which LeagueParticipant is the primary actor
Main success scenario / Enter score for a matchPrimary actor / LeagueParticipant
Beneficiary / LeagueParticipant
Secondary actor / LeagueAdministrator
Description / LeagueParticipant, who is already logged on to the system, enters the score for a league match he or she has played. The system notifies the other player in the match and the LeagueAdministrator that the score has been entered.
Main success scenario / Scratch a match
Primary actor / LeagueParticipant
Beneficiary / LeagueParticipant
Secondary actor / LeagueAdministrator
Description / LeagueParticipant, who is already logged on to the system, enters into the system the information that he or she is scratching a match. This may be done in various ways. For example, it may be that the LeagueParticipant goes through the same procedure as that required for entering a score, but, instead of entering a score, simply enters an “L” instead of the number of games he or she won and a “W” instead of the number of games won by the other player. A notification of the match scratch is sent to the LeagueAdministrator and the other LeagueParticipant in the match.
Use cases in which LeagueAdministrator is the primary actor
A LeagueAdministrator is a specialization of LeagueParticipant and can therefore fulfil the role of primary actor in any of the use cases in which the primary actor is a ClubMember or LeagueParticipant. A LeagueAdministrator is also the primary actor in all the use cases shown in Figure 4.
Figure 4 Use cases in which LeagueAdministrator is primary actor
Main success scenario / Publish new league table at beginning of monthPrimary actor / LeagueAdministrator
Secondary actors / LeagueParticipant, ClubCoach
Included use cases / Remove player from league, Promote player to higher group, Demote player to lower group, Allocate participant to initial group
Description / LeagueAdministrator computes new group for every LeagueParticipant, including new LeagueParticipants that signed up in the previous month. For each group, the LeagueAdministrator must promote the highest-scoring participant to a group at the next higher level (according to use case “Promote player to higher group”) and demote the lowest-scoring participant to a group at the next lower level (according to use case “Demote player to lower group”). The highest-scoring player in the highest-level group is not promoted and the lowest-scoring player in the lowest groups are not demoted. Players who have played no matches for the past three months are removed from the league (according to the use case “Remove player from league”). The system notifies each LeagueParticipant if he/she has been promoted, demoted or removed from the league. New participants are added to the league and allocated to an initial group (according to the use case “Allocate new participant to initial group”).
Main success scenario / Remove player from league
Primary actor / LeagueAdministrator
Secondary actor / LeagueParticipant
Description / LeagueAdministrator removes LeagueParticipant from league. System notifies LeagueParticipant that he/she has been removed.
Main success scenario / Promote player to higher group
Primary actor / LeagueAdministrator
Secondary actor / LeagueParticipant
Beneficiary / LeagueParticipant
Description / LeagueAdministrator promotes player to a group at the next higher level in the league. System notifies player that he/she has been promoted.
Main success scenario / Demote player to lower group
Primary actor / LeagueAdministrator
Secondary actor / LeagueParticipant
Description / LeagueAdministrator demotes player to a group at the next higher level in the league. System notifies player that he.she has been demoted.
Main success scenario / Allocate new participant to initial group
Extensions / Allocate player to group at beginning of season, Allocate player to lowest-level group
Primary actor / LeagueAdministrator
Secondary actors / ClubCoach, LeagueParticipant
Beneficiary / LeagueParticipant
Description / LeagueAdministrator receives notification that new ClubMember would like to join league. If a new season is starting next month, ClubMember allocated to group according to use case “Allocate player to group at beginning of season”. Otherwise, player allocated to initial group according to use case “Allocate player to lowest-level group”. ClubMember becomes LeagueParticipant and System notifies new LeagueParticipant when he/she has been successfully entered in the league.
Main success scenario / Allocate player to group at beginning of season
Primary actor / LeagueAdministrator
Secondary actor / ClubCoach
Beneficiary / LeagueParticipant
Description / Message sent by system to ClubCoach informing that LeagueParticipant wishes to join league and requesting ClubCoach to inform system of level of group into which LeagueParticipant should be placed initially. System forwards information to LeagueAdministrator who places LeagueParticipant into group at this level. LeagueParticipant notified of group into which he/she has been placed.
Main success scenario / Allocate player to lowest-level group
Primary actor / LeagueAdministrator
Secondary actor / LeagueParticipant
Beneficiary / LeagueParticipant
Description / LeagueParticipant who wishes to join league is allocated to a group at the lowest level in the league. Notification sent to LeagueParticipant of group into which he/she has been placed.
Main success scenario / Publish overall league results at end of season
Primary actor / LeagueAdministrator
Secondary actor / LeagueParticipant
Description / LeagueAdministrator gets system to publish results of league at end of season. These results should include computation of the best male player (according to use case "Compute best male player"), the best female player (according to use case "Compute best female player"), the most consistent player (according to use case "Compute most consistent player") and the most improved player (according to the use case "Compute most improved player").
Main success scenario / Compute best male player
Primary actor / LeagueAdministrator
Secondary actor / LeagueParticipant
Description / LeagueAdministrator causes system to compute best male LeagueParticipant for the season. Notification sent to this LeagueParticipant.
Main success scenario / Compute best female player
Primary actor / LeagueAdministrator
Secondary actor / LeagueParticipant
Description / LeagueAdministrator causes system to compute best female LeagueParticipant for the season. Notification sent to this LeagueParticipant.
Main success scenario / Compute most consistent player
Primary actor / LeagueAdministrator
Secondary actor / LeagueParticipant
Description / LeagueAdministrator causes system to compute most consistent LeagueParticipant for the season. Notification sent to this LeagueParticipant.
Main success scenario / Compute most improved player
Primary actor / LeagueAdministrator
Secondary actor / LeagueParticipant
Description / LeagueAdministrator causes system to compute most improved LeagueParticipant for the season. Notification sent to this LeagueParticipant.
Use cases in which the EventsCalendarAdministrator is the primary actor
An EventsCalendarAdministrator is a specialization of ClubMember and can therefore fulfil the role of primary actor in any of the use cases in which ClubMember is the primary actor. In addition, EventsCalendarAdministration is the primary actor in the use cases shown in Figure 5.
Figure 5 Use cases in which EventsCalendarAdministrator is the primary actor
Main success scenario / Add event to calendarPrimary actor / EventsCalendarAdministrator
Beneficiary / ClubMember
Description / EventsCalendarAdministrator uses system to add an event to the events calendar stored in the system. Information about event should include date and time of event and what courts will be used for the event. Notification of added event should be sent to all ClubMembers.
Main success scenario / Delete event in calendar
Primary actor / EventsCalendarAdministrator
Beneficiary / ClubMember
Description / EventsCalendarAdministrator uses system to delete an event from the events calendar stored in the system. Notification of deleted event should be sent to all ClubMembers.
Main success scenario / Modify event in calendar
Primary actor / EventsCalendarAdministrator
Beneficiary / ClubMember
Description / EventsCalendarAdministrator uses system to modify an event in the events calendar stored in the system. Notification of modification should be sent to all ClubMembers.
Use cases in which ClubCoach is the primary actor
ClubCoach is a specialization of ClubMember and can therefore fulfil the role of primary actor in any of the use cases in which ClubMember is the primary actor. In addition, ClubCoach is the primary actor in the use cases shown in Figure 6.
Figure 6 Use cases in which ClubCoach is the primary actor
Main success scenario / Select initial level for new league participantPrimary actor / ClubCoach
Secondary actor / LeagueAdministrator
Beneficiary / LeagueParticipant
Description / ClubCoach informs system of appropriate initial level for a new LeagueParticipant. Notification sent to LeagueAdministrator.
Use cases in which PhoneDirectoryAdministrator is primary actor
PhoneDirectoryAdministrator is a specialization of ClubMember and so can fulfil the role of primary actor in any of the use cases in Figure 2. In addition, PhoneDirectoryAdministrator is the primary actor in the use cases in Figure 7.
Figure 7 Use cases in which PhoneDirectoryAdministrator is primary actor
Main success scenario / Add member to directoryPrimary actor / PhoneDirectoryAdministrator
Secondary actor / ClubMember
Beneficiary / ClubMember
Description / PhoneDirectoryAdministrator contacts ClubMember and obtains full name and telephone number. Enters this information into phone directory stored within system. Notification of update sent to ClubMember.
Main success scenario / Remove member from directory
Primary actor / PhoneDirectoryAdministrator
Secondary actor / ClubMember
Beneficiary / ClubMember
Description / PhoneDirectoryAdministrator removes ClubMember's details from directory stored in system. Notification of update sent to ClubMember.
Main success scenario / Modify member's entry in directory
Primary actor / PhoneDirectoryAdministrator
Secondary actor / ClubMember
Beneficiary / ClubMember
Description / PhoneDirectoryAdministrator modifies ClubMember's details in directory stored in system. Notification of update sent to ClubMember.
Use cases in which SystemAdministrator is primary actor
SystemAdministrator is a specialization of ClubMember and can therefore be the primary actor in any of the use cases in Figure 2. In addition, SystemAdministrator is the primary actor in the use cases shown in
Figure 8 Use cases in which SystemAdministrator is the primary actor
Main success scenario / Add club member to systemPrimary actor / SystemAdministrator
Secondary actor / ClubMember
Description / SystemAdministrator contacts ClubMember and obtains full name. Creates new user in system for ClubMember with appropriate permissions. Notification sent to ClubMember when process complete.
Main success scenario / Remove club member from system
Primary actor / SystemAdministrator
Secondary actor / ClubMember
Description / SystemAdministrator removes user within system that represents ClubMember Notification sent to ClubMember when process complete.