Diagramme de composants : une modélisation du système efficace grâce aux modules de logiciel

L’Unified Modeling Language, en français : « langage de modélisation unifié » est un standard ISO universel pour le développement de logiciels mettant à disposition des architectures système plus complexes. Abrégé en « UML », ce langage de modélisation utilise différents types de diagrammes pour les planifications et les processus de développement dans la programmation orientée objet.

Dans la version actuelle (UML 2.5), on distingue 14 types de diagrammes, répartis grossièrement entre deux catégories : les diagrammes comportementaux et les diagrammes structurels. Les diagrammes de composants font partie de la deuxième catégorie. Dans cet article, nous vous expliquons ce qu’est un diagramme de composants et comment créer un tel diagramme à travers un exemple. D’autre part, vous découvrirez à quoi servent les diagrammes de composants UML.

Domaine Internet pas cher

Bien plus qu'un simple domaine !

Personnalisez votre présence en ligne avec un nom de domaine pertinent.

Email
Certificat SSL
Assistance 24/7

Qu’est-ce qu’un diagramme de composants ?

Les diagrammes de composants UML représentent les relations entre les différents composants d’un système dans une vue d’ensemble statique. Ils peuvent inclure des aspects de modélisation à la fois logiques et physiques.

Dans le contexte de l’UML, les composants sont des éléments modulaires d’un système. Ils sont indépendants et peuvent être remplacés par des composants équivalents. Ces composants sont autonomes et encapsulent un certain nombre de structures complexes. Les éléments encapsulés entrent uniquement en contact avec d’autres composants via des interfaces. Les composants peuvent mettre à disposition leurs propres interfaces ou utiliser les interfaces d’autres composants pour pouvoir accéder par exemple à leurs fonctions et leurs services. En parallèle, les interfaces documentent dans un diagramme de composants les relations et dépendances au sein d’une architecture logicielle.

Remarque

L’encapsulation empêche un accès direct à la structure de données interne afin notamment de protéger les données contre un accès non contrôlé. L’accès est contrôlé par des interfaces définies qui permettent uniquement à l’utilisateur d’accéder aux méthodes et aux éléments de données d’un objet qui lui sont nécessaires.

Les composants encapsulent généralement des classes et sont par conséquent considérés comme une sous-forme ou une spécialisation de classe. À l’instar d’une classe, ils disposent d’une structure composite et peuvent notamment être définis plus précisément à l’aide d’attributs, de méthodes et d’opérations. Les composants peuvent être constitués d’un ensemble de classes et être implémentés par une ou plusieurs classe(s) au moment de l’exécution. Bien que les composants soient souvent amalgamés avec les classes, ces éléments présentent des différences dans certains domaines. En principe, les composants ont besoin d’interfaces pour permettre une interaction. Les classes, quant à elle, peuvent accéder directement à une méthode.

Remarque

Dans la programmation orientée objet, une classe fonctionne comme un modèle abstrait décrivant un ensemble d’objets similaires. Elles disposent par exemple des mêmes attributs, opérations et relations.

Le terme « composant » est très largement défini dans UML. Différentes parties du système – comme les bases de données, les paquets (packages), les fichiers et les bibliothèques (par ex. Dynamic Link Libraries/DLLs) – font partie des composants. En dehors des composants techniques, qui sont par exemple nécessaires pour accéder à une base de données, il existe également des composants professionnels pouvant concerner des domaines d’activités et des processus commerciaux. Pour tenir compte des rapports de ce type – qui peuvent être plus vastes – l’UML a prévu le stéréotype <<subsystem>>.

La modélisation d’un système par le diagramme de composants est orientée sur la mise en œuvre. Par conséquent, il existe des composants d’implémentation spéciaux qui mettent spécifiquement en évidence les différents aspects de la mise en œuvre. Ces composants peuvent par exemple être utilisés pour implémenter d’autres composants comme des Executables (fichiers exécutables avec l’extension *.exe) sous Windows.

Remarque

On entend par implémentation la mise en œuvre concrète d’un logiciel développé ou d’un système prévu au préalable. Il peut s’agir de la réalisation concrète de programmes conçus ou de fonctionnalités et algorithmes individuels.

Rassembler plusieurs composants permet de former une architecture système plus complète. Les composants peuvent alors contenir d’autres composants ou s’appuyer les uns sur les autres. Par conséquent, un composant peut impliquer l’existence d’un autre composant (relation de dépendance). D’autre part, les modules logiciels peuvent concerner différentes phases de mise en œuvre : certains composants servent avant tout à la planification et à la projection lors de la phase de conception ; d’autres apparaissent uniquement à l’occasion de l’exécution d’un logiciel. On parle alors de composants de conception et d’exécution.

Remarque

L’exécution (angl. runtime) représente le moment où un programme est exécuté et où une tâche est accomplie.

Dans quel but les diagrammes de composants sont-ils utilisés ?

Un diagramme de composants permet d’avoir une vue d’ensemble du système selon une perspective aérienne. Cette vue d’ensemble documente l’organisation des composants du système ainsi que leurs relations et leurs dépendances mutuelles. Dans ce cadre, les diagrammes de composants permettent une vue orientée exécution et indiquent par exemple aux développeurs si le système fonctionne comme un tout et s’il remplit ses tâches et ses objectifs.

Parmi les objectifs importants et les utilisations principales de ce type de diagrammes, on trouve la modélisation de systèmes logiciels basés sur les composants, la spécification d’une architecture logicielle ainsi que la division d’un système en sous-systèmes (par ex. une interface graphique utilisateur/GUI, un domaine d’activité et de persistance avec base de données relationnelle). De plus, les sous-domaines et leurs interfaces se voient attribuer des tâches et fonctions concrètes au sein du système.

En économie, les diagrammes de composants UML constituent une base essentielle pour échanger avec le client. Grâce à une réduction notable de la complexité, les projets et les planifications deviennent ainsi plus tangibles et intelligibles, ce qui simplifie considérablement la communication. Par ailleurs, les diagrammes de composants favorisent et facilitent l’administration du développement logiciel en regroupant par exemple les classes pour former des composants gérables.

L’approche modulaire de ce type de diagrammes participe d’autre part à la rentabilité et à l’efficacité des projets puisque les systèmes logiciels peuvent également être modélisés sous forme de rapports fonctionnels structurés obtenus à partir de composants réutilisables. Les diagrammes de composants permettent de visualiser approximativement à quels endroits d’une architecture des éléments peuvent être réutilisés. La conception des systèmes peut être axée de manière optimale sur la réutilisabilité des composants et l’efficacité de leur interaction.

Les systèmes logiciels basés sur les composants permettent de gagner du temps et de l’argent dans la phase de planification et lors de la mise en œuvre des systèmes puisqu’ils s’appuient sur des éléments déjà existants. Par ailleurs, les modules logiciels testés et éprouvés réduisent les risques et les sources d’erreur notamment à l’occasion de la réalisation de projets plus complexes. Des modules de fabricants tiers permettant la mise en œuvre de systèmes sont également disponibles moyennant paiement et permettent de compléter vos propres connaissances.

De quels éléments un diagramme de composants est-il composé ?

Pour créer des diagrammes de composants, le langage de modélisation UML utilise une notation standardisée basée sur un stock propre de caractères et de symboles. Dans le tableau suivant, nous vous expliquons les principaux éléments utilisés pour les diagrammes de composants dans la version UML 2.0 :

À partir de ces éléments de base, il est par exemple possible de créer un diagramme de composants simple à l’aide du logiciel open source gratuit JGraph.

La création d’un diagramme de composants expliquée à travers un exemple

Dans notre exemple de diagramme de composants, nous allons vous montrer comment la structure et le fonctionnement d’un logiciel de messagerie peuvent être visualisés. Le diagramme de composants montre comment les trois modules de base interagissent via des interfaces :

  • Gestion des emails (1)
  • Réception des emails (2)
  • Envoi des emails (3)

La gestion des emails (1) est le centre de contrôle du système qui interagit avec les utilisateurs et les autres modules du logiciel via plusieurs interfaces et ports de service. Afin de pouvoir veiller au bon fonctionnement, l’utilisateur dispose d’une interface et d’un port de service (port de gestion) pour l’administration du système. La flèche d’utilisation en pointillés indique que l’utilisateur dépend de cette interface pour exercer ses activités d’administration.

Les systèmes et les composants en dehors de l’architecture modélisée peuvent être rattachés au système via l’interface « Récupérer les e-mails » mise à disposition. Les fonctionnalités et les données nécessaires au module d’envoi des e-mails (3) sont mises à disposition par le module de gestion à travers l’interface réalisée proposée « Envoyer des e-mails ». Le module de gestion a également recours à des services et fonctionnalités lorsqu’il utilise l’interface « Recevoir les e-mails » du module de réception des e-mails (2). D’un point de vue graphique, les relations entre les composants sont représentées par des symboles en forme de sucettes et de prises utilisés pour les interfaces.

Ce schéma montre les composants du système dans une représentation « boîte noire » (Black box) qui dissimule les rouages internes au profit d’une meilleure visibilité. Lorsqu’ils sont présentés dans une représentation « boîte blanche » (White Box), les diagrammes de composants se consacrent à la structure interne des composants. La composante de gestion (1) pourrait par exemple être dotée des sous-composants fonctionnels « Front-end » et « Administration système » qui assisteraient l’administrateur dans la gestion du système :

La profondeur de représentation d’un diagramme de composants peut être augmentée en définissant les éléments concernés de façon plus précise conformément au standard UML. Une classe utilisée peut par exemple être précisée par des attributs et des opérations. Notre article sur les diagrammes de classes présente en détail les options pour une spécification des classes plus détaillée. Les diagrammes de cas d’utilisation (Use case diagramm) et les diagrammes états-transitions offrent d’autres options de conception et de modélisation.