Good Practices for Requirements Engineering

Good Practices for Requirements Engineering

Development Process

  • Iterative, incremental, interleaved.

    • Steps: Elicitation, Analysis, Specification, Validation.

    • Focus on re-evaluation, clarification, rewriting, correctness.

3.1 Elicitation

  • Define the requirements development process.

  • Write a vision and scope document: define objectives, set boundaries.

  • Identify user classes: roles, goals, usage frequency, knowledge levels.

  • Engage product champions and focus groups for user input.

  • Identify use cases and system events/responses.

  • Workshop and observe users to capture data flow.

  • Examine problem reports and reuse requirements from past projects.

3.2 Analysis

  • Create context diagrams and prototypes for feedback.

  • Prioritize requirements, adjusting for resources and market needs.

  • Model using abstract representation and rigorous notation.

  • Identify interfaces among systems and subsystems.

3.3 Specification

  • Document requirements consistently and accessibly using an SRS template.

  • Label requirements uniquely for traceability.

  • Record business rules and specify quality attributes affecting user satisfaction.

3.4 Validation

  • Inspect documents through formal and informal reviews.

  • Define test cases and acceptance criteria tracing back to specifications.

3.5 Management

  • Establish a change control process and a Change Control Board.

  • Perform impact analysis and maintain a change history.

  • Measure volatility, using tools to automate tasks.

  • Create a traceability matrix to connect requirements, code, and tests.

3.6 Summary of Good Practices

  • Elicitation: Define vision, identify stakeholders, hold workshops, observe users.

  • Analysis: Model environment, create prototypes, prioritize and analyze requirements.

  • Specification: Use templates, label requirements, specify nonfunctional needs.

  • Validation: Review, test requirements, define acceptance criteria.

  • Management: Control process, educate stakeholders, maintain history and traceability.

Development Process Steps

  1. Define business requirements.

  2. Identify user classes and representatives.

  3. Plan elicitation and identify requirements.

  4. Prioritize and flesh out user requirements.

  5. Derive functional and specify nonfunctional requirements.

  6. Review and develop prototypes.

  7. Validate requirements through iterations.