CSC 305 Homework Assignments



Due Thursday 4/3 at the start of class.

Study the list of Presentation Topics.  Determine your first, second, and third choice topics.  Write your choices on a 3 by 5 card. for example:
1. Topic 10 - JUnit
2.  Topic 13 - Swing
3.  Topic 2 - Generics
Thank you,
Joe Student

Note: This is an optional activity. If the instructor doesn't receive a card from you, he will assume you have no preference and he will assign a topic to you.


Homework #1

Complete the PSP Training Part A


Homework #2

Complete the PSP Training Part B

Read the first Quality Challenge problem (Roman Numeral Converter). Then follow the Basic PSP Script to complete the Design and Coding phases only. You may type your code into a text file using an editor, but do not compile it.


Homework #3

Complete the Compile and Testing phases of the first Quality Challenge that you started in the previous homework. Keep careful track of your time and defects.
Follow the directions for Assignment Submission given in the Quality Challenge.

Homework #4

Chapter 2 in Hostmann is called "The Object Oriented Design Process."   He has great descriptions of different techniques and a helpful case study example.  It would be nice if he provided a succint summary of the process, but he doesn't. 

Your assignment is to create a concise process description of how to do Horstmann's Object Oriented Design process.
Give the steps to be carried out in order, the name of each step, and a one or two sentence description of the activity.  Include a description of the artifact produced by each activity.

For example, here is a hypothetical process description of making a salad.
Step #      Name                       Description of Activity                                       Description of Artifact

   1             Wash Lettuce      Remove dirt and pesticides from leaves              Cleaned lettuce
   2             Slice Tomatoes     Cut tomatoes into edible chunks                         Bite sized tomatoes
   3            Mix Ingredients      Combine lettuce and tomatoes in a big bowl    Undressed Salad
   4             Dress Salad          Add dressing to the salad                                      Completed Salad, ready to eat



Your solution should be less than one page.   Do not include any analysis steps, only design.


 Homework #5

CRC card exercise

Read the Library Design problem.

Follow the directions in chapter 2 to create a set of CRC cards that model the library problem.
Use 3x5 or 4x6 cards in the manner illustrated in the text.
Use a paper clip to fasten your cards together for submission


 Homework #6

For this exercise we will study a working implementation in source code and critique the author's design.

Review the source code HallOfFame.java which implements a high score feature for a computer game. (If you are curious you can see how I tested this class using the JUnit testing framework: HallOfFameTest.java )

Study the code and identifying aspects of the program you think were done well and aspects that were done poorly or need improvement. Write down as many things as you can discover in 30 minutes. You may ignore the many violations of the class coding standard.   There are both high level and detailed design issues to examine.  If you need some ideas you can read the design QA guidelines.

Create two lists (did well, did poorly) that are ranked with the most significant items first. For each "did poorly" item, suggest how it could be improved.



 Homework #7

Write a paragraph description of your proposed framework for project 5.

Describe the problem domain, and specify what aspects of the domain will be encapsulated by the Framework, and what parts will be the responsibility of the plugins.


It may be helpful if I distinguished an application which is "configurable" from a framework with plugins. A configurable application can change the static elements via data files, property files, preference files, configuration files, or other runtime settings. For example, you can change the map or levels in a game, the colors or images, the qualities of characters, or the size of a board. However, this is not a plugin. A plugin has LOGIC. It alters the BEHAVIOR of the game, not just its appearance. For example, in a Solitaire Framework, a plugin provides different game rules for different solitaire games.



 Homework #8

Draw a preliminary UML class diagram for your project 5 design. It doesn't need to have methods or fields. All the relationships should be correct. Indicate classes, abstract classes, and interfaces with the correct UML notation.