Monday 31 August 2020

F1 Championship

UK assignment helper



Reassessment/Deferred Assignment: F1 Championship

About this assessment

This reassessment/deferred assignment 100% towards the total module mark (capped as it is a resit).

It is an individual piece of work.


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 and a client program. In particular:

1. To design and implement classes with suitable fields, constructors, accessor methods, and

modifier methods.

2. To conform to the standard conventions of Java.

3. To implement classes that are associated by inheritance, delegation, composition and

aggregation.

4. To write a client application that uses your classes to show that they function correctly.

Submission

When you have completed the assignment, submit one .zip Archive File called imat5101F1.zip

via Blackboard consisting of your (Eclipse) project folder and associated source code.

Late Submission

Late submissions will be processed in accordance with current University regulations which state:

“the time period during which a student may submit a piece of work late without authorisation and have the

work capped at 50% if passed is 14 calendar days. Work submitted unauthorised more than 14 calendar

days after the original submission date will receive a mark of 0%. These regulations apply to a student’s

first attempt at coursework. Work submitted late without authorisation which constitutes reassessment of a

previously failed piece of coursework will always receive a mark of 0%.”

Academic Offences and Bad Academic Practices

These include plagiarism, cheating, collusion, copying work and reuse of your own work, poor

referencing or the passing off of somebody else's ideas as your own. If you are in any doubt about

what constitutes an academic offence or bad academic practice you must check with your tutor.

Further information is available at:

http://www.dmu.ac.uk/dmu-students/the-student-gateway/academic-support-office/academicoffences.

aspx and http://www.dmu.ac.uk/dmu-students/the-student-gateway/academic-supportoffice/

bad-academic-practice.aspx

IMAT5101 OO Programming

la/2018 Page 2 of 5

Your Scenario: Formula 1 Championship System

Foreword: You are required to build a Java application that provides a basis for storing and

processing details related to a Formula 1 Championship. Although there may be similarities to a real

Formula 1 Championship, and therefore it is logical that you may draw inspiration from this to

assist your understanding, this scenario is intended to be both hypothetical and fictional. To this

extent, this specification should be strictly followed and a submission that does not resemble the

provided specification will not receive any credit, where it does not meet the intended design or

programming logic.

The Scenario: A Formula 1 Championship comprises of several teams. Each team has two drivers

and many mechanics. Drivers and mechanics are both team members and therefore have a common

set of details (name and address) about them stored, as well as their annual salary.

A mechanic has a particular role within the team, e.g. basic engineer, data strategist, driver support,

etc. They also are either based back at the factory or travel to races. A driver has a number of points,

based upon their race results. This said, races and results are beyond the scope of the current system

release and therefore hypothetical points may be added to a driver at any time.

As well as having two drivers and a list of mechanics on their records, a team will also have a

number of points, based upon the sum of the points of their two drivers, e.g. driver 1 has 20 points

and driver 2 has 76 points then the team has 96 points. A team should be able to calculate their

points at any time. The size of a team is based on the number of mechanics, as well as their 2

drivers.

A championship should be ordered based on teams and the points they hold, with the team in 1st

position being the one that holds the most points.

Technical Information: The UML class diagram (overleaf) specifies all required classes, interfaces

and their relationships. It also lists all fields, constructors and methods that you are required to

implement. You should strictly follow this specification.

Note that classes Championship and Team both implement the Iterable interface, whilst class Team

implements the Comparable interface. The compareTo(…) method in the Team class should

compare two teams based on their points – this will assist with sorting teams in the Championship

class. It is important to ensure that both teams’ points are calculated prior to comparing them. The

equals(…) methods you are required to override in the TeamMember and Details classes, should

compare each field within those respective classes. A toString() method should be present in each

class and output the current value stored in each of the fields.

Use Cases: You should have a test class, with a main method, that should complete the following

use cases for the “Formula 1 Championship System” to show it works:

1. Create 5 teams, each populated with 2 drivers and a minimum of 4 mechanics.

2. Add these 5 teams to a championship, calculate each team’s points and order them on this.

3. Output in order the championship standings including team name, and points, as well as the

full name of each driver within the team and their respective points.

4. Calculate the total combined salary for all mechanics and drivers belonging to the current

championship leading team, and output this figure, along with the number of team members.

IMAT5101 OO Programming

la/2018 Page 3 of 5





2

* *

IMAT5101 OO Programming

la/2018 Page 4 of 5

IMAT5101 Assignment 3 Assessment Indicators

Grade indicators

55%: Classes without dependencies have been implemented meeting standard basic conventions.

Test programs exist for these classes. At least one Inheritance, one Composition and one

Aggregation association have each been attempted. The data model has been populated (probably

by hard-coding). At least one use-case has been attempted. Basic tasks have been carried out

independently during the lab test.

65%: As for 55% above. Most classes in the design have been implemented to meet standard

conventions and documentation standards. Test program has identified the limitations of a class.

The data model has been suitably populated. Classes implement appropriate interfaces (e.g.

Comparable, Iterable). Use-cases have been simulated with moderate success. Most tasks have been

completed in the lab test and successfully demonstrate the essential functionality of the system.

75%+: As for 65% above. Additionally: a coherent data model has been designed and

implemented, with appropriate levels of abstraction. The integrity of attributes has been a

consideration and mostly maintained. All use-cases have been implemented with high levels of

success. Documentation is at the appropriate level to support maintainable code. All the lab test

activities have been completed successfully and demonstrate the correctness and quality of the

system.

Please Turn Over for a Checklist of Assessment Indicators.

IMAT5101 OO Programming

la/2018 Page 5 of 5

Checklist

These indicators will be used as a basis for the assessment mark and will form your feedback.

(67% Model) Class documentation, design and implementation.

 Javadoc class headers, method and constructor description.

 Javadoc @param and @return tag description.

 Details class fields, constructors and standard methods.

 Details class equals method.

 TeamMember class fields, constructors and standard methods.

 TeamMember class equals method.

 Driver class fields, constructors and standard methods.

 Mechanic class fields, constructors and standard methods.

 Team class fields and constructors and standard methods.

 Team class delegated aggregate methods.

 Team class compareTo and getPoints methods.

 Iterable implemented by Team and Championship classes.

 Championship class fields, constructors and standard methods.

 Championship class delegated aggregate methods.

 Championship class sortTeamsOnPoints method.

(30% Testing) Use Case success.

 Use Case 1 has been achieved appropriately.

 Use Case 2 has been achieved appropriately.

 Use Case 3 has been achieved appropriately.

 Use Case 4 has been achieved appropriately.

 Overall quality of test data and output.