Course Term Project

Bi-Directional Word Processor

This term project will be done in the groups that you form for the first assignment due on the second Friday of the course.

Your group's job is

  1. to create detailed models of the various entities and processes in the bi-directional word processor's problem domain,
  2. to decide what features should be in the bi-directional word processor,
  3. to decide the correct functionality of these features,
  4. to eventually use these models and decisions to create a user's manual (UM) or a software requirements specification (SRS) describing your bi-directional word processor.
See a description of how bidrectional word processing works. See in particular the specification of the Unicode Bidirectional Algorithm, because the character set that is assumed by most word processors these days is the Unicode character set, in particular Unicode 6.0.0. The best explanation I have found of how the Unicode Bidirectional Algorithm works with all of its strong, weak, and neutral characters, and its directional marks, directional embeddings, and directional overrides is an article titled ``Understanding Bidirectional (BIDI) Text in Unicode'' written by Cal Henderson (Thanks Cal!). To lookup any character in the Unicode table and to see its properties, go to http://www.fileformat.info/info/unicode/char/search.htm?q=%28&preview=entity There, you type either the character (if you can do so with your keyboards) or part of its name, e.g., ``('' or ``parenthesis'', and it will offer you all the possible choices that match.

Your bi-directional word processor can be an extension of any of the following existing programs:

Note that while each of these currently has the ability to deal with bi-directional text involving the Latin, Arabic-Persian-Urdu, and Hebrew Alphabets, none of them does it completely correctly, and each is missing some important functionality. You will need to discover these flaws and missing functionality, understand them, and figure out how to deal with them in the context of what is already in the program. See for directories containing PDF files showing flaws in these existing word processors.

Thus, your UM or SRS will describe a set of new features, not in the existing system.

Without these new features, the maximum grade your UM or SRS can get is 70/100.

For more details on the project, please consult a detailed description of the requirements for a bi-directional word processor and the choices for your word processor.

Course Term Project

Bi-Directional Word Processor

This term project will be done in the groups that you form for the first assignment due on the second Friday of the course.

Your group's job is

  1. to create detailed models of the various entities and processes in the bi-directional word processor's problem domain,
  2. to decide what features should be in the bi-directional word processor,
  3. to decide the correct functionality of these features,
  4. to eventually use these models and decisions to create a user's manual (UM) or a software requirements specification (SRS) describing your bi-directional word processor.
See a
description of how bidrectional word processing works. See in particular the specification of the Unicode Bidirectional Algorithm, because the character set that is assumed by most word processors these days is the Unicode character set, in particular Unicode 6.0.0. The best explanation I have found of how the Unicode Bidirectional Algorithm works with all of its strong, weak, and neutral characters, and its directional marks, directional embeddings, and directional overrides is an article titled ``Understanding Bidirectional (BIDI) Text in Unicode'' written by Cal Henderson (Thanks Cal!). To lookup any character in the Unicode table and to see its properties, go to http://www.fileformat.info/info/unicode/char/search.htm?q=%28&preview=entity There, you type either the character (if you can do so with your keyboards) or part of its name, e.g., ``('' or ``parenthesis'', and it will offer you all the possible choices that match.

Your bi-directional word processor can be an extension of any of the following existing programs:

Note that while each of these currently has the ability to deal with bi-directional text involving the Latin, Arabic-Persian-Urdu, and Hebrew Alphabets, none of them does it completely correctly, and each is missing some important functionality. You will need to discover these flaws and missing functionality, understand them, and figure out how to deal with them in the context of what is already in the program. See for directories containing PDF files showing flaws in these existing word processors.

Thus, your UM or SRS will describe a set of new features, not in the existing system.

Without these new features, the maximum grade your UM or SRS can get is 70/100.

For more details on the project, please consult a detailed description of the requirements for a bi-directional word processor and the choices for your word processor.

Plan

  1. You will get a lesson in reading bi-directional text in a lecture or tutorial soon.
  2. You will participate in a first part (generation of many raw ideas) of a brainstorming session, to be held during a tutorial or lecture, to generate requirements for a bi-directional word processor.
  3. You will brainstorm not with your group, but with a team that we choose.
  4. The anonymous ideas found by all teams will be shared with the whole class.
  5. Your group will do the rest of the brainstorming (pruning raw ideas into quality ideas) to decide on a consistent set of requirements and then model and specify a word processor with these requirements in the form of a UM or SRS.

Intermediate Deliverables

  1. Domain Model with Division of the World
  2. Use Case Model and List of Features
  3. Draft UM or SRS specifying your group's bi-directional word processor.
See the Lecture Schedule for the due dates of the deliverables.

Final Deliverable

The final deliverable is a UM or an SRS specifying your group's bi-directional word processor.

Remember, you don't have to implement the program. Just pretend that they already exist and describe them in the UM or SRS.

See the Lecture Schedule for the due date of the final deliverable.

Plan

  1. You will get a lesson in reading bi-directional text in a lecture or tutorial soon.
  2. You will participate in a first part (generation of many raw ideas) of a brainstorming session, to be held during a tutorial or lecture, to generate requirements for a bi-directional word processor.
  3. You will brainstorm not with your group, but with a team that we choose.
  4. The anonymous ideas found by all teams will be shared with the whole class.
  5. Your group will do the rest of the brainstorming (pruning raw ideas into quality ideas) to decide on a consistent set of requirements and then model and specify a word processor with these requirements in the form of a UM or SRS.

Intermediate Deliverables

  1. Domain Model with Division of the World
  2. Use Case Model and List of Features
  3. Draft UM or SRS specifying your group's bi-directional word processor.
See the Lecture Schedule for the due dates of the deliverables.

Final Deliverable

The final deliverable is a UM or an SRS specifying your group's bi-directional word processor.

Remember, you don't have to implement the program. Just pretend that they already exist and describe them in the UM or SRS.

See the Lecture Schedule for the due date of the final deliverable.