Aspect-oriented requirements engineering (AORE) techniques provide new composition mechanisms to specify and reason about dependencies that crosscut elements of a requirements specification. This paper introduces the basic concepts of aspect-oriented requirements engineering and its support for compositional reasoning--reasoning about dependencies and interactions--over a requirements specification. Typical applications of aspect-oriented requirements engineering techniques are also highlighted. The paper concludes with an annotated bibliography of key tools, techniques and application studies.