A device (D), intended for building applications from specifications (AS) and software components, comprises i) a storing means (SM) for storing semantic software components, made of a software component associated to a semantic description comprising at least one pertinent term for defining each public operation this software component is able to perform, ii) an analysis means (AM) arranged, each time it receives a specification (AS) describing an application to be built, for performing a semantic analysis of this specification (AS) to extract elementary requirements from the specification text, and links between these elementary requirements, these links defining ''the overall structure of the specification'', then for extracting, for each elementary requirement, the pertinent terms it comprises, and for building, for each elementary requirement, a ''semantic description'' based on its extracted pertinent terms and representing ''the semantics of this elementary requirement'', then for accessing to the storing means (SM) to determine, for each extracted elementary requirement, which component(s) is able to cover this extracted elementary requirement, and iii) a processing means (PM) for assembling the determined software components according to the overall structure of the specification in order to build said application (AP).