Description: Hotel Reservation System

A hotel in Abu Dhabi requires your services to design software for managing the hotel reservation system. The above figure provides a reservation confirmation, which can be made online or at the hotel.

You are required to do the following:

  1. Identify the software’s use cases. Draw the UML use-case diagram and include supporting use-case description tables. At least three scenarios (each with at least two use cases) must be identified. Ensure that the “include” and “extend” relationships are added, where necessary.
  2. Identify the objects and their respective classes from the use-case descriptions. Draw the UML class diagram and include supporting descriptions to explain the classes identified. At least 4 classes must be identified. Ensure that access specifiers are included for member visibility.
  3. Create Python classes with the constructor, attributes (at least 5), and required setter/getter methods for all the identified classes. Identify and include other required function-headers in the classes where the function’s body is just a pass statement and include a comment to indicate what the function should achieve.
  4. Create objects of all the identified classes and use the object’s functions to populate and display all the information shown in Figure 1.

Submission

  1. Submit a report (single PDF file) that has the following sections:
    1. UML Use-Case Diagrams and Descriptions.
    2. UML Class Diagram and Descriptions.
    3. Python classes (copy-paste the code from PyCharm, NOT an image of the code)
      1. The code must be well documented, error-free, and have good coding standards.
    4. GitHub repository link, with access made public:
      1. The GitHub repository will have a record of your work. The repository would indicate the cumulative progress of your work in the assignment over the time you have worked on it.
    5. Summary of learnings
  2. **Submission deadline: **September/30th/2024, 11:59 PM

Assignment Information

Weight:15%

Learning Outcomes Added

  • LO1_OOAD: Analyze and design software that map real-world entities and relationships using Unified Modelling Language (UML) notations.
  • LO2_OOProgramming: Create working object-oriented programs in a computer language that are well- structured, error free, and can solve computational problems.
  • LO4_SWDocumentation: Communicate with a clear and precise style that is suited to an appropriate audience to produce well-documented code, design documents, and presentations that are readable and understandable.