In this part of the project, you will (1) refactor the chat application to add the adapter and observer patterns, (2) add a graphical user interface to the client side, and (3) add the ability to send sketches in addition to text messages.
(10 points): For each of the tasks below, write out the user stories in a document called US.pdf. For each user story, list the acceptance criteria and the story points (size estimation as S/M/L/XL) information. Finally, provide the definition of "done" (including your testing goals, coverage level of test cases, among other criteria) for this project.
Update on Nov 10, 2016: Task 2 is now extra-credit. Hints and instructions will be posted on Piazza soon.
(10 points): Include the following classes in your OCSF project area. This represents a situation where the third party framework supplier has modified their framework. Remember that you are not allowed to modify any of the OCSF project classes (old or new).
Refactor the application so that it uses the Observable Layer of OCSF. The external interface and behavior of the system should not change. Instructions are provided on pages 21-22 of the set on Design Patterns. Note that you are not including the Abstract Factory portion in this project.
Develop a graphical user interface for the client side of the chat application. 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 P4 and P5, as well as the new features in P6.
(5 points): Each person in your team needs to create a paper prototype that contains ideas on how the GUI should appear.
(5 points): Discuss each prototype. Each prototype creator needs to note down the positive comments and the constructive criticism provided by the others. Handwritten comments are fine. These need to be submitted.
(40 points): Implement the best ideas in a fully functional GUI.
(20 points): The SimpleChat website by Lethbridge and Laganiere provides a DrawPad class. If you download the zip file, you will find a class called StartDraw that can be used to create an instance of DrawPad. Allow two clients to communicate by opening Drawpad and drawing sketches. Do not change any code inside the DrawPad class. You should be able to transmit the drawing actions as command messages via the server.
To get full points for this part, GitHub logs must show the following:
The following 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.
Each file must be submitted separately. You must not include the pdf files inside your jar file.
Put your names and team number at the top of each page of the PDF files.
Submit the paper prototypes and comments and criticisms for each paper prototype in class.
The code that you submit will be graded via a demo. You must schedule a demo based on time slots that will be provided by your GTAs. Not performing a demo will result in a loss of 80 points for the code portion of your project.