1. Approches par composant Les composants
année Master R&T
ière
1
1
II) Les Composants
II.1) Introduction :
Les besoins croissants des utilisateurs de systèmes logiciels, l'évolution rapide du matériel;
l'explosion des réseaux informatique ont motivé l'émergence de nouvelles approches de
développement d'application à grande échelle comme celles basées sur le paradigme de
composants qui se rapproche du paradigme objet. Puisque tous deux ont en commun de
privilégier le développement d'un système, et ce depuis sa phase de spécification jusqu'à
l’implémentation. Bien qua chaque d'eux porte l'accent sur des aspects différents du
développement logiciel en termes de niveau d'abstraction, de granularité et de mécaniques
opératoires, il n'y a pas de frontière très nette les deux. En ce sens, il n'est pas étonnant de
retrouver des points communs tant au niveau des motivations, des techniques que des
méthodes d’ailleurs, les développeurs et concepteurs de systèmes à base de composants sont
souvent tentés d'utiliser les modèles à objet comme support de spécification, de conception et
d'implémentation.
Par exp: un composant peut être représenté par une classe.
Interface de composant représenté par une interface de classe.
Interaction entre d'appels de méthodes
Cependant, force est de constater que l'approche objet souffre d'une certain, nombre de
lacunes au regard de systèmes à base de composants.
la structure des application objet est peu lisible ( un ensemble de fichiers)
la plupart des mécanismes objet sont gérés manuellement (création des instances, gestions des
dépendances entre classes, appels explicitées de méthodes..etc)
Il y a peu ou pas d'outils pour déployer (installer) les exécutables sur les différents sites.
Les architectures objets proposent de solutions pour faciliter l'adaptation et l'assemblage
d'objet.
- En général; les modèles objets ne sont pas adaptés à la description de schémas de
coordination et de communication complexes.
- En fin; la recherche des relations d'interaction dans une architectures objet n'est pas une
tâches facile (surtout en présence de pointeurs et requiers forcement l'inspection de tout les
systèmes).
Selon le petit Robert, un composant est un élément qui entre dans la composition de quelque
chose et qui remplit une fonction particulière.
2. Approches par composant Les composants
année Master R&T
ière
1
2
Le terme composant existe dans le vocabulaire informatique depuis la naissance du génie
logiciel. Il a cependant d'abord désigné des fragments de code alors qu’aujourd'hui, il englobe
toute unité de réutilisation.
Exp: concernant les composants électroniques, il suffit de connaître leur principe de
fonctionnement et la façon d'outils communiquant avec leur environnement (tension d'entrées
de sortie) pour leur implémentation.
L'idée de circuit logiciel intégré conduit ci la notion d'éléments logiciels qui peuvent être
connectées ou déconnectés d'un circuit plus complexe, remplacés ou/ et configurés. Il s'agit
alors d'agencer des composants logiciels de natures très diverse pour construire une
application, on ne parlera plus de programmation d'application mais plutôt de composition
d'application. Donc des principes fondamentaux doivent être respectes: « acheter plutôt que
construire et réutiliser plutôt qu'acheter » pour construire rapidement des applications les
nouvelles technologies logicielles adoptent de plus en plus le concept " composant" comme
clé de voûte de la réutilisation. Parmi les technologies, nous pouvons citer Active X, OLE,
DCOM, .NET, EJB, CORBA, Elles permettent d'utiliser des composants et des objets à forte
granularité, distribués et complexe.
En effet, l'utilisation de l'approche " composants" dans le développement d'application révèle
rapidement des interrogations. Quelle est la définition d'un composant? Quelle est sa
granularité, sa portée? Comment distingues et rechercher les composants de manières
rigoureuse, les manipulations les assembler, les réutiliser, les installer dans des contextes
matériels et logiciels variant dans le temps. Comment les administrer les faire évoluer? Etc
II.2) Concept de composant:
II.2.1) Notions et définitions:
Il existe plusieurs définition du concept de composant on prend celle de Harris 1999 qui a
donnée également une définition bien acceptés dans la communauté "architecture logicielle".
Un composant est un morceau de logiciel assez petit pour que l'on puisse le créer et le
maintenir et assez grand pour que l'on puisse l'installer et en assurer le support. De plus il est
doté d'interface standards pour pouvoir inter opérer.
L'analyse de l'ensemble définitions du concept de composant permet de déduire les propriétés
suivantes, à savoir qu'un composant est:
Auto-descriptif: capable de disposer d'un mécanisme d'introspection permettant de
connaître et de modifier dynamiquement ses caractéristiques.
3. Approches par composant Les composants
année Master R&T
ière
1
3
Composable: considéré comme une unité de composition il est censé être connectable
avec d'autres composants.
Configurable: il doit être paramétrable via ses propriétés configurables selon un
contexte d'exécution particulier.
Réutilisable: il doit être une unité de réutilisation une étape d'adaptation sera sans
doute nécessaire selon le contexte d'exécution.
Autonome: il peut être déployé (diffusé et installé) et exécuté indépendamment des
autres composants.
II.2.2) Modèle d'un composant:
Aujourd'hui, bien qu'il existe une diversité considérable dans les propositions modèles de
composants, tous partagent une buse conceptuelle similaire, les éléments principaux de cette
base sont les suivants:
Les composants sont définis comme des unités de composition qui décrivent et/ou
assurent des fonctions spécifiques, possèdent interfaces de besoins et des interfaces de
services et un contexte particulier d'exécution.
Les interaction ou connecteurs représentent les interactions entre composants. Les
formes simples d'interactions, comme les pipes, les appels de procédures, les
événements en sont des exemples.
Les interfaces d'un composant sont des points de communication qui lui permettent
d'interagir avec son environnement, y compris avec d'autres composants.
Les propriétés représentent les informations sémantiques des composants et leurs
interactions.
Les contraintes contrat représentent les moyens permettant à un modèle d'architecture
de rester valide durant sa durée de vie et de prendre en compte l'évolution et le
remplacement des composants logiciels dans cette architecture.
Une architecture est une spécification des composants d'un système et de leurs
interactions (un méta modèle approprié pour prédire le comportement d'un système
avant de le construire et pour guider son développement.
La composition : assemblage permet de construire des applications complexes à partir
de composants simples.
4. Approches par composant Les composants
année Master R&T
ière
1
4
II.2.3) Composants composites:
Un composant peut être composé d'autre composant et on l'appelle " composant composites"
d'un autre coté les composants internes sont les composants inclus dans un composant
composite.
Les composants internes peuvent être assembles afin de remplir les services du composant qui
dispose de ses propres interfaces et donc ses propres points de connexion.
-La mise en œuvre de la composition peut se faire au moment de la complication, mais aussi
au moment de l'exécution. Les compositions les plus utilisées sont:
Composition structurelle: ce types de composition est guidé par les interfaces fourniers et les
interfaces requises des composants.
Composition comportementale: l'objectif de ce types de composition est d'avoir un
comportement globale d'un composite à partir d'un ensemble de comportements individuels
de ses composants.
Composition fonctionnelles: l'objectif de ce type de composition est d'avoir un vue
fonctionnelle globale d'une application en assemblant des vues fonctionnelles existantes.
II.2.4) La réutilisation d'un composant:
Le concept de base est simple: développer un composant de taille raisonnable et le réutiliser.
Ensuite étendre l'idée du " composant code" à celui des composants besoin, analyse,
conception et test.
Afin de favoriser la réutilisation de composants, le groupe de travail ALRC recommande pour
l'élaboration d'architectures logicielles à base de composants réutilisable de respecter les
principes suivants:
rester indépendant des infrastructures
concevoir les architectures avec les composants
mettre remplace un processus de développement basé sur la réutilisation de
composants
exploiter les nouvelles formes de collaboration: internet, logiciels libre…
vendre les systèmes réutilisables et flexibles par la méta- modélisation