For a long time I have taken the approach that if it isn't in the requirements then it 
should not be implemented, and Use Cases are certainly a major part of the 
requirements document set. If there is some functionality that a user, or some other 
actor, can perform, then document it in a Use Case. Even the most trivial Use Case 
adds value, and some turn out to be not as trivial as they first appear.
 
A system administrator may be able to add new users and modify them, but how, and 
under what conditions. What is checked when the user is added; do you require certain 
fields (name, password, phone number etc); what if the user already exists; what 
privileges are needed; what defaults may be applied? Things get even more complex with 
deletes since you have to consider all the object relationships. What if the Bookstore 
employee that you are deleting has placed orders for new books - do you delete all the 
books as well? Probably not, but what do you do with the reference from the Book back 
to the employee?
 
If you don't write the Use Case that defines the functionality that is to be 
performed, then on what basis do you write the Test Case that defines how you test 
that the functionality is correct? Or don't you write test cases for the trivial 
functionality that doesn't need testing anyway!!! ?
 
Writing Use Cases of this type is not difficult, and while there may not seem to be 
much value in making it complete, there is a great deal of opportunity for disaster if 
you don't.
 
John Hebley
Hebley & Associates
 
-----Original Message-----
From: "Pankaj Chatterjee" <[EMAIL PROTECTED]> 
Sent: Monday, March 19, 2001 11:36 PM
To: "'Rose Forum'" <[EMAIL PROTECTED]>
Subject: (ROSE) CRUD and Use Cases



Hi everyone, 

Just wanted a new approach 

Sometime back I had put up a question in the Rose forum on whether or not we 
should define use cases for CRUD functions. The general concensus was that 
we should not as in general CRUD type use cases do not add value to the 
system. However, in most of the applications we develop, there is a lot of 
create,update,delete and retreive activity. All persistent object that we 
develop require CRUD functionality. So what's wrong in this approach? 

Consider this 
1) A system has an Administrator, The administrator can grant access to new 
users, revoke access permission from existing users, modify existing user 
profile. 
2) A order fullfilment system allows sales persons to   Accept new Orders, 
Cancel existing orders, Change Ordered Items 

If these are not example of CRUD functionality then what are they? I could 
have written   An Administrator can   Create User, Update User, Delete User 
and the end functionality could still be the same. So whats the difference 
between 'Create User' and 'Grant Access to new Users'? 

Thanks in advance 

Pankaj 

************************************************************************
* Rose Forum is a public venue for ideas and discussions.
* For technical support, visit http://www.rational.com/support
*
* Admin.Subscription Requests: [EMAIL PROTECTED]
* Archive of messages: 
http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
* Other Requests: [EMAIL PROTECTED]
*
* To unsubscribe from the list, please send email
*
* To: [EMAIL PROTECTED]
* Subject:<BLANK>
* Body: unsubscribe rose_forum
*
*************************************************************************

Reply via email to