Question 1

You should be able to answer this question once you have studied Unit 2 (The Object- Oriented Approach) and Unit 4 (Modularity) of the course notes. The objectives of this question are:

  • to analyse a simple set of requirements for their classes and attributes;
  • to explain the object-oriented approach in system analysis and design
    • to explore the issue of “thing versus property”;
    • to describe the concepts behind modular software design;
    • to recognize an inheritance hierarchy;
    • to implement a generalization relationship.
  • to construct basic class diagrams in system analysis.

Merlion Marina (M2) operates a private harbour business that rents out berths and provides boat services to its customers. M2 would like to have an automated system to track its customers, the berths it leases, and the boats in the berths.

M2 has two types of berths: open and covered. Berths are identified with a berth number, and have various lengths and widths.

M2 caters to two types of boats. Sailboats have a registration number, manufacturer, width, keel depth, number of sails, and motor type. Powerboats have a registration number, manufacturer, length, number of engines and fuel type.

M2 provides two types of leases: daily and monthly. All leases are required to store a start date, and a lease period (in days or months, according to the type of lease); in addition, monthly leases require a deposit.

Customers are boat owners that lease berths from M2. The system should maintain the usual customer information such as name, address, and contact number.

Analyze the above case description, and answer the following questions:

  • The following classes have been identified: Berth, SailBoat, PowerBoat, DailyLease, MonthlyLease, and Customer. List their respective attributes, from the given case description, using the tabular format in Table Q1(a) below:
  • Identify the class hierarchy or hierarchies among the classes, naming each class appropriately. Discuss why there should be such a hierarchy or hierarchies with reference to the case description.
  • Explain whether there should be any abstract class(es) in the class hierarchies or hierarchies.
  • Draw a UML diagram(s) to depict the class hierarchy or hierarchies. Show the attributes (including their respective visibilities and data types) for each class,
  • Write Java code to implement the Berth class and the Lease class hierarchy. Include the instance variables, constructors (with necessary parameters), the setter and getter methods, and the toString() method.
  • M2 computes a berth lease fee based on the width of a berth, as shown in Table Q1
Berth Width (m) Monthly Lease Fee ($) Daily Lease Fee ($)
<= 10 6000 200
> 10 but <= 15 9000 300
> 15 but <= 20 12000 400
> 20 18000 600
  • (Note: The daily lease fee for a covered berth is 10% more than that for an open berth with the same width.)
  • Explain how a method, computeLeaseFee(), could be implemented to calculate the lease fee according to the fee structure in Table Q1(f). In your explanation,
    • name the class(es) that should have the method;
    • name the other class(es) that need to be involved;
    • describe the argument(s) that the method needs;
    • explain the aspect(s) of modularity involved;
    • include any other consideration; e.g., polymorphism.
  • Write Java code to implement the computeLeaseFee() method in the class(es) that need it.
  • Explain an advantage of having this method in the superclass of the class hierarchy concerned.

Question 2

You should be able to answer this question after you have studied Study Unit 6 (User Interface Design Principles) and Unit 8 (User Interfaces Development). The objectives of this question are:

  • to understand the use of scenarios;
  • to apply the design principles for user interfaces.

Figure Q3 below shows a set of possible screens for issuing a lease to an existing customer. Entering the unique name for a customer who has already registered will result in the known details for that customer being shown. Clicking a “Back” button returns the user to the previous screen, in the same state when as it was last in, and moving between screens automatically saves any data entered. Data is also saved when the “Exit” button is pressed.

  • Write a scenario for the following task: “Ali, M2’s administrator, signs up a 3-month covered berth lease for Ahmad, a registered customer, for a powerboat.”
  • Recommend four improvements to the user interface shown in Figure Q3. Set out your design rationale as shown in the Case Study on pages 32-35 in Study Unit 8. see image.
  • (Note: A deposit is applicable to only monthly leases, and is shown only after the start date and lease period for a monthly lease is entered.)

Question 3

You should be able to answer this question after you have studied Study Unit 9 (Use Cases). The objectives of this question are:

  • to analyze specified system requirements
  • to construct use case models in systems analysis.

Additional information on the Merlion Marina System includes the following:

Initially, the system will allow M2’s administrators to register customers, and update their information, to create and update information on berths and boats, and perform basic day-to- day business tasks. One of these tasks is creating a lease, which entails computing the lease fee for a berth, and allotting a boat to a berth. Leases can also be renewed or transferred by the administrators. M2 also wants to use the system to search for vacant berths, and berths leased to a customer.

M2 eventually wants the system to enable its administrators to record its boat servicing activities, such as overhauling the boat, painting the boat, or working on the engines. Later, it will want to incorporate billing features to the system - to allow M2’s administrators to generate bills for both berth leases and boat services, to make payments (on behalf of the customers), to send late notices (via email), and to generate financial reports.

A customer can also access the system to view information about the berths. A registered customer can update his personal information, and also to create, renew or transfer a lease, and to make payment (through PayPal or credit cards). Customers are required to register with the system first before they could lease berths from M2.

Construct a use case diagram for the application (notice that there is a generalization hierarchy among the actors).

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.