Patent ID: 8453105

Claim:
A method for automatically building applications from specifications and software components comprising: each time a device receives a specification comprising text that includes terms describing functional and non-functional requirements to be performed by an application to be built: performing a semantic analysis of the text of the specification and extracting terms defining elementary requirements, links between the terms defining elementary requirements, and a logical order between the links, the links and the logical order between the links defining an overall structure of the specification, wherein the logical order is determined as a function of input and output parameters of software components configured to perform operations for carrying out the elementary requirements defined by the extracted terms; extracting, for each elementary requirement, pertinent terms in the elementary requirement and building, for each elementary requirement, a semantic description based on the extracted pertinent terms wherein the description represents semantics of the elementary requirement; accessing at least one component repository comprising stored semantic software components, each software component being associated to a semantic description comprising at least one pertinent term that defines each public operation said software component is able to perform; determining, for each extracted elementary requirement, by comparing the semantics of the elementary requirement and the software components' semantic descriptions, one or more software components able to perform said extracted elementary requirement; and assembling the determined one or more software components according to said overall structure of the specification, in order to build the application; wherein at least some of said semantic descriptions of the software components comprise: a goal of an operation the software component is able to perform; at least one domain identifier designating a domain comprising defined terms describing said operation's goal and input and output parameters of said operation; and at least one of pertinent terms and specific meta-data associated to the input and output parameters.