90-754 Homework #4: Criteria and Comments
28 March 1999 
A sample solution to Problems 8.1a, 8.1b, and 8.1c are provided here. No sample is available for the group project, since there was no one correct way to do that.

Overall criteria for the individual assignment:
Score Description
7 Mostly correct; grasp of the core concepts demonstrated
6 Attempted, but some aspects of the solution were incomplete or did not represent an object model that fulfilled the requirements stated in the problem.
0 No attempt made

Note that these assignments are (and have been) graded mostly on effort, with only small focus on mastery...
...so receiving 7/7 on your homework does not indicate that you have complete mastery of the material.
Most students will probably benefit from a review of this assignment, particularly those that received comments on any of their work.

Problem #8.1a
Problem #8.1b
Problem #8.1c
Group Project

Problem 8.1a: Eliminating the spurious classes

Number Description
1.1 Depending on your final design, this noun might be considered a method rather than a class or attribute because it is information derived from other attributes and associations in the system.
1.2 These nouns might be considered values of a particular attribute, rather than attributes or classes themselves.
1.3 Actually, this noun might really turn out to be a class (or at least it did for me.)
Back to top

Problem 8.1b: Developing the object model as a class diagram

Number Description
2.1 In order to represent type information (such as payment method, deduction type, or income type) you need to either use the language's built-in type system (inheritance) or create your own (with a type variable).  But you should not do both.
2.2 Since the totals and net pay for an employee are derived data from the employee's paychecks, income items, and deductions, storing them as attributes would create dangerous redundancy in your system.  Probably better to leave them as methods.
2.3 Your system needs to be able to represent deductions and income items within each paycheck.  Some of you had just one itemization facility for paychecks, and represented deductions as negative income.  This was fine but you should explicitly say that the system works that way.
2.4 You have some redundant associations in your model.  These can often cause problems for cleaning up deleted objects, and in general redundant associations create all of the same non-normalization problems that redundant attributes create.
Back to top

Problem 8.1c: Data dictionary for the above model
Number Description
3.1 The data dictionary needs to be fairly descriptive, because other developers and designers will use it to try to understand your design.  If you are too brief or glib, your readers won't be able to construe much else besides what they have already learned by staring at your diagrams.
3.2 Your data dictionary should include entries for as many of the key terms and entities as possible, not just a few of them.

Back to top

Group Problem: Project post-mortem and prototype implementation

All of your answers were reasonable and received the full credit for this problem (3/3).
Number Description
1 I had hoped for some explanatory text here.  What do you think was the purpose of this assignment, and how did you do it?
2 Did you find nothing unexpected during this entire process?  Did you find this assignment useful or learn anything from it?

Back to top