Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

CTEC2710 OO Design and Development: JavaFX Module Chooser GUI Coursework Brief, Assignments of Object Oriented Programming

A comprehensive coursework brief for the ctec2710 oo design and development module, focusing on the development of a javafx module chooser gui application. It outlines the objectives, specifications, and assessment criteria for the assignment, guiding students through the design and implementation of a user-friendly interface for selecting modules based on their chosen course of study. Detailed instructions on building the application, utilizing mvc architecture, and implementing various functionalities such as profile creation, module selection, and data storage.

Typology: Assignments

2023/2024

Uploaded on 11/17/2024

kartik-kirar
kartik-kirar 🇬🇧

1 document

1 / 16

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CTEC2710 OO Design and Development JavaFX Module Chooser GUI
1
la/2024
Faculty of Computing, Engineering & Media (CEM)
Coursework Brief 2024/25
Module name:
OO Design and Development
Module code:
CTEC2710
Title of the Assignment:
JavaFX Module Chooser GUI
This coursework item is: (delete as appropriate)
Summative
This summative coursework will be marked anonymously
The learning outcomes that are assessed by this coursework are:
3. Design and develop applications with emphasis on quality, maintainability, correctness and
robustness, enhancing their trustworthiness.
4. Evaluate and make effective use of the Software Development Kit Application Programming
Interfaces
This coursework is: (delete as appropriate)
Individual
This coursework constitutes 50% to the overall module mark.
Date Set:
Friday 1st November 2024
Date & Time Due:
Monday 18th November 2024 at midday 12:00 (noon)
In accordance with the University Assessment and Feedback Policy, your marked
coursework and feedback will be available to you on: 9/12/2024
You should normally receive feedback on your coursework no later than 15 University working days
after the formal hand-in date, provided that you have met the submission deadline
If for any reason this is not forthcoming by the due date your module leader will let you know why and
when it can be expected. The Associate Professor Student Experience
(CEMstudentexperience@dmu.ac.uk) should be informed of any issues relating to the return of marked
coursework and feedback.
When completed you are required to submit your coursework to:
1. LearningZone VLE through a submission portal. See page 2 of the (following) attached
document for further detail.
Late submission of coursework policy:
Late submissions will be processed in accordance with current University regulations.
Please check the regulations carefully to determine what late submission period is allowed for
your programme.
Academic Offences and Bad Academic Practices:
Please ensure you read the section entitled “Academic Offences and Bad Academic Practice” in the
module handbook or the relevant sections in this BaseCamp link: Overview: Assessment and Good
Academic Practices
Tasks to be undertaken: See (following) attached document.
Deliverables to be submitted for assessment: See (following) attached document.
How the work will be marked: See (following) attached document.
Module leader/tutor name:
Luke Attwood
Contact details:
lattwood@dmu.ac.uk (GH6.71)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download CTEC2710 OO Design and Development: JavaFX Module Chooser GUI Coursework Brief and more Assignments Object Oriented Programming in PDF only on Docsity!

Faculty of Computing, Engineering & Media (CEM)

Coursework Brief 202 4 /2 5

Module name: OO Design and Development Module code: CTEC2 710 Title of the Assignment: JavaFX Module Chooser GUI This coursework item is: (delete as appropriate) Summative This summative coursework will be marked anonymously No The learning outcomes that are assessed by this coursework are:

  1. Design and develop applications with emphasis on quality, maintainability, correctness and robustness, enhancing their trustworthiness.
  2. Evaluate and make effective use of the Software Development Kit Application Programming Interfaces This coursework is: (delete as appropriate) Individual This coursework constitutes 50 % to the overall module mark. Date Set: Friday 1 st^ November 2024 Date & Time Due: Monday 18 th^ November 2024 at midday 12:00 (noon) In accordance with the University Assessment and Feedback Policy , your marked coursework and feedback will be available to you on: 9 / 12 / 2024 You should normally receive feedback on your coursework no later than 15 University working days after the formal hand-in date, provided that you have met the submission deadline If for any reason this is not forthcoming by the due date your module leader will let you know why and when it can be expected. The Associate Professor Student Experience (CEMstudentexperience@dmu.ac.uk) should be informed of any issues relating to the return of marked coursework and feedback. When completed you are required to submit your coursework to:
  3. LearningZone VLE through a submission portal. See page 2 of the (following) attached document for further detail. Late submission of coursework policy: Late submissions will be processed in accordance with current University regulations. Please check the regulations carefully to determine what late submission period is allowed for your programme. Academic Offences and Bad Academic Practices: Please ensure you read the section entitled “Academic Offences and Bad Academic Practice” in the module handbook or the relevant sections in this BaseCamp link: Overview: Assessment and Good Academic Practices Tasks to be undertaken: See (following) attached document. Deliverables to be submitted for assessment: See (following) attached document. How the work will be marked: See (following) attached document. Module leader/tutor name: Luke Attwood Contact details: lattwood@dmu.ac.uk (GH6.71)

JavaFX Module Chooser GUI

Objectives

The objective of this assessment is for you to demonstrate your ability to design and implement an OO system consisting of a set of Java classes, using advanced libraries within the Java SDK. In particular:

  1. To study and correctly make use of a prebuilt student profile data model.
  2. To build a suitable user interface using JavaFX libraries.
  3. To implement event handling procedures that provide a basis for an interactive and user-friendly system.
  4. To adhere to standard principles of the Model-View-Controller (MVC) design pattern and appropriately decompose classes through abstraction and encapsulation.

Submission

Submit your Eclipse project through the submission portal available on LearningZone. You should create a new folder called “CTEC 2710 Assignment”, copy your Eclipse project into this folder, ensuring all of the Java source files (and any other associated files) are in it. Then compress the folder into a .zip file, which you can submit through LearningZone.

Marking and Feedback

Your work will be marked using a predefined LearningZone VLE Rubric grid, which will display your level of achievement and feedback for each of the assessment criteria for this assignment ( shown later in this specification ). The categories within the rubric act as a guide and the 'closest fit' will be selected for each individual piece of work, ensuring the overall result is reflective of the DMU Undergraduate Mark Descriptors.

Important Note

Please do NOT be tempted to search the internet for an existing solution and then hand this in

  • e.g. if you run out of time. This is cheating – it is better to hand in what you have honestly achieved by yourself than try to get credit for someone else’s work and risk getting caught. Cheating is an academic offence. If you get stuck then please ask the module tutors for assistance and come to the labs – we will be providing help in the labs (but not actually doing it for you of course). Do NOT use anyone else’s material without referencing it – this is bad academic practice or plagiarism. These are considered as academic offences. Do NOT work jointly on a solution; do NOT give your solution to anyone else to “help them” and do NOT accept anyone else’s solution as “guidance”. Such practice could lead to an allegation of collusion which is an academic offence. All parties involved in collusion (the givers, the receivers, the collaborators) can be found guilty of an academic offence, irrespective of motive.

Guidance on building the application

You are advised to thoroughly read this guidance and to continually refer to it as a means of helping you design and implement the JavaFX Module Chooser GUI application. Please download ModuleChooser.zip and extract the Java Project, then import it into Eclipse. You will note that it contains a template structure for you to work from including logical packages. Application Loader In the main package you have been given an ApplicationLoader that simply instantiates the model (i.e. StudentProfile) and view (i.e. ModuleChooserRootPane), and passes these to the controller (i.e. ModuleChooserController). This should help you get started. You should clearly showcase the MVC design pattern throughout your implementation. You will be assessed on your ability to sensibly decouple these entities to make a maintainable and reusable solution. The Model You have been provided with the data model for this application - The model contains four classes – StudentProfile, Course, Module, and Name, and an enum Block.

  • A Student Profile encapsulates a student name, p number, email, submission date, a Course of study, and a set of selected Modules, along with a set of reserved Modules.
  • A Course has a name and a collection of all Modules available on that course.
  • A Module has a code, name, credit amount, is either mandatory or not, and has a block it runs in – either 1, 2 or 3/4.
  • A Name for a student is made up of a first name and a family name. The model classes purposely have no javadoc comments, as you are required to study the source code in order to understand how to use them as the data model for your MVC application. You will not be assessed on writing javadoc for this assignment either. For the vast majority of this assignment, you will not need to add any further code to the model and are advised to make use of existing methods wherever possible.

The View In the view package you have been given a root pane, from which you can build your user interface. The GUI is made up of four forms, which should be separated onto different tabs. You have been given the first of these forms (placed onto a tab), along with a menu bar. There are also some methods in these classes to help you get started. The overall GUI should include the following: Create Profile tab Displays a combo box, pre-populated with the two aforementioned second year computing courses, and five text fields for inputting a student P number, first and last name, email, and the submission date. There is also a create profile button. Select Modules tab Should display two list views for selected block 1 and block 2 modules (for the chosen course), and two further list views for unselected and selected block 3/ modules. The accumulated credits for the current module selection should be displayed. There should be add and remove buttons for block 3/4 modules, and an overall reset and submit button. Reserve Modules tab Should display the remaining unselected block 3/4 modules. A reserve module should be chosen (using unselected/selected list views). There should be add and remove buttons, as well as a confirm button. Overview Selection tab Should display an overview of the student’s details, selected modules and reserved module based on their submitted profile and module selection from the previous three tabs. The information should be clear and well-presented across three separate text areas. There should also be a save overview button. Your GUI also has a menu bar: The Menu Bar This Menu bar has two menus: File and Help. The File menu is made up of menu items: “Load Student Data”, “Save Student Data” and “Exit”. The Help menu is made up of a single menu item: “About”. Note : You are strongly advised to decompose the view by separating logical containers into their own top-level classes, enhancing reusability and abstraction. You will also need to provide suitable methods that allow relevant data to be accessed and modified within the view, adhering to principles of encapsulation and forming a clean public interface. You can see the Sample GUI screenshots section at the end of this document to assist in visualising how the GUI should generally look and behave, although you may use this as a guide and be creative where applicable.

  • Load Student Data Handler - restore the student profile (data model) from a file using an ObjectInputStream. You should also consider how best to bring the GUI (view) back to its previous state (at the point of saving).
  • About Handler - trigger a popup window containing basic details of the application.
  • Exit Handler - close the current window and terminate the application. Note : Whilst you can use the hardcoded module data provided in the controller, a more advanced requirement of the application, would be to use a Scanner to dynamically load the course and module data into the application from a text file. This would allow for the input data to be more easily evolved in the future. Please turn over...

Assessment Criteria

The following criteria show how you will be assessed:

  • User Interface ( 20 %): The user interface appropriately displays and captures all relevant data with a suitable layout.
  • Resizing behaviour (10%): There has been consideration of resizing the application using appropriate layout policies. The list views displaying modules and the overview of the selection should all maximize available space both horizontally and vertically.
  • Event Handling ( 20 %): The user interface is responsive to interaction and can be used to achieve all associated tasks.
  • Fitness for purpose ( 1 0%): There is appropriate validation throughout the application to ensure operations behave correctly, and features cannot be misused.
  • MVC Design & View Decomposition ( 30 %): The Model-View-Controller (MVC) design pattern has been applied to separate concerns and reduce coupling. The view has had logical containers separated into their own top-level classes, with suitable public interfaces. Abstraction has been applied throughout the design to reduce duplicate functionality and enhance maintainability.
  • Saving & Loading (10%): An overview of the student's details and their selected and reserved modules can be written to a file in text form. The current student profile can be saved to a file in binary form and seamlessly restored at a later time. Courses and associated modules can be dynamically pre-loaded into the application from a text file. Important note : You must develop the GUI using JavaFX (and not any other Java framework such as Swing or AWT). Furthermore, you cannot use a GUI builder of any kind. Failure to meet either of these two requirements will result in an automatic mark of zero for this assignment.

Sample GUI screenshots

These screenshots are provided to help you visualise the core details that the user interface should capture and display. This prototype design is provided as a guide and you do not need to try and replicate the exact layout shown - you may be creative where applicable within the context of the requirements outlined within this specification. Please turn over to view screenshots...

Please turn over…

Using the GUI A profile is created by selecting a course and inputting student details. The details should be stored in the student profile data model. The select modules form should then be loaded. Depending on whether Software Engineering or Computer Science is chosen, associated modules will dynamically populate the select modules form, with the credit amount shown based on the mandatory modules for a given course. You should utilise ListView controls to capture and display modules on this form.

The reserve modules form should display remaining unselected modules. The add/remove buttons allow a module to be reserved Once a reserve module has been chosen, the confirm button should store the module in the student profile data model. It should then load the overview selection form. An overview of the user’s details, along with their selected and reserved modules should be displayed

dynamically using three text areas to maximise space. There is also the ability to save this textual information to a file. The menu bar The File menu will allow the data model to be saved to a file in binary form, and restored at a later time, which would load the user interface back to a sensible previous state. Resizing the GUI You may impose a sensible minimum size for the stage, but it should be possible to resize it through expansion both horizontally and vertically - there should be no maximum size. Layout policies should be used to maximize the available space in a sensible fashion. In particular the list views that display modules on the second and third forms should use any spare (horizontal and/or vertical) available space, allowing more information to be seen at a given time. The same applies to the overview shown on the fourth form with respect to the text areas. On the fourth form, the selected and reserved text areas should prioritise space, allowing more modules to be viewed. The screenshots below provide examples of how the application may resize to maximize any available space in accordance with the aforementioned requirements.