Introduces requirements engineering to undergraduate and graduate students in computer science, software engineering, and systems engineering. Part 1 is processoriented and describes different activities in the requirements engineering process. Part 2 focuses on requirements engineering techniques, covering the use of structured methods, viewpoint-oriented approaches, and specification of non- functional requirements and of interactive systems. A final chapter presents a case study illustrating a viewpoint-oriented approach. Includes chapter key points and exercises