JMU CS345 - Software Engineering
Help Policies Solutions Study-Aids Syllabus Tools
Homework: GUIs


1 Purpose

The primary purpose of this assignment is to help you review (and demonstrate that you have acquired) the knowledge and skills required to implement graphical user interfaces (GUIs).

2 Overview

As you know from an earlier assignment, SagaciousMedia is a (fictitious) company that develops educational hardware, software, and content for both the formal and informal education markets. SagaciousMedia's products are designed to excite and educate students, to inspire and assist teachers/instructors, and to help administrators. They are in the process of developing a product called Transcriptz.

They have decided that their earlier command line application limited the size of the potential market. So, they have added stories that involve the creation of a GUI-based application that lets users enter information and display results. The team decided not to write acceptance criteria for this sprint, but instead to write use case descriptions that describe the features. They then wrote specifications from the use case descriptions.

3 Documents

perspecTV has created several new documents for this release.

4 A Recommended Plan

As before, the tasks that were identified by the team at SagaciousMedia are organized by feature. Hence, though they are numbered so that they can be referred to in documents and conversations, the numbers should not, in any way, influence the order in which you complete them. I would suggest you sequence your activities as follows.
  1. Read and understand all of the documents.
  2. Create a new project for this version.
  3. Copy all of the classes from the previous version.
  4. Think about which objects will be event generators/producers and which will be event receivers/handlers.
  5. Add detail to the engineering design as required.
  6. Implement the GradeEntryPanel class.
  7. Implement the CompositeGradeSubject interface.
  8. Implement the CompositeGradeEntryPanel class.
  9. Implement the TranscriptzController class (that either exits the program or resets the entryPanel).
  10. Implement the GPAPanel class.
  11. Modify the TranscriptzH6 class as needed.
  12. Test and debug the complete system.

Note that this assignment requires you to do considerably more engineering design than past assignment have. This means that the UML class diagram for this assignment is much more abstract than the class diagrams for past assignments.

5 Submission

You must submit (using Gradecope) a .pdf file containing one screen shot that shows the main window for the scores in bart.trn and one screen shot that shows the main window for the scores in marge.trn.

You must also submit (using Gradescope) a .zip file containing all of the code necessary to build your application, including the main class, packaged appropriately. (At this point in the semester, you should know what this means. If not, refer to the earlier assignments.) Gradescope will only be checking to ensure that your code complies with the course style guide. Hence, you may only submit to Gradescope five times. If you can't get your code to comply with the course style guide within five submissions, you will receive a grade of 0 on the assignment.

6 Grading

You will receive one of four grades on this assignment -- 100, 75, 50, or 0. You will receive a grade of 100 if your submission is essentially correct (i.e., a limited number of system tests do not cause any failures). You will receive a grade of 75 if you appear to have devoted significant effort to the assignment but your submission has small defects. You will receive a grade of 50 if you devoted a reasonable amount of effort to the assignment but your submission has major defects. You will receive a grade of 0 otherwise and/or if the code you submit to Gradescope code contains any style defects.

Gradescope will assign a maximum grade of 25 (based solely on style). Points will then be awarded manually based on the criteria discussed in the previous paragraph.

Copyright 2024