Outils pour utilisateurs

Outils du site


helloworld:architecture:notion

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
helloworld:architecture:notion [2019/01/10 10:18] – Ajout de "Couplage" roothelloworld:architecture:notion [2020/05/10 23:46] (Version actuelle) – Suppression de la taille par défaut pour les images root
Ligne 86: Ligne 86:
 ====Artefact==== ====Artefact====
 La manifestation concrète d’un composant est appelée artefact. C’est une instance concrète du composant déployée dans l’environnement d’exécution. Voir [[helloworld:architecture:uml#|UML]] La manifestation concrète d’un composant est appelée artefact. C’est une instance concrète du composant déployée dans l’environnement d’exécution. Voir [[helloworld:architecture:uml#|UML]]
 +
 +====Kruchten : 4+1 vues====
 +^Vue^Description^Diagrammes^
 +|Logique|Composants présents et leurs interactions| Paquetages, classes, objets et structures (UML), blocs (SysML)|
 +|Réalisation|Organisation des composants concrets sur une plateforme.|Composants, paquetages, structures composites.|
 +|Processus|Allocations et interactions entre processus, threads ou tâches.|Activités, séquence, communication, états-transitions.|
 +|Déploiement|Environnement d'exécution y compris contraintes géographiques, de bandes passants et de performances du système.|Composants, déploiement.|
 +|Cas d'utilisation|Scénarios correspondant à une fonctionnalité du système s'activant depuis une interaction extérieure.|Cas d'utilisation, activités, séquence, communication, états-transitions.|
 +
 +{{ :helloworld:architecture:kruchten:interaction_vues.png |}}
 +
 +{{ :helloworld:architecture:kruchten:interaction_architecture.png |}}
  
 =====Qualité===== =====Qualité=====
Ligne 99: Ligne 111:
 Le couplage reprendre le niveau d'interaction entre les composants logiciels.  Le couplage reprendre le niveau d'interaction entre les composants logiciels. 
  
-Selon Pressman, 7 niveaux de couplages, classé par niveau de dépendances :+Selon Pressman, 7 niveaux de couplage, classé par niveau de dépendances, le meilleur est le premier :
 ^Couplage^Description^ ^Couplage^Description^
 |Sans couplage|Les composants n'échangent pas d'information.| |Sans couplage|Les composants n'échangent pas d'information.|
Ligne 108: Ligne 120:
 |Commun (global)|Les composants échangent de l'information via un ensemble de données communes| |Commun (global)|Les composants échangent de l'information via un ensemble de données communes|
 |Par contenu (interne)|Les composants échangent de l'information en lisant et écrivant directement dans leurs espaces de données respectifs.| |Par contenu (interne)|Les composants échangent de l'information en lisant et écrivant directement dans leurs espaces de données respectifs.|
 +
 +====Cohésion====
 +La cohésion est une mesure d'homogénéité dans un composant ou un sous système.
 +
 +Selon Pressman, 7 niveaux de cohésion, classé par niveau, le meilleur est le dernier :
 +^Cohésion^Description^
 +|Arbitraire|Absence de lien logique entre les éléments.|
 +|Logique|Les fonctions sont de même catégorie ou reliées par un ou plusieurs critères communs.|
 +|Temporelle|Les fonctions s’exécutent dans une même période de temps.|
 +|Procédurale|Les fonctions sont appelées selon une séquence bien déterminée (et non arbitrairement au gré de l’appelant).|
 +|Communicationnelle|Les fonctions ont les mêmes types d’entrées sorties.|
 +|Séquentielle|Les opérations forment des séquences d’exécution bien identifiées (la sortie de l’une est l’entrée de l’autre).|
 +|Fonctionnelle|Les fonctions contribuent à une même fonction de plus haut niveau, ou bien relèvent d’une abstraction commune.|
 +
 +=====Styles=====
 +Les styles architecturaux et les pattern design sont proches. Les pattern s'appliquent à un composant précis alors que les styles s'appliquent à un sous système entier.
 +
 +Principaux styles de base:
 +===Architectures hiérarchique et orientée objets===
 +
 +Arborescence en arbre avec à la racine le main. Chaque descendant sont un sous-module.
 +
 +{{:helloworld:architecture:style:fig1_3.png|}}
 +
 +[[https://laurent-audibert.developpez.com/Cours-UML/?page=introduction-modelisation-objet|UML 2 - De l'apprentissage à la pratique]] {{ :helloworld:architecture:uml:uml2-apprentissage-pratique.pdf |Archive du 12/01/2009 le 28/04/2020}}
 +
 +===Architecture à flot de données (pipe-line)===
 +
 +Exemples : [[helloworld:design_pattern:chain_of_responsibility|Chaîne de responsabilité]]
 +
 +{{:helloworld:architecture:style:pipeline.png|}}
 +
 +[[http://parc.sourceforge.net/intro.html|Pipeline Architecture - Introduction]] {{ :helloworld:architecture:notion:pipeline_architecture_-_introduction_2020-04-28_11_07_03_pm_.html |Archive du 06/01/2004 le 28/04/2020}}
 +
 +===Architecture avec référentiel de données (repository centric), Architecture Tableau noir (blackboard)===
 +
 +Il y a les composants accesseurs de données d’une part, qui implémentent les traitements, et les composants « référentiels de données » d’autre  part, qui maintiennent des données écrites et lues par les premiers.
 +
 +Dans la version de base, les référentiels sont passifs (vocation de stockage). Dans la version tableau noir, les référentiels informent les accesseurs des modifications ([[helloworld:design_pattern:observer:java|observer]])
 +
 +{{:helloworld:architecture:style:cycleenv2.png|}}
 +
 +[[http://www.case-france.com/EnvisionArchitectureSysteme.html|Architecture système]] {{ :helloworld:architecture:notion:envision_system_architecture_2020-04-28_11_07_03_pm_.html |Archive du 2016 le 28/04/2020}}
 +
 +===Architecture à Invocation implicite===
 +
 +Voir [[helloworld:design_pattern:publish_subscribe|pub/sub]], [[helloworld:design_pattern:reactor|reactor]]
 +
 +===Architecture multi-couches===
 +
 +Chaque couche a accès uniquement à sa (ou des) couches inférieures.
 +
 +===Architecture distribuée, spécialisée en architectures N - tiers===
 +
 +Ici, chaque couche n'a accès qu'au niveau N+1 et N-1.
helloworld/architecture/notion.1547111895.txt.gz · Dernière modification : de root