Hello Group,
I'm getting stumped trying to capture some of the subtleties of a simple feature. Here is my situation; I am designing a web site. The customer wants a section where visitors can go and read newsletters written by a member of the company. From that page, the visitor can read the current newsletter, open archived newsletters, and add their email to the newsletter mailing list. This is typical functionality that we should all be familiar with, but pretending that we’re not familiar with it, how would you go about capturing these requirements?
I'm currently working on the use cases for the site, but I don’t know how to capture this in a use case. This functionality seems to have three different user goals: browse current newsletter, browse archived newsletter (could even have an archive search feature, which would definitely be its own use case), and add email to mailing list. These user goals seem too simplistic to write as individual user goal oriented use cases, but, when taken together, indicate the developer (me) will need to write a fair amount of code. Take the following for example:
UC: Browse Current Newsletter
This use case is triggered when Visitor initiates a request to read a newsletter without specifying a specific date.
Visitor makes a request to read a newsletter.
System locates current newsletter and displays it.
Use Case Ends
UC: Browse Archived Newsletter
This use case is triggered when Visitor initiates a request to read a newsletter and specifies a specific date.
Visitor makes a request to read newsletter YYMM
System locates the newsletter and displays it.
Use Case Ends
Alternate Flow
System cannot find newsletter
System displays message indicting the newsletter cannot be found.
UC: Signup to Receive Newsletters via Email
This use case is triggered when Visitor submits email to System
Visitor submits in email and CAPTCHA.
[Verify CAPTCHA]
System verifies CAPTCHA.
[Add Email]
System adds email to mailing list.
System displays previous newsletter page with acceptance email.
Use Case Ends
Alternate Flow
CAPTCHA verification fails.
At [Verify CAPTCHA], System determines CAPTCHA is incorrect.
System displays previous newsletter page with error message indicating the CAPTCHA does not match what is expected.
Use Case Ends
Email already exists.
At [Add Email], System determines the list already contains the supplied email address.
System displays previous newsletter page with message indicating the email is already a part of the mailing list.
Use Case Ends
It just doesn’t seem right to create documentation like this. There’s no substance to it. So, what would be a way to capture/document user goals that don’t have much interaction with the system?