In this assignment, you will work individually to build a moderately complex application that captures data about domain objects and allows the user to search for objects of interest by keeper’s. This application will use library components from the previous home works and from the lectures. Program description Program OFFS, which was introduced earlier in the semester, now needs to be upgraded yet again in order to make it more suitable for use by its users. Further, the client demands that you document the design decisions that you made in developing this application to justify the design.
You must re-use the classes that you developed earlier in the semester for program OFFS to carry out the upgrade. If you may recall, these include a main program class named Stratosphere’s, which enables a user to create a sorted set of customers (including high earners) and to display a simple teased report about these objects on the output console. The first upgrade feature that you need to do is to modify the behavior of this Stratosphere’s class so that it captures data about standard and high- earner Customer objects directly from the user and is able to generate an objects report in two forms: text-based and HTML-type.
This feature requires you to use another library component called Textile, which you already learnt to use in an earlier Java module. The text-based report has the same format as implemented in the existing code and is to be displayed on the console. The HTML-type report must include an HTML table listing the objects and must be written to a file so that it can be viewed in a standard web browser. Any errors that occurred must be handled and suitable error messages be displayed on the console. The second upgrade feature, which is also applied to the Stratosphere’s class, is a keen,ford-based search feature that enables the user to search for
Customer objects by keywords. This feature requires you to use the Kenning library component. The keywords are to be entered by the user from the input console and the search result is to be written to a search report in two forms. The first form is a simple string containing the query and result, which is printed directly out on the console. The second form is a simple HTML document containing the query and a result table listing the matches. This document is saved to a file so that it can be viewed in a standard web browser. Any errors that occurred during the search must be handled and suitable error messages be splayed on the console.
Since this has now become a moderately complex application, you have decided to hire a design consultant to help you with the design. After about a month, the consultant and you have come up with a design and a rough implementation plan. The key part of the design specification is written by the consultant, while a few small parts of it will be written by you. Read Section 2, which presents the design and implementation instructions in a sequence of tasks. Carry out these tasks and, when completed, follow the instructions in Section 3 to submit your finished product. 2 Tasks 1 .
Create two packages offs and kenning by copying them from the attached assignment zip file. Package offs currently only includes two library classes Textile and Administration. Copy all the other classes that you developed earlier in the semester for program OFFS into this package. In the tasks that follow, you will need to create a new type in this package and modify some of the classes contained therein accordingly. Package kenning includes the Kenning library component. You will need to import the relevant classes from this package into Stratosphere’s in order to upgrade it.
The upgrade will involve modifying two classes kenning. Engine and kenning. Query a little. 2. In the package offs, specify an interface named Document that will be implemented by class Customer so that its objects can be read as HTML documents by the keyword search engine. This interface contains a single method named totemic, which takes no argument and returns a String containing the text of a simple HTML document generated from the state of the current object. This document must follow the format described in the following examples.
Suppose the above operation is invoked upon the Customer object. The format for High Earner objects is the same except for an extra income value being added to the content line of the body. 3. Update the two classes Customer and Highlander so that they appropriately implement the Document interface. 4. Rename the sorted set abstraction in the package offs to Sorted and update the Stratosphere’s class (if needed) so that it uses the renamed class.
You must do this to conform to the new design specification of Stratosphere’s that will be given in a subsequent task. 5. Specify and implement method Query. Moderators() which returns an Iterated of the query matches or null if no matches. You will need this method to generate the HTML search report. 6. Implement method Engine. Dyadic that follows the design specification given below. This is the only modification to this class that you need. /** * @effects if d is null throws Multidimensionality else add d to this. TTT and this. Wet using their respective methods. If this. Is not null then update this. Q to contain any new matching documents. Return this. Q public Query Dyadic(Doc d) throws Multidimensionality 7. Implement a new Stratosphere’s class using the specification in the attached file named Stratosphere’s spec. Txt. That is: you must strictly follow the specification given and not to use your existing specification of this class you must write a new Stratosphere’s class with this specification the code of the method main is provided. To ease implementation you may copy the code of the relevant methods from your existing class to this new class 8.
Make sure that the program outputs follow the formats given in the sample output files that are provided in the attached zip file outputs. Zip. This file contains: a) sample data. Txt: list test data for 5 Customer objects used to produce the outputs in the other files (b) sample rainspout. Txt: shows the text-based objects report and other output for the test data (c) sample objects report. HTML: the HTML objects report for the test data (d) sample search report. HTML: the HTML search report for the test data and a keyword query used in the run output 3 9.
Write a brief design note document to give details of your answers to the following questions. Use the bullet-point form and table where possible. (a) What is the purpose of using the Comparable and Document interface in the program? Is there another way of designing the same program functionality (a) without using Comparable and (b) without using Document? Briefly explain why or why not under each case? (b) Draw a ML design class diagram of the type hierarchy used in the program. What is an advantage of designing types in this hierarchy? C) What is the purpose of using the Sorted class in the program? Is it possible to develop the same program functionality without using this class? Briefly explain why or why not? (d) The original Kenning library can only search for text documents using keyboards. What makes it possible to use this component in your program to reach for Customer objects using keeper’s? (e) Draw a complete design class diagram of the application showing the classes and their dependencies (f) From the design class diagram, identify the implementation strategy that was used to build the application.
Briefly discuss this strategy. Submission There are two submissions, the details of which are described below. Electronic submission is performed via the assignment submission box on the portal site. Printed submission is to be carried out in person. 3. 1 Electronic submission Submit a zip-compressed file containing the source code folder of your code reject and one design document file. Name your zip file after your full name and student id as in this example: Unmeaning 0123456789 assignments . Zip.
Note: the source code folder is the parent folder of the two sub-folders offs and kenning mentioned in Section 2. For example, if you name your source code folder ISRC then this folder must have two sub-folders offs and kenning. The design document file must be named design-note. It must have a standard cover page that states the assignment title and the student details. In addition, this file must be in one of the following formats: (1) Adobe Acrobat (. UDF) (preferred), (2) Offence document (. Odd), (3) Microsoft word 2003 (. Doc).
No other formats are allowed. 4 Failure to submit the zip file as described will result in mark deduction, in the worst case down to zero. 3. 2 Printed submission Submit a printed copy of the design document file and the source code for the classes/interfaces and additional operations that you were asked to build. The source code must be formatted using either Moonscape or Courier New font (size 12), and be attached to the end of the design document. Submit to the faculty office (room ICC) by the same deadline as the electronic copy’s.