You are a software development in a software development company called “Academic Support Technologies” (AST) and your company is attempting to complete the prototype of a grading application that they purchased from another development firm. However, the original developer did not complete the entire application and just have a working program shell, where not all the operation and graphical user interfaces are complete. In addition, there is no analysis and design information provided—only the program shell.
Your Software Engineering Manager has tasked you to review the program and document the structure of the program by creating the Class/Object diagram of the existing application. Then once you have completed documenting the program structure, you are to complete the missing programming operations and graphical user interfaces.
All the project files and supporting project have been provided.
Description: Student Assignment Grading
The Student Grading application will keep track of one student’s assignment grade information for any number courses, and each course can be anywhere from 1 to 16 weeks long. For each week of the course, the assignments are (1) threaded discussion score, (2) quiz score, (3) lab assignment score, and an exam. Not all the week’s will have each of the assignment score recorded, and the final week of the course will have a final exam score only.
A student will be able to keep assignment scores for any number of courses, and each course will have the school name, the course number, the course title, and how many weeks there are in the course.
For a selected course, the application will allow the user to enter the scores, and once the scores are entered for the week the application will calculate the weekly total and the weekly average, along with the course running total score, running average, and letter grade to date (based on course syllabus grade breakdown).
The database will contain two tables (1) Courses and (2) Assignments, using the following table names and fields
The application will display a table that displays the following for each course that is recorded:
- Course Number
- Course Title
- Course Grade
While the application and database will be user name and password protected, it is outside the scope of this project to provide a complete, robust, and secure authentication component. So, for the purposes of this development, you will just store the user name and password comma separated value text file.
The program design shall adhere to the following design requirements:
- The program will be constructed using a 3-tier architecture (1) data, (2) business, and (3) presentation tier and each tier will only implement the operations appropriate for the tier.
- The graphical user interface will be constructed using a tab panel interface, with each tab containing only those operations related to the tab heading.
- The order of the tabs will be in logical sequence.
- The graphical user interface will contain a main menu bar, and there shall be a menu for each tab that mirrors the operations on the tab.
- Each menu item will have a logical name and short cut key assigned.
- Each “active” control (i.e. radio button, command button…) shall have a tooltip describing the operation the control provides.
- There shall be a logical, sequential tab order for the input controls on the form.
- All class members, both variables and methods, shall by default be made private.
- Access to any class/object data member shall only be done through getters and setters.
- Methods shall only be made public if it is necessary for other objects to call the methods.
- Private variables shall only be access through getters and setters.
- All setters will have validation logic to ensure the private variable is always in a stable state.
The program operations will adhere to the following requirements:
- The maximum points of all the assignments is 1000 points.
- Each input score item shall be validated against a lower and upper bound.
- The lower and upper bounds of each of the assignments shall be stored in the database or a file.
- The user must authenticate into the program when it starts.
- The user name and password shall be stored in a file (which simulates an authentication component).
- The running total, running average, and current grade shall only include scores that have been recorded.
- The threaded discussion score shall be calculated by the user being able to select whether a student attended, or posted a note on a day of the week, for each of the 7 weeks.
- If a student attends at least three days, the student will receive full credit for the weekly threaded discussion score.
- The automatically assigned threaded discussion score, can be overridden to a lower, or higher score, but within the limits of the minimum and maximum scores.
- The weekly total, weekly average, running total, and running average shall be updated any time one of the dependent fields is updated.
- Database operations shall be secure and be written to minimize SQL injection or other transport type attacks.
Analysis and Design
In Week 4 you will create an analysis and design document that consists of:
- Document the current “as is” structure of the program.
- Create a class/Object Diagram (this can be done in any drawing tool, or even hand drawn and take a picture).
The final program shall:
- Go through the TODO action items in the course shell project starting in the business layer, then go to the data layer, and then the presentation.
- If you correctly make all the TODO changes the program will work as expected.
- Contain all files, and referenced projects/jar files