A. User and Developer
B. Functional and Non-functional
C. Enduring and Volatile
D. All of the mentioned
Explanation: Enduring requirements are core requirements & are related to main activity of the organization while volatile requirements are likely to change during software development life cycle or after delivery of the product.