IS480 Team wiki: 2017T1 Team BFFs Mid Terms
- 1 Project Progress Summary
- 2 Project Management
- 2.1 Project Status
- 2.2 Project Metrics
- 2.3 Project Risks
- 2.4 Technical Complexity
- 2.5 Quality of Product
- 2.6 Sponsors' Evaluation
- 2.7 Reflections
Project Progress Summary
The following are the project highlights for mid terms
- Conducted a full-scale system test during Singapore Weiqi Association Officially Tournaments twice (Yan Huang Cup on 2nd September and Whampoa Cup on 9th September) with their systems running officially beside us.
- Revamped User Interface to improve User Interface / User Exchange
- Relocate our web application onto the client's server (client passed us the access to their server only after acceptance)
With these challenges. Team BFFs came out with a web application as a solution to our client. We create online tournament website that will enable Singapore Weiqi Association to organize and run all types of tournaments through a centralized website. This will make the process of organizing and running a tournament much more efficient, less time consuming and with a more error prevention methods which equate to less human errors.
Metrics used are shown below:
Our team recognized the following risk and have created the following mitigations.
|1||New users (especially players) do not know how to navigate the new website||Medium||Medium||Ensure that actual players attend our UATs to get usability feedback if our design is intuitive enough for new users.|
|2||Delays due to unfamiliar Weiqi match pairing logic.||High||High||Frequent checks with Sponsor to confirm if pairing logic is correct and compare pairings with past tournaments|
|3||Server crashes due to large amount of players using the system concurrently||Medium||High||Improve the efficiency of the website and upgrade the server RAM|
Swiss systems intend to provide a clear winner with a limited number of rounds and a potentially unlimited number of opponents, without a single loss terminating participation. The winner is defined as the competitor who has the highest aggregate points earned in all rounds during that tournament. With a fixed number of rounds set during the creation of the tournament itself, opponents are paired with each other based on similarity of their running score. All competitors play in each round unless there is an odd number of players. These are the basic rules of any Swiss System tournament.
It is to be noted that there are multiple ways to reach the “clear winner”, and each of these ways is referred to as a different type of Swiss System.
As the Dutch Swiss System and McMahon System rules are the tournament types required by the client\sponsor, our system implements both. However, as the Dutch Swiss System type is organised the most, we would be using that to explain the complexity of our project.
The Dutch Swiss system, has specific rules to take into account when conducting pairing so as to ensure a clear winner is derived. The first rule is that no two players are to be paired with each other a second time. Secondly, the same player cannot sit out in more than one round. The player who sits out is referred to as the bye player, and this condition occurs only when an odd number of players are in the pair-able pool of players for that specific round.
Thirdly, the Dutch Swiss System uses 3 different running scores to define the similarity between players. The first of which is called Number of Wins also referred to as NBW. The NBW is calculated using the following formula:
Number of Wins (NBW) = ∑(Wins in that tournament)
The second running score is called the Sum of Opponent’s Score, also referred to as SOS, takes into account the Number of Wins of all the opponents that a specific player has previously played against. The SOS is calculated using the following formula:
Sum of Opponents’ Score (SOS) = ∑(Past Opponents’ current NBW)
The third and last running score is the Sum of Opponents’ Sum of Opponents’ Score, also referred to as SOSOS, takes into account the Sum of Opponents’ Score of all the opponents that a specific player has previously played against. The SOSOS is calculated using the following formula:
Sum of Opponents’ Sum of Opponents’ Score (SOSOS) = ∑(Past Opponents’ current SOS)
The Dutch Swiss System, lastly has three different pairing algorithms that can be followed to pair a list of players. These are as follows:
Coming to the implementation of the Dutch Swiss System, For each round there is a list of players referred to as the pairable pool of players. Pairable can be defined as those who are present for the round. Now we take this list of players and we sort the players according to their strength. In this caser, defined by their NBW, SOS and SOSOS. If there is an odd number of players in this list one of the weakest players will be selected as the bye player. We will go indepth into the bye player selection, after this. Now, based on the NBW, the players are divided into groups. That is to say that players with the same NBW would belong to the same group. After the division is done, the list would be sent to the respective pairing algorithm to pair the players.
Let’s take a look at the bye player selection process. The objective is to find a player from the pairable pool who is the weakest and has not been a bye player previously. Let there be n different NBW scores and thereby, n different groups of players. We begin by extracting the list of players in the lowest NBW group, referred to as L1. If there is a single player in that list who hasn’t been a bye player previously, we choose that player as the bye player, and this is the simplest path. If however, there are more than one players in the NBW group, we can say that there are m different SOS scores for the n different players in the specific list L1. We then extract the players in the lowest SOS group, into a list called L2. If there are more than one players in that list, we can say that there are p different players in the specific list L2. We then extract the lowest SOSOS group, into a list called L3. If there are more than one players in the group then we select a player randomly. Upon selecting a player as the bye player, we then check if the player has been a bye player previously. If not, we simply select that player as the bye player. If yes, we move onto the next random player or we increment k, j, or i until we reach p, m or n while in pursuit of the bye player for that specific round. This is the worst case scenario.
The three different paring algorithms as previously mentioned are Split and Fold, Split and Slide and Split and Random.
Split and Fold
The split and fold pairing algorithm takes an NBW group and splits the group into a stronger half and a weaker half. The weaker half is then flipped or reversed so that the pairing takes place as strongest to weakest within the same NBW group. This pairing aims at getting the strongest players reaching the last rounds, postponing the most exciting games until the end of the tournament. This is also referred to as slaughter pairings.
Split and Slide
The split and slide pairing algorithm takes an NBW group and splits the group into a stronger and a weaker half. The weaker half is then used in order to pair the strongest of the stronger group with the weakest of the weaker group. This method, like the split and fold method, aims to have the strongest players play each other in later rounds, to produce exciting games at the end of the tournament, but tries to avoid the disadvantage of giving the top players a bad SOS due to their first round pairing. Therefore, Slide pairings are especially popular in the first round of Swiss tournaments
Split and Random
The split and random pairing algorithm takes an NBW group and chooses the pairs within each group randomly. This method is the only option available when it is impossible, or undesirable, to make a prior sorting of the players by strength.
It is important to note that two players cannot meet each other in a tournament more than once. Additionally, if two players are from the same team, same country or same school/club, they are not to meet within a tournament.
In the case that an NBW group has an odd number of players, there is a need to find a pairing for him or her within another NBW group. While the easiest option would be to find another NBW group which has an odd number of players and pair these two players with each other, it isn’t feasible as then we would be pairing players without taking into account their strength. Therefore, instead, we would be taking the weakest player of the NBW group (Amy) and pairing them with the next group based on the NBW, wherein the group gap criteria is taken into account to ensure that the difference between the groups’ NBW is not greater than an admin defined value (eg. 2). Additionally, the player from the next group (Mia, Pam or Zoe) is again chosen according to the admin’s defined criteria of top middle or bottom of the next group.
Secondly, if player A (Lew) has been paired with all players in his NBW group, there will be a need to find another player to pair with Lew, outside of the NBW group. In this case, we select a player from the next NBW group chosen to be within the Group Gap criteria, to replace the weakest player in Lew’s NBW group. The replacement will have to adhere to the rules – not paired with Lew before, not from same school/team/club/country. Once the replacement is made, we conduct pairing as per normal.
Quality of Product
|deployment||minutes||metrics||risk management||change management||project overview||diagrams||prototype||testing document|