Chapitres 12-14 Flashcards
La conception de l’architecture est guidé par les besoins
non-fonctionnels
La conception architecturale inclu la conception…
- des interfaces utilisateurs du logiciel
- des bases de données
- des points de contrôle du logiciel
- du réseau
Conséquence d’un couplage fort entre modules M et N
Changer M nécessite de changer N
4 principes d’un bonne
conception architecturale
- Faible couplage et forte cohésion
- Réutilisation
- Conception modulaire
- Conception évolutive
Conception évolutive
Minimiser l’effort d’apporter des modifications au logiciel après le développement initial
Conception modulaire
Décomposition en modules indépendants et interchangeables qui contiennent tout ce qui leur est nécessaire pour exécuter un aspect d’une fonctionnalité
Rigidité
Logiciel difficile à modifier car chaque changement impacte beaucoup trop de parties du système
Fragilité
Quand on effectue une modification, des parties imprévues du système ne fonctionnent plus
Immobilité
Difficile de réutiliser un composant dans une autre application car on ne peut la démêler de l’application courante
Librarie
Ensemble de programmes/modules réutilisables
But du programmation orientée composants
maximiser la réutilisation
Programmation orientée composants
Concevoir en assemblant des composants fortement encapsulés avec une interface concise et rigoureuse
Aspects d’intégration de composants
- Interface avec l’architecture et l’environnement externe
- activités communes à plusieurs composants
- gestion et accès aux ressources matérielles cohérente pour tous les composants de la librairie
Différents types de systèmes
- interactif
- évènement
- transformationel
- base de données
MVC
Modèle-vue-controleur
Modèle
encapsule l’état de l’application et répond aux demandes d’état en exposant les fonctions de l’application
Vue
fait le rendu du modèle et envoie des actions de l’utilisateur au contrôleur
Contrôleur
définit le comportement de l’application. Il traite les actions de l’utilisateur et met à jour le modèle.
Peer-to-peer
Chaque nœud joue le rôle à la fois du client et du serveur (aucun serveur central)