Image meilleure pratique utiliser les architectures de composant

Architecture axée sur les composants avec des couches

Rubriques

En quoi consiste les architectures de composants ? Haut de la page

Une architecture de composants est une architecture axée sur des composants remplaçables comme cela est décrit dans Concepts : Composant. Dans la mesure où les architectures de composants sont axées sur des composants indépendants, remplaçables et modulaires, ils facilitent la gestion de la complexité et encouragent la réutilisation.

Importance architecturale Haut de la page

Les cas d'utilisation influencent le Rational Unified Process (RUP) tout au long du cycle de vie, mais les activités de conception se focalisent sur la notion d'architecture système et, pour les systèmes exigeants beaucoup de logiciels, l'architecture logicielle. L'intérêt principal des premières itérations du processus- principalement dans la phase d'élaboration- consiste à créer et à valider une architecture logicielle, qui, durant le cycle de développement initial, prend la forme d'un prototype architectural exécutable qui évolue progressivement pour devenir le système final dans les itérations ultérieures.

Une architecture exécutable signifie une implémentation partielle de la version du système afin de présenter des fonctions et des propriétés système données, en particulier celles qui répondent aux exigences non fonctionnelles. L'objectif de l'architecture exécutable est de limiter les risques liés à la performance, le débit, la capacité, la fiabilité, etc., pour que la capacité fonctionnelle globale du système puisse être ajoutée à la phase de construction sur une base solide, sans risque de dégâts.

Pour une présentation de la notion d'architecture- plus précisément de l'architecture logicielle- et une explication sur l'importance cruciale de cette notion, voir Concepts : Architecture logicielle.

RUP propose une manière méthodique et systématique de concevoir, développer et valider une architecture. Nous proposons des modèles de description architecturale autour des concepts de vues architecturales multiples, et pour l'élaboration du style architectural, des règles de conception et des contraintes. La discipline d'analyse et de conception comporte des activités spécifiques dont les objectifs consistent à identifier les contraintes architecturales et les éléments architecturaux significatifs, ainsi que des recommandations sur la manière dont les décisions architecturales doivent être prises. Le processus de gestion montre comment la planification des premières itérations prend en considération la conception d'une architecture et la résolution des principaux risques techniques. Voir la discipline de ../../process/workflow/ovu_mgm.htm -- This hyperlink in not present in this generated websitegestion de projet et toutes les activités liées au Rôle : Architecte logiciel pour plus d'informations.

L'architecture est importante pour plusieurs raisons :

  • Elle vous permet d'obtenir et de conserver un contrôle intellectuel du projet, de gérer sa complexité et de maintenir l'intégrité du système.

Un système complexe représente plus que la somme de ses composants ; plus qu'une succession de petites décisions tactiques indépendantes. Il doit posséder une structure cohérente unificatrice pour organiser ces pièces de façon systématique et il doit fournir des règles précises sur la façon d'étendre le système sans que sa complexité "n'explose" au-delà de toute compréhension.

L'architecture établit les moyens d'améliorer la communication et la compréhension au sein du projet en établissant une série commune de références, un vocabulaire commun utilisé pour évoquer les problèmes de conception.

  • C'est une base efficace pour une réutilisation à large échelle.

En organisant clairement les principaux composants et les interfaces cruciales qui les lient, une architecture vous permet d'envisager une réutilisation- qu'elle soit interne, c'est-à-dire l'identification de parties communes, et externe, l'incorporation de composants standards et prêts à utiliser. Cependant, elle permet aussi une réutilisation à plus grande échelle : la réutilisation de l'architecture elle-même dans le contexte d'une gamme de produits traitant différentes fonctionnalités du même domaine.

  • Elle fournit une base pour la gestion de projet.

La planification et le recrutement sont organisés selon les principaux composants. Les décisions structurelles fondamentales sont prises par une petite équipe architecturale homogène, elles ne sont pas réparties. Le développement est partagé entre un ensemble de petites équipes, chacune étant responsable d'une ou de plusieurs parties du système.

Développement à base de composants Haut de la page

Le développement à base de composants est une variante du développement général d'applications dans lequel :

  • L'application est créée à partir de composants exécutables discrets qui sont développés relativement indépendamment les uns des autres, éventuellement par différentes équipes. Ils sont appelés dans le RUP des "composants d'assemblage ". Voir Concepts : Composant pour une définition plus détaillée.
  • L'application peut être mise à niveau par incréments plus petits en mettant uniquement à niveau certains des composants d'assemblage qui forment l'application.
  • Les composants d'assemblage peuvent être partagés entre les applications, ce qui permet une réutilisation, mais crée également des dépendances inter-projet.
  • Bien que cela ne soit pas directement lié au fait d'être à base de composants, les applications basées sur les composants sont généralement réparties.

Les composants d'assemblage sont obtenus après les étapes suivantes :

  • En définissant une architecture très modulaire, vous identifiez, isolez, concevez, développez et testez des composants bien formés. Ces composants peuvent être testés individuellement et intégrés progressivement pour former le système global.
  • De plus, certains de ces composants peuvent être développés pour être réutilisables, en particulier les composants qui fournissent des solutions générales à une large gamme de problèmes généraux. Ces composants réutilisables, qui peuvent être plus conséquents que de simples recueils d'utilitaires ou de bibliothèques de classes, sont à la base de la réutilisation au sein d'une organisation, accroissant la productivité et la qualité globale des logiciels.
  • Plus récemment, la réussite commerciale connue par des infrastructures de composants comme CORBA, Internet, ActiveX, JavaBeans, .NET et J2EE, a entraîné la création d'une industrie complète de composants standards pour différents secteurs, vous permettant d'acheter et d'intégrer des composants plutôt que de tous les développer en interne.

Le premier point de la liste ci-dessus utilise les anciens concepts de modularité et d'intégration, et fait évoluer ces concepts liés à une technologie axée sur les objets. Les deux derniers points de la liste font passer le développement logiciel d'une programmation ligne par ligne à la composition de logiciels par assemblage de composants.

RUP prend en charge le développement à base de composants selon les manières suivantes :

  • L'approche itérative vous permet d'identifier progressivement les composants, et de décider lesquels développer, réutiliser ou acheter.
  • L'accent mis sur l'architecture logicielle vous permet d'assembler la structure - les composants et la manière dont ils s'intègrent - ce qui comporte les mécanismes et les patterns fondamentaux à partir desquels ils interagissent. Cela permet ensuite de prendre en charge les aspects de planification de la gestion de projet, dans la mesure où les dépendances de composants peuvent aider à déterminer quels composants peuvent être développés simultanément, et lesquels de façon séquentielle.
  • Des concepts, comme les packages, les sous-systèmes et les couches sont utilisés pendant l'analyse et la conception pour organiser les composants et choisir les interfaces.
  • Le test est d'abord organisé autour de composants, puis graduellement autour de séries plus importantes de composants intégrés.

Pour plus d'informations sur les composants, voir Concepts : Composant.



RUP (Rational Unified Process)   2003.06.15