In this part of the project, there are three short sub-phases (phases 4,
5, and 6) to be done in an incremental fashion.
You will use the Observer and
Factory design patterns in phase 4 of the SimpleChat application.
You will convert the command line chat interface to a graphical user
interface (phase 5) and add the ability to send both text and sketches
(phase 6).
Write a self-evaluation and peer review.
3. Exercises (90 points)
Each exercise is annotated as TEAM or INDIVIDUAL. A TEAM
exercise requires submission as a team (also called team artifacts). An
INDIVIDUAL exercise requires individual submission (also called
individual artifacts). The exercises are listed below:
- TEAM: Do exercise E131 on page 249. (3 points)
- TEAM: Do exercise E132 on page 252. (3+3 points)
- TEAM: Do exercise E133 on page 252. (5 points)
- TEAM: Prepare a UML class diagram that reflects your design
for P2. (4 points)
- TEAM: Do exercise E134 on page 252. (20 points) Note that
there are two reasons for doing this exercise. One is to restructure your
application
to make it easier to include GUI elements. The other is to experience something
that happens often in the real-world --- the third party software/framework on
which your application is based has changed, and you need to adapt your
application accordingly.
- TEAM: Prepare a UML class diagram that reflects your design
for P3. (4 points)
- TEAM: Based on the class diagrams from questions 4 and 6, list
all the changes that you had to make in terms of the interfaces, classes,
and methods changed (if any). (3 points)
This completes phase 4.
- INDIVIDUAL: Do exercise E148 on page 282, parts a and b. Each team
member must do this task separately. Read section 7.6 of your textbook when
you do this exercise.(5 points)
- TEAM: Do exercise E148 parts, parts c and d. Read section 7.6 of
your textbook when you do this exercise. (20 points)
All the features that you have implemented via text console should be available via a GUI. The GUI should not merely wrap a console terminal into a frame, but actually include GUI elements, including but not limited to text fields, text areas, and buttons. We will test all the features that were in P1 and P2, as well as the new features in P3.
Note that the GUI is only required for the client side.
This completes phase 5.
- TEAM: Do exercise E149, page 283. (15 points)
This completes phase 6.
Here are the instructions for packaging the solutions to the above
exercises:
-
For all the TEAM questions that involve writing an answer or
drawing a diagram (questions 1, 2, 3, 4, 6, and 7), please include the
answers and diagrams in a single document named P3.pdf (only PDF files
allowed).
-
For TEAM questions related to code (question 5, 9, and 10), create
a jar file, P3.jar, containing the entire source code without
changing its directory structure. Create only one version that contains
the answer for all the three parts.
Include a short README file that tells the GTA how to run your application.
-
Questions marked for INDIVIDUAL work (question 8) must be printed or
hand-sketched, and submitted in class.
4. Peer review and self evaluation (10 points)
Type this up based on the instructions given here describing the entire group project. Put your name and group name at the top of the document.
5. Using GitHub (5 points)
GitHub repository set up for this course by Dr. Ghosh must be used, and a commit log submitted. Please refer to the general project description for more information.
5. What to turn in
There are two types of things to turn in --- team artifacts and individual
artifacts.
5.1. Team artifacts
Team artifacts are to be submitted through Canvas, once for each team.
One and only one team member must do the submission. Please check to see that the
files have actually been submitted, not just uploaded.
- Code: P3.jar
- Document: P3.pdf
- Commit log for GitHub
5.2. Individual artifacts
Individual artifacts are to be printed and submitted in class.
Emailed self evaluations and reviews will NOT be accepted.
- Answer to question 8
- Self evaluation and peer reviews