Requirements Engineering
Requirements engineering helps software engineers to better understand the problem they will work to solve. It encompasses the set of tasks that lead to an understanding of what the business impact of the software will be, what the customer wants and how end-users will interact with the software. The following topic categories are presented:
Analysis Concepts
Requirements Engineering Resources
Tutorials, Articles, and Papers
Requirement Elicitation
Requirements Management
Requirements Patterns
Requirements Tools
Books
Analysis Concepts
Requirements Engineering Resources
Requirements Engineering Resources -1
A worthwhile collection of requirements engineering links has been prepared by Ian Sommerville and Peter Sawyer to accompany their book on the subject.
Requirements Engineering Resources- 3
Developed by the Georgia Tech software systems design group, contains useful pointers to web-based information sources and publications.
The QFD Institute
The QFD institute is an good source for information and resources on quality function deployment.
Tutorials, Articles, and Papers
Requirement Elicitation
Issues in Requirements Elicitation
An in-depth report by the SEI provides useful information of elicitation techniques. Can be downloaded.
User Involvement in Requirements Engineering
An in-depth paper by Daniela Herlea address all important aspects of requirement elicitation and related subject. Recommended.
Negotiation Skills
A collection of articles on negotiating skills which can be of use to any project manager who must communicate with upper management, the customer, or members of the software team.
Requirements Management
Requirements Management for Small Organizations
This article describes an approach to requirements management for small organizations addressing the following issues: Establishing a requirements and document hierarchy: "Decomposing" requirements documents, and Maintaining requirements and traceability.
Requirements Management Place
This site provides useful white papers, a comprehensive bibliography, and pointers to many other resources that focus on requirements management.
Requirements Patterns
Requirements Tools
Requirements Engineering Tools and Freeware
An up-to-date list of RE tools vendors and freeware. Recommended.
Automated Requirements Analysis (ARM) tool
A software tool provided by NASA searches each line of the requirements document for specific words and phrases that have been identified as quality indicators. It can be downloaded from this site.
Books 
Because it is pivotal to the successful creation of any complex computer-based system, requirements engineering is discussed in a wide array of books. Hull and her colleagues (Requirements Engineering, Springer-Verlag, 2002), Bray (An Introduction to Requirements Engineering, Addison-Wesley, 2002), Arlow (Requirements Engineering, Addison-Wesley, 2001), Gilb (Requirements Engineering, Addison-Wesley, 2002), Graham (Requirements Engineering and Rapid Development, Addison-Wesley, 1999) and Sommerville and Kotonya (Requirement Engineering: Processes and Techniques, Wiley, 1998) are but a few of many books dedicated to the subject.
Lauesen (Software Requirements: Styles and Techniques, Addison-Wesley, 2002) presents a comprehensive survey of requirement analysis methods and notation. Weigers (Software Requirements, Microsoft Press, 1999) and Leffingwell and his colleagues (Managing Software Requirements: A Unified Approach, Addison-Wesley, 2000) present a useful collection of requirement best practices and suggest pragmatic guidelines for most aspects of the requirements engineering process. Robertson and Robertson (Mastering the Requirement Process, Addison-Wesley, 1999) present a very detailed case study that helps to explain all aspects of the software requirement analysis and the analysis model. Kovitz (Practical Software Requirements: A Manual of Content and Style, Manning Publications, 1998) discusses a step-by-step approach to requirement analysis and a style guide for those who must develop requirements specifications. Jackson (Software Requirements Analysis and Specification: A Lexicon of Practices, Principles and Prejudices, Addison-Wesley, 1995) presents an intriguing look at the subject from A to Z (literally). Ploesch (Assertions, Scenarios and Prototypes, Springer-Verlag, 2003) discusses advanced techniques for developing software requirements.
Windle and Abreo (Software Requirements Using the Unified Process, Prentice-Hall, 2002) discuss requirement engineering within the context of the Unified process and UML notation. Alexander and Steven (Writing Better Requirements, Addison-Wesley, 2002) present a brief set of guidelines for writing clear requirements, representing them as scenarios, and reviewing the end result.
Use-case modeling is often the driver for the creation of all other aspects of the analysis model. The subject is discussed at length by Bittner and Spence (Use Case Modeling, Addison-Wesley, 2002), Cockburn (Writing Effective Use Cases, Addison-Wesley, 2002), Armour and Miller (Advanced Use-Case Modeling: Software Systems, Addison-Wesley, 2000), Kulak and his colleagues (Use Cases: Requirements in Context, Addison-Wesley, 2000), and Schneider and Winters (Applying Use Cases, Addison-Wesley, 1998).