Use Case Modeling of Gym Meets

Use Case Modeling of Gym Meets 

Eastern Suburb Gymnastics (ESG) is a regional organization that is responsible for running competitions among the gymnastics clubs in eastern suburbs of Melbourne. Thecompetitions are organized into seasons. ESG needs a system to help organize and maintain records of the competitions that take place in a single season. The system, in essence,needs to keep information on the gymnasts, their clubs, the organization of the competitions, and the competition results.

Clubs and Club Members

At the beginning of the season, before any competition can take place, every club thatwishes to participate in the competition must register with ESG. Each club is knownby a unique name; however, for ease of reference, each is also given an ID, which is ashort sequence of characters. Each club must provide a contact person’s name and phonenumber, and the club’s address and fax number.

In registering with ESG, a club submits a list of their members who will participate inthe season’s competitions. During the season, additional members can be registered whilethe season’s competitions are in progress. The date a gymnast registers for competition isrecorded. Those who register when the club is registered have the first day of the seasonas the registered date. For each gymnast, ESG requires their name, date of birth, genderand phone contact. ESG then issues them with a unique ID.

Meets, Competitions and Events

The competitions are organized into a series of meets. Each meet is held in the course ofone day at one particular venue.

Each meet consists of competitions in all four divisions: Women’s Junior (WJ), Women’sSenior (WS), Men’s Junior (MJ), and Men’s Senior (MS). A division is identified by acode (e.g. WJ) and has a name (e.g. Women’s Junior). Junior divisions are for gymnastsup to 15 years of age by the first date of the season.

Each competition consists of a series of events run on different equipment. The events ina competition are drawn from a standard list of event types. Each type of event has acode and a descriptive name that is also unique. Certain event types are for women or formen only.

A sample of the result of a competition in a meet is shown below.

Each meet is identified by an ID (e.g. “M01”), and has a name (e.g. Vacation Classic). Acompetition within a meet is identified across the system by the combination of the meetID and the division code.

Teams in Competitions

When a club registers for a competition in a meet, the club submits an appropriate listof its members as participants. These participants form the team representing the clubfor the competition. A team thus registered must participate in all the events of thatcompetition. Moreover, a team must have the same set of members competing for eachevent within a competition.

Scoring

Each event in a meet has a judging panel assigned to it. These people are qualified togive scores for this event. ESG (and the system) maintains a list of judges including theirpersonal details (name, phone number) and the types of events they are qualified to judge.

For ease of reference, each judge is given a unique ID.

Each judge rates the performance of a gymnast on an event. The highest and lowest scoreswill be thrown out, and the rest averaged to be the gymnast’s score for the event. Thisaverage will be entered into the system. The event score for a team is the sum of all itsmembers’ scores for the event. The competition score for a team (which is also referredto as the team’s meet score) is the sum of the team’s event scores.

(The season’s ranking of a club for a particular division depends not only on their totalscores for the meets but also on other factors, for example, the team sizes and the bestperformances of the members for various events. The rules and procedure for ranking,however, do not concern us here).

Further Details and Requirements

  1. None of the IDs are automatically generated by the system.
  2. The details about divisions and event types are taken from existing standards. However,the system must provide facilities for the user to enter these details into the system.
  3. To avoid some unnecessary complications, it has been decided that the system wouldallow us to register a club at the start of the season without having to enter its membersat the same time. 

Tasks

For Part 1 of the assignment, you are required to do the tasks described below.

Clearly state any assumption you make. Your assumptions must not be inconsistent withwhat are given the description above.

Task 1 – Use Case Modeling

  • Identify the use cases up to the point at which the score for a gymnast for an event canbe recorded.

Restrict your use cases to those that do add some new information into the informationbase.

That is, you are not required to consider use cases which change details about existingobjects or relationships, or delete these objects or relationships. Nor do you need toconsider any query use cases.

  • Present the use cases in a list and number them.
  • Describe each of the use cases in the list, using the Main Flow/Extensions format.

Make sure you clearly number the use cases.

Notes:

– You are not required to draw use case diagrams.

– You are required to identify and specify all use cases that fit the requirements givenabove. As for marking, about 5 of those use cases will be marked.

– Your use case descriptions should capture the functional requirements precisely andconcisely. Use case descriptions with superfluous details may result in marks beingdeducted.

Task 2 – Domain Modeling

  • Construct a domain class model, which may consist of one or more class diagrams.
  • You should use enumerated types whenever appropriate (rather just using characters orstrings).
  • You are required to use Enterprise Architect to draw the class diagrams.
  • Diagrams that are drawn by hand or with other software will have up to 50% of itsmarks deducted.
  • You should include your class diagrams in your pdf document, not in separate files.

An issue to ponder: There are some concepts of the application domain that can be represented in two ways: (a) as associations of arity (degree) 2, 3 or more, or (b) explicitly as classes. Which representations would you prefer? More specifically, which one would produce a model that is easier to understand? 

Solution 

Task 1

  • Use case to register a club in a season:

Use case name: register for a season

Trigger/Goal: A club wants to participate in some competitions of a given season and has to register on ESG system

Actors: team representative

Main Flow:

  • The team representative provides his name and phone number, and the club’s name, ID, its address and fax number and the season its club want to participate in.
  • The system checks if the competition has not started yet.
  • The system checks if all required information are provided and that the club is not already in the competition before validating its participation.

Extensions:

1a-       The team representative provides a list of gymnasts:

  • (see the following use case, please bear in mind that the “current date” in the 4th step is the “season’s start” date for this case)

2a-       If the season has already started:

  • System notifies the team representative and ends the use case

3a-       If there is a missing information:

  • System notifies the team representative, and asks him to provide the missing information

3b-       If the club is already registered for the season:

  • System informs the team representative and ends the use case
  • Use case to add a gymnast for a season:

Use case name: add a new gymnast for a given season competitions

Trigger/Goal: After the season started, a club wants to add another gymnast to its team

Actors: team representative

Main Flow:

  • The team representative selects the season, to which he is willing to add a new gymnast, provides his/her information
  • The system checks if the season has not ended yet.
  • The system checks if all required information are provided and that the gymnast is not already in the chosen season (maybe in the same club or in another one).
  • The system validate the gymnast participation, assign the current date to his/her registration date and generates a unique ID for him/her.

Extensions:

2a-       The season has already ended:

  • The system notifies the team representative and ends the use case

3a-       There is a missing information:

  • The system notifies the team representative and asks him to provide the missing one(s)

3b-       The gymnast is already in the season:

  • The system notifies the team representative and ends the use case
  • Use case to create a competition:

Use case name: create a competition for a season

Trigger/Goal: An ESG administrator wants to add a competition for the current season

Actors: ESG administrator

Main Flow:

  • The administrator selects the current season
  • The system provides the available events and division
  • The administrator checks the wanted events and assign a start time to each of them with their possible divisions
  • The system save the competition details
  • CRUD for Event types:

Use case name: Create Read Update Delete event types

Trigger/Goal: An ESG administrator wants to manage event types

Actors: ESG administrator

Main Flow: we will detail the add event

  • The administrator selects the current season
  • The system provides the available events
  • The administrator chooses to add an event type and provides its code and descriptive name
  • The system checks that the code and the descriptive name are not being used by another event type before it validates the new event type

Extensions:

3a- The administrator can check (e.g: radio button) to specify that the event type he is providing is gender specific and then choose if it is for men or women.

4a- If the check does not pass, the system notifies the administrator and ends the use case

  • CRUD for Divisions

Use case name: Create Read Update Delete division

Trigger/Goal: An ESG administrator wants to manage divisions

Actors: ESG administrator

Main Flow: we will detail the add division

  • The administrator selects the current season
  • The system provides the available division
  • The administrator chooses to add a division and provides its code and name
  • The system checks that the code and the name are not being used by another division before it validates the new event type

Extensions:

3a- The administrator can specify that the division he is providing is gender specific and then choose if it is for men or women or specify a minimum age or maximum one

4a- If the check does not pass, the system notifies the administrator and ends the use case 

  • CRUD for judges list

Use case name: Create Read Update Delete judge entry

Trigger/Goal: An ESG administrator wants to manage judges

Actors: ESG administrator

Main Flow: we will detail the add judge

  • The administrator selects the current season
  • The system provides a list of available judges
  • The administrator chooses to add a judge and provides his/her information: ID, name, phone number, and the event type he/she can judge
  • The system checks that the ID is unique, the chosen event type are available (references) before validating the new judge

Extensions:

4a- If the check does not pass, the system notifies the administrator and ends the use case 

  • use case to register for a competition:

Use case name: register for a competition

Trigger/Goal: A club, already registered in the season, wants to participate in a specific competition of that given season

Actors: team representative

Main Flow:

  • The team representative selects to participate in a competition of the current season
  • The system provides the club gymnasts, provided in use case a or/and b, and the list of events for that specific competition with its different divisions
  • The team representative assign the wanted gymnasts for the team, each to a specific event/division
  • For each selected gymnast the system checks if he/she satisfies the requirements of the assigned event/division and save the participation

Extensions:

4a-       It he/she does not satisfies requirements:

  • The system notifies the team representative and asks him to correct the assignment or to cancel the gymnast’s participation.
  • use case to calculate the scores:

Use case name: calculate scores

Trigger/Goal: An ESG administrator submits the score of a given gymnast for a specific event

Actors: ESG administrator

Main Flow:

  • The ESG administrator selects an event and a gymnast and submits his/her average score
  • The system selects the corresponding club and adds the provided score to its event score
  • The system selects the corresponding club and adds the provided score to its meet score (the competition score).

Task 2

Note:max_age from Division class, gender from Event class, if not specified it means, respectively, there is no maximum age restriction and no gender restriction

An issue to ponder: using explicit classes would be very helpful to easily understand the relation between classes for the simple reason that having an explicit class with its attributes will contribute to rapidly get the detailed relationship between the different classes.