CS314 Fall 2014
Group Project Part 3
Assigned: Oct 28, 2014
Team artifacts due: 11:59 pm, November 19 (changed from 17), 2014, through RamCT
Individual artifacts due beginning of class, November 20 (changed from 19), 2014
100 points


1. General description

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).


2. Summary of Steps

  • Read Chapter 6 (sections 6.6, 6.13, and 6.14) and Chapter 7 of the Lethbridge/Laganiere part of your textbook to understand concepts related to the Observer pattern, Adapter pattern, and GUI design.
  • Do the exercises described below. These exercises involve creating paper prototypes of GUIs, drawing UML diagrams, coding, and testing.
  • 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:

    1. TEAM: Do exercise E131 on page 249. (3 points)
    2. TEAM: Do exercise E132 on page 252. (3+3 points)
    3. TEAM: Do exercise E133 on page 252. (5 points)
    4. TEAM: Prepare a UML class diagram that reflects your design for P2. (4 points)
    5. 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.
    6. TEAM: Prepare a UML class diagram that reflects your design for P3. (4 points)
    7. 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)
    8. This completes phase 4.

    9. 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)
    10. 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.

      This completes phase 5.

    11. TEAM: Do exercise E149, page 283. (15 points)

      This completes phase 6.

    Here are the instructions for packaging the solutions to the above exercises:


    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 RamCT, 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.

    1. Code: P3.jar
    2. Document: P3.pdf
    3. 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.
    1. Answer to question 8
    2. Self evaluation and peer reviews