Article de référence | Réf : H2759 v1

Des objets aux composants
Programmation par composants

Auteur(s) : Michel RIVEILL, Philippe MERLE

Date de publication : 10 nov. 2000

Pour explorer cet article
Télécharger l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !

Sommaire

Présentation

Version en anglais English

Auteur(s)

  • Michel RIVEILL : Professeur à l’université de Nice-Sophia-Antipolis

  • Philippe MERLE : Maître de conférences à l’université des sciences et technologies de Lille - Laboratoire d’informatique fondamentale de Lille (LIFL)

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

INTRODUCTION

Parmi les principaux phénomènes qui révolutionnent l’industrie du logiciel, nous constatons que les applications deviennent de plus en plus grosses et de plus en plus complexes et que les technologies orientées objets font une percée irréversible sur le marché, introduisant dans les méthodes de développement logiciel une flexibilité nouvelle. Ainsi , les technologies de développement du logiciel ont un poids de plus en plus important dans l’économie. Face à la difficulté de maîtriser le développement du logiciel, le succès de nombreux projets repose sur le respect d’un petit nombre de règles clés :

  • gérer les besoins : les besoins métiers changent tous les jours et leur gestion formelle est une activité indispensable qui permet de s’assurer que le système final répond bien à ce que les utilisateurs en attendent. Cette gestion doit recouvrir la formalisation, la documentation, l’organisation et le suivi des changements des besoins ;

  • employer des architectures à base de composants : une des évolutions technologiques majeures en matière de développement logiciel est l’avènement des composants. Les architectures à base de composants constituent la seule réponse à l’évolutivité nécessaire et permanente des systèmes d’information ;

  • modéliser visuellement l’architecture : il est impossible d’appréhender la complexité et de communiquer efficacement à tous les membres d’une équipe les aspects d’architecture et de comportement d’un système sans une modélisation visuelle et graphique. L’avènement d’un standard tel que UML représente une avancée majeure dans ce domaine ;

  • développer de manière itérative : étant donnée la sophistication des systèmes actuels, il n’est plus possible de se contenter de mettre en série les activités de définition, de conception, de développement et de test. Les nombreux échecs enregistrés récemment dans de grands programmes en sont une preuve évidente. Une approche itérative fournit une plus grande flexibilité car elle permet de prendre en compte rapidement de nouveaux besoins ou des changements tactiques, et d’identifier et de résoudre les risques au plus tôt ;

  • vérifier la qualité : du fait du rôle fondamental des systèmes dans la vie de l’entreprise, leur qualité doit être irréprochable. Celle-ci n’est pas l’affaire de personnes extérieures, mais résulte de l’activité quotidienne de tous les membres de l’équipe de développement. La vérification permanente de la qualité (adéquation, fiabilité, performance) est essentielle. Elle repose sur trois principes fondamentaux : tester tôt, tester souvent, tester automatiquement ;

  • gérer les changements : le succès du développement itératif et du développement parallèle repose sur la capacité à gérer les évolutions et les changements qui surviendront inévitablement pendant le développement, et à maîtriser les activités quotidiennes du développement liées à la multiplicité des intervenants.

Ces principes doivent constituer la base de toute démarche de développement moderne qui repose, en outre, sur l’automatisation des activités. Celle-ci permet d’augmenter la productivité des équipes de développement, de garantir le respect des procédures et de minimiser les risques d’erreurs.

Parmi les nouveaux concepts logiciels, l’approche composant doit permettre de trouver une structure globale, manipulable par des gens dont le métier est de composer des structures plutôt que d’inventer des éléments permettant de construire des structures. Un système fabriqué avec des objets, par exemple une comptabilité, une messagerie, peut comporter de 400 à 1 000 classes, alors qu’en le structurant en composants, on peut ramener à 10 ou 20 le nombre de briques manipulées. L’objet, au sens traditionnel du terme, évolue vers une structure à base de composants et cette problématique se retrouve dans la fabrication des logiciels, les middlewares, les systèmes de gestion de base de données (SGBD), etc.

Si construire une application est un processus complexe, il n’est pas possible de trouver un qualificatif pour l’ingénierie des applications distribuées. Différentes technologies sont aujourd’hui proposées pour permettre l’accès à des données distantes ou l’exécution à distance de programmes. Ces technologies reposent sur l’ajout à un système d’exploitation existant d’une couche logicielle appelée « middleware », comme par exemple les courtiers d’objets (ORB) ou les bus de messages. Les applications sont construites comme une collection de composants logiciels indépendants, interconnectés à l’aide de ces « middlewares ». Pour mettre en évidence la structure des applications, ces assemblages peuvent être décrits à l’aide d’ADL (Architecture Description Language) qui permettent la mise en œuvre des différents composants de l’application par des langages de programmation différents, et l’intégration de ceux-ci à travers différents modèles d’exécution ou de communication reposant sur un ou plusieurs middlewares (interaction client/serveur pour les ORB ou modèle événement/réaction dans le cas des bus de messages).

Cet article présente les principaux éléments de la technologie composant, tels qu’ils se discutent dans les différents consortiums industriels, c’est-à-dire les Java Beans, les Enterprise Java Beans (EJB), les composants OMG (Object Management Group) et la vision Microsoft. Finalement, nous discutons des langages de description d’architectures (ADL) à travers une présentation synthétique du projet Olan mené par l’équipe SIRAC (Systèmes informatiques répartis pour applications coopératives) de l’Institut national de la recherche en informatique et automatique (INRIA).

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h2759


Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Version en anglais English

1. Des objets aux composants

Les années 1990 ont vu l'explosion de l'utilisation du paradigme de l'objet pour la construction de logiciels aussi bien au niveau des méthodes de conception (OMT, UML), des langages de programmation (C++, Java), des interfaces graphiques, des bases de données orientées objet (OQL, ODMG) que des systèmes distribués (CORBA). Il est maintenant notoirement reconnu que l'objet est un paradigme incontournable pour construire du logiciel évolutif et maintenable. Néanmoins, l'objet n'est pas sans défaut et il est de plus en plus question de composants comme ceux de Microsoft, les Java Beans, les Enterprise Java Beans ou bien les composants CORBA pour ne citer que les plus connus. Si les bénéfices de l'utilisation des objets sont assez bien caractérisés dans la littérature [1], il faut noter que le paradigme composant reste très flou. Il est difficile de placer une frontière entre les objets et les composants : un composant n'est-il pas tout simplement un objet évolué ? Comment caractériser alors ces évolutions ? Ce paragraphe expose l'évolution conduisant les objets vers les composants en illustrant quelques apports de ces derniers.

1.1 Des objets ...

Rappelons brièvement quelques concepts clés des objets, à savoir l'encapsulation, l'instanciation, le polymorphisme et l'héritage. Un objet est une boîte noire regroupant des traitements (ou méthodes) agissant sur des données (ou attributs). Les attributs ne sont accessibles que par des méthodes (le principe d'encapsulation). L'instanciation d'un objet est faite à partir d'un moule (souvent une classe) définissant la liste des attributs et des méthodes de ses instances. L'ensemble des méthodes accessibles depuis l'extérieur forme l'interface publique de l'objet. Des objets de classes différentes peuvent partager une interface commune (polymorphisme). L'héritage permet de classifier, spécialiser et étendre les classes et les interfaces.

Il est important de noter que les concepts précités et les constructions des langages de programmation favorisent seulement la réutilisation des moules (classes et interfaces) mais s'occupent rarement de la réutilisation des objets. Par exemple, la persistance d'un objet doit être prévue dans son implantation. Si on...

Cet article est réservé aux abonnés.
Il vous reste 95% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS

Lecture en cours
Des objets aux composants
Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - MEYER (B.) -   Conception et programmation par objets.  -  1990, InterEditions, Paris, France.

  • (2) - CHAUVET (J.-M.) -   Comprendre l’architecture des serveurs d’applications.  -  1999, Eyrolles.

  • (3) - BRETHES (T.), HISQUIN (F.), PEZZIARDI (P.) -   Serveurs d’applications.  -  2000, Eyrolles.

  • (4) -   Livre blanc sur l’Entreprise Application Integration (EAI).  -  1999, Octo Technology. www.octo.fr

  • (5) - ROGERSON (D.) -   Inside COM.  -  1997, Microsoft Press, Redmond WA, États-Unis.

  • (6) - EDDON (G.), EDDON (H.) -   Au cœur de Distributed COM.  -  1998, Microsoft press, les Ulis.

  • (7)...

1 Thèses

* - http://www.sudoc.abes.fr

FABRESSE (L.) - Proposition d'un langage de programmation à base de composants logiciels interfaçables et application à la génération semi-automatisée d'IHM. - Université des sciences et techniques du Languedoc (2003).

COURBIS (C.) - Contribution à la programmation générative : application dans le générateur SmartTools, technologies XML, programmation par aspects et composants. - Université de Nice-Sophia Antipolis (2002).

SY (O.) - Spécification comportementale de composants CORBA. - Université des sciences sociales (Toulouse) (2001).

CHORFI (H.) - Développement d'un composant java permettant de tracer des courbes. - Université Montpellier II Sciences et Techniques du Languedoc (2000).

HAUT DE PAGE

2 Sites Internet

###

* - SIRAC http://sardes.inrialpes.fr/sirac/

* - ExperShop http://www.experlog.com/

* - Microsoft Internet Information Server http://www.microsoft.com/France/iis

Composants Java

* - http://java.sun.com/products/javabeans/

QUINN (A.) - JavaBeans : Components for the Java Platform. - http://java.sun.com/docs/books/tutorial/javabeans/index.html

DESOTO (A.) - Using the Beans Development Kit - a tutorial. - Novembre 1997. http://java.sun.com/beans/docs/Tutorial-Nov97.pdf

PELEGRI-LLOPART...

Cet article est réservé aux abonnés.
Il vous reste 94% à découvrir.

Pour explorer cet article
Téléchargez l'extrait gratuit

Vous êtes déjà abonné ?Connectez-vous !


L'expertise technique et scientifique de référence

La plus importante ressource documentaire technique et scientifique en langue française, avec + de 1 200 auteurs et 100 conseillers scientifiques.
+ de 10 000 articles et 1 000 fiches pratiques opérationnelles, + de 800 articles nouveaux ou mis à jours chaque année.
De la conception au prototypage, jusqu'à l'industrialisation, la référence pour sécuriser le développement de vos projets industriels.

Cet article fait partie de l’offre

Technologies logicielles Architectures des systèmes

(240 articles en ce moment)

Cette offre vous donne accès à :

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques

Des services

Un ensemble d'outils exclusifs en complément des ressources

Un Parcours Pratique

Opérationnel et didactique, pour garantir l'acquisition des compétences transverses

Doc & Quiz

Des articles interactifs avec des quiz, pour une lecture constructive

ABONNEZ-VOUS