FR 2853426 A1 20041008 FR 0304176 A 20030404 La présente invention concerne un procédé et un système de création de logiciel à partir d'un ensemble de composants prédéfinis. Plus particulièrement, l'invention se situe dans le domaine de la conception de logiciel, dans lequel le concepteur n'a pas besoin d'avoir des connaissances informatiques particulières pour créer celui-ci. La création de logiciel est réservée en général à des personnes ayant des connaissances informatiques importantes. Pour ce faire, ces personnes écrivent les différentes instructions d'un programme informatique en utilisant un langage prédéfini, des règles syntaxiques, voire des librairies de programmes existantes. La 10 cohérence, le bon fonctionnement du logiciel sont alors entièrement à leur charge. Des mécanismes d'assemblage automatique de composants d'un programme existent dans l'état de la technique. Ce sont par exemple les mécanismes d'assemblage de composants nommés Java Bean. Un Java Bean est un composant logiciel réutilisable qui peut visuellement 15 être manipulé par un outil de construction d'applications. Un composant est un objet logiciel possédant des attributs et susceptibles de répondre à des évènements prédéfinis qui obéit à certaines conventions de désignation quant à ses méthodes d'accès aux attributs et à ses événements. Dès lors, il est possible de le manipuler et de l'assembler à d'autres composants au moyen d'un un outil de 20 manipulation de composants. Un outil de manipulation de composants permet de créer plus rapidement une application qu'une programmation classique. Les composants sont créés par des programmeurs de composants qui distribuent ensuite ces composants à des développeurs d'applications. Les développeurs d'applications assemblent ces composants en fixant les propriétés des composants et en établissant les interconnexions entre composants. Les développeurs doivent faire preuve de toute leur expertise pour sélectionner les bons composants à assembler et les assembler correctement entre eux. La demande de brevet américaine publiée sous la référence US-A2002/047865 30 décrit un procédé de production automatique de code programme. z Dans cette demande, est décrit un éditeur graphique permettant de représenter sous forme de symboles, des composants de programme. Les composants de programme possèdent des interfaces d'entrée et de sortie et le procédé propose des options de sélection pour relier les entrées d'un composant à des sorties d'un autre 5 composant. Ces connexions effectuées, le code du programme correspondant est produit de façon automatique. Pendant le processus d'assemblage de ces composants, le développeur n'est pas ou peu guidé. Il doit ainsi choisir parmi un ensemble de composants le composant le plus 10 adapté et assurer lui-même les interconnexions entre les composants qu'il a précédemment sélectionnés. L'invention tente de résoudre les inconvénients de l'art antérieur en proposant un procédé de création de logiciel pour jouer au moins un rôle à partir d'un ensemble de composants prédéfinis représentés sous forme graphique, des spécifications 15 d'interfaces étant associées à des composants, caractérisé en ce que lorsque ledit ou un rôle a été sélectionné, le procédé comporte les étapes de: - détermination parmi l'ensemble de composants, des spécifications d'interfaces de composants compatibles avec le rôle (E3), - génération d'une liste des composants dont les spécifications d'interfaces 20 déterminées à l'étape précédente sont compatibles avec le rôle (E3), - à la sélection d'un des composants de la liste (E4), assignation du rôle sélectionné au composant sélectionné (E5) pour jouer ledit rôle sélectionné. Corrélativement, l'invention propose un système de création de logiciel pour jouer au moins un rôle à partir d'un ensemble de composants prédéfinis représentés 25 sous forme graphique, des spécifications d'interfaces sont associées à des composants, caractérisé en ce que le système lorsque ledit ou un rôle a été sélectionné: - détermine parmi l'ensemble de composants, des spécifications d'interfaces de composants compatibles avec un rôle précédemment sélectionné, - génère une liste des composants dont les interfaces dont les spécifications d'interfaces déterminées à l'étape précédente sont compatibles avec le rôle sélectionné, - assigne, à la sélection d'un des composants de la liste, le rôle sélectionné au composant sélectionné pour jouer ledit rôle sélectionné. Ainsi, l'utilisateur n'a pas besoin de spécifier un composant nécessaire à la réalisation du logiciel, une simple indication d'un rôle à remplir par un composant permet au procédé de déterminer automatiquement quels sont les composants compatibles avec ce rôle et de ne proposer donc qu'un nombre limité de composants. 10 La sélection d'un composant par un utilisateur n'ayant pas de connaissances en informatique est alors réalisable. Plus précisément, à la sélection d'un des composants de la liste, on détermine parmi un ensemble de rôles une liste de rôles susceptibles d'être sélectionnés. Ainsi, la détermination automatique par le procédé de rôles susceptibles d'être 15 utilisés rend la tâche de l'utilisateur encore plus aisée. Il est ainsi aidé et guidé par le procédé lorsque celui-ci crée un logiciel. Plus particulièrement, une spécification d'interface comporte pour chaque port du composant auquel elle est associée des informations sur la nature du port et le type du port. Un port est de nature port méthodes offertes ou port méthodes requises ou 20 port puits d'évènements ou port source d'évènements. Ainsi, la caractérisation des composants, entre autres sous forme de spécification, rend la détermination des composants compatibles avec un rôle simple à réaliser tout en étant efficace. Plus précisément, un composant, dit composite, comporte une pluralité de 25 composants sélectionnables et une spécification de composite est associée au composite, la spécification de composite comprenant entre autre les rôles de la pluralité de composants. Ainsi, le procédé, en utilisant des composites, offre une grande flexibilité d'assemblage pour l'utilisateur. Plus précisément, la spécification de composite comporte en outre des informations représentatives du nombre de fois qu'un composant peut être sélectionné. Ainsi, la flexibilité est améliorée, et permet aussi la création d'un nombre important de logiciels avec un seul composite. Plus particulièrement, la spécification de composite comporte en outre des informations représentatives des connexions susceptibles d'être établies entre les composants du composite et des connexions susceptibles d'être établies entre lesdits composants et le composite. La spécification de composite comporte en outre des 10 informations représentatives de la nature des ports du composite. Ceci permet pour une composition particulière, d'obtenir des informations pour la réalisation des différentes connexions des composants sélectionnés. Plus particulièrement, la spécification de composite comporte en outre des informations représentatives d'au moins un rôle que le composite réalise explicitement 15 et l'on assigne automatiquement le ou chaque rôle au composite. Avantageusement, on met à jour des connexions à chaque composant sélectionné. Ainsi, l'utilisateur n'a pas à se préoccuper de la réalisation des connexions entre les différents composants. Le procédé réalise ces connexions de manière automatique 20 et cela sans intervention de l'utilisateur. L'utilisateur n'a qu'à choisir parmi les rôles que le procédé lui propose, le rôle qu'il veut utiliser. Le procédé se charge de réaliser les interconnexions entre le composant associé au rôle et d'autres composants précédemment sélectionnés. Avantageusement, on met à jour un référentiel de composants. Ainsi, la détermination du ou des composants compatibles sera beaucoup plus rapide, le procédé utilise alors les sélections passées pour réduire sa recherche. Avantageusement, on met à jour une table de rôles sélectionnables. Ceci permet à tout moment au procédé de connaître et de proposer à l'utilisateur les rôles que celui-ci peut sélectionner. Avantageusement, le système comporte des moyens de saisie de représentation graphique de composants et/ou de composites et des moyens de détermination de spécifications de composants. Ainsi, l'utilisation des composants et composite sera plus facile pour un utilisateur peu familier avec les langages informatiques. Avantageusement, le système comporte des moyens de mémorisation du référentiel de composant et/ou de la table des rôles et/ou de la table des rôles sélectionnables et/ou de la table de diffusion des évènements. Ainsi, l'utilisateur peut mémoriser en cours de création de logiciel la portion de 10 logiciel qu'il a réalisé pour ensuite réutiliser celle-ci. L'invention concerne aussi un composite, caractérisé en ce qu'il comporte une pluralité de composants sélectionnables et en ce qu'une spécification de composite est associée au composite, la spécification de composite comprenant entre autres tous les rôles de la pluralité de composants. Plus précisément, la spécification de composite comporte en outre des informations représentatives du nombre de fois qu'un composant peut être sélectionné. Avantageusement, la spécification de composite comporte en outre des informations représentatives des connexions susceptibles d'être établies entre les 20 composants du composite et des connexions susceptibles d'être établies entre des composants et des ports du composite. Plus précisément, la spécification de composite comporte en outre des informations représentatives de la nature des ports du composite. L'invention concerne aussi un support d'informations, éventuellement 25 totalement ou partiellement amovible, lisible par un système informatique, caractérisé en ce qu'il contient des instructions d'un programme d'ordinateur, permettant la mise en oeuvre du procédé tel que précédemment décrit. L'invention concerne aussi le programme d'ordinateur stocké sur un support d'informations, ledit programme comportant des instructions permettant de mettre en oeuvre le procédé de traitement précédemment décrit, lorsqu'il est chargé et exécuté par un système informatique. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de 5 réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels: - la Fig. 1 représente une vue schématique d'un système comprenant des composants selon l'invention; - la Fig.2 représente une vue schématique d'un composite comprenant des 10 composants selon l'invention; - la Fig. 3 représente l'algorithme d'assemblage selon l'invention; - la Fig. 4 représente les types de composants contenus dans un référentiel de types de composants; les Figs. 5a et 5b représentent l'algorithme de mise à jour des connexions 15 et des délégations selon l'invention; - la Fig. 6 représente l'algorithme de mise à jour de la table de diffusion des évènements selon l'invention; - la Fig. 7 représente le système de construction de logiciel selon l'invention. La Fig. 1 représente une vue schématique d'un système 10 comprenant des composants selon l'invention. Le système 10 à titre d'exemple est constitué de cinq composants de programme informatiques notés 1 la à 1 ie. Les composants 1 1 sont des programmes informatiques 25 qui sont destinés à fournir des services à d'autres composants. Un service est par exemple une suite d'opérations effectuées par le composant 1 lb lorsqu'un autre composant 1 ic en fait la requête. Le système 10 selon la Fig. 1 est organisé hiérarchiquement, c'est-à-dire que les composants 1 la et 1 lc, 1 la et 1 lb, 1 lc et 1 ld, 1 ic et 1 le sont liés entre eux par une 30 relation de décomposition. Une relation de décomposition définit la relation de parenté qui existe entre un composant père et un composant fils. Les composants il b et lic, respectivement il d et lie sont quant à eux au même niveau d'abstraction. Aucune relation de décomposition n'existe entre eux. Chaque composant 11 est assimilé à un couple d'informations o i est l'interface du composant (notée 12 en Fig. 1), concrétisée par ses ports et ses 5 propriétés et co la composition (notée 13 en Fig. 1) de composants utilisés par le composant pour fournir des services aux autres composants. L'interface i représente le potentiel d'assemblage du composant à d'autres composants. Contrairement à l'état de la technique o les interfaces sont représentatives du potentiel d'interaction avec un autre composant, c'est-à-dire la 10 collection d'opérations qui peuvent s'appliquer à un composant, l'interface i selon l'invention représente le moyen élémentaire pour établir une connexion. Elle n'est pas représentative de la collection d'opérations qui peuvent s'appliquer au composant. L'interface i selon l'invention est constituée de ports, un port étant un module par lequel un composant peut émettre des requêtes à destination d'un autre composant 15 ou traiter des requêtes issues d'un autre composant. Il existe selon l'invention des ports de quatre natures: - le port méthodes offertes qui est un port par lequel un composant exécute des méthodes appelées par un autre composant, - le port méthodes requises qui est un port par lequel un composant 20 appelle des méthodes d'un autre composant, - le port puits d'évènements qui est un port par lequel un composant écoute des événements, - le port source d'évènements qui est un port par lequel un composant émet des évènements. Deux composants sont connectés entre eux si un des composants possède un port méthodes offertes et l'autre un port méthodes requises, ou si un des composants possède un port puits d'évènements et l'autre un port source d'événements. Ceci bien sûr si les types de ports sont compatibles, c'està-dire qu'un des types est un sous type ou un sur type de l'autre selon la nature du port. A titre d'exemple, le composant 1 lb possède un port méthodes requises qui est connectée au composant 1lc disposant d'un port méthodes offertes. Ceci est symbolisé par la flèche notée 14a. De la même manière, le composant il d possède un port source d'évènements 5 qui est connectée au composant 1 le disposant d'une port puits d'évènements. Ceci est symbolisé par la flèche notée 14b. Dans le cas d'un système ou d'un composite 10, la composition est l'organisation des rôles remplis par les composants constitutifs du système ou du composite. Par exemple, pour le système 10, la composition co est constituée des rôles des composants lia, llb, llc, ildet île. La composition du composant 1 ic est constituée des rôles des composants 1 Id et 1 le. La Fig. 2 représente une vue schématique d'un composite 20 selon l'invention. 15 Il est à remarquer qu'un composant comprenant plusieurs composants est appelé un composite. Un composite est un ensemble de composants que l'utilisateur est susceptible d'utiliser en sélectionnant ceux-ci. Ainsi, un composite est construit à partir d'éléments modifiables. Un système est un ensemble de composants et/ou de composites que l'utilisateur est susceptible d'utiliser en sélectionnant ceux-ci. Il est néanmoins à remarquer qu'un système et un composite peuvent être ici considérés comme similaires. A ce composite 20, est associée une spécification de composite. Cette 25 spécification de composite comprend l'ensemble des spécifications des composants que le développeur est susceptible d'utiliser dans la construction d'un composant à partir de ce composite. La spécification de composite est composée d'une spécification de l'interface du composite notée 1, et d'une spécification des règles de compositions des rôles des composants notée Q. Il est à remarquer qu'à une spécification de composite notée correspondent des composants ou des composites associés à des couples notés susceptibles d'être sélectionnés par l'utilisateur. La spécification d'interface I comprend l'ensemble de spécifications des ports du composite. Ce sont par exemple les ports notés en Fig. 2 21a, 21b, 21c, 21d et 21e. La spécification d'interface I comprend pour chaque port du composite le nom du port, sa nature (port méthodes offertes, port méthodes requises, ports puits d'événements ou ports source d'événements) et aussi le type de port. Le type d'un port méthodes correspond à la désignation de l'ensemble des opérations susceptibles 10 d'être exécutées. Dans le cas d'un port événementiel, le type représente le type d'évènements transmis. La spécification d'interface I comprend en outre l'ensemble des propriétés associées à ce composite 20. Une propriété définit une contrainte sur les paramètres rendus par le composite. Une propriété comprend, son nom, son type (entier, chaîne 15 de caractères), sa valeur par défaut et un indicateur précisant si la valeur par défaut est modifiable ou non. A titre d'exemple, la spécification d'interface I du composite 20 comprend deux propriétés notées 22a et 22b. La spécification des règles de composition des composants comprend la spécification des liens notés 24c et 24d susceptibles d'être établis entre les rôles des 20 composants 23a, 23b et 23c, mais aussi des liens susceptibles d'être établis entre les rôles des composants 23a, 23b et 23c et les ports 21 du composite 20. Ces liens sont référencés 24a, 24b et 24e, ce sont des délégations. Une délégation permet à un composite 20 de déléguer un de ses ports 21 à un des composants 23 qu'il contient. Un simple transfert est alors effectué. La spécification des règles de compositions ou spécification des règles de compositions des composants comprend aussi une spécification des rôles des composants 23 susceptibles d'intervenir dans la composition. Il est à remarquer que certains ports notés 21b et 21e de la Fig. 2 ne sont pas reliés à d'autres ports. Ce sont par exemple des ports implicitement connectés ou des 30 ports utilisés implicitement par le composite. La spécification des règles de compositions des composants Q comprend aussi la spécification des rôles des composants susceptibles d'être utilisés. Ces composants sont notés 23a, 23b et 23c en Fig. 2. Selon un mode particulier, la spécification des règles de compositions des 5 composants Q comprend aussi la spécification d'un ou plusieurs rôles explicitement réalisé (s) par le composite 20. La spécification des rôles des composants comporte aussi des informations représentatives de la quantité minimale et maximale de composants 23 conformes à la spécification pouvant intervenir dans la composition. Par exemple, le composant 23a 10 devra être utilisé une fois, tandis que les composants 23b et 23c pourront l'être trois fois. La spécification des rôles des composants Q comporte aussi la nature des interfaces des composants susceptibles de remplir ces rôles. La spécification des règles de compositions des composants Q comprend aussi 15 la spécification des connexions entre les composants 23 susceptibles d'être utilisées. Cette spécification des connexions indique les quantités minimales et maximales de connections devant exister entre chaque composant. Ces quantités dépendent du nombre de composants utilisés dans un composite pour un rôle donné. Il est à remarquer que le port 25 du rôle 23a est un port méthodes requises relié 20 au port méthodes offertes 26 du rôle 23b. Le port 27 du rôle 23c est un port source d'évènements relié à un port puits d'évènements 28 du rôle 23b. La Fig. 3 représente l'algorithme d'assemblage selon l'invention qui guide le développeur d'applications dans la sélection des rôles des composants ainsi que la 25 réalisation de l'application. Cet algorithme est par exemple exécuté sur un ordinateur. Au lancement de l'application par un utilisateur, le processeur de l'ordinateur lit à partir de la mémoire morte de l'ordinateur ou d'un support d'informations tel qu'un disque compact CDROM, les instructions du programme correspondant aux étapes El à EIO de la Fig. 3 30 et les charge en mémoire vive RAM pour les exécuter. il En variante, les instructions du programme correspondant aux étapes El à E 10 de la Fig. 3 sont téléchargées à partir d'un site distant par l'intermédiaire d'un réseau de communication et chargées en mémoire vive RAM pour les exécuter. D'une manière générale, l'algorithme selon l'invention, à partir de la 5 spécification d'un composite sélectionné par l'utilisateur, guide celuici dans le choix des composants ou rôles. Il interconnecte automatiquement les composants ou rôles. La première étape de l'algorithme El consiste pour l'utilisateur à sélectionner un rôle de composant, un rôle de composite ou un rôle de système. Au début d'un processus, seul un rôle de système peut être choisi parmi une 10 bibliothèque de rôles de systèmes. Le rôle de système sélectionné, le processeur passe ensuite à l'étape E2. A cette étape, le processeur vérifie si un composant ou un composite déjà utilisé est compatible avec le rôle sélectionné par l'utilisateur. Il est à remarquer qu'au début de l'algorithme, aucun composant ou composite n'a été précédemment utilisé. Le 15 processeur passe donc à l'étape suivante E3. Le processeur à l'étape E3 interroge une base de données appelée référentiel de types de composants. Ce référentiel contient les références de tous les types de composants de la base de données. A titre d'exemple, le référentiel des composants comporte les références des composants 40, 41, 42 et 43 de la base de données 20 représentée à la Fig. 4. Chacune des références des composants 40, 41, 42 et 43 est associée à un type ou une famille de composants. La référence de composant 40 est une référence de composite comprenant des composants 400 et 401 susceptibles d'être sélectionnés par l'utilisateur. Le composant 400 ou rôle système comprend un port méthodes offertes noté 25 406 de type I. Le composant 401 ou rôle système comprend un port méthodes offertes noté 405 de type K ainsi qu'un port méthodes requises noté 404 de type I. La référence de composant 41 est une référence de composant qui comprend un port méthodes offertes de type I. La référence de composant 42 est une référence de composant qui comprend un port méthodes offertes de type I et un port méthodes offertes de type L. La référence de composant 43 est une référence de composant qui comprend un port méthodes offertes de type K ainsi qu'un port méthodes requises de type I. Le processeur recherche dans le référentiel de types de composants RTC, les types de composants compatibles avec le rôle choisi. Il est à remarquer que le référentiel de types de composants est situé sur un site distant, accessible par l'intermédiaire d'un réseau de communication. Il peut aussi, en variante, être mémorisé en mémoire de l'ordinateur. Pour cela, le processeur crée une nouvelle liste, et pour tous les composants contenus dans le référentiel de types de composants, le processeur vérifie si le type de chaque composant est compatible avec le rôle, et dans l'affirmative, le processeur inclut ce type de composant dans la nouvelle liste. Pour cela, le processeur recherche la compatibilité d'un type de composant avec 15 le rôle en vérifiant si tous les composants sont conformes à ce type: - possèdent un port méthodes offertes compatible avec chaque port méthodes offertes du rôle, - ne possèdent pas un nombre de ports méthodes requises supérieur à celles que ne le permet le rôle, - écoutent tous les événements que le rôle déclare pouvoir écouter, - n'émettent pas plus d'événements que le rôle ne l'autorise. En variante, la recherche de la compatibilité d'un type de composant avec le rôle est effectuée seulement en vérifiant si tous les composants conformes à ce type: - possèdent un port méthodes offertes compatible avec chaque port méthodes 25 offertes du rôle, - écoutent tous les événements que le rôle déclare pouvoir écouter, - n'émettent pas plus d'événements que le rôle ne l'autorise. Dans ce cas, si l'on ne vérifie pas que tous les composants conformes à ce type ne possèdent pas un nombre de ports méthodes requises supérieur à celles que ne le 30 permet le rôle, une vérification est néanmoins nécessaire ultérieurement. Durant cette vérification, si à un composant sont assignés plusieurs rôles, on vérifie que le composant ne possèdent pas un nombre de ports méthodes requises supérieur à la somme des nombres de ports méthodes que ne le permettent les rôles. Dans une autre variante, la recherche de la compatibilité d'un type de composant 5 avec le rôle est effectuée seulement en vérifiant si tous les composants conformes à ce type: - possèdent un port méthodes offertes compatible avec chaque port méthodes offertes du rôle, - ne possèdent pas un nombre de ports méthodes requises supérieur à celles que 10 ne le permet le rôle, - écoutent tous les événements que le rôle déclare pouvoir écouter. Selon encore une autre variante, la recherche de la compatibilité d'un type de composant avec le rôle est effectuée seulement en vérifiant si tous les composants conformes à ce type: - possèdent un port méthodes offertes compatible avec chaque port méthodes offertes du rôle, - écoutent tous les événements que le rôle déclare pouvoir écouter. Ces variantes permettent de proposer un nombre plus important de types de composants compatibles. Le processeur propose ensuite tous les composants dont le type est compatible avec le rôle à l'utilisateur. Lorsque l'utilisateur sélectionne un des composants proposés à l'étape E4, le processeur modifie une base de données locale appelée référentiel de composants RC, en incluant dans celle-ci la référence du composant sélectionné par l'utilisateur à 25 l'étape E4. Ce référentiel de composants est par exemple stocké en mémoire de l'ordinateur. A titre d'exemple, l'utilisateur ayant sélectionné le système 40 représenté en Fig. 4, la référence du système 40 est alors inscrite dans le référentiel de composants RC. Le processeur passe ensuite à l'étape E5. A cette étape, le processeur crée le rôle en lui assignant le composant choisi. Pour cela, le processeur crée une table des rôles TR qui comporte le nom du rôle, le nom du composant sélectionné ainsi que le type du composant sélectionné. Il est à remarquer que lorsque la table TR a déjà été créée, le processeur 5 réactualise seulement celle-ci en ajoutant le nom du nouveau rôle, le nom du composant sélectionné ainsi que le type du composant sélectionné. Cette opération effectuée, le processeur passe à l'étape E6 et déduit les nouveaux rôles sélectionnables. Pour cela, le processeur crée une table des rôles sélectionnables. Cette table des 10 rôles sélectionnables est la table des rôles que l'utilisateur est susceptible de choisir par la suite à l'étape El. Cette table comprend tout d'abord le rôle système, seul rôle pouvant être sélectionné par un utilisateur comme premier choix de rôle à sélectionner. Le système 40 de la Fig. 4 ayant été sélectionné, et ce composite 40 comprenant 15 des composants 400 et 401 susceptibles d'être choisis par l'utilisateur, le processeur inclut les rôles des composants 400 et 401 dans la table des rôles sélectionnables TRI. Le processeur obtient ces informations en consultant la spécification du composite 40. A partir de la spécification des règles de compositions des composants, le 20 processeur insère dans la table des rôles sélectionnables la quantité minimale et maximale pour chaque rôle 400 et 401 du composite 40. A titre d'exemple, le composant 401 peut être sélectionné trois fois dans le composite 40, tandis que le composant 400 doit être sélectionné au maximum une fois dans le composite 40. La quantité minimale est donc de zéro fois pour le composant 401 et une fois pour le composant 400. La quantité maximale est donc de une fois pour le composant 400 et trois fois pour le composant 401. Le processeur insère aussi dans la table des rôles sélectionnables le nombre de fois que chaque composant 400 et 401 a été sélectionné. Si la recherche de la compatibilité d'un type de composant avec le rôle a été effectuée à l'étape E3 sans vérifier si tous les composants conformes à ce type ne possèdent pas un nombre de ports méthodes requises supérieur à celles que ne le permet le rôle, cette vérification (non représentée en Fig. 3) est par exemple effectuée 5 après l'étape E6. Si cette règle n'est pas vérifiée, le processeur indique à l'utilisateur, par tout moyen visuel ou sonore, le problème lié au composant sélectionné à l'étape E4. Cette opération réalisée, le processeur passe ensuite à l'étape E9. A cette étape, le processeur met à jour les connexions et les délégations pour 10 tous les composants inclus dans le référentiel de composants RC. L'algorithme de mise à jour des connexions et des délégations sera décrit ultérieurement en référence aux Figs. 5a et 5b. Cet algorithme effectué, le processeur passe à l'étape E10 qui consiste à mettre à jour la table de diffusion des évènements. L'algorithme de mise à jour des connexions et des délégations sera décrit ultérieurement en référence à la Fig. 6. Cette opération réalisée, le processeur retourne à l'étape El. L'utilisateur sélectionne à cette étape un des rôles contenus dans la table des rôles sélectionnables précédemment décrite. Ici, l'utilisateur a le choix entre le rôle 20 système 400 et le rôle système 401. A titre d'exemple, l'utilisateur sélectionne le rôle système 400. Le rôle sélectionné, le processeur passe ensuite à l'étape E2. A cette étape, le processeur vérifie si un composant ou un composite déjà utilisé est compatible avec le rôle sélectionné par l'utilisateur. Cette vérification est effectuée en consultant la base de données locale RC appelée référentiel de composants. Il est à remarquer que jusqu'à présent, seul le composite 40 ayant été sélectionné et inclus dans le référentiel de composants, la vérification est négative et le processeur passe à l'étape E3. Le processeur à l'étape E3 interroge le référentiel de types de composants RTC contenant les références de tous les types de composants de la base de données constituée des composants 40, 41, 42 et 43 représentée à la Fig. 4. Le processeur recherche, dans le référentiel de types de composants RTC, les types de composants compatibles avec le rôle choisi. Le processeur vérifie alors la compatibilité d'un type de composant avec le rôle en vérifiant si tous les composants sont conformes à ce type: possèdent un port méthodes offertes compatible avec chaque port méthodes offertes du rôle. Dans notre cas, seul le type de composant conforme au composant 41 10 satisfait à cette règle. Il dispose d'un port méthodes offertes et de même type I que le composant 400. Le type de composant 43 ne satisfait pas à cette règle car son port méthodes offertes est de type K incompatible avec le type I. - ne possèdent pas un nombre de ports méthodes requises supérieur à celles que ne le permet le rôle. Dans notre cas, seul le type de composant 41 satisfait à cette 15 règle. - écoutent tous les événements que le rôle déclare pouvoir écouter, n'émettent pas plus d'événements que le rôle ne l'autorise, ce qui est le cas pour le type de composant 41. Le processeur propose ensuite une nouvelle liste de tous les composants du 20 même type que le composant 41 à l'utilisateur. Ceci est par exemple réalisé en affichant à l'écran d'un ordinateur une représentation graphique, similaire à celle représentée en Fig. 4, de tous les composants de la liste. Il est à remarquer que les variantes des règles précédemment décrites au premier passage à l'étape E3 sont aussi valides lors de ce passage à l'étape E3. L'utilisateur, dans notre cas, sélectionne le composant 41 à l'étape E4. Il est à remarquer qu'une spécification de composite peut comporter des informations représentatives d'au moins un rôle que le composite réalise explicitement. Dans ce cas, le composant associé est sélectionné automatiquement par le processeur. Le processeur passe ensuite à l'étape ES. A cette étape, le processeur crée le rôle en lui assignant le composant 41. Le processeur réactualise la table des rôles TR en ajoutant le nom du nouveau rôle (système 400), le nom du composant sélectionné (41) ainsi que le type du composant sélectionné (type 41). Cette opération effectuée, le processeur passe à l'étape E6 et déduit les nouveaux rôles sélectionnables en consultant la table des rôles sélectionnables (TRI). Le processeur incrémente dans la table des rôles sélectionnables le nombre de fois que le composant 400 a été sélectionné et vérifie si la quantité maximale de sélection a été atteinte pour le composant 400. Ce qui est le cas pour le composant 400. Ce composant n'est plus sélectionnable. Si la recherche de la compatibilité d'un type de composant avec le rôle a été effectuée à l'étape E3 sans vérifier si tous les composants conformes à ce type ne possèdent pas un nombre de ports méthodes requises supérieur à celles que ne le 15 permet le rôle, cette vérification (non représentée en Fig. 3) est par exemple effectuée après l'étape E6. Si cette règle n'est pas vérifiée, le processeur indique à l'utilisateur, par tout moyen visuel ou sonore, le problème lié au composant sélectionné à l'étape E3. Le processeur met à jour à l'étape suivante E9, les connexions et les délégations 20 pour tous les composants inclus dans le référentiel de composants RC. L'étape E9 effectuée, le processeur passe à l'étape EIO qui consiste à mettre à jour la table de diffusion des évènements. Cette opération réalisée, le processeur retourne à l'étape El. Par exemple, une représentation graphique des composants associés aux rôles 25 contenus dans la table des rôles sélectionnables est effectuée à l'écran de l'ordinateur de l'utilisateur et une invitation à sélectionner un des rôles lui est faite. L'utilisateur à cette étape sélectionne un des rôles contenus dans la table des rôles sélectionnables précédemment décrite. Ici, l'utilisateur ne peut que choisir le rôle système 401. Le rôle de composant sélectionné, le processeur passe ensuite à l'étape E2. A cette étape, le processeur vérifie si un composant ou un composite déjà utilisé est compatible avec le rôle sélectionné par l'utilisateur. Ici, la vérification est négative et le processeur passe à l'étape E3. Le processeur à l'étape E3 interroge le référentiel de types de composants RTC contenant les références de tous les types de composants de la base de données constituée des composants 40, 41, 42 et 43 représentée à la Fig. 4. Le processeur recherche, dans le référentiel de types de composants RTC, les types de composants compatibles avec le rôle choisi. Cette recherche de compatibilité 10 d'un type de composant avec le rôle est effectuée en vérifiant si tous les composants sont conformes à ce type: - possèdent un port méthodes offertes compatible avec chaque port méthodes offertes du rôle. Dans notre cas, les types de composants conformes aux composants 41 et 43 satisfont à cette règle. Dans notre cas, seul le type de composant conforme au 1 5 composant 43 satisfait à cette règle. Il dispose d'un port méthodes offertes et de même type K que le composant 401. Le type de composant 41 ne satisfait pas à cette règle car son port méthodes offertes est de type I incompatible. - ne possèdent pas un nombre de ports méthodes requises supérieur à celles que ne le permet le rôle. Dans notre cas, le type de composant conforme au composant 43 20 satisfait à cette règle. - écoutent tous les événements que le rôle déclare pouvoir écouter, n'émettent pas plus d'événements que le rôle ne l'autorise, ce qui est le cas pour le type de composant 43. Le processeur propose ensuite une nouvelle liste de tous les composants du type 25 du composant 43 à l'utilisateur. Il est à remarquer que les variantes des règles précédemment décrites au premier passage à l'étape E3 sont aussi valides lors de ce passage à l'étape E3. L'utilisateur, dans notre cas, sélectionne par exemple le composant 43 à l'étape E4. Le processeur passe ensuite à l'étape ES. A cette étape, le processeur crée le rôle en lui assignant le composant 43. Le processeur réactualise la table des rôles TR en ajoutant le nom du nouveau rôle (système 401), le nom du composant sélectionné (43) ainsi que le type du composant sélectionné (type 43). Cette opération effectuée, le processeur passe à l'étape E6 et déduit les nouveaux rôles sélectionnables en consultant la table des rôles sélectionnables. Le processeur incrémente dans la table des rôles sélectionnables le nombre de fois que le composant 400 a été sélectionné et vérifie si la quantité maximale de sélection a été atteinte pour le composant 400. Si la recherche de la compatibilité d'un type de composant avec le rôle a été effectuée à l'étape E3 sans vérifier si tous les composants conformes à ce type ne possèdent pas un nombre de ports méthodes requises supérieur à celles que ne le permet le rôle, cette vérification (non représentée en Fig. 3) est par exemple effectuée après l'étape E6. Si cette règle n'est pas vérifiée, le processeur indique à l'utilisateur, 15 par tout moyen visuel ou sonore, le problème lié au composant sélectionné à l'étape E4. Le processeur met à jour à l'étape E9 les connexions et les délégations pour tous les composants inclus dans le référentiel de composants RC. Il met alors à jour la connexion notée 402 en Fig. 4. L'étape E9 effectuée, le processeur passe à l'étape ElO qui consiste à mettre à jour la table de diffusion des évènements. La mise à jour effectuée, le processeur retourne à l'étape El. Par exemple, une représentation graphique des composants associés aux rôles contenus dans la table des rôles sélectionnables est effectuée à l'écran de l'ordinateur 25 de l'utilisateur et une invitation à sélectionner un des rôles lui est faite. L'utilisateur sélectionne à cette étape de nouveau le rôle système 401, seule possibilité. Le rôle de composant sélectionné, le processeur passe ensuite à l'étape E2. A cette étape, le processeur vérifie si un composant déjà utilisé est compatible avec le rôle sélectionné par l'utilisateur. Ici, la vérification est positive, le rôle sélectionné étant identique au précédent rôle, le processeur passe à l'étape E7. Le processeur à l'étape E7 interroge le référentiel de composants RC contenant les références de tous les types de composants déjà utilisés. A cette étape, le processeur propose les composants compatibles avec le rôle choisi. Cette recherche de compatibilité d'un type de composant avec le rôle est effectuée en utilisant les mêmes règles que celles utilisées à l'étape E4 précédemment décrite. Cette opération effectuée, le processeur passe aux étapes E5, E6, E9 et EIO 10 précédemment décrites. Si l'utilisateur ne désire plus sélectionner de nouveaux rôles, l'algorithme s'arrête à l'étape El0. Les Figs. 5a et 5b représentent l'algorithme de mise à jour des connexions et des délégations selon l'invention. Cet algorithme est par exemple exécuté sur un ordinateur. Au lancement de l'application par un utilisateur, le processeur de l'ordinateur lit à partir de la mémoire morte de l'ordinateur ou d'un support d'informations tel qu'un disque compact CDROM, les instructions du programme correspondant aux étapes E500 à E522 des Figs. 5a et 5b et les charge en mémoire vive RAM pour les exécuter. En variante, les instructions du programme correspondant aux étapes E500 à E522 des Figs. 5a et 5b sont téléchargées à partir d'un site distant par l'intermédiaire d'un réseau de communication et chargées en mémoire vive RAM pour les exécuter. A l'étape E500 de la Fig. 5a, le processeur prend le premier composant contenu dans le référentiel composant RC. Ce référentiel composant contient tous les 25 composants sélectionnés ainsi que leur référence. Ensuite, à l'étape E501, le processeur prend la première spécification de connexion contenue dans la spécification de connexions du composant. Cette opération effectuée, le processeur recherche les rôles à l'origine de la connexion à l'étape E502. Le processeur recherche, à l'étape E503, les rôles destinataires de la connexion. Le processeur prend à l'étape E504 le premier rôle à l'origine d'une connexion trouvée à l'étape E502. Le processeur prend à l'étape E505 le premier rôle destinataire d'une connexion trouvée à l'étape E503 Le processeur, à l'étape E506, établit pour le rôle destinataire d'une connexion, une connexion entre les ports spécifiés du rôle d'origine et du rôle destinataire. Le processeur vérifie ensuite l'étape E507 si le rôle destinataire d'une connexion est le dernier des rôles destinataires recherchés à l'étape E503 précédemment décrite. Dans la négative, le processeur passe à l'étape E508, prend le rôle destinataire 10 d'une connexion suivante et réitère les étapes E506, E507 et E508 tant que tous les rôles destinataires n'ont pas été traités. Si le test de l'étape E507 est positif, le processeur passe à l'étape E509, qui consiste à vérifier si le rôle à l'origine d'une connexion est le dernier des rôles à l'origine d'une connexion recherchés à l'étape E504 précédemment décrite. Dans la négative, le processeur passe à l'étape E510, prend le rôle à l'origine d'une connexion suivante et réitère les étapes E505, E506, E507, E508, E509 et E510 tant que tous les rôles à l'origine d'une connexion n'ont pas été traités. Si le test de l'étape E509 est positif, le processeur passe à l'étape E511, qui consiste à vérifier si la dernière des spécifications de connexions contenues dans la 20 spécification du composant a été traitée. Dans la négative, le processeur passe à l'étape E512, le processeur prend la spécification de connexion suivante contenue dans la spécification du composant et réitère les étapes E502 à E51 1. Si le test de l'étape E51 1 est positif, le processeur passe à l'étape E513 de la 25 Fig. 5b. Le processeur à l'étape E513 prend la première spécification de délégation contenue dans la spécification du composant. Cette opération effectuée, le processeur à l'étape E514 recherche les rôles à l'origine ou destinataires d'une délégation. A l'étape E515, le processeur prend le premier des rôles à l'origine ou destinataire d'une délégation trouvée à l'étape E514. A l'étape E516, le processeur établit la délégation entre le port spécifié du rôle et le port correspondant du composite. L'étape suivante E517, qui consiste à vérifier si le rôle à l'origine ou destinataire d'une délégation est le dernier des rôles à l'origine ou destinataire d'une délégation recherchés à l'étape E514 précédemment décrite. Dans la négative, le processeur passe à l'étape E5 18, le processeur prend le rôle à l'origine ou destinataire d'une délégation suivante et réitère les étapes E516, E517 et 10 E518. Si le test de l'étape E517 est positif, le processeur passe à l'étape E519, qui consiste à vérifier si la dernière des spécifications de délégation contenue dans la spécification du composant a été traitée. Dans la négative, le processeur passe à l'étape E520, prend la spécification de 15 délégation suivante et réitère les étapes E514 à E520. Dans l'affirmative, le processeur passe à l'étape E521 qui consiste à vérifier si le composant du référentiel est le dernier des composants du référentiel des composants. Si le test de l'étape E521 est négatif, le processeur passe à l'étape E522 et prend le composant suivant du référentiel de composants. Les étapes E501 à E521 sont ainsi 20 réitérées. Si le test de l'étape E521 est positif, toutes les connexions et délégations ont été mises à jour de façon automatique et sans intervention de l'utilisateur. La mise à jour des connexions et des délégations est effectuée à chaque nouvelle sélection de composant. Ainsi, pour tous les composants du référentiel de composants, et pour toutes les spécifications de connexions contenues dans la spécification de chaque composant, on recherche les rôles à l'origine d'une connexion, on recherche les rôles destinataires d'une connexion. Pour chaque rôle à l'origine d'une connexion et pour chaque rôle destinataire d'une connexion, on établit une connexion entre les ports spécifiés du rôle d'origine et du rôle destinataire. Pour tous les composants du référentiel de composants, et pour toutes les 5 spécifications de délégations contenues dans la spécification de chaque composant, on recherche les rôles à l'origine d'une délégation, on recherche les rôles destinataires d'une délégation. Pour chaque rôle à l'origine ou destinataire d'une délégation, on établit une connexion entre le port spécifié du rôle et le port correspondant du composite. La Fig. 6 représente l'algorithme de mise à jour de la table de diffusion des événements selon l'invention. Cet algorithme est par exemple exécuté sur un ordinateur. Au lancement de l'application par un utilisateur, le processeur de l'ordinateur lit à partir de la mémoire morte de l'ordinateur ou d'un support d'informations tel qu'un disque compact CD15 ROM, les instructions du programme correspondant aux étapes E600 à E622 de la Fig. 6 et les charge en mémoire vive RAM pour les exécuter. En variante, les instructions du programme correspondant aux étapes E600 à E622 de la Fig. 6 sont téléchargées à partir d'un site distant par l'intermédiaire d'un réseau de communication et chargées en mémoire vive RAM pour les exécuter. A l'étape E600, le processeur prend la première spécification de composant. Cette opération effectuée, le processeur passe à l'étape E601 qui consiste à rechercher dans la spécification de composant l'existence d'au moins un port source d'événements. Si la recherche de l'étape E601 est infructueuse, le processeur passe à l'étape 25 E602 qui consiste à prendre la spécification de composant suivante. Si la spécification de composant contient un port source d'événements ou source, le processeur mémorise à l'étape E603 la spécification de source d'événement. Cette opération réalisée, le processeur passe à l'étape E604 qui consiste à vérifier si la dernière des spécifications de composants a été traitée. Dans la négative, le processeur passe à l'étape E603, prend la spécification de composant suivante et réitère les étapes E601 à E604 qui correspondent à une recherche dans les spécifications des composants de toutes les spécifications de sources d'évènement. Si toutes les spécifications de composants ont été traitées, le processeur passe à l'étape E605 qui consiste à prendre la première des spécifications de sources d'évènements mémorisée à l'étape E603. L'étape suivante E606 consiste à rechercher les composants possédant une telle source. Cette opération effectuée, le processeur passe à l'étape suivante E607 et prend le premier composant trouvé à l'étape E606 et possédant une telle source. A l'étape suivante E608, le processeur recherche les connexions ayant pour origine cette source et ce composant. Cette opération effectuée, le processeur passe à l'étape suivante E609 et prend la 15 première connexion ayant pour origine cette source et ce composant des connexions trouvées à l'étape E608. A l'étape suivante E610, le processeur ajoute à la table de diffusion, une diffusion du type de la source, avec pour émetteur le composant et pour destinataire le composant destinataire de la connexion. Le processeur vérifie ensuite à l'étape E611 si toutes les connexions ayant pour origine cette source et ce composant trouvées à l'étape E608 ont été traitées. Dans la négative, le processeur passe à l'étape E612, prend la connexion suivante ayant pour origine cette source et ce composant et réitère les étapes E610, E611 et E12. Dans l'affirmative, le processeur passe à l'étape E613 qui consiste à rechercher les composants possédant un port puits d'événement ou puits compatible avec la source. Cette opération effectuée, le processeur passe à l'étape suivante E614 et prend le premier composant possédant un puits compatible avec la source des composants 30 trouvés à l'étape E613. A l'étape suivante E615, le processeur vérifie s'il n'existe aucune connexion vers ce puits. S'il existe une connexion, le processeur passe à l'étape E617. Si aucune connexion n'existe, le processeur à l'étape E616 ajoute à la table de 5 diffusion des événements une diffusion du type de la source pour le composant possédant la source et vers le composant possédant le puits. Cette opération effectuée, le processeur passe ensuite à l'étape E617 qui consiste à vérifier si tous les composants possédant un puits compatible avec la source, trouvés à l'étape E613 ont été traités. Dans la négative, le processeur passe à l'étape E618 qui consiste à prendre le composant suivant possédant un puits compatible avec la source, et le processeur réitère les étapes E614 à E618. Dans l'affirmative, le processeur passe à l'étape E619 qui consiste à vérifier si tous les composants possédant une telle source et trouvés à l'étape E608 ont été 15 traités. Dans la négative, le processeur passe à l'étape E620 qui consiste à prendre le composant suivant possédant une telle source et réitérer les étapes E608 à E620. Dans l'affirmative, le processeur passe à l'étape E621 qui consiste à vérifier si toutes les spécifications de sources d'événements mémorisées à l'étape E603 ont été 20 traitées. Dans la négative, le processeur passe à l'étape E622 qui consiste à prendre la spécification suivante et réitérer les étapes E606 à E622. Dans l'affirmative, la mise à jour de la table de diffusion des événements est effectuée. La mise à jour de la table de diffusion est effectuée à chaque nouvelle sélection de composant. D'une manière générale, on recherche dans les spécifications de composants toutes les spécifications de sources d'événements. Pour chaque spécification de source d'événement, on recherche les composants 30 possédant une telle source. Pour tous les composants possédant une telle source, on recherche les connexions ayant pour origine cette source et ce composant. Pour toutes ces connexions, on ajoute à la table de diffusion, une diffusion du type de la source, avec pour émetteur le composant et pour destinataire le composant destinataire de la connexion. On recherche les composants possédant un puits compatible avec la source. Pour tous les composants possédant un puits compatible et s'il n'existe aucune connexion vers ce puits, on ajoute à la table de diffusion des évènements une diffusion du type de la source, pour le composant possédant la source et vers le composant 10 possédant le puits. La Fig. 7 représente le système de construction de logiciel selon l'invention. Le système de construction de logiciel 700 comporte deux blocs 710 et 720. Le bloc 710 est un bloc de conception. Il est constitué d'un module de conception 711 comprenant un éditeur graphique permettant la saisie de représentations graphiques 15 des composants tels que le composant 20 représenté à la Fig. 2 et les composants 40, 41, 42 et 43 représentés à la Fig. 4. La saisie des représentations graphiques est effectuée par un concepteur 730 qui interagit avec le module de conception 711. Le module de conception 711 permet aussi au concepteur 730 de réaliser les 20 spécifications de composants. Le bloc 710 est aussi constitué du référentiel des types de composants RTC noté 711 à la Fig. 7 qui contient les références de tous les types de composants de la base de données constituée par exemple des composants 40, 41, 42 et 43 représentés à la Fig. 4. Ce bloc 710 peut aussi être déporté sur un site distant, par exemple sur un site d'hébergement relié par l'intermédiaire d'un réseau de type Intranet ou Internet. Dans cette variante le système comporte en outre des moyens de connexion par l'intermédiaire d'un réseau de communication non représenté au référentiel de composants 722. * Le bloc 710, plus précisément le référentiel des types de composants 712 est accessible à une personne 750 chargée d'implémenter les types de composants contenus dans le référentiel 712. L'implémentation crée, à partir d'outils logiciels 751 tels que le logiciel 5 Jbuilder de la société Borland ou le logiciel JDK de la société SUN , un référentiel d'implémentation 752 qui est équivalent au référentiel des composants 722, à la différence près que les composants sont alors codés dans un langage informatique tel que le langage Java(. Le bloc 720 est un bloc d'assemblage. Le bloc 720 comprend un module 10 d'assemblage 721. Le module d'assemblage 721 est un outil informatique à destination d'un utilisateur 740. Le module d'assemblage 721 lui permet de sélectionner des rôles à partir de l'algorithme tel que décrit en référence à la Fig. 3. Le module d'assemblage 721 permet aussi la mise à jour, conformément à 15 l'algorithme tel que décrit en référence à la Fig. 3, de la table des rôles, de la table des rôles sélectionnables et de la table de diffusion des évènements. Le bloc d'assemblage 720 comporte aussi des moyens de sauvegarde de la table des rôles, de la table des rôles sélectionnables et de la table de diffusion des évènements. Il est à remarquer que de la table des rôles et/ou la table des rôles sélectionnables et/ou la table de diffusion des évènements peuvent être mémorisés sur un site distant, le système de construction de logiciel comporte alors des moyens pour accéder au site par l'intermédiaire d'un réseau. Le bloc d'assemblage 720 comprend aussi un module de publication noté 723.25 Ce module 723 permet de traduire chaque élément intervenant dans la spécification d'un composant dans un langage informatique tel que par exemple le langage Java. Le module 723 permet aussi de mettre en oeuvre les traductions dans le langage informatique des éléments. A titre d'exemple, dans le cas d'une traduction dans le langage informatique Java, la librairie java.lang. reflect est un exemple d'un tel 30 module. Le module 723, à partir des composants qui ont été sélectionnés et qui sont contenus dans le référentiel de composants RC 722 et des codes associés à ces composants contenus dans le référentiel d'implémentation décrit ultérieurement, crée le logiciel 760 conforme à un langage de programmation prédéterminé. Un utilisateur 740 interagit avec le module 721 et sélectionne les différents rôles conformément à l'algorithme décrit en référence à la Fig. 3. L'utilisateur 740 interagit avec le module 723 de manière à ce que le module 723 traduise chaque élément intervenant dans la spécification d'un composant dans un langage informatique prédéterminé pour former un logiciel 760. Il est à remarquer que le système 700, dans une architecture de type Internet, est décomposable en deux parties distinctes situées sur des sites différents. Par exemple, l'utilisateur 740 dispose sur son ordinateur du bloc 720. Le bloc de conception 710 ainsi que les outils logiciels 751 et le référentiel d'implémentation 752 sont placés sur un site d'hébergement distant. Dans une telle configuration, le même système est à disposition de plusieurs utilisateurs via un réseau de communication de type Internet. REVENDICATIONS 1) Procédé de création de logiciel pour jouer au moins un rôle à partir d'un ensemble de composants prédéfinis représentés sous forme graphique, des spécifications d'interfaces étant associées à des composants, caractérisé en ce que lorsque ledit ou un rôle a été sélectionné, le procédé comporte les étapes de: - détermination parmi l'ensemble de composants, des spécifications d'interfaces de composants compatibles avec le rôle (E3), - génération d'une liste des composants dont les spécifications d'interfaces déterminées à l'étape précédente sont compatibles avec le rôle (E3), - à la sélection d'un des composants de la liste (E4), assignation du rôle 10 sélectionné au composant sélectionné (E5) pour jouer ledit rôle sélectionné. 2) Procédé selon la revendication 1, caractérisé en ce que le procédé, à la sélection d'un des composants de la liste, détermine parmi un ensemble de rôles une liste de rôles susceptibles d'être sélectionnés (E6). 15 3) Procédé selon la revendication 1 ou 2, caractérisé en ce qu'une spécification d'interface comporte pour chaque port du composant auquel elle est associée des informations sur la nature du port et le type du port. 4) Procédé selon la revendication 3, caractérisé en ce qu'un port est de nature port méthodes offertes ou port méthodes requises ou port puits d'évènements ou port source d'évènements. 5) Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce 25 qu'un composant, dit composite, comporte une pluralité de composants sélectionnables et qu'une spécification de composite est associée au composite, la spécification de composite comprenant entre autre les rôles de la pluralité de composants. 6) Procédé selon la revendication 5, caractérisé en ce que la spécification de composite comporte en outre des informations représentatives du nombre de fois qu'un composant peut être sélectionné. 7) Procédé selon la revendication 5 ou 6, caractérisé en ce que la spécification de composite comporte en outre des informations représentatives des connexions susceptibles d'être établies entre les composants du composite et des connexions susceptibles d'être établies entre lesdits composants et le composite. 8) Procédé selon l'une quelconque des revendications 5 à 7, caractérisé en ce que la spécification de composite comporte en outre des informations représentatives de la nature des ports du composite. 9) Procédé selon l'une quelconque des revendications 5 à 8, caractérisé en ce que la spécification de composite comporte en outre des informations représentatives d'au moins un rôle que le composite réalise explicitement et en ce que le procédé assigne automatiquement le au moins un rôle audit composite. 15 10) Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce que le procédé comporte en outre une étape de mise à jour des connexions à chaque composant sélectionné (E9). 11) Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que le procédé comporte en outre une étape de mise à jour d'une table de diffusion d'évènements (El 0). 12) Procédé selon la revendication 4, caractérisé en ce que la détermination 25 parmi l'ensemble de composants, des spécifications d'interfaces de composants compatibles avec le rôle est effectuée en vérifiant si les composants: - possèdent un port méthodes offertes compatible avec chaque port méthodes offertes du rôle, - écoutent tous les événements que le rôle déclare pouvoir écouter. 30 13) Procédé selon la revendication 12, caractérisé en ce que la détermination parmi l'ensemble de composants, des spécifications d'interfaces de composants compatibles avec le rôle est effectuée en vérifiant en outre si les composants ne possèdent pas un nombre de ports méthodes requises supérieur au nombre de ports méthodes que ne le permet le rôle. 14) Procédé selon la revendication 12, caractérisé en ce que si à un composant 5 sont assignés plusieurs rôles, on vérifie que le composant ne possèdent pas un nombre de ports méthodes requises supérieur à la somme des nombres de ports méthodes que ne le permettent les rôles. 15) Procédé selon la revendication 12 ou la revendication 13, caractérisé en ce 10 que la détermination parmi l'ensemble de composants, des spécifications d'interfaces de composants compatibles avec le rôle est effectuée en vérifiant en outre si les composants n'émettent pas plus d'événements que le rôle ne l'autorise. 16) Procédé selon la revendication 1, caractérisé en ce que le procédé comporte 15 en outre une étape de mise à jour d'un référentiel de composants (E4). 17) Procédé selon la revendication 2, caractérisé en ce que le procédé comporte en outre une étape de mise à jour d'une table de rôles sélectionnables (E6). 18) Système de création de logiciel pour jouer au moins un rôle à partir d'un ensemble de composants prédéfinis représentés sous forme graphique, des spécifications d'interfaces sont associées à des composants, caractérisé en ce que le système lorsque ledit ou un rôle a été sélectionné: - détermine parmi l'ensemble de composants, des spécifications d'interfaces de 25 composants compatibles avec un rôle précédemment sélectionné, - génère une liste des composants dont les spécifications d'interfaces déterminées à l'étape précédente sont compatibles avec le rôle sélectionné, - assigne, à la sélection d'un des composants de la liste, le rôle sélectionné au composant sélectionné pour jouer ledit rôle sélectionné. 30 19) Système de création de logiciel selon la revendication 18, caractérisé en ce qu'il comporte des moyens (711) de saisie de représentation graphique de composants et/ou de composites, des moyens de détermination de spécifications de composants. 20) Système de création de logiciel selon la revendication 19, caractérisé en ce qu'il comporte un référentiel de composant (RTC) comprenant les références de tous les types de composants. 21) Système de création de logiciel selon la revendication 20, caractérisé en ce qu'il met à jour (721) en outre une table des rôles et/ou une table des rôles sélectionnables et/ou une table de diffusion des événements. 22) Système de création de logiciel selon la revendication 21, caractérisé en ce 10 qu'il comporte des moyens de mémorisation (720) du référentiel de composant et/ou de la table des rôles et/ou de la table des rôles sélectionnables et/ou de la table de diffusion des événements. 23) Système de création de logiciel selon l'une quelconque des revendications 15 20 à 22, caractérisé en ce qu'il comporte des moyens de connexion par l'intermédiaire d'un réseau de communication à un référentiel de composants comprenant les références de tous les types de composants et/ou de la table des rôles et/ou de la table des rôles sélectionnables et/ou de la table de diffusion des évènements. 24) Système de création de logiciel selon l'une quelconque des revendications 18 à 23, caractérisé en ce que le système comporte en outre des moyens (723) pour traduire la spécification d'un composant en un langage informatique prédéterminé. 25) Composite utilisé pour la création de logiciel selon un procédé tel que 25 conforme aux revendications 1 à 17, caractérisé en ce que le composite comporte une pluralité de composants sélectionnables et qu'une spécification de composite est associée au composite, la spécification de composite comprenant entre autre les rôles de la pluralité de composants. 26) Composite selon la revendication 25, caractérisé en ce que la spécification de composite comporte en outre des informations représentatives du nombre de fois qu'un composant peut être sélectionné. 27) Composite selon la revendication 25 ou 26, caractérisé en ce que la spécification de composite comporte en outre des informations représentatives des connexions susceptibles d'être établies entre les composants du composite et des connexions susceptibles d'être établies entre des composants et des ports du composite. 28) Composite selon l'une quelconque des revendications 25 à 27, caractérisé en ce que la spécification de composite comporte en outre des informations représentatives de la nature des ports du composite. 10 29) Composite selon l'une quelconque des revendications 25 à 28, caractérisé en ce que la spécification de composite comporte en outre des informations représentatives d'au moins un rôle que le composite réalise explicitement. 30) Support d'informations, éventuellement totalement ou partiellement amovible, lisible par un système informatique, caractérisé en ce qu'il contient des instructions d'un programme d'ordinateur, permettant la mise en oeuvre d'un procédé de traitement selon l'une quelconque des revendications 1 à 17. 31) Programme d'ordinateur stocké sur un support d'informations, ledit programme comportant des instructions permettant de mettre en oeuvre le procédé de traitement selon l'une quelconque des revendications 1 à 17, lorsqu'il est chargé et exécuté par un système informatique.