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