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
Introduction
Purpose, Scope, Acronyms, References, Outline
General Description
Context, Function, User Characteristics, Constraints
Specific Requirements
External Interfaces, Functional Requirements, Quality Requirements
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.