Sie sind auf Seite 1von 4

Orangewich Cabs

This is an INDIVIDUAL coursework.


Orangewich Cabs is a small minicab company operating with only 10 cars. The company also
employs four dispatchers. The function of the dispatcher is to record the journeys and the fares. The
company needs to record this information for legal reasons and in order to calculate the percentage
that the drivers pay. This percentage is based on 20% of the fare which is paid for the work the
company provides to the drivers. The dispatcher needs to record:

The start time of the journey

The pick up point

The destination

The drivers ID

Name of the passenger, if available

The fare

If the job is an account job, the name of the account

If a telephone number is needed it is recorded

Currently the company stores the data using MS Excel, see below diagram. The draw backs of
using Excel limit how the data can be analysed.

The company is looking for a software solution that will allow the company to store this data and to
allow querying of that data. Your function is to provide a software solution using Java and the Java
Derby database.
You are asked to design and implement an application with a graphical user interface that will allow
the user to input the journey data. Before the beginning of the journey the dispatchers enters at least
the first four bullet points (see above). At some point, when the journey has ended, the fare of the
journey is entered. Usually before the fare is entered, other intervening jobs have been added to the
system.

You should approach this coursework by designing and implementing a stand-alone version using
Java. Using an object-oriented approach organize your program in accordance with a UML class
diagram.
This work should be carried out in stages as given below.

Stage 1 Design a UML Class Diagram - 10% Inclusive of Report


Design a UML class diagram for your programme. Ensure that you read the stages below before
designing the UML class diagram.

Stage 2 User Interface 25% Inclusive of Report


Design an intuitive GUI that allows the dispatcher to
enter the journey data into the system. The
dispatcher should be able to see a listing of all the
days journeys -10%.
Input fields should have data validation 5%.
The GUI should be able to show the dispatcher the data
shown in the picture on the right - 10%.

Stage 3 Database Implementation - 10% Inclusive of Report


Using JavaDB (Derby):
Details of the journeys are to be stored in a suitably designed database, which you should design
and populate with data yourself. You should have data for at least 20 journeys and four drivers.

Stage 4 SQL Query Window - 10% Inclusive of Report


An admin window should allow the user to enter SQL queries (see sample code on Moodle). The
results should be appropriately formatted.

Stage 5 Innovations - 30% Inclusive of Report


This program may be improved in several ways:
a) The use of a JTable for input and/or output (see sample code on Moodle) 9%.
b) There should be an option that allows the user to save the results from the queries of Stage 4 as
a CSV file 4%
c) The user enters a start and end date and all the relevant information is shown for:

All the journeys, and can be saved as a CSV file 4%

Using an option to add an individual driver, shows all the work done by that driver
and the percentage owed by the driver, and can be saved as a CSV file 4%.

An account customers journeys, and the data can be saved as a CSV file 4%

d) Any other enhancements 5%.


Depending on the difficulty of these enhancements, and the quality of your design, implementation
and documentation, a maximum mark of 30% is possible.

Stage 6 Comprehensive Testing- 15% Inclusive of Report


Design a comprehensive white box testing plan. Discuss your plan explaining why/how you chose
your tests. Discuss the results of your testing, pointing out any deficiencies/strengths of your
programme.

DESIGN
Correctly drawn class UML diagram
UML diagram that fully depicts the code structure.
CODE
Appropriate use of classes
Appropriate use of methods
Clear and comprehensive commenting
Easy to modify (e.g. via instance variables)
Correct algorithms
Made good use of appropriate features of the JAVA language
Good code layout
Reliability of code (error handling)
FILE I/O
Writes to a database
Query the database
GUI

All GUI elements working


Appropriate use of GUI elements
How meaningful are any messages and screen prompts?
Intuitive design
Data validation
Output formatted
Graphic display of output

TESTING
Evidence of comprehensive white box testing, ideally using JUnit
Discussion of the testing strategy
Discussion of the testing results

A description of how you carried out unit testing.

REPORT
Minimum 1200 words.
Discussion justifying the design of your application.
Discussion of any bugs and/or weaknesses in your program, if you don't think there are any
then say so. You should consider uncaught exceptions to be a weakness.
Discussion of strong points or novel features of your application.
A critical discussion and evaluation of your learning experiences, reflection.
Layout, formatting and structure of report.
The uploaded report should contain evidence of all completed stages, which should include:

Design for the GUI

A description of how you designed and developed the final code

UML diagrams as appropriate

Suitable screen shots (maximum five) of the program in operation

Evidence of testing as detailed in the Testing section of the lecture, ideally making use of
JUnit

Details of any faults and failures

Conclusions

This is to be uploaded BEFORE THE COURSEWORK DEADLINE.

Assessment Criteria
Marks are awarded for:
The functionality (based on the requirements given above).
Usability. Is your system pleasant and easy to use? Is it obvious to the user what to do?
Are all messages clear and unambiguous? Is the input data validated? Is the output
appropriately formatted?
Reliability. For example if your system crashes or throws uncaught exceptions, you will lose
marks.
Use of appropriate JAVA facilities - both language features and classes from the API.
Quality of the JAVA code. For example: inclusion of meaningful comments, use of the
sensible naming standards for variables, classes and methods and code layout. Is the code
well-structured or an unstructured tangle? Is the code monolithic or is it sensibly partitioned
into separate classes and methods? Have good OO principles been applied?
Quality of the design documentation. Is the design documentation clear, concise and
precise? Have you made proper user of the UML diagramming techniques where required?
Testing. Have you included evidence of appropriate unit testing?
Completeness of the report.
Reflection / learning experience.

Das könnte Ihnen auch gefallen