D_UC11 - luist18/feup-aeda-proj GitHub Wiki

Use case 11: Manage Maintenance Services

Rational

Main flow Question: what class ... Answer Justification
1. The admin requests to see the vehicles listed to maintenance. ... interacts with the user? ManageMaintenanceServicesUI Pure Fabrication.
... coordinates the use case? ManageMaintenanceServicesController Controller.
2. The system requests the number of vehicles the admin wishes to see.
3. The admin inserts the number of vehicles.
4. The system shows the next n vehicles. ... knows the vehicles in the queue? VehicleManager Information Expert: the VehicleManager knows all the vehicles of the company.
5. The admin chooses one vehicle.
6. The system shows the information of that vehicle, including the maintenance day, and requests if the admin wishes to change it or return. ... is stored in the queue? MaintainedVehicle
... knows the maintenance day of the vehicle? MaintainedVehicle Information Expert: MaintainedVehicle knows its own information.
... knows all the information of the vehicle? Vehicle Information Expert: Vehicle knows its own information.
7. The admin chooses to change the maintenance day.
8. The system requests the new maintenance day.
9. The admin inserts the new maintenance day. ... validates the new maintenance day? MaintainedVehicle Information Expert
10. The system changes the maintenance day and informs about the success of the operation.

Systematization

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

  • MaintainedVehicle
  • Vehicle

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

  • ManageMaintenanceServicesUI
  • ManageMaintenanceServicesController
  • VehicleManager

Sequece diagram

Sequence diagram

Extra: Add maintenance day to a vehicle

Extra sequence diagram

Class diagram

Class diagram