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.