### Calculate Price

Get a 10 % discount on an order above \$ 100
Use the following coupon code :
Whizz15

# Software Solutions in Data Storage

### Orangewich Cabs

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 pickup point
• The destination
• The driverâ€™s 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.

## 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

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:

1. The use of a JTable for input and/or output (see sample code on Moodle) â€“ 9%.
2. There should be an option that allows the user to save the results from the queries of Stage 4 as a CSV file â€“4%
3. 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 customerâ€™s journeys, and the data can be saved as a CSV file â€“ 4%
4. 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.

Failure to demonstrate your interim deliverable will be in breach of the coursework and may result in losing marks or failure of the coursework.

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

Â

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.
Get a 10 % discount on an order above \$ 100
Use the following coupon code :
Whizz15

Category: Sample Questions