Next: Grading criteria
Up: base.html
Previous: Discussion
Due date and electronic hand-in
The assignment is due by 10:30 am on Monday, February 24. You will
have a directory created for your group. It will be located in
``/afs/cs/academic/class/15675/studentdir". You should create
a subdirectory called ``a1". In ``a1" prepare a file
called ``kwic.doc". This file should contain:
- the names of all team members,
- a list of the modules added/modified and for each such module
a list of the resources added/modified.
The directory should also contain the system (source files, especially
of all modules modified/added, and an executable file, named
``session").
Before class on the due date, permissions to the directories will
be disabled and you will not be able to modify the files. In addition
there will be a written commentary (due at the beginning of class on Monday,
February 24) answering the following questions:
- What problem frame(s) does this problem fit? Does it differ
from the problem frame(s) of the Pipe and Filter KWIC? Why? Draw the
frames(s) if different from the Pipe and Filter assignment. Briefly
describe (designate) the domains in your frames. Note that your answer
should contain enough information so that the reader will not have to
refer to your write up for Assignment 1.
- How does an architectural diagram differ from an object model?
(Answer in terms of some object model notations such as Universal
Modeling Language Object Model or Object Modeling Technique object
diagram.) What do architectural diagrams convey that accounts for
the difference? What kinds of reasoning can you do about this problem
with your architectural diagram? Does an object model support the
types of reasoning you've identified? Do each of the diagrams scale
to very large systems? (Justify your answers.) What sorts of things
do both models omit?
- Describe the architecture of your system (both the provided
part and the parts you added), explaining how it is an example of an
object-oriented architecture, and in what ways (if any) it deviates
from the basic object-oriented style. Describe how your system
implements each of the new functionalities required. Justify your
design decisions. Be certain to use architectural concepts and
vocabulary (not programming language constructs), and provide
architectural diagrams for provided and modified architectures.
- For each of the changes you made, explain if the change was of
the internals of one of the system components (e.g., data structures or
algorithms) or of the system architecture (e.g., adding modules,
deleting modules, adding connections between modules,
augmenting interfaces).
- What changes would you have to make to your system to change
the representation of line storage? What other components would be
affected?
- Describe changes you would have to make to your system to add the
functionality of only showing lines that start with a particular
word.
- Does the system lend itself to a distributed implementation
(i.e., different modules running on different processors or machines)?
If so what changes would have to be implemented to make it function this
way? Consider things such as how this will effect module interfaces
and how well the architecture will support concurrency.
The commentary should be your own work: i.e., individuals, not teams
for commentary.
Next: Grading criteria
Up: base.html
Previous: Discussion
TOM Conversion
Wed Feb 5 18:33:12 EST 1997