Fondements et principes de l'architecture logicielle

Classé dans Informatique

Écrit le en français avec une taille de 6,31 KB

Principes de l'architecture

  • Abstraction
  • Encapsulation
  • Séparation des responsabilités
  • Couplage et cohésion
  • Non-répétition (DRY)
  • Paramétrage et configuration
  • Clarté et simplicité
  • Séparation de l'interface et de la mise en œuvre

Utilité de l'architecture logicielle

L'architecture du logiciel nous permet de raisonner et de planifier :

  • La fiabilité du système
  • L'évolution
  • La réutilisation
  • L'efficacité
  • L'amélioration de l'entretien
  • Etc.

Avantages de l'étude de l'architecture

Comprendre les détails de l'architecture sélectionnée est propice à la recherche des meilleures solutions de rechange à la conception.

Problèmes liés à un manque d'architecture

  • Mauvaise performance
  • Entretien coûteux
  • Difficulté à évoluer
  • Réutilisation limitée
  • Projets inefficaces

Définition de l'architecture

  • Vue structurelle de haut niveau
  • Définition du style ou d'une combinaison de styles pour une solution
  • Focus sur les exigences non fonctionnelles (les exigences fonctionnelles sont traitées par la modélisation et la conception)
  • Essentielle au succès ou à l'échec d'un projet

L'architecture d'un système logiciel est la structure ou les structures du système, comprenant :

  • Des éléments.
  • Des propriétés visibles extérieurement.
  • Les relations entre ces éléments.

Types de structures d'intérêt

  • Structures statiques : organisation au temps de conception.
  • Structures dynamiques : organisation à l'exécution.

Éléments statiques

Ils concernent la conception du système, les éléments qui le composent et leurs relations.

Logiciels

  • Modules
  • Classes
  • Forfaits
  • Procédures stockées

Éléments de données internes

  • Classes
  • Entités / tables relationnelles
  • Fichiers de données
  • Documents XML / HTML
  • Etc.

Matériel interne

  • CPU
  • Composants matériels (moniteur, clavier, etc.)
  • Composants réseau

Le dispositif statique de ces éléments définit les partenariats, les relations ou la connectivité entre eux.

Système dynamique des structures

Montre comment le système fonctionne au moment de l'exécution.

Propriétés visibles de l'extérieur

Elles se manifestent de deux façons :

  • Comportement visible à l'extérieur.
  • Attributs de qualité.

Comportement visible à l'extérieur

Ces propriétés sont liées à la fonction exercée par le système du point de vue d'un observateur extérieur, traitant spécifiquement des interactions fonctionnelles entre le système et son environnement.

Attributs de qualité

Propriétés externes liées aux exigences non fonctionnelles telles que la performance, la sécurité et l'entretien.

Architecture candidate

Une architecture candidate est une combinaison de structures dynamiques et statiques ayant le potentiel d'exposer le comportement et les attributs de qualité requis.

La relation entre les propriétés visibles et la composition interne est la suivante :

  • Le comportement visible est déterminé par le comportement combiné des éléments internes.
  • Les propriétés de qualité (performance, évolutivité, fiabilité) émergent des propriétés de qualité des éléments internes.

Composants d'architecture

Un composant est une pierre angulaire du système. Il doit posséder :

  • Un ensemble de responsabilités.
  • Une limite ou étendue.
  • Un ensemble d'interfaces définissant les services fournis.

Les intervenants

Un intervenant est une personne, un groupe ou une entité ayant un intérêt dans le développement du système.

Styles architecturaux

Un style architectural est un mécanisme descriptif permettant de différencier les systèmes. On adopte généralement une architecture basée sur ses avantages et inconvénients.

Client-serveur

Le logiciel distribue sa charge de calcul en deux parties : un client qui demande et un serveur qui répond.

  • Logique de présentation : interaction avec l'utilisateur.
  • Logique métier : règles d'affaires.
  • Logique de base de données : manipulation des données.
  • Traitement de base de données : exécution par le SGBD.

Avantages

  • Centralisation du contrôle
  • Évolutivité
  • Facilité d'entretien

Inconvénients

  • Congestion du trafic
  • Augmentation des coûts

Architecture en couches

Spécialisation où la charge est divisée en trois couches : présentation, calcul (métier) et stockage (persistance).

  • Couche de présentation : interface utilisateur (GUI).
  • Couche métier : traitement des demandes.
  • Couche de données : accès aux données.

Le terme couche se réfère à la segmentation logique, tandis que le terme niveau correspond à la distribution physique.

Pipes et filtres

  • Chaque composant possède des entrées et des sorties.
  • Transformation progressive des données (filtres).
  • Connecteurs de transmission (tuyaux).

Avantages

  • Facilité de compréhension et de maintenance.
  • Support de la réutilisation.
  • Exécution concurrente.

Style : Tableau (Blackboard)

Dépôt central de données avec des composants actifs. Le calcul se termine lorsqu'une valeur désirée est obtenue sur le tableau.

  • Performance : point fort du style.
  • Maintenabilité : composants indépendants.

Style : Systèmes orientés objet

  • Organisation basée sur la communication entre objets.
  • Les objets contiennent l'état et les opérations.
  • Nécessite des références entre objets pour l'envoi de messages.

Entrées associées :