| |
 TECHNOLOGIES CLÉS 2010 (novembre 2006)
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).


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