This is a jump off point for all of our use cases.
A use case represents a certain aspect of the program's functionality. It may be a relatively small operation or a larger sequence of operations to describe a particular task. Please modularize the use cases; higher level use cases will refer to lower level use cases so cross reference as appropriate. If you notice a sub-operation for which a use case does not exist, at a minimum, indicate that the use case is TO DO.
For the sake of efficiency, please indicate what use case you are working on so we may reduce overlap. Either create a new page for the use case, or indicate your start of work on this page. For example,
* Restore previous session -- in progress (Travis)
Please link the use case to a new page, preferably with beginning with the phrase UseCase_. This will provide consistency within the wiki and help organization. Continuing the example, the above case would link to page UseCase_RestorePreviousSession.
I've noticed that following Alistair Cockburn's use case template (as given by The Pragmatic Programmer) has proved to be quite useful. While following the template, it brought out many other usage considerations. Remember, use cases are not set in stone, but trying to cover each section in this template will only help to clarify project requirements. -- Travis
Cockburn's use case model:
- Goal in context
- Scope
- Level
- Preconditions
- Success end condition
- Failed end condition
- Primary actor
- Trigger
- Priority
- Performance target
- Frequency
- Superordinate use case
- Subordinate use cases
- Channel to primary actor
- Secondary actors
- Channel to secondary actors