Alternative to CRUD
So if CRUD use cases don't belong in requirements documents, what use cases do you include in their place?
First, I should reiterate that CRUD use cases may still be appropriate outside of a requirements document, such as in a design specification. As I've mentioned, once a use case author begins fleshing out text use cases with steps, she is engaging in design, anyway.
Second, when a product manager is tempted to include CRUD in a requirements document, he should instead specify the user's larger goal. Presumably, information somehow needs to get into the system and stay up to date. Why? What does having that information enable the system to do for the user? An example of a larger goal is Generate Periodic Financial Reports. In that example, the user doesn't want to enter information; she just wants her reports!
The product manager still has to capture nonfunctional requirements relating to the accuracy and timeliness of information in the system. A useful approach is to have the use cases represent on-going, end-to-end processes instead of discrete tasks the user performs. That way they encompass the nonfunctional requirements and any data administration that product designers decide to include in their design.
For example, consider a Pay Employees use case that encompasses not just one round of payroll, but the process of paying employees during the lifetime of the company. Such a process contends with the hiring and firing of employees, and changes to employee titles, salaries, and marital status. Attach nonfunctional requirements to the use case that constrain the accuracy and timeliness of the information and limit the amount of time and effort users are engaged in carrying out the process (including the administration of information).


3 Comments:
Definitely some great ideas about keeping requirements at a higher (more appropriate) level. I've struggled to put this in practice in some circumstances. Here's an example of how I did it - which I think is aligned with what you suggest, but if not, would love to know how you would propose doing it differently.
On a large project with a portion of the team having no experience at developing enterprise software, the developers needed someone to point out that CRUD was required in order to enable valuable use cases.
Unquestionably, the CRUD needed to be in the system. Definitely, someone needed to tell the implementation team about what CRUD was needed, and how it needed to work (user ACL, etc).
I chose the approach of identifying a "manage accounts" use case (with a system administrator as the actor). Then subordinate use cases to represent the CRUD were defined using composition.
This aggregating use case was then traced to the valuable use cases, to show the dependencies.
With a global team structure, how would you propose communicating the expectation that CRUD exist, if not using a portion of the requirements doc to do it?
Scott, I think your idea about "composition" is part of the solution.
As my post suggests, I would express the larger functional requirement as an on-going, end-to-end use case. (I would just give the name of the use case, the actor, and any needed explanation. A use case diagram with notes often suffices) Then I would attach constraints to that functional requirement.
If I considered it important to convey the fact that CRUD-style administration would likely be part of the design, I would depict some use case "composition". For example, I might show that the Pay Employees use case includes a Manage Payroll use case, which in turn includes CRUD use cases. But I would explicitly label these lower-level use cases - and the <<include>> relationships - as a design example or suggestion.
Ideally, a product designer or architect documents these use cases instead.
^^Thanks!!
徵徵徵婚前徵信徵婚姻感情徵大陸抓姦徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵外遇抓姦法律諮詢家暴徵婚前徵信尋人感情挽回大陸抓姦離婚徵徵工商徵信徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵婚前徵信外遇抓姦感情挽回尋人大陸抓姦離婚家暴徵徵工商徵信法律諮詢徵徵徵跟蹤徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵工商徵信徵徵婚前徵信感情挽回外遇抓姦法律諮詢家暴尋人大陸抓姦離婚徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵大陸抓姦徵外遇徵徵徵尋人徵徵家暴徵徵徵徵徵徵徵徵徵工商徵信法律諮詢家暴感情挽回大陸抓姦外遇婚前徵信離婚徵徵尋人徵徵徵徵徵徵徵徵徵徵徵徵工商徵信徵徵徵徵徵徵外遇抓姦法律諮詢家暴婚前徵信大陸抓姦尋人感情挽回徵徵徵徵徵徵徵徵徵徵外遇抓姦婚前徵信感情挽回尋人大陸抓姦工商徵信法律諮詢離婚家暴徵徵徵徵徵徵徵徵徵徵徵徵徵徵工商徵信外遇抓姦法律諮詢家暴婚前徵信尋人感情挽回大陸抓姦離婚徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵婚前徵信工商徵信外遇抓姦尋人離婚家暴大陸抓姦感情挽回法律諮詢徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵離婚感情挽回婚前徵信外遇抓姦家暴尋人徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵工商徵信外遇抓姦法律諮詢家暴婚前徵信尋人感情挽回">徵大陸抓姦離婚徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵婚前徵信工商徵信外遇抓姦尋人離婚家暴大陸抓姦感情挽回法律諮詢徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵徵
Post a Comment
Subscribe to Post Comments [Atom]
<< Home