Software Requirements

This area of ​​knowledge relates to the elicitation, analysis, specification, and validation of software requirements, as well as the management of requirements throughout the software product lifecycle. Software requirements express the needs and constraints imposed on a software product that contribute to the solution of some real problem (IEEE-SWEBOK, 2014).

General competencies expected
Perform the elicitation, analysis, specification and validation of software requirements; manage requirements throughout the software lifecycle; to define the architectural and detailed design of a software for its construction (ZORZO et al., 2017).

Software Requirements Fundamentals

 * Definition of a Software Requirement
 * Product and Process Requirements
 * Functional and Nonfunctional Requirements
 * Emergent Properties
 * Quantifiable Requirement
 * System Requirements and Software

Requirements Process

 * Process Models
 * Process Actors
 * Process Support and Management
 * Process Quality and Improvement

Requirements Elicitation

 * Requirements Sources
 * Elicitation Techniques

Requirements Analysis

 * Requirements Classification
 * Conceptual Modeling
 * Architectural Design and Requirements Allocation
 * Requirements Negotiation
 * Formal Analysis

Requirements Specification

 * System Definition Document
 * System Requirements Specification
 * Software Requirements Specification

Requirements Validation

 * Requirements Reviews
 * Prototyping
 * Model Validation
 * Acceptance Tests

Practical Considerations

 * Iterative Nature of the Requirements Process
 * Change Management
 * Requirements Attributes
 * Requirements Tracing
 * Measuring Requirements

Practices implemented for this content

 * Answer a Quiz via Mobile
 * Perform tasks through requirement interpretation
 * Organize data by category
 * Ordering of phases or flow of a process
 * Identify skills or activities with multiple choice issues
 * Identification and classification of defects in codes or software requirements
 * Challenge of questions and answers covering knowledge in three roles of Software Engineering
 * Starting a project meeting the requirements requested by the client (paper and pen)
 * Implementing a system functionality through document interpretation
 * Interview with project team to assess requirements