• Aucun résultat trouvé

Chapitre 2. Ingénierie Système appliquée aux systèmes critiques

2.4. Architecture système

2.4.4. Patrons de conception (design patterns)

Issus des travaux de l’architecte Christopher Alexander (1977), les patrons de conception (design patterns en anglais) ont été adaptés par quatre auteurs de la communauté de conception orientée objet, Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides, dans le domaine du logiciel (Salloway & Trott, 2002) pour se généraliser ensuite en ingénierie système (Cloutier & Verma, 2007).

Un patron de conception est « une solution apportée à un problème dans un contexte donné » (Alexander et al., 1977) et comprend quatre parties, un nom significatif, le contexte, le problème et la solution.

Ainsi, dans la construction montagnarde traditionnelle en Europe de l’ouest, le patron de conception, avec l’étable jouxtant le logement, est par exemple bien connu (une illustration est fournie à ce sujet en Figure 2.10). Cette solution du contexte montagnard est une réponse adaptée à la rudesse de l’hiver pour profiter de la chaleur produite par les animaux de l’étable. En vis-à-vis du contexte montagnard, le contexte chinois présente un autre patron pour répondre au même problème. En Chine du nord, la maison est orientée nord-sud, avec les ouvertures vers le sud et adossée à une montagne au nord pour protéger la maison des vents

du nord. La Cité Interdite est construite sur cette base. D’autres principes d’ordres culturels et sociaux, dont la séparation entre la vie publique et la vie privée, président à la construction des maisons chinoises.

Figure 2.10. Exemple de patron de conception, l'architecture montagnarde (photo prise dans le village de Saint-Véran).

Dans le domaine du logiciel, un patron de conception est décrit par (Salloway & Trott, 2002) :  un nom qui identifie le patron de conception de façon unique ;

 un objectif ;

 le problème auquel le patron de conception apporte une solution ;

 la solution apportée dans un contexte donné pour répondre au problème ;

 des participants et interlocuteurs qui sont des entités impliquées dans la réalisation du patron de conception ;

 les conséquences sur les différents intervenants et les impacts du patron de conception ;  l’implémentation qui est la mise en œuvre, concrète, singulière, du patron de

conception ;

 la référence du patron de conception dans le livre d’Erich Gamma et ses collègues. À ce sujet, ces quatre auteurs, Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides, (Salloway & Trott, 2002) ont élaboré des patrons de conception parmi lesquels nous pouvons trouver les patrons suivants :

 pont (Bridge) ;  proxy (Proxy) ;  interpréteur (Interpreter) ;  observateur (Observer) ;  état (State) ;  visiteur (Visitor).

Le patron de conception « observateur » répond au problème de communiquer un signal, un changement d’état, d’un composant, dit observable, à un ensemble de composants jouant le rôle d’observateurs. Le contexte est celui de la communication d’information entre composants indépendants les uns des autres. Ce patron de conception est très souvent lié à celui de « publier-souscrire ».

Ce patron de conception « publier-souscrire » répond au problème de la diffusion d’informations entre des composants, les uns publiant ces informations, les autres s’abonnant à ces informations. Ce patron de conception permet de découpler les composants et d’homogénéiser ces échanges d’informations en évitant les liens ad hoc entre ceux qui publient et ceux qui s’abonnent. En suivant ce patron de conception, un nouvel observateur peut s’abonner à des informations d’observables sans modifier l’architecture du système. Ce patron de conception est complémentaire du patron de conception « observateur ». En effet, l’observateur souscrit à un ensemble d’informations que publie un observable. L’observateur souscrit à des informations selon des thèmes ou des contenus définis.

Dans de nombreux systèmes, un courtier de messages (broker) gère les publications et les abonnements, ce qui réduit encore le couplage puisque les observables qui publient des informations n’ont pas à gérer la liste des observateurs qui souscrivent à ces informations. Le patron de conception « courtier de messages » (broker) gère des abonnements au profit des observables et des observateurs, les libérant des dépendances entre eux pour réduire le couplage entre ces composants. À ce titre, il complète le patron de conception « publier-souscrire ». Il médiatise les communications entre différents composants et minimise les connaissances mutuelles que ces composants doivent avoir, c’est-à-dire quels sont les composants abonnés ? A quelles informations sont-ils abonnés ? Quels sont les formats des échanges ?

Le patron de conception « proxy » (proxy) permet de fournir une interface à des systèmes, de contrôler des accès d’un système, d’un composant et de simplifier son utilisation, en particulier si ce composant doit être manipulé à distance (via un réseau).

De leur côté, Cloutier & Verma (Cloutier & Verma, 2007) déclinent les patrons de conception pour les systèmes en les caractérisant ainsi :

 nom du patron de conception ;  alias ;

 mots-clés ;

 contexte du problème ;  description du problème ;

 forces, c’est-à-dire les défis que représente le problème ;  solution du problème ;

 modèle ;  interfaces ;

 contexte résultant ;  exemple ;

 usage connu ;

 patrons de conception connexes ;  référence ;

 justification du patron de conception ;  auteur du patron de conception.

Dans ce contexte, Cloutier & Verma (Cloutier & Verma, 2007) décrivent un patron de conception de réseau comprenant des centres (hubs) et des nœuds (nodes), un patron de conception d’un système de commande et de contrôle (C2). La Figure 2.11 est un des modèles du patron de conception du système C2.

La partie consacrée à « l’Ingénierie des Interactions Homme-Machine » présente des patrons de conception spécifiques du domaine des IHM (cf. Chapitre 3, § 3.4.1).

2.5. Surveiller l’usage du système : éléments d’architecture

préalables pour concevoir un système résilient

Pour développer une capacité de navigation à vue, il est nécessaire que les opérateurs sachent quel est l’état du système, dans quel environnement ils opèrent. C’est pourquoi nous décrivons ensuite les principes de système de surveillance de l’usage et de l’état d’un système (HUMS pour healt and usage monitoring systems) élaboré dans le domaine de la sûreté de fonctionnement, et plus particulièrement de la maintenance, susceptible de satisfaire le besoin des opérateurs de connaître l’état du système dont ils ont la charge.

2.5.1. Système de surveillance de l’usage et de l’état d’un système -