La programmation par composants est un nouveau paradigme de
programmation post-objets qui répond à certaines faiblesses de la
programmation orienté objet. Donc la programmation orientée
composant est juste une évolution de la programmation orientée
objet.
La POC [24,25] n'est pas sans similitudes
avec la POO, puisqu'elle revient à utiliser une approche objet, non pas
au sein du code, mais au niveau de l'architecture générale du
logiciel.
[Marie Hélène Wassa Mballo] Page 33
La POC est particulièrement pratique pour le travail en
équipe et permet d'industrialiser la création de logiciels.
La programmation par composant est donc basée sur le
fait d'intégrer, d'emboîter des composants entre eux pour former
notre programme.
> Le composant
Le composant est une unité indépendante de
production et de déploiement qui est combinée à d'autres
composants pour former une application. L'objet reste au centre du composant
mais l'objectif diffère.
Le code d'un composant peut en effet être
séparé en deux parties. Tout d'abord, les méthodes et
données internes. Un composant peut implémenter des fonctions
qu'il utilise "pour son compte personnel", et qui ne sont pas accessibles de
l'extérieur. On parle de méthodes "privées". Ensuite, le
composant, pour pouvoir être utilisé, doit fournir un moyen de
communication avec les programmes clients. Certaines fonctions sont donc
accessibles de l'extérieur, et dévolues à être
appelées par ces programmes. On parle de méthodes publiques, ou
d'interface.
> Les avantages offerts par la programmation
orientée composant sont les suivants :
· spécialisation:
L'équipe de développement peut-être divisée
en sous-groupes, chacun se spécialisant dans le développement
d'un composant.
· sous traitance: Le
développement d'un composant peut-être externalisé,
à condition d'en avoir bien réalisé les
spécifications au préalable.
· facilité de mise à jour:
La modification d'un composant ne nécessite pas la
recompilation du projet complet.
· facilité de
livraison/déploiement: Dans le cas d'une mise à jour,
d'un correctif de sécurité, ... alors que le logiciel à
déjà été livré au client, la livraison en
est facilitée, puisqu'il n'y a pas besoin de re-livrer
l'intégralité du projet, mais seulement le composant
modifié.
· choix des langages de développement:
Il est possible, dans la plupart des cas, de développer les
différents composants du logiciel dans des langages de programmation
différents. Ainsi, un composant nécessitant une
fonctionnalité particulière pourra profiter de la puissance
d'un
[Marie Hélène Wassa Mballo] Page 34
langage dans un domaine particulier, sans que cela n'influe le
développement de l'ensemble du projet.
· productivité: La
réutilisabilité d'un composant permet un gain de
productivité non négligeable car elle diminue le temps de
développement, d'autant que le composant est réutilisé
souvent.
Bien que la programmation orientée composant soit une
évolution de la POO elle commençait à faire à
certaines limites face aux applications qui demandaient de plus en plus de
ressource
> inconvénients de la programmation
orientée composant [26]
La POC est réellement appréciable dans la
conduite d'un projet de développement, cependant elle pose quelques
désagréments.
Tout d'abord, la POC est une méthode dont le
bénéfice se voit surtout sur le long terme. En
effet, lorsque l'on parle de réutilisation, de facilité de
déploiement, c'est que le développement est sinon achevé,
du moins bien entamer. Mais factoriser un logiciel en composants
nécessite un important travail d'analyse. La
rédaction des signatures des méthodes devra être
particulièrement soignée, car modifier une signature
nécessitera de retravailler toutes les portions de codes du projet qui
font appel au composant, et l'on perdrait alors les bénéfices de
l'indépendance des briques logicielles.
En un mot, si la POC industrialise le développement,
la phase de conception du logiciel prendra un rôle encore plus
important.
Le fait de ne pas connaître l'implémentation
d'un composant (à moins d'avoir accès à la source), peut
également gêner certains chefs de projets qui veulent garder un
contrôle total sur leur logiciel.
Un autre problème qui se pose également c'est
avec les systèmes distribuées à large échelle il
faudra mettre en place des mécanismes qui permettront aux applications
de s'adapter à ces environnements.
Dans la prochaine section nous allons voir un autre type de
paradigme qui est beaucoup utilisé de actuellement