2012 Volume 29 Issue 2 Pages 2_43-2_64
Requirements engineering is a collection of technologies to define the external specifications that are behaviors and constraints of software system and the defined requirements have to reflect the meaning and value of our real world. This article explains a wide variety of the requirements engineering technologies from three general viewpoints: eliciting exact requirements, coping with volatility of requirements and dealing with variety among perspectives on a system.