TECHNOLOGIES CLÉS 2010 (novembre 2006)

Sommaire
Sommaire TIC

Technologies de l’information et de la communication

7. Composants logiciels

Description

La production de systèmes à logiciel prépondérant de qualité professionnelle doit être accompagnée par un ensemble de méthodes, modèles, outils et architectures permettant d'en maîtriser la conception, l'implémentation, le déploiement et la maintenance dans le respect des spécifications et des délais.

Les facteurs clés de succès passent par :

  • la maîtrise de la complexité ;
  • l'industrialisation de briques logicielles réutilisables et la capacité d'intégrer ces briques dans des développements spécifiques ;
  • l'adaptation en temps réel des logiciels à des plates-formes hétérogènes, à des contextes d'utilisation différents ;
  • l'optimisation des tests pendant la conception et après le développement ;
  • l'automatisation du processus de déploiement logiciel couvrant toutes les étapes du cycle de vie d'un logiciel : la configuration, l'installation, la mise à jour et la désinstallation.

À l'instar de l'initiative MDA™ (Model Driven Architecture), l'ingénierie des modèles propose de capturer la logique d'une application au travers d'une modélisation ce qui facilite les procédures de tests et permet la génération du code. Chaque spécialiste apporte sa plus-value métier et un architecte logiciel met en musique l'ensemble des briques logicielles métiers. La notion d'usine logicielle prend alors tout son sens avec la mise à disposition des outils permettant la modélisation, la vérification de l'application, la génération du code et la réutilisation optimale des briques logicielles. Sur la base de spécifications en langage formel adapté au domaine d'application, un modèle indépendant de la plate-forme d'exécution est réalisé. Ce modèle peut alors être transformé en un ou plusieurs modèles spécifiques à la plate-forme, testé, ou encore utilisé pour générer automatiquement du code.

La programmation orientée aspect (AOP) est une technique d'ingénierie logicielle qui vise à améliorer le développement des applications complexes pour les systèmes d'information (SI), les sites web (commerce en ligne, sites promotionnels et informatifs ...), les logiciels d'infrastructure pour les télécoms ou les logiciels pour le calcul scientifique. Le but de l'AOP est de faciliter la conception de ces logiciels « par morceaux », chaque module se concentrant sur sa finalité, les aspects se chargeant de faire appel aux différents modules techniques en fonction des conditions de leur activation. La conception et le développement de ces fonctionnalités indépendamment les unes des autres est un défi auquel la programmation orientée aspect apporte un certain nombre de réponses qu'il convient de faire progresser et de transférer vers l'industrie.

Ces techniques de génie logiciel s'appuient largement sur la notion de « composants logiciels ». Développé par un éditeur ou accessible librement, un composant est une brique logicielle réutilisable par plusieurs applications. Conceptuellement, un composant correspond à l'expression logicielle des caractéristiques et des comportements d'un objet, d'un service, d'un aspect ou éventuellement d'une application informatique complète. Les composants logiciels tendent à devenir des agents autonomes, capables d'apprendre, de s'organiser, de découvrir les services offerts par les autres composants.

L'intérêt de pouvoir se baser sur des briques logicielles existantes pour construire de nouvelles applications informatiques est évident, mais le problème de l'intégration n'est pas évident : il faut notamment s'assurer que le comportement du composant sera conforme à ce que l'application attend. Pour cela, il est nécessaire de développer des méthodes et des outils pour assister le développement et l'intégration de composants : capture des caractéristiques sémantiques, accès à des bases de données de composants documentés, test de conformité et d'intégrité du composant.

Les efforts de recherche et de transfert vers l'industrie doivent être poursuivis, notamment dans la définition de nouveaux modèles, de nouvelles architectures, de nouveaux langages, de nouvelles méthodes de preuve, de nouvelles méthodes d'analyse de code.

Degré de développement :
Emergence
Croissance
Maturité

Enjeux, Impact

La mobilité, la taille et l'hétérogénéité des réseaux, la mise en commun des ressources réparties, la demande croissante en matière de services sont autant de facteurs qui poussent les méthodes de développement de systèmes d'information, et de logiciel en général, à évoluer, tout en conservant un niveau de qualité élevé.

La fiabilité des logiciels, que ce soit pour des applications critiques ou non, est un enjeu majeur pour la société de l'information et de la communication. Le plus haut niveau de fiabilité ne pourra être atteint qu'à la condition d'une maîtrise de celle-ci à tous les stades du développement logiciel.

Des efforts importants de normalisation au niveau mondial ont été réalisés au cours de ces dernières années, particulièrement sur la base d'UML pour la modélisation et de XML pour la description, rendant possibles les applications actuelles. La seule normalisation n'est cependant pas suffisante. Elle doit s'accompagner de politiques de transparence sur certaines parties de code devant servir d'interface (Open Source). En particulier, l'indépendance des applications vis-à-vis des composants logiciels, et des éditeurs de ces derniers, est un enjeu majeur pour la pérennité des développements et peut nécessiter, dans certaines circonstances, le recours à des tiers de confiance.

L'industrialisation des briques logicielles peut conduire à des bouleversements des modèles économiques. Les problématiques (sûreté de fonctionnement, qualité de service ...) du développement logiciel sont généralement transverses à plusieurs domaines d'application, ce qui permet de mutualiser les développements qui seront ensuite adaptés pour réaliser des solutions spécifiques à chaque métier ou domaine. De nouveaux marchés de fournisseurs de composants logiciels sont en train de s'ouvrir et sont largement accessibles à de nouveaux acteurs, notamment parmi les jeunes entreprises. Il sera nécessaire, pour le développement de ces marchés, qu'un cadre pour la certification des briques logicielles réutilisables soit établi. Par sa forte culture logicielle, la France a des atouts non négligeables dans ce domaine.

Marché

Les composants logiciels concernent tous les secteurs d'activités, et particulièrement les secteurs consommateurs en matière de fonctions logicielles.

Les premiers métiers concernés par ces technologies sont les éditeurs de logiciel et les SSII : selon le Syntec Informatique, le chiffre d'affaires cumulé des acteurs du secteur français des logiciels et des services informatiques devrait croître de 6 à 7 % en 2005, pour atteindre environ 31,5 Md€.

La certification des composants logiciels est un enjeu central dans le développement de l'économie autour du logiciel libre. Ce secteur devrait progresser en moyenne de 41,2 % pour atteindre un volume de marché en France de l'ordre de 580 M€ en 2008 (source PAC).

Les composants logiciels et la conception orientée par les modèles concernent aussi les métiers du logiciel embarqué, les fabricants de l'électronique et les intégrateurs.

Degré de diffusion de la technologie :
Naissance
Diffusion
Généralisation

Domaines d'application :
activités financières ; activités immobilières ; services informatiques ; services aux entreprises ; activités récréatives, culturelles et sportives ; éducation ; santé, action sociale ; administration.

Acteurs

Disciplines scientifiques : informatique, électronique, mathématiques et leurs applications.

Compétences technologiques : télécommunications, informatique, analyse, mesure et contrôle.

Pôles de compétitivité : Image, multimédia et vie numérique (Île-de-France), Images et réseaux (Bretagne), System@tic (Île-de-France), Loisirs numériques (Rhône-Alpes),

Liens avec (technologies) : outils et méthodes pour le développement de systèmes d'information ; ingénierie des systèmes embarqués ; virtualisation des réseaux ; sécurisation des transactions électroniques et des contenus ; gestion et diffusion des contenus numériques ; technologies du Web sémantique ; interfaces humain-machine ; modélisation, simulation, calcul ; réalité virtuelle, augmentée, 3D ; méthodes et outils de coconception ; ingénierie des systèmes complexes.

Principaux acteurs français

Centres de compétences : ObjectWeb, Caroll (Thales, Inria, CEA), RNTL, RNRT. Le projet Ecots (www.ecots.org) réalisé dans le cadre du RNTL propose une base de données de description sur les composant logiciels et leurs éditeurs.

Industriels : Ilog, Dassault Systèmes, Business Object, Lectra Systemes, CCMX, Cegid, GL Trade, Cap gemini, Bull Services, Unilog, Steria, Thales, etc.

Exemples d'acteurs dans le monde : Mitre Corporation (États-Unis), IBM (États-Unis), Sun (États-Unis), Microsoft (États-Unis), Borland (États-Unis), Computer Associates (États-Unis), Ericsson Utvecklings (Suède), Fujitsu Limited (Japon).

 

Sommaire TIC
haut Sommaire

© Ministère de l'Économie, des Finances et de l'Industrie,
DGE Direction Générale des Entreprises, 12/2006