How does one model CRUD interactions using OOAD?
Most of the documentation I have found says that one should favor use
cases that are more meaningful to a user than to use CRUD use cases.
I believe that this is correct because it gives the stakeholders a
clearer description of what the system is supposed to do. However, I
am having a difficult time figuring out how one writes a scenario for
a use case that implicitly contains several CRUD interactions. Take
for example a system that maintains a roster for a football teams and
keeps track of each players salary and position it can then generate
reports such as player summary, salary by player, average salary per
The CRUD use cases would be:
(Create,Read,Update,Delete) Team = 4 use cases
CRUD Player (Update Player may be extended by CRUD Position, CRUD
Even with this simple example the 16 CRUD use cases become hard to
manage and the meaningful use cases have not even been identified yet.
All a user cares about is getting a report that is meaningful to them.
If all of the Team and player information was entered and kept up to
date by magic that would probably be ideal to the user. Since the
CRUD use case aren't meaningful I remove them.
Assume that some of my "real" use cases are:
Generate Salary Report
Generate Team Roster
Use Case: Generate Salary Report
A scenario could be (Open to suggestions):
1. The user indicates that they would like a salary report.
2. The system prompts the user to indicate the teams that they would
like to include in the report and the field to generate the report on
(i.e. player or position)
3. The user enters the teams and selects the field to generate the
4. The system generates a salary report based on user inputs.
Assume that the customer is happy with this use case but wonders how
is the team date managed. Unfortunatly, it isn't magic and it is
based on CRUD interactions. I compromise and add a use case:
Maintains Teams that implicitly contains all of the 16 CRUD use cases.
How do I write a scenario for Maintain Teams that indicates all of the
Possible ideas are:
1. Have one use case that contains multiple scenarios but I think
that gets messy.
2. Ignore the details and only say in the scenario that "The user
maintains the teams"
3. Have Maintain Teams include all 16 CRUD use cases.
At what point in OOA/OOD does one introduce the CRUD interactions if
they are not included in the use case model?