1. A method implemented in a data processing system, the method comprising: receiving input from one or more first users to generate a first ontology describing a software requirement; receiving input from one or more second users to map the first ontology to a second ontology describing software tools; and generating a software framework in the data processing system based on the input received from the one or more second users to map the first ontology to the second ontology.