Programmation orientée composant
Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

La programmation orientée composant (POC) consiste à utiliser une approche modulaire au niveau de l'architecture d'un projet informatique, ce qui permet d'assurer au logiciel une meilleure lisibilité et une meilleure maintenance. Les développeurs, au lieu de créer un exécutable monolithique (Un monolithe est un élément fait d'un seul bloc de pierre de grande dimension. Son nom vient du grec ancien λιθος -lire lithos-(la pierre).), se servent (Servent est la contraction du mot serveur et client.) de briques réutilisables.

La POC n'est pas sans similitudes avec la POO, puisqu'elle revient à utiliser une approche objet (De manière générale, le mot objet (du latin objectum, 1361) désigne une entité définie dans un espace à trois dimensions, qui a une fonction précise, et qui peut être désigné par une...), non pas au sein du code, mais au niveau de l'architecture (L’architecture peut se définir comme l’art de bâtir des édifices.) générale du logiciel (En informatique, un logiciel est un ensemble d'informations relatives à des traitements effectués automatiquement par un appareil informatique. Y sont inclus les instructions de traitement, regroupées sous forme de programmes,...).

La POC est particulièrement pratique pour le travail en équipe et permet d'industrialiser la création de logiciels.

Le composant, base de la POC

Qu'est-ce qu'un composant ?

Lorsque l'on parle de composants, il s'agit de simples fichiers, contenant généralement du code compilé. Sous les systèmes de type Unix, par exemple, les composants se présentent sous la forme de fichiers portants l'extension .so (shared object). Sous les systèmes de type Microsoft Windows (Windows (littéralement « Fenêtres » en anglais) est une gamme de systèmes d’exploitation produite par Microsoft, principalement destinés aux ordinateurs compatibles...), il s'agit des fameuses dll (dynamic library link). On parle également de modules, de bibliothèques, ou de librairies, par abus de traduction (library étant un faux ami et signifiant bibliothèque)

Il est possible de créer des composants avec la grande majorité des langages. Toutefois, dans certains cas, notamment pour les langages interprétés ou semi-compilés il n'est pas possible de créer des composants "classiques". Par exemple, en python, les composants sont des simples fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un bâtiment, une base de données informatique. Par exemple : fichier des patients d'un médecin,...) contenant du code (.py), tandis qu'en java, il est possible de créer des bibliothèques de classes (.jar). Ainsi, seul un programme écrit en java pourra utiliser comme composant un fichier .jar.

Un composant regroupe un certain nombre (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) de fonctionnalités qui peuvent être appelées depuis un programme externe, ou client (Le mot client a plusieurs acceptations :). Comme le composant ne contient que du code compilé, il n'est a priori pas possible de savoir de quelle manière elles sont implémentées, à moins de disposer du code source (Le code source (ou les sources voire le source) est un ensemble d'instructions écrites dans un langage de programmation informatique de haut niveau, compréhensible par un être humain...). De plus, pour pouvoir être utilisé, le composant doit fournir une interface (Une interface est une zone, réelle ou virtuelle qui sépare deux éléments. L’interface désigne ainsi ce que chaque élément a besoin de connaître de l’autre pour...), c'est-à-dire un ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection d’objets (les éléments de l'ensemble), « une multitude qui peut être comprise comme un tout », comme...) de fonctions lui permettant de communiquer avec le programme client. Dans le cas où le code source n'est pas disponible, les spécifications détaillées de ces fonctions doivent être fournies avec la documentation.

Un composant est censé fournir un service bien précis. Les fonctionnalités qu'il encapsule doivent être en rapport et cohérentes entre elles. On verrait mal l'intérêt d'un composant regroupant les tâches de gestion d'impression et de compression de fichiers, par exemple.

Enfin, un composant doit être réutilisable, c’est-à-dire qu'il ne doit pas simplement servir dans le cadre du projet (Un projet est un engagement irréversible de résultat incertain, non reproductible a priori à l’identique, nécessitant le concours et l’intégration d’une...) durant lequel il a été développé. Cet aspect n'est possible qu'à la condition qu'il possède un comportement suffisamment général. Trouver un compromis entre la spécialisation du composant pour optimiser son utilisation dans le cadre du projet actuel, et sa généralisation (La généralisation est un procédé qui consiste à abstraire un ensemble de concepts ou d'objets en négligeant les détails de façon à ce qu'ils puissent être considérés de façon...) en vue (La vue est le sens qui permet d'observer et d'analyser l'environnement par la réception et l'interprétation des rayonnements lumineux.) de sa réutilisation est souvent un casse-tête lors de la phase (Le mot phase peut avoir plusieurs significations, il employé dans plusieurs domaines et principalement en physique :) de conception du projet.

Structure d'un composant

Comme le composant n'est utilisable qu'une fois compilé, la méthode d'implémentation (Le mot implantation peut avoir plusieurs significations :) importe peu. Il est possible d'utiliser une approche objet ou procédurale. Il convient d'éviter une confusion courante : la POC et la POO sont des choses différentes. Utiliser la POO pour développer un composant est facultatif. En fait, l'implémentation du composant n'a aucune influence sur les programmes clients, du moment que les signatures de l'interface ne changent pas.

Le code d'un composant peut en effet être séparé en deux parties. Tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) d'abord, les méthodes et données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un...) internes. Un composant peut implémenter des fonctions qu'il utilise "pour son compte personnel", et qui ne sont pas accessibles de l'exterieur. On parle de méthodes "privées". Ensuite, le composant, pour pouvoir être utilisé, doit fournir un moyen de communication (La communication concerne aussi bien l'homme (communication intra-psychique, interpersonnelle, groupale...) que l'animal (communication intra- ou inter- espèces) ou la machine (télécommunications, nouvelles...) avec les programmes clients. Certaines fonctions sont donc accessibles de l'exterieur, et dévolues à être appelées par ces programmes. On parle de méthodes "publiques", ou d'"interface".

Comment fonctionnent les composants ?

Parler des différentes phases de compilation, lien à l'exécution, etc.

Exemples de programmation (La programmation dans le domaine informatique est l'ensemble des activités qui permettent l'écriture des programmes informatiques. C'est une étape importante de la conception de logiciel (voire de matériel, cf. VHDL).) de composants dans différents langages

montrer des exemples de codes et d'instructions de compilation qui permettent d'utiliser les composants

La POC dans la gestion de projet (La gestion de projet ou conduite de projet est une démarche visant à structurer, assurer et optimiser le bon déroulement d'un projet suffisamment complexe pour devoir) informatique (L´informatique - contraction d´information et automatique - est le domaine d'activité scientifique, technique et industriel en rapport avec le traitement...)

Les avantages à utiliser la POC

Les avantages à utiliser une approche POC pour conduire un projet sont multiples :

  • 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 (Une mise à jour, souvent abrégé en MAJ ou MàJ, est l'action qui consiste à mettre « à jour », ou bien « à niveau », un outil...): 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 (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la période entre deux nuits, pendant laquelle les rayons du...), 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 (Les besoins se situent au niveau de l'interaction entre l'individu et l'environnement. Il est souvent fait un classement des besoins humains en trois...) 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 (Le mot puissance est employé dans plusieurs domaines avec une signification particulière :) d'un 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 (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) de développement, d'autant plus que le composant est réutilisé souvent

Et les inconvénients

Bien que l'utilisation de la POC soit réellement appréciable dans la conduite d'un projet de développement, elle n'est pas sans imposer quelques désagréments et arrachages de cheveux au chef de projet (Un chef de projet, en informatique est la personne chargée de contrôler le bon déroulement du développement d'un logiciel informatique. Par extension, le terme chef de projet s'applique dans d'autres domaines, tels la communication ou le...).

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 entamé. 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 au source), peut également gêner certains chefs de projets qui veulent garder un contrôle (Le mot contrôle peut avoir plusieurs sens. Il peut être employé comme synonyme d'examen, de vérification et de maîtrise.) total ( Total est la qualité de ce qui est complet, sans exception. D'un point de vue comptable, un total est le résultat d'une addition, c'est-à-dire une somme. Exemple : "Le total...) sur leur logiciel.

Page générée en 0.081 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique