Posted: November 14th, 2022


1.1 Assessment items
Aligned subject learning outcomes • design and implement a large and/or complex software program from supplied specifications
• continue the development of problem-solving skills and approaches that effectively support programming
Group or individual Individual assessment task
Weighting 30%
Due date Due 5pm, 13th Jan (Week 9)
The Australian Bureau of Meteorology (BOM) provides a range of climate information about different parts of Australia. In particular, the Climate Data Online service provides access to rainfall data for many different Australian cities and suburbs. For example, Copperlode Dam station has been recording rainfall data since the year 2000.
Version-1 of your assignment (let’s call it the alpha-release of your software!): Your coding challenge is to create an IntelliJ IDEA Java project that contains the following Java classes designed and coded by you:
1. RainfallAnalyser: (use static Java methods only)
a. Read BOM rainfall data for 10+ years from csv text files (will be provided to you). NOTE!!! You are encouraged to search for (and use) java libraries to help you with any step in this assignment. For example, a class or package to read csv files in java.
b. Calculate monthly rainfall totals along with minimum daily and maximum daily rainfall during each month, across the 10+ years’ worth of data
c. Save the calculated information into a new text file
2. RainfallVisualiser: (add draw code to a JavaFX Application class that will be provided)
a. Read the calculated information from those new text files generated by RainfallAnalyser
b. Display a graphical chart using JavaFX shapes that effectively presents the calculated information
Your RainfallAnalyser class will be expected to handle situations such as corrupted text files and some other related IO issues. This could be done with JUnit (optional!). There is no need to provide JUnit tests for your RainfallVisualiser class.
Version-2 of your assignment (let’s call it the beta-release of your software!): Collect your code into a package (this will be your software API). Your rainfall package is expected to contain a few related classes for the purpose of processing multiple rainfall data files. For example, your new API should be able to read multiple data files for various locations such as Copperlode Dam station (2000-2020), Kuranda Railway station (1898-2020), and Tinaroo Falls station (1954-2020). You may base the package on the code you develop for RainfallAnalyser – but it is likely that you will need to use new coding structures! The precise design of the classes in rainfall is up to you; however, it must include welldesigned and implemented Java classes that: Your rainfall package should include a few related classes for processing multiple rainfall data files. For example, your new API should be able to read multiple data files for different locations, such as the Copperlode Dam station (2000-2020), the Kuranda Railway station (1898-2020), and the Tinaroo Falls station (1954-2020). You can base the package on the code you wrote for RainfallAnalyzer, but you will almost certainly need to use new coding structures! It is up to you to design the classes in rainfall; however, it must include well-designed and implemented Java classes that:
• Load rainfall data from the rainfall data files into memory (one class is probably enough);
• Process and hold that data in memory using appropriate OOP “helper” classes (perhaps 2 classes are enough?). You are expected to apply the principles of “code correctness” and “code robustness” to ensure the stability of your rainfall package. Hence, your rainfall package is expected to include a small number of custom exception classes for when some error causes an API class to fail for some reason that directly relates to dealing with the rainfall data.
The beta version of RainfallVisualiser is expected to use various aspects of JavaFX to create an interactive user interface for selecting which rainfall data files to use and for presenting graphical and textual information about the rainfall data found in those files. For example, the user will be able to click on the graphical chart and get specific information about rainfall during a particular month within the dataset. The specific GUI design details necessary to complete this revised program will be released during semester.
Submit your work using the Assignment submission link within the CP2406 LearnJCU site for this subject. Your submission must include:
• Report: pdf or word document showing screen shots of your program running (free formatted document with your student id and name). One screenshot for each completed requirement item accompanied by short description. Use this document to illustrate/demonstrate all testing (manual, or optionally automated via junit) you have implemented and executed for your software.
• Optional video (screencast) of your software running as per requirements and matching your report. NOTE! If you do not submit the video, you must demonstrate that your running software matches your submitted report during practicals or online consultations.
• A zip of your IntelliJ project folder.
This task assesses your ability to apply coding skills such as the use of:
• Basic Java classes and objects;
• Java variables and primitive types;
• JavaFX shape drawing code used inside JavaFX program (template starter code will be provided); • Java control flow structures;
• Basic Java file IO and exception handling; and
• Basic algorithmic development: top-down design and incremental development.
• Object-oriented design and programming – encapsulation, inheritance, polymorphism, interfaces;
• JavaFX – basic layouts, various UI controls, event handling;
• Correctness and robustness – pre/post conditions, assertions, annotations, custom exceptions;
• Data structures – perhaps arrays, or linked lists, or stacks, or queues; • Instance methods with appropriate parameters and return types; and
• Classes with appropriate access control.
Task (max
100 marks) Exemplary 9-10 Good
7-8 Satisfactory 5-6 Limite d 2-4 Very Limited
Alpha release completeness (worth 3 times. max
30) Outstanding progress is made on the code implementation. All aspects of the required classes are successfully implemented and fulfil the required program behaviours. Exhibits aspects of
exempla ry (left) and
satisfact ory
(right) Reasonable progress is made. Some classes have been implemented and fulfil some of the required program behaviours Exhibits aspects of
ory (left) and very limited
(right) Not enough progress is made.
Beta release completeness (worth 3 times. max
30) See above See above Not enough progress is made.
Code testing (max 10) Based on your submitted report and matching video (or in-class demonstration). Complete manual or automated testing coverage of your software. Good testing coverage. Not enough tests.
readability (max 10) Java coding standards are very consistently followed throughout the Java codebase. This includes Java naming conventions and descriptive comments. Java coding standards are mostly followed except in some parts of the Java codebase. Too much of the codebase does not following Java coding standards.
Coding practices (worth double, max
20) The coding practices covered in the first part of the subject are utilised very effectively. The choice and construction of Java variables, methods, control flow and file handling are outstanding. Coding practices are utilised, however there are some exceptions. The choice and construction of Java variables, methods, control flow and file handling are reasonable. Coding practices are not utilised well enough.

Order for this Paper or Similar Assignment Writing Help

Fill a form in 3 easy steps - less than 5 mins.

Why choose us

You Want Best Quality and That’s our Focus

Top Essay Writers

We carefully choose the most exceptional writers to become part of our team, each with specialized knowledge in particular subject areas and a background in academic writing.

Affordable Prices

Our priority is to provide you with the most talented writers at an affordable cost. We are proud to offer the lowest possible pricing without compromising the quality of our services. Our costs are fair and competitive in comparison to other writing services in the industry.

100% Plagiarism-Free

The service guarantees that all our products are 100% original and plagiarism-free. To ensure this, we thoroughly scan every final draft using advanced plagiarism detection software before releasing it to be delivered to our valued customers. You can trust us to provide you with authentic and high-quality content.

How it works

When you decide to place an order with Dissertation App, here is what happens:

Complete the Order Form

You will complete our order form, filling in all of the fields and giving us as much detail as possible.

Assignment of Writer

We analyze your order and match it with a writer who has the unique qualifications to complete it, and he begins from scratch.

Order in Production and Delivered

You and your writer communicate directly during the process, and, once you receive the final draft, you either approve it or ask for revisions.

Giving us Feedback (and other options)

We want to know how your experience went. You can read other clients’ testimonials too. And among many options, you can choose a favorite writer.