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

Class diagram
