In systems engineering and software engineering, requirements analysis focuses on the tasks that determine the needs or conditions to meet the new or altered product or project, taking account of the possibly conflicting requirements of the various stakeholders, analyzing, documenting, validating and managing software or system requirements.
Requirements analysis is critical to the success or failure of a systems or software project.cite book
|editor1= Alain Abran |editor2=James W. Moore |editor3=Pierre Bourque |editor4=Robert Dupuis
| title = Guide to the software engineering body of knowledge|url =
|access-date = 2007-02-08|edition=2004 |date=March 2005
| publisher = IEEE Computer Society Press | location = Los Alamitos, CA | isbn = 0-7695-2330-7
| chapter = Chapter 2: Software Requirements | chapter-url =
| quote = It is widely acknowledged within the software industry that software engineering projects are critically vulnerable when these activities are performed poorly.
The requirements should be documented, actionable, measurable, testable, traceable, related to identified business needs or opportunities, and defined to a level of detail sufficient for system design.
Conceptually, requirements analysis includes three types of activities:
Eliciting requirements: (e.g. the project charter or definition), business process documentation, and stakeholder interviews. This is sometimes also called requirements gathering or requirements discovery.
Recording requirements: Requirements may be documented in various forms, usually including a summary list and may include natural-language documents, use cases, user stories, process specifications and a variety of models including data models.
Analyzing requirements: determining whether the stated requirements are clear, complete, unduplicated, concise, valid, consistent and unambiguous, and resolving any apparent conflicts. Analyzing can also include sizing requirements.
Requirements analysis can be a long and tiring process during which many delicate psychological skills are involved.