Chapitre 11 : Architecture Flashcards

1
Q

Quelle exigence dirige l’architecture ?

A

Exigences non-fonctionnelles : Portabilité, fiabilité, robustesse, sécurité

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelles sont les inconvénients d’un design monolithique ?

A

Il est difficile à comprendre, localiser les fautes, étendre ou améliorer, réutiliser dans un autre produit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quelles sont les caractéristiques d’une bonne conception ?

A

Faible couplage et forte cohésion, réutilisation, conception modulaire (décomposition en modules indépendants et interchangeables qui contiennent tous ce qui leur est nécessaires pour exécuter un aspect d’une fonctionnalité), conception évolutive

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Quelles sont les caractéristiques d’une mauvaise conception ?

A

Rigidité, fragilité, immobilité

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelles sont les deux types de réutilisation ?

A

Réutilisation opportuniste (accidentelle) et réutilisation systématique (délibérée)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qu’est-ce qu’est une réutilisation opportuniste ?

A

Construction du système, durant le développement des parties du systèmes sont réutilisables et sont utilisées dans le produit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est-ce qu’est une réutilisation systématique ?

A

Construction de composants réutilisables, système est construit en assemblant ces composants

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Pourquoi réutiliser ?

A

Mettre les produits le plus rapidement sur le marché, but de la réutilisation : faciliter la création de nouveau logiciel (extensions, corrections, modifications)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quelles sont les obstacles à la réutilisation :

A

Syndrome du « pas inventé ici », crainte des défauts dans des routines potentiellement réutilisable, coût de la réutilisation, problèmes légaux…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qu’est-ce qu’une librairie ?

A

Ensemble de programmes/modules réutilisables (ex : librairie de classes pour le GUI)

Utilisateur de la librairie est responsable de la logique du contrôle

Une librairie fournit une API pour l’utiliser

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est-ce qu’une Framework ?

A

La plateforme incorpore la logique de contrôle générique

Utilisateur personnalise les fonctionnalités génériques pour les besoins de l’application

Une plateforme fournit une API à laquelle votre application doit se conformer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qu’est-ce qu’une programmation orientée composants ?

A

Combine les deux autres approches
Mise en place d’une plateforme applicative
Identification des librairies réutilisables

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est-ce qu’est le modèle C4 ?

A

Ensemble d’abstraction hiérarchique de diagrammes d’architecture logicielle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quelles sont les niveaux d’abstractions du modèle C4 ?

A

Système (Plus haut niveau d’abstractions, Perçu par les autres systèmes et utilisateurs)

Conteneurs (unités logiques du système indépendantes l’une de l’autre)

Composant (Éléments de base et modules retrouvés dans chaque conteneur)

Code (facultatif) Détail de chaque composant

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Décrit la vue du système ?

A

Décrire les limites externes du système, ainsi que ses principales interactions

Le système est représenté au centre et connecté aux différents utilisateurs et systèmes externes

Il offre une vue d’ensemble sans entrer dans les détails internes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Décrit la vue des conteneurs

A

Détailler l’architecture interne principale du système

  • Présente les conteneurs qui composent le système, ainsi que leurs interactions et protocoles de communication.
  • Exemples: Applications backend, frontend, CLI, API, bases de données, etc.
17
Q

Décrit la vue des composantes

A

Développer un conteneur spécifique pour voir ses composants internes

  • Montre les différents composants (modules, bibliothèques, classes importantes) d’un conteneur et leurs interactions.
  • Précise comment le conteneur organise et réalise ses requêtes.
18
Q

Nomme quelques patrons populaires

A

Architecture en couche, architecture 3-tier, architecture micro-services, architecture client-serveur vs Peer-to-peer, architecture pipe-et-filtre, architecture mvc

19
Q

Décrit l’architecture en couche

A

Organise l’application en couches distinctes ayant chacune un rôle spécifique

  • Communication : Les couches supérieures appellent les couches inférieures pour obtenir des services.
  • Par exemple, l’interface utilisateur interagit avec la couche de logique métier, qui elle-même interagit avec la couche d’accès aux données.
  • Cas d’utilisation : Adaptée aux applications d’entreprise et aux logiciels cherchant une séparation stricte des responsabilités
20
Q

Décrit l’architecture 3-tier

A

Système séparé en trois couches fonctionnelles indépendantes : la couche de présentation, la couche logique et la couche de données
* Communication : Même que en couche
* Cas d’utilisation : Idéale pour les applications d’entreprise, les applications web, et les systèmes de gestion nécessitant une structure modulaire et évolutive, où les couches peuvent être maintenues indépendamment.

21
Q

Décrit l’architecture micro-service

A

Divise une application en plusieurs services indépendants et autonomes, chacun traitant une fonction ou une fonctionnalité spécifique du système

  • Communication : Chaque microservice communique via des protocoles de réseau légers (ex: HTTP).
  • Cas d’utilisation : Adaptée pour les applications de grande envergure nécessitant une flexibilité accrue pour le déploiement, la mise à l’échelle, et la tolérance aux pannes
22
Q

Décrit l’architecture peer-to-peer

A

Dans cette architecture, chaque nœud (ou pair) est à la fois un client et un serveur pour les autres nœuds, ce qui permet une communication et un partage de ressources directs sans passer par un serveur centralisé.
* Communication : Les pairs partagent directement des fichiers, des informations ou des services les uns avec les autres, ce qui permet une plus grande résilience et une meilleure distribution des charges.
* Cas d’utilisation : Couramment utilisée pour le partage de fichiers (ex : BitTorrent) et de plus en plus dans des applications décentralisées comme la blockchai

23
Q

Donne la mise en garde de l’importance de l’architecture

A

L’architecture du logiciel est cruciale au produit
* Le workflow des exigences peut être corrigé durant le workflow d’analyse
* Le workflow d’analyse peut être corrigé durant le workflow de conception
* Le workflow de conception peut être corrigé durant le workflow d’implémentation
* mais, il n’y a pas moyen de surmonter une architecture non-optimale plus tard. Il faut absolument reconcevoir l’architecture immédiatement!