Product Vision: WatIam User ID Maker (WUIM)

(In this description, "you" is the requirement engineer.)

The University of Waterloo (UW) Information Systems and Technonology (IST) group wants to improve the the Web site that assigns to each UW person his or her WatIam user ID, which is the "login" part of the initial e-mail address, login@uwaterloo.ca that the UW person gets when he or she begins his or her association with UW.

In the following, P is the person who is currently using the Web site to create his or her WatIam user ID (hereinafter called simply "ID"). The assignment of an ID to P occurs after the assignment of all IDs already in the database.

IST wants to make a user-friendly interactive Web site that works with any new UW person P to create for P an ID that meets IST's requirements and that is as acceptable to P as possible given IST's requirements. This Web site is called "WatIam User ID Maker (WUIM)".

The current Web site is found by going to http://watiam.uwaterloo.ca/search/ and then clicking on "Account Activation"

Frequently asked questions about WatIam and their answers are found at http://watiam.uwaterloo.ca/search/commonquestions.jsp.

The IST maintains a database of all IDs ever created, each ID being paired with data about the ID's owner, including her or her:

  1. full real name in the format "FamilyName, List Of Given Names"
  2. date of birth in the format "MM/DD/YYYY",
  3. Social Insurance Number (SIN), if any,
  4. student number (SN), if any,
  5. emplyee number (EN), if any, and
  6. some other available official identifying number, particularly if the owner does not have any of a SIN, an SN, or an EN.
The purpose of maintaining these data about each ID's owner is to prevent both so that it can be ensured that there is a one-to-one correspondence between all persons ever associated with UW and IDs.

The ID for P is constructed from P's full real name by taking the the first letter of the first given name; the first letter of the second given name, if any; and then all the letters of the family name; with the restriction that the length of the entire ID is no longer than eight characters. For example, P = John Horatio Malkovich, with full real name, "Malkovich, John Horatio", would normally be assigned the ID "jhmalkov", while P = Jim Malkovich, with full real name, "Malkovich, Jim", would normally be assigned the ID "jmalkovi".

If this method of constructing the ID for P, e.g., = Jane Henrietta Malkova, were to produce the ID i, e.g., "jhmalkov", that was previously assigned to a different person, e.g., John Horatio Malkovich, then P is said to collide with i, and P is assigned an ID constructed from P's full real name by taking the the first letter of the first given name; the first letter of the second given name, if any; a serial number; and then all the letters of the family name; with the restriction that the length of the entire ID is no longer than eight characters. The serial number for an ID is determined as follows:

  1. the serial number of the first person who collides with i is "1", and in general,
  2. the serial number of the nth person who collides with i is "n".
Thus P = Jane Henrietta Malkova, with full real name, "Malkova, Jane Henrietta", would be assigned ID "jh1malko", assuming that she were the first person to collide with "jhmalkov".

One possible cause of a collision is that P, seeking an ID, already has an ID, that is, he or she is already in the database and has perhaps forgotten that he or she is. In this case, the site works with P to determine if he or she is in fact the same person as that owning the colliding ID. The site asks P questions that allow it to use the information in the database associated with the colliding ID to decide whether P is the owner of the colliding ID. The site must do so without revealing to P the exact identifying information in the data base. For example, the site cannot reveal to Jane Henrietta Malkova that the colliding ID belongs to John Horatio Malkovich.

Finally, the site offers to P to create an e-mail alias for him or her that is easier to guess and remember by other human beings. This alias is a sequence of letters, digits, and at least one period, ".". For example, John Horatio Malkovich might request "john.malkovich" so that e-mail sent to "john.malkovich@uwaterloo.ca" gets forwarded to "jhmalkov@uwaterloo.ca", and Jane Henrietta Malkova might request "jane.malkova" so that e-mail sent to "jane.malkova@uwaterloo.ca" gets forwarded to "jh1malko@uwaterloo.ca". Of course, each such alias must be assigned to at most one ID, and thus to at most one person. The site interacts with P until a non-colliding alias can be found.

You are expected to flesh out this vision into a complete set of requirements that take into account real-life practicalities and that deal not only with the usual normal situations, but also with all exceptions, and exceptions to the exceptions. You will be discussing these requirements with your clients (your TAs) and you will be responsible not only for giving them what they want, but also suggesting to them what they should want.