Functional Requirements Elicitation And Application Domain Modelling: A Knowledge-Based Approach