This section comprises two tasks: a UML activity model, and a UML class model.
Consider the following description of the actions that take place when a person uses an online software system (using a web browser) to book a hotel room in the United Kingdom. The person wishing to make a hotel room reservation will be referred to as the reserver.
The reserver navigates to the home page of the online hotel room reservation system. The system prompts the reserver to input the following information: the desired location in terms of either a town/city name or a post-code, the arrival date, and the number of nights required. The system also requests the number of guests for the stay, in terms of both the number of adults and, if applicable, the number of children. If the reserver inputs the fact that there will be children staying, the system prompts the reserver to input the age(s) of the children and to confirm how many bedrooms are required. The reserver is then promoted to initiate the search and the system returns the results. If there are no available hotels with rooms that match the basic criteria, the system displays an appropriate message with a prompt to alter the basic search criteria or start again. With regard to the desired location, the system default is to search for any available hotel within a 15 mile radius of the specified location. If the system does find one or more hotels that match these basic search criteria, then the system will present a list of those available rooms ordered by distance from the specified location (nearest first). At this point the reserver is offered the opportunity to re-order the presentation of the list of available rooms by price, either lowest price first, or by highest price first. The system also prompts the reserver to refine the search criteria according to a number of other specific details, such as the star rating of the hotel, the availability of wifi in the hotel room, and whether or not the room has air conditioning. The reserver can then repeat the search to refine the list of matching hotel rooms, and again, if none are available that match the specified search parameters then the system displays an appropriate message and the reserver has the option to start again or exit the system.
If the reserver is interested in one of the listed hotels, then s/he is able to select that hotel from the list and the system displays a web page specific to the selected hotel that lists all rooms in that hotel that match the reservers criteria, listed in order of price (highest first). A prompt is made such that the reserver is offered the option of confirming a booking for one of the available rooms. If the reserver chooses to make a booking, the system then asks the reserver if s/he is already registered with an account for the online booking system. If the reserver confirms this, then the system prompts the user for his/her email (username) and password. After login, the system will present the reserver with their stored personal and payment details and ask the reserver to check and confirm that the details are still accurate (with the option to update them if they are not). If the reserver is not already an account holder, the system asks the reserver if s/he would like to register an account, or just continue to book without registering. If the reserver chooses to set up an account, then the system presents a separate registration page and the user inputs personal details (name address, email, phone etc.) and registers a bank card with the account. After creation of a new account, the reserver is returned to the hotel details page. Alternatively, the reserver can elect to proceed without setting up an account. Either way, the reserver is prompted to confirm the booking of the selected hotel room. The reserver may decline the currently presented hotel room and return to the previous list. If the reserver chooses to confirm the booking, and the user has a registered account, payment is taken from the registered bank card. If the reserver has elected not to register an account, then the system prompts the reserver for payment details (i.e., bank card details). If successful (we will assume it is), then the system creates a reservation, assigns it a unique identifier and presents this identifier to the reserver. The system also sends a confirmation email to the email provided by the user.
Create a UML activity model, or series of models, to represent the workflow described above. Use appropriate partitions (swim-lanes) for each appropriate role.
A company running a chain of gyms needs a software system to record information about training sessions for its members. Here is the relevant domain description from the proposed system requirements document.
Each gym in the company has a unique name and employs at least seven instructors. The gyms hold training sessions for members. A training session takes place in a single gym. Each instructor is employed by a single gym and each member belongs to a single gym in the company. Each member is assigned to a single instructor who works at the members gym. An instructor can have at most thirty assigned members. Training sessions are of two types: class sessions and personal training. A class session lasts for 45 minutes and focuses on a particular activity such as aerobics or yoga. Each class session is taken by one or two instructors employed by the gym that holds the session and has a limit on the number of members who can book for it. After a gym has arranged a class session for a particular date and time and allocated the instructor or instructors taking it, members can book for the class session on a first come, first served basis so long as the number of members booked for the session does not exceed the limit for that session. Members can book for class sessions in any of the gyms in the company. A personal training session is for a single member and is always provided by the instructor who is assigned to that member. Personal training sessions can be arranged for any time when both the instructor and the member are not involved in any other training session. There is no limit to the number of class or personal sessions that instructors or members can take part in. Instructors and members can each be involved in only one session of either type at any one time.
Analyse the above domain description and design an object object-oriented conceptual model for the software system which should comprise: