You are required to use an object-oriented design for the following specified system, and implement the system using Java Standard Edition 6 or later.
You are required to design and develop a single-user, standalone software system to maintain a simple directory of insurance companies for an independent insurance broker. A database file and Java interface specification are provided. The database file is a flat, delimited text file with one record per line. The text database file is named insurance.db. The Java interface specifies the strict ‘data access’ protocol that your design must adhere to. This is provided by the Java source file DAO.java.
Your task is to design and develop a software system with at least the following two tiers:
You are expected to use Java packaging to partition your code according to the number of tiers in your system.
The data file format is one record per line, with each line containing the following six data fields:
The structure of the provided text database must not be altered. This means that any other data format, such as binary files, SQL/JDBC, XML or serialised objects are not permissible. Failure to adhere to the above instructions will result in an automatic failure.
On exiting each session with the application the current state of the data records must be persisted to the text database file. That is to say, if any records have been deleted, created or modified during the execution of the application by the User, then these changes must be reflected in the persisted database file, and should be visible the next time that the application is run.
You should try to complete all of the functionality defined in the DAO interface. Failing this, you should try to complete as much functionality as possible. All data access functionality should be thoroughly tested.
It will be preferable to partially complete the functional requirements of the data access protocol so that the implemented functionality is tested and working correctly than to attempt to complete all functionality specifications but fail to get them working correctly.
Note that the data access protocol specifies two custom exception classes that should be employed to report problems under program control without exiting the system.
The Graphical User Interface (GUI) must be developed using classes from the Java Swing package, and must not be designed using a form-based drag-and-drop GUI design tool.
That is to say, auto-generated code is not permissible for the GUI component.
In addition to the basic implementation, you are also required to complete source code documentation generated using the Javadoc tool and generate complete HTML source code documentation. This HTML code documentation must reside in its own sub-folder called “docs”.