CS 3302 Summer, 1998

Assignment: 3

Percentage of Final grade: 5 percent.

Due: Tuesday, July 14th at beginning of class.

This is an individual assignment. Answer at least questions 1 and 2.

1. You work for MonoSoft Corporation, whose presentation software package Monotony95 is used universally in business and by professors to create slides for lectures. Your marketing department has identified the need for a new function to save a Monotony presentation on the WWW. (Your marketing people have obviously been looking at the web site for this course.) They haven’t documented the requirements very thoroughly, and anyway we haven’t covered requirements in the course yet, so their wish list and your commonsense intuitions and everyday knowledge are all you have to go on.

Below is a diagram showing the principal data abstractions (a.k.a. object classes) in the problem domain.

Write a precise specification of the function (method) WebPresentation.addSlidePage, which takes as an input a Monotony97 Slide and adds a SlidePage to the WebPresentation. You may assume that another function has already created the ContentsPage. Specify what WebPresentation.addSlidePage creates and modifies and what, if anything, might go wrong. You can invent the names of any data types and exceptions that you need.

2. Consider the architecture given in class for the meeting scheduler.

(a) Rewrite the normal case scenario including all the modules in the architecture

(b) Rewrite the exceptional case scenario (the calendar is wrong, because Person2 forgot to enter an appointment) including all the modules in the architecture. You may start the scenario at the point where Person2 interacts with the DialogMgr to tell the system that he or she cannot attend the meeting that has been scheduled.

(c) Comment on the design of the system based on your walkthrough of the scenario. Where is the coupling and cohesion wrong, in your opinion?

3. (Optional for class participation bonus) Post to the web page an algorithm or comments on any previously posted algorithm that implements the specification of CategorizeTriangle given in class. Be careful that in testing for the InvalidTriangle condition, you don’t throw an integer overflow exception, because that is not permitted by the specification.