Chapter 4 - Software Requirements Elicitation (1)

Chapter 4: Software Requirements Elicitation

Key Concepts

  • Requirements: Capabilities that the system must deliver.

    • Elicitation is essential to identify real requirements.

  • Challenges: Understanding what to build is one of the hardest parts of software development.

Planning Phase

  • Activities:

    • Requirements elicitation.

    • Deriving use cases.

    • Producing an iterative development plan.

  • Collaboration: Close work with customers is necessary to identify and prioritize needs.

Definitions

  • Requirements: Capabilities to be delivered by the system.

  • Constraints: Restrictions on the solution space.

  • Documented in Software Requirements Specification (SRS).

Importance of Requirements Elicitation

  • Misunderstandings can lead to legal consequences and development issues.

  • 37% of software development problems relate to requirements.

  • Poorly identified requirements can increase costs significantly.

Challenges in Elicitation

  • Communication barriers exist between customers and teams.

  • Non-functional requirements are often neglected.

  • Requirements change over time.

  • Analysts may struggle to understand what the customer wants.

Types of Requirements

  • Functional Requirements: Information processing capabilities.

  • Non-Functional Requirements: Includes performance, quality, safety, security, and interface requirements.

Elicitation Activities

  • Identifying problems and needs.

  • Constructing analysis models.

  • Conducting feasibility studies.

  • Specifying acceptance tests and iterative development plans.

Information Collection Techniques

  • Meetings with customers, literature surveys, stakeholder surveys, and user interviews.

Feasibility Study

  • Determines if the project can be practically achievable given constraints.

Requirements Specification Structure

  1. Introduction

    • Purpose, Scope, Acronyms, References, Outline

  2. General Description

    • Context, Function, User Characteristics, Constraints

  3. Specific Requirements

    • External Interfaces, Functional Requirements, Quality Requirements

  4. Appendices

Common Problems in Requirements

  • Incomplete or hidden requirements, moving targets, and miscommunication.

Tips to Capture Requirements

  • Iterative Approach: Accept that initial requirements may not be complete.

  • Engagement: Involve various stakeholders and ask clarifying questions.

  • Documentation: Assign a dedicated scribe for capturing notes.

Example: Study Abroad Management System (SAMS)

  • Functional Requirements: Account user provision, program search, results display.

  • Non-Functional Requirements: Search results in less than 3 seconds, security, and user-friendliness.

robot