(In this description, ``you'' is the requirement engineer)
Please see the linked annotated questionnaires for Operation Match and a variation called Operation Shadchan (See Section 2):
Operation Match's 1965-1966 Questionnaire,
Operation Match's 1967 Questionnaire, and
Operation Shadchan's Questionnaire.
You are to decide the requirements for a program named "Matchmaker" with the following characteristics and are to express those requirements in the form of a user's manual or a Software Requirements Specification (SRS) document:
In dating mode, it is assumed that there is a continually growing database of questionnaires, all of the same set of questions, of filled questionnaires at most one per person.
Each time a new filled questionnaire comes in, it is compared to all filled questionnaires that are already in the database to find good, balanced matches between the new questionnaire and the old questionnaires. For any good, balanced match that is found, the two parties are informed in one e-mail addressed to both of the good. balanced match and of the basis for it. There is no a priori upper or lower bound on the number of good balanced matches each questionnaire is in.
In party mode, it is assumed that there is a database of questionnaires filled out, one per person, by the set of persons who want to attend one event, called the party. It is assumed that there is a even number of filled questionnaires, and that the number n of questionnaires filled out by those identifying as male is the same as the number of questionnaires filled out by those identifying as female.
Matchmaker creates n matches for the party, each matching one male with one female. The match is as good and as balanced as possible given the constraint that everyone who filled out a questionnaire is matched to one and only one someone else.
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 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.