Search code examples
oopumldiagramobject-oriented-analysisuse-case-diagram

Hotel Reservation Use Case Diagram


I am designing a use case diagram for a HRMS (Hotel Reservation Management System). I tried to capture properly all the requirements. But I am confused, as I did some research and I read in this question here that if your diagram looks like a spider web, the design is probably broken.

UML DIAGRAM

Is my design broken or are the requirements (see below) sufficiently captured? In particular, should Inventory need to extend or be included in the reservation?

Here are the requirements, that I translated into use cases and actors:

  • Guest Registration module to capture Guest Information.
  • Check in/out module
  • Room management module
  • Integration with reservation,
  • billing and inventory Reports Module
  • User Management

Solution

  • Indeed, if the diagram starts to look like a spiderweb, one should critically look at it to see if there are too much details.

    Looking at your diagram, it seems that you have just complex requirements, and have tried as much as possible to keep at high level (you have elegantly avoided the check in/check out with a more general Manage stay). You don't have the many functional decompositiins wih include and extend either. The spider look comes mainly from the involvement of several actors causing crossing associations.

    As I don't have an hotel manager at hand I cannot confirm if it is complete and relevant. But overall it looks ok. Some hints:

    • avoid the arrows in UC/actor associations: this is an obsolete notation.
    • if the check out is in lanage stay, there is a chance that this UC also includes payments.
    • the other question is in the actors: are all the associations really related to the actor role? For example doe the manager have a special role when managing guests ? Or does the manager just also has front-desk agent roles on top of the manager role ? In this cas you could simplify by using generalisation between actors, and only showing direct associations and not the indirect ones that come via inheritance