A use case is a description of something that a system does in response of any request from any other automated system or actor.
How to write:
- We should write the use cases in business terms, not technical ones.
- Any business person should be able to understand the use cases without the help of any technical personal.
- Technical design assumptions should not be made at this stage.
- Use cases can also serve as a contract between business and development sides of any organisation.
- Use case text should begin with "The system (or application) will". If a use case can not be started like this, it means it is either not a valid use case or is a part of another use case.
- Explicitly list all the affected actors in the use case.
Points to consider:
- There is no rule how long the use case should be
- Avoid use case diagrams (for architects only)
- Writing use cases requires a lot of participation from business side.
- Facilitate use case analysis by starting with a small group.
- Consider recording use cases in database.
- Enlist someone to act as a 'scribe' for the use case discussions to avoid any point to be missed.
- Write use cases so that they can be amended as more information is available with time.
- Use case analysis is finished when the team members feel that they can estimate the time for efforts for implementing a particular use case.
- Be sure to include requirements for security, scalability and availability.
- Don’t slow down if the group has trouble articulating requirements.
- Imposing the technical design assumption under the guise of requirements. Like System will manage the load using batch stream No.
- Including physical design assumptions in use cases. Like the system will insert a row in database.
- Not keeping analysis session productive.
- Failing to document use cases even if the project is small.
- Repeatedly defining the terms in every use case.
At this stage, the team should be able to decide the technology which will be used for developing the UI (mostly HTML). Try to develop the non-functional UI. It will gaurd against accidentally promising the delivery of something which is not technically possible.
- Consider involving the layout designer for prototyping.
- Remember that prototype is not functional by definition.
- Use cases are used to write the test cases for the system.
- Use cases help in validating the architecture and system during development and ensure that we are going in right direction.
- Use cases help the business people/Project Manager/Project Sponser to define the scope of the project.
- Use cases help the project management to define the release boundaries and the functionalities need to be implemented in release.
- Use cases help the management or technical people to articulate the efforts; and so helps in deciding the cost/benefit ration.