Assessment details for All students Assessment item 1
Due Date: Thursday of Week 6 (20th April) 11.45 pm AEST Weighing: 15%
• Analyse, develop, and implement software solutions
• Choose and compare appropriate data structures in program design
• Apply classes, inheritance, polymorphism, and exception handling
• Test software implementations to ensure correctness and maintainability
In this assignment, you are required to write a Java Application that uses an interactive Graphical User Interface (GUI) based on the JFrame class using SWING GUI components. You will also be designing and implementing the software solution using appropriate data structures and application of classes, inheritance, polymorphism, and exception handling. The case study for developing a solution is given below.
Year 11 and 12 students study subjects generally known as Authority subjects or Authority registered subjects. There are many assessments for these subjects in different formats and the grade of these assessments are summative contributing to a student’s final result. Entrance to further studies are based on this result and therefore, grades of assessments are critically monitored by students, and their parents. Your task is to develop a Java Application for the parents and their year 11/12 kids to monitor academic performance easily. The java application should allow the user to enter student details, and assessments for each subject. Once the assessment results are available the user should be able to set the grade for the assessment including explanatory notes. User should be able to view the subjects enrolled, all assessments for a chosen subject, and all marked assignments with their grades.
A. Graphical User Interface
The application should contain a GUI as shown below. The GUI components should consist of the following panels.
1. A top panel that contains two (2) Text Fields, three Combo Boxes (drop down list), five Labels.
2. A middle panel that contains a Text area to display the Assessment list for a subject or assessment details for a chosen assessment.
3. A bottom panel that contains seven Buttons which are “Create Student”, “Load Assessments”, “Display Assessments”, “Set Grade”, “Display Grade” and “Quit”.
The functions of the seven buttons are described below.
1. Create Student
Initially the ‘Create Student’ button remains disabled. The user enters the Student Name and Year Level using the fields on the GUI. This creates a student object. Once the student object is created three core subjects of English, Mathematics B, and Biology, and the chosen elective subjects of, Business and Communication Technologies, and Religion and Ethics are added to the student object. This is done to simplify the process of going through adding each subject.
Figure 1 Display after entering Student Name and year Level
Figure 2 Display after Create Student
2. Load Assessments
Initially the ‘Load Assessments’ Button remains disabled as shown in Figure 1. This will be enabled after the ‘Create Student’ button is clicked creating a student object. The ‘Load Assessments’ Button can be used to read the data file which contains the Assessment List for all the subjects. After loading the file, the loaded Assessment details are added to the corresponding subjects. The first field in each assessment item in the file is the subject name and this should be used to correctly add the assessments to the corresponding subjects. The ‘Load Assessments’ Button should also populate the Combo Boxes for Subjects, Assessments, and Achievements with corresponding set of values.
Table 1 Example Assessment Details
Assessment Id 11.1
type Multimedia presentation
topic interior monologue 3-4 mins Australian Identity
Due date Wed 9 - Wed 16 March 2017
Note: Use the given data file named COIT20256Ass1Data.csv available in the Unit website and it contains the set of data required.
Figure 3: Assessment Loaded
3. Display Assessments
This should display all the assessment details of a chosen subject in the Text Area as shown in Figure 4. The last value ‘false’ indicates the assessment item is not yet graded. You can use ‘not graded’ instead of false which may be more meaningful.
Figure 4: Display Assessment
4. Set Grade
Clicking on the “Set Grade” button allows the user to enter the Achievements for a chosen Assessment Item. The grading contains levels of achievements, knowledge, and skill. These values are given in the following Table 2. Once the user selects the achievements level using the Combo Box, corresponding levels of knowledge and skill should be added.
Table 2. Grading Details
Degree of achievement: Degree of knowledge and understanding: Degree of skill and use of skill:
Very high thorough understanding uses a high level of skill in both familiar and new situations
clear understanding uses a high level of skill in familiar situations, and is beginning to use skills in new situations
uses skills in situations familiar to them
Developing understands aspects of
uses varying levels of skill in situations familiar to them
Emerging basic understanding beginning to use skills in familiar situations
5. Display Grade
This can be sued to display the grades of various assessments set already in the TextArea as shown in Figure 5.
Figure 5: Display Grade
6. Clear Display
User clicks this button to clear the TextArea, TextFields and set the ComboBoxes to the default value.
This should allow the user to quit the application.
B. Data Structures
The relationships between classes is shown in Figure 6.
You can use the classes given below as a guideline for your design.
1. Student Class
This is to store the student details of name, year level, and subjects enrolled. A student class can have an ArrayList of Subjects. Use String data type for name and year level.
2. Subject class
The purpose of this class is to store the subject name, and the list of Assessments for that subject. Use String data type for subject name, and an ArrayList for Assessments. 3. Assessment
Include appropriate fields to store:
Assessment Id, Assessment type, topic, format, dueDate and graded which takes a Boolean value to indicate it is graded or not;
4. Marked Assessment
This class extends the Assessment class. This class should have a member fields to store the grading values once the assessment is graded using the Set Grade Button. These values are given in Table 2.
5. GUI Components class
a) This class should have the GUI components listed above.
b) It should have the methods to set up the GUI components and the event handling methods.
c) This class should have a method to read data from the file and load data structures appropriately.
d) This also contains the main method.
8. Software Tools for Building the Application
You can build your application using the TextPad Editor or NetBeans. It is highly recommended that you create the GUI components using code rather than 'designer' and 'click and drag' of the NetBeans. This creates code which is not maintainable. Remember this is a good prototyping tool, but not recommended for coding.
Note: Commence with one class at a time, test it and then incrementally add the next.
You should submit one zip file containing the following files using the Moodle online submission system. (Note: the file names/class names could be changed to meaningful names.)
• Student.java – Source code for the Student class as given above
• Subject.java – Source code for the Subject class
• Assessment.java – Source code for the Assessment class
• StudyMonitorInterface.java – Source code for the GUI components, other required methods as outlined above and the main method.
• Report.docx – File containing UML class diagrams for the classes, Student, Subject, Assessment, and MarkedAssessment. Include a test plan providing test cases, test data, expected result and description of actual result. Provide few screen shots to demonstrate evidence of your testing
Assessment Item 1 Marking criteria
S.No Total Marks - 15 Marks
Allocated Marks Scored
1 Graphical User Interface Presentation (Use appropriate sized components and alignments) 1.5
2 Design and use of appropriate data structures 1
3 Designing classes and using objects, methods, and inheritance 1.5
4 Use of exception handling (use appropriate exception classes and informative messages) 1
5 Create Student Button function 1
6 Load Assessment Button function 2
Display Assessment Button function 1.5
Set Grade Button function 1.5
Display Grade Button function 1
7 “Clear Display” and “Exit” buttons functions 1
8 Good coding practices (Indentation, Comments, Naming Conventions, Readability) 1
9 Well presented report with student details, UML class diagrams, test plan, and evidence of testing 1
1. If your program doesn’t compile or run, partial marks will be allocated by inspection of the source code.
2. Please clarify any doubts you have by one of the means of discussing with your tutor, posting a query in the Q& A forum, or discussing with your colleagues.
3. Please do not share your source code files or report with your colleagues which may lead to plagiarism.
4. Commence your assignment work early and show your progress to your tutor from Week 4 onwards.