Software requirements engineering is the science and discipline concerned with establishing and documenting software requirements. It consists of requirements elicitation, analysis, specification, verification, and management.[From Thayer and Dorfman's IEEE Software Press publication titled Software Requirements Engineering, 2nd Ed., 1997]. This topic area addresses all aspects of Requirements Engineering as so defined.
The topic area contains 3 subtopics, Requirements Development, Requirements Management, and Use Cases. General information on Requirements Engineering is contained in the main topic area, while information specific for the subtopics is contained there.
Version 1.2 of the Capability Maturity Model Integration - Development (CMMI) partitions softrware requirements into two process areas. The first is Requirements Development, which includes elicitation, definition, analysis,specification, and validation. This is a Level 3 (Defined) Process Area. The other is Requirements Management, which involves managing requirements that have been developed, including change control and verification. This is a Level 2 (Managed) Process Area. These are treated as subtopics for the Requirements Engineering Topic.
A third subtopic is Use Cases. Thisw has been selected as a subtopic because it is a special area of interest in requirements engineering that has several unique resources.
Best Practices (8)
updated
- Resources for Best practices for requirements development and management
Case Studies (4)
updated
- Case studies about software requirements engineering and related topic areas.
Education and Training (9)
updated
- Education and Training Courses in the area of requirements engineering that cover both requirements development and management. For courses specific to requirements development or requitements management, or to Use Cases, see those sub-topic areas.
Experts (7)
updated
- Personnel considered to be experts in requirements engineering and related areas.
Literature (3)
updated
- Books, Articles, and technical Reports about software requirements, including requirements development, requirements management, and use cases.
Programs and Organizations (3)
updated
- Organizations and programs that can be sources of information for requirements engineering
Related Resources (7)
updated
- Web sites, journals, and other resources for information on software requirements engineering and related topics
Service Providers/Consultants (3)
updated
- Service Providers and Consultants for requirements engineering and related areas.
Tools (6)
updated
- Tools for requirements engineering, including requirements development and requirements management
Subtopics of Special Interest
Requirements Development (6)
updated
- Requirements Development, which includes elicitation, definition, analysis,specification, and validation. This is a Level 3 (Defined) Process Area for the SEI CMMI for Development (CMMI-DEV), and is separate from requirements management (a Level 2 CMMI-DEV Process Area), although there is considearble overlap. Requirements Development is also a Level 2 Process Area in the CMMI for Acquisition. Acquisition Requirements Development has three specific goals: developing customer requirements, developing contractual requirements, and analyzing and validating requirements.
The resources listed here primarily address requirements development, but could also address requirements management and use cases, two other subtopics for requirements engineering.
Requirements Management (5)
updated
- Requirements Management involves managing requirements that have been developed, including change control and verification. It is a Level 2 (Managed) Process Area for the SEI CMMI for Development(CMMI-DEV), and is separate from requirements development (a Level 3 CMMI-DEV Process Area), although there is considearble overlap. It is also a Level 2 Prrocess Area for the CMMI for Acquisition.
The resources listed here primarily address requirements management, but could also address requirements development and use cases, two other subtopics for requirements engineering
Use Cases (5)
updated
- Use Cases are a special topic in the area of requirements engineering. A use case in software engineering and systems engineering is a description of a system’s behavior as it responds to a request that originates from outside of that system. In other words, a use case describes "who" can do "what" with the system in question. The use case technique is used to capture a system's behavioral requirements by detailing scenario-driven threads through the functional requirements.