Présentation
En anglaisAuteur(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’articleINTRODUCTION
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).
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 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
Présentation
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 fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 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
Des objets aux composants
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)...
ANNEXES
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
###
* - 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 fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 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