Capturing User Requirements 准确获取用户需求
把每一个步骤写下来,keep it short and simple
- The use case name captures the primary actor and their intent
- Eg:
- “Customer places a purchase order”
- “Student adds a restructed course”
- Use the “active voice” istead of “passive voice”
- Eg:
- Passive voice: “The card number is entered”
- Active voice: “Customer enters their card number”
Use a breadth-first appproach, progressing from lower precision to higher precision
- Postpone talking about edge/corner case
- Avoid user interface details (instead, focus only on what the actor intends to do, not how!)
Key elements to capture(lower precision):
- Primary actor and their goal
- Main success scenario, i.e., describe a goal being met
- Other actor(s), if any, plus the “System”
- Two possible outcomes, success or failure
eg:
- “The System initiates the purchase order”
- “The Advisor signs the authorization form”
- “The Registrar adds the student to the course”
Use Case使用案例
什么是use case? use case的重要性
- A use case captures some specific aspect of a system’s behavior from the perspective of one primary actor
- A use case serves as a simply written contract between stakeholders, answering the question “What happens next?” or “what should happen next?”
- A use case keeps the focus on the primary actor(ie, user)
- A use case can be used to describe a software system, a business process, a future or planned piece of functionality, a legacy system to be refactored, etc.
- A use case should be short and succinct, easy to read, and easily extensible
- A use case is fully dressed if it includes the various subheadings.
Use cases as only part of the requirements
Use cases capture what the proposed or given system must do
- Therefore, use cases do capture user requirements and some system requirements, i.e., all behavioral requirements
- Use cases can also drive user interface requirement
But use cases do not capture all of the requirements - we also must consider:
- System requirements involving business logic, data formats, technology requirements
- User interface, user experience, and accessibility requirements
- Interoperability requirements including external interfaces, external data formats
- Security requirements
- Performance requirements and service-level agreements
- etc.