Structures dans le développement logiciel : modèles architecturaux

Structures dans le développement logiciel : modèles architecturaux

Les modèles architecturaux décrivent la structure de base d’un système logiciel et sont souvent basés sur des modèles de conception. Les cinq livres de la série “Pattern-Oriented Software Architecture” fournissent des informations et des suggestions précieuses sur le thème des modèles architecturaux.

Rainer Grimm travaille depuis de nombreuses années en tant qu’architecte logiciel, chef d’équipe et responsable de la formation. Il aime écrire des articles sur les langages de programmation C++, Python et Haskell, mais aime aussi intervenir fréquemment lors de conférences spécialisées. Sur son blog Modernes C++, il traite intensément de sa passion pour le C++.

Commençons par un aperçu de la classification : en quoi les modèles architecturaux, les modèles de conception et les idiomes diffèrent-ils ?

La principale différence entre le modèle architectural, le modèle de conception et l’idiome réside dans la catégorisation structurelle basée sur leur portée et leur niveau d’abstraction :

  • Architekturmuster décrire la structure de base de l’ensemble du système logiciel. Ils sont souvent basés sur des modèles de conception.
  • design pattern définir l’interaction des composants et se concentrer sur les sous-systèmes.
  • UN Idiome est une implémentation d’une architecture ou d’un modèle de conception dans un langage de programmation concret. L’un des idiomes les plus populaires en C++ est l’acquisition de ressources est l’initialisation (RAII). Ils sont représentés par des conteneurs, des pointeurs intelligents et des verrous.

J’aimerais résumer mes réflexions sur les modèles architecturaux, les modèles de conception et les idiomes :

  • Les catégories structurelles vont de l’abstrait au concret. Les idiomes sont les plus concrets.
  • Ils travaillent au niveau macro (modèles architecturaux), au niveau micro (modèles de conception) et au langage de programmation (idiomes).
  • Les modèles architecturaux se concentrent sur le système, les modèles de conception sur les sous-systèmes et les idiomes sur le langage de programmation.

La série de livres en cinq parties sur l’architecture logicielle orientée modèle (POSA) est une ressource précieuse sur les modèles architecturaux :

Dans le cadre de cet article, je présenterai sous une forme compacte les sept modèles architecturaux les plus couramment utilisés : calques, canaux et filtres, courtier, contrôleur de vue de modèle (MVC), réacteur, objet actif et objet de surveillance.

POSA 1 fournit une première classification.

Les modèles suivants permettent une décomposition contrôlée d’une tâche système globale en sous-systèmes coopérants.

  • architecture en couches: décomposez une tâche en couches. Chaque couche a une responsabilité spécifique et fournit un service à une couche supérieure.
  • Tuyaux et filtres: décompose une tâche conçue pour effectuer un traitement complexe en un ensemble d’éléments distincts qui peuvent être réutilisés. Cela peut améliorer les performances, l’évolutivité et la réutilisabilité, car les éléments de tâche qui effectuent le traitement peuvent être utilisés et mis à l’échelle indépendamment les uns des autres.

Le modèle de courtier peut être utilisé pour créer des systèmes dont les composants sont situés dans différents processus ou espaces d’adressage.

  • Courtier: Structure des systèmes logiciels distribués qui interagissent avec les appels de service à distance. Il est responsable de la coordination des communications, de leurs résultats et des exceptions.

Construisez un système avec une interaction homme-ordinateur.

  • Modèle-Vue-Contrôleur (MVC): Divise la logique de programme d’une interface utilisateur en un modèle, une vue et un contrôleur de composants individuels. Le modèle gère les données et les règles de l’application. La vue restitue les données et le contrôleur interagit avec l’utilisateur.

Des classifications supplémentaires sont ajoutées dans POSA 2 :

Lancer, recevoir, démultiplexer et envoyer des événements dans des systèmes distribués et en réseau.

  • Réacteur: Une application événementielle qui peut accepter plusieurs demandes de clients en même temps et les distribuer à différents fournisseurs de services.

Résout les problèmes d’architecture simultanée et de conception de composants, de sous-systèmes et d’applications.

  • Objet actif: sépare l’exécution de la méthode de l’invocation de la méthode.
  • Objet moniteur: synchronise l’accès à un objet afin qu’une seule fonction membre puisse être exécutée à la fois.

Après ce premier tour d’horizon des livres POSA et des patterns qui y sont abordés, je présenterai plus en détail le pattern architectural Layers dans mon prochain article.


(carte)

Vers la page d’accueil

Facebook
Twitter
LinkedIn
Pinterest

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.