Product Vision: WatIam User ID Maker (WUIM): Update 2

(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, i.e., student, employee, or guest, 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 soon after 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 new 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.

UW, independently of the IST, maintains a database, hereinafter called the UW Personell database (UWPDB), of all UW persons. A UW person is a person, i.e., a student, an employee, or a guest, with any current association to UW. For each UW person the UWPDB has his 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,
  6. some other available official identifying number, particularly if the owner does not have any of a SIN, an SN, or an EN, and
  7. WatIam user ID, if it has been assigned.
The nature of the UWPDB is such that a person has a valid current association with UW, and is therefore a UW person, if and only if he or she has a record in the UWPDB. The UWPDB is accessible to only trusted programs such as WUIM.

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,
  6. some other available official identifying number, particularly if the owner does not have any of a SIN, an SN, or an EN,
  7. WatIam user ID,
  8. WatIam user password, encrypted,
  9. e-mail alias, if any, and
  10. whether or not the owner is a WUIM super user.
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.

When a person P, claiming to be a UW person, wants to create his or her ID, he or she invokes the ID creation function of WUIM. The ID creation function creates an ID for P and generates an initial password, which is to be changed by P just after he or she logs in to WUIM for the first time. The function also notifies the UWDB to update its record for P with P's newly generated ID.

During ID creation, the default 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 IST database. This sort of collision can happen for at least two reasons:

  1. P has forgotten that he or she already has an account, or
  2. P was a UW person in another way in the past, e.g., he or she was a student, but is now an employee.
In any such case, WUIM works with P to determine if he or she is in fact the same person as that owning the colliding ID. WUIM 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. WUIM must do so without revealing to P the exact identifying information in the data base. For example, WUIM cannot reveal to Jane Henrietta Malkova that the colliding ID belongs to John Horatio Malkovich.

If there is a collision and the person seeking an ID does not already have an ID, perhaps ignoring one or more, but not all, of his or her given names might avoid a collision. WUIM should offer non-colliding IDs constructed from these reduced full names as possible IDs that the person can choose. WUIM could ask the person which of his or her given names should be ignored to allow the person who goes by his or her middle name to use that middle name as the basis for the ID. Perhaps this option should be offered up front to every person, even when there will be no collision when the person's full name is taken into account.

Any time after P logs into WUIM with his or her ID and password, he or she may invoke an e-mail alias creation function, 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. WUIM interacts with P until a non-colliding alias can be found.

Finally, to allow manual intervention to solve problems that cannot be reasonably and feasibly solved by WUIM, there is a set of UW employees, i.e., IST employees, each of whom is a super user who is able, after logging in with his or her ID and password, to edit the IST database directly.

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.