Project #3

CMSC 132

Due Date: Friday Oct 14, 6:00 pm

Object-Oriented Programming II

Type of Homework: Closed

Fall 2005


Objective

This homework has several objectives.  Those objectives are:

This homework is considered a closed homework.  Make sure you read the Open/Closed policy before continuing working on this project.

Overview

For this project you will complete the following tasks:

Your project will be graded as follows:

GUI                                                            50 %
Java Construct Requirements                 10 %

Student Tests Implementation                 25 %

Provided JUnit tests                                   5 %

Style                                                          10 %

For this project:

Specifications

Cruise Class Modifications

You must modify your Cruise class so that is now implements the Java interface CruiseInterface.  This interface is available in the cruise package and it includes all the methods you implemented for project #2 and two additional methods named loadPassengers and generateReport. 

You will notice that the cruise methods in the CruiseInterface have been annotated with @NonNull, @CheckForNull or @CheckReturnValue.  These are annotations that allow the submit server findbugs tool to determine possible problems in your code.  You don't need to understand annotations in order to complete this project, however you should check the findbugs report (available through the submit server) for any possible errors findbugs might be detecting (more details about this will be provided in lecture).

Graphical User Interface (GUI)

You must implement your GUI in the cruiseGui package.  Make sure you implement a class named CruiseGui with a main that allow us to run your system.  Notice that you don't need to implement a fancy and beautiful interface in order to get full credit for the GUI component of this project.  You will receive full credit as long as you satisfy the following requirements:

Java Construct Requirements

                                       throw new IllegalArgumentException("Your message here");

JUnit Tests Implementation

You must provide tests in the file StudentTests.java present in the tests package.  These tests must try to achieve the maximum test coverage possible as described in lecture.  Keep in mind that these tests only tests the model component of the cruise application and not the GUI. 

Provided JUnit Tests

We have provided a couple of JUnit tests that verify the new features of the cruise application.  The JUnit tests include the Project#2 public and release tests.  Make sure your implementation satisfies these tests. 

Style Requirements

Honor Section Requirements

In addition to the above requirements you must satisfy the following requirement:

Submission

Submit your project using the submit project option associated with Eclipse. 

Academic Integrity

Please make sure you read the academic integrity section of the syllabus so you understand what is permissible in our programming projects.  We want to remind you that we check your project against other students' projects and any case of academic dishonesty will be referred to the University's Office of Judicial Program