Académique Documents
Professionnel Documents
Culture Documents
1- Limites de programmation OO
• évolutions/modifications difficiles
• assemblage
• déploiement ( => installation ) • peu ou pas d’outils pour installer les exécutables
sur les différents sites
Inconvénients
Très coûteux
Avantages Temps de mise sur le marché plus court Juste à configurer Produit
acquis
INTRODUCTION
La notion de composant est ainsi apparue comme fondamentale pour résoudre les
problèmes posés grâce à ses bonnes caractéristiques qui complètent celles de la
notion d’objet.
La notion de composant a émergé dans le courant des années 90. Elle répond à des
préoccupations, essentiellement pratiques, et vise à pallier des insuffisances du
modèle à objets. Ces insuffisances sont apparues notamment dans le domaine de la
conception et de l’administration de systèmes ouverts, à grande échelle (« dans le
large »).
Un composant est un morceau de logiciel assez petit pour que l'on puisse le créer, le
maintenir et en assurer le support. Il est également doté d'interfaces standards pour
pouvoir intéropérer. [Jed Harris 1995]
A software component is a unit of composition with contractually specified interfaces
and explicit context dependencies only. A software component can be deployed
independantly and is subject to composition by third parties. [Szyperski 1996]
: + Une interface fournie: qui, à l’instar de l’interface d’un objet, définit les services, la
fonctionnalité, assurés par le composant. Un composant peut fournir une ou
plusieurs interfaces, correspondant à une ou plusieurs « vues » du service rendu par
le composant.
Un composant est donc une boite noire que l’on peut utiliser pour construire des
applications en connectant les interfaces clientes aux interfaces serveuses.
Il n'y a pas de définition officielle de ce qu'est un ADL. La définition admise est qu'un
ADL spécifie les composants d'un système, leurs interfaces, les connecteurs (lieux
d'interaction entre les composants), et la configuration architecturale. Les langages
de description d'architecture (ADLs) sont des langages formels qui peuvent être
utilisés pour représenter l’architecture d’un système logiciel. Comme l’architecture est
devenue un thème important dans le développement de systèmes logiciels, les
méthodes pour spécifier de façon non ambiguë une architecture, deviennent
indispensables.
- un formalisme commun,
- la composition,
- le raffinement et la traçabilité
, - l’hétérogénéité,
- le passage à l’échelle
, - l’évolution de la configuration,
- les contraintes,
Un formalisme commun
Une configuration doit permettre de fournir une syntaxe simple et une sémantique
permettant de - faciliter la communication entre les différents partenaires d’un projet
(concepteurs, développeurs, testeurs, architectes),
La composition
La définition de la configuration d’une application doit permettre la modélisation et la
représentation de la composition à différents niveaux de détail. La notion de
configuration spécifie une application par composition hiérarchique. Ainsi un
composant peut être composé de composants, chaque composant étant spécifié lui-
même de la même manière, jusqu’au composant dit primitif, c’est-à-dire non
décomposable. L’intérêt de ce concept est qu’il permet la spécification de
l’application par une approche descendante par raffinement, allant du niveau le plus
général formé par les composants et les connecteurs principaux, définis eux mêmes
par des groupes de composants et de connecteurs, jusqu’aux détails de chaque
composant et de chaque connecteur primitifs.
Le raffinement et la traçabilité
La configuration est également un moyen de permettre le raffinement de
l’application d’un niveau abstrait de description général vers un niveau de description
de plus en plus détaillé, et, ceci, à chaque étape du processus de développement
(conception, implantation, déploiement). Ainsi il est possible, par la définition de la
configuration, de garder trace de ce qui a été fait en amont, et de créer des liens
entre les différents niveaux de description de l’application. Cette caractéristique
permet le rapprochement entre les modèles de haut niveau et le code.
L’hétérogénéité
La configuration d’un ADL doit permettre le développement de grands systèmes avec
des éléments préexistants de caractéristiques différentes. L’ADL doit être capable de
spécifier une application indépendamment du langage de programmation, du
système d’exploitation et du langage de modélisation.
Le passage à l’échelle
Les ADLs se doivent de proposer une modélisation de systèmes qui peuvent grossir
en taille. Il s’agit de prévoir le nombre d’instances et leur placement dans un
environnement ainsi que la dynamique de l’application.
L’évolution de la configuration
La configuration doit être capable d’évoluer pour prendre des nouvelles
fonctionnalités impliquant une modification ou une évolution de la structure de
l’application. Elle doit permettre de faire évoluer l’architecture d’une application de
manière incrémentale, c’est-à- dire par ajout ou retrait de composants et des
connecteurs.
Les contraintes
Les contraintes liées à la configuration viennent en complément des contraintes
définies pour chaque composant et chaque connecteur. Elles décrivent les
dépendances entre les composants et les connecteurs et concernent des
caractéristiques liées à l’assemblage de composants que l’on qualifie de contraintes
inter composants. La spécification de ces contraintes permet de définir des
contraintes dites globales, s’appliquant à tous les éléments de l’application.
Un assemblage de composants consiste à lier des composants entre eux via les
ports. Une application formée de composants est un assemblage de composants.
L’élément de base de connexion est la liaison simple : elle lie un port de services
requis à un port de services offerts compatible d’un autre composant. Un port
compatible réalise une interface qui définit au moins tous les services définis par
l’interface de services réalisée par le port offert. Le connecteur permet de relier un ou
plusieurs ports, chacun sur des composants différents. Le connecteur réalise un
certain protocole de communication. Il est lié aux ports des composants via des
liaisons.
L’architecture interne d’un composant peut être de deux natures, ce qui nous fait
définir deux types de composants :