We call composition the mechanism for building software applications by service integration. Service-based applications often require properties like dynamic or non-deterministic service selection that require a new definition of software application, which turns out to be very difficult to perform manually. There is a need to automate this process by providing tools and environments. These tools should allow to build flexible software applications and to ensure the consistency and completeness properties of the composition. This thesis focuses on building software applications, from design to execution. In this thesis, we propose a service composition approach and a prototype named SELECTA that meets the needs and challenges of service composition, such as increasing the abstraction level for application specification, incremental building of composites, consistency management and completeness of composites, definition of service constraints languages or service selection algorithms.On appelle composition le mécanisme permettant la réalisation d'applications logicielles par intégration de services. Les applications à service exigeant souvent des propriétés telles que la sélection dynamique ou non déterministe des services, le concept d'application doit être défini différemment, et le processus de composition est très difficile à réaliser manuellement. Le processus de composition devrait être automatisé par des outils et des environnements logiciels. Ces outils devraient permettre d'une part la construction d'applications flexibles et d'autre part garantir la cohérence et la complétude de la composition. Cette thèse s'intéresse à la construction d'applications depuis leur conception jusqu'à leur exécution. Dans cette thèse, nous proposons une approche de composition de services et un prototype nommé SELECTA permettant de répondre aux besoins et aux défis de la composition de services, tels que l'augmentation du niveau d'abstraction de la spécification de la composition, la construction incrémentale de composites, la gestion de la cohérence et de la complétude de composites, la définition de langages de contraintes de services ou d'algorithmes de sélection de services