I. Introduction
Computer and information technologies have been widely used for several purposes for more than a decade. Besides hardware, software plays a key role for computing systems. To build effective software, an appropriate and well-organized methodology is needed. User requirements for software development are getting more complicated and are changing all the time in order to meet and maintain the goals of business operation as well as an organization's vision and mission. Many factors and reasons may lead to requirements change [1]: user demands, increased understanding of customer needs, availability of new technologies, and, especially in today's changing world, organizational restructuring in response to business competition.