D_UC9 - luist18/feup-aeda-proj GitHub Wiki

Use case 9: Manage Preferences

Rational

Main flow Question: what class ... Answer Justification
1. The renter requests to manage their preferences. ... interacts with the user? ManagePreferencesUI Pure Fabrication.
... coordinates the use case? ManagePreferencesController Controller.
2. The system asks if the renter wants to add or remove a preference.
3. The renter chooses to add a preference.
4. The system asks the type of vehicle.
5. The renter chooses passenger vehicle.
6. The system requests the minimum manufacturing year and desired number of seats.
7. The renter inserts the requested data. ... creates the preference? PreferenceList Creator: PreferenceList aggregates all the renter's preferences.
... knows the PreferenceList? Renter High Coesion + Low Coupling.
... knows the Renter? CurrentSession
... validates the Preference? PreferenceList Information Expert: PreferenceList knows all the Preferences.
8. The system informs about the success of the operation.

Systematization

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

  • Renter
  • Preference

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

  • ManagePreferencesUI
  • ManagePreferencesController
  • PreferenceList
  • CurrentSession

Sequece diagram

Sequence diagram

Class diagram

Class diagram