D_UC3 - luist18/feup-aeda-proj GitHub Wiki

Use case 3: Rent Vehicle

Rational

Main flow Question: what class ... Answer Justification
1. The user chooses to rent a vehicle. ... interacts with the user? RentVehicleUI Pure Fabrication.
... coordinates the use case? RentVehicleController Controller.
2. The system shows the information of the vehicle (i.e. specs, price and available schedule). ... knows the vehicle's information? Offer Information Expert: the Offer knows all the information of the vehicle
... knows the vehicle specs? Vehicle Information Expert: Vehicle knows its own information
3. The system requests a schedule, i.e., start and finish time.
4. The renter inserts the schedule. ... validates the schedule internally? Schedule Information Expert.
... validates the schedule globally? Offer Information Expert: The Offer knows the available schedules.
... creates the rental? RentalManager Creator: RentalManager aggregates all Rentals.
... calculates the price? Rental Information Expert: Rentals knows all the important information to calculate the price.
5. The system shows all the information to the renter, requesting confirmation
6. The renter confirms. ... saves the Rental? RentalManager Information Expert: RentalManager aggregates all Rentals.
7. The system informs about the success of the operation

Systematization

From the rational results that the conceptual classes promoted to software classes are:

  • Rental
  • Offer
  • Vehicle
  • Schedule
  • Company

Other identified software classes (e.g. Pure Fabrication):

  • RentVehicleUI
  • RentVehicleController
  • RentalManager

Sequece diagram

Sequence diagram

Class diagram

Class diagram