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
-
to create detailed models of the various entities and processes
in the bi-directional word processor's problem domain,
-
to decide what features should be in the bi-directional word processor,
-
to decide the correct functionality of these features,
-
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:
-
Mac OS TextEdit
-
MS Notepad
-
MS Wordpad
-
MS Word
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
-
to create detailed models of the various entities and processes
in the bi-directional word processor's problem domain,
-
to decide what features should be in the bi-directional word processor,
-
to decide the correct functionality of these features,
-
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:
-
Mac OS TextEdit
-
MS Notepad
-
MS Wordpad
-
MS Word
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
-
You will get a lesson in reading bi-directional text in a lecture or tutorial
soon.
-
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.
-
You will brainstorm not with your group, but with a team that we choose.
-
The anonymous ideas found by all teams will be shared with the
whole class.
-
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
-
Domain Model with Division of the World
-
Use Case Model and List of Features
-
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
-
You will get a lesson in reading bi-directional text in a lecture or tutorial
soon.
-
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.
-
You will brainstorm not with your group, but with a team that we choose.
-
The anonymous ideas found by all teams will be shared with the
whole class.
-
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
-
Domain Model with Division of the World
-
Use Case Model and List of Features
-
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.