Defining Requirement Types: Traditional vs. Use Cases vs. User Stories