Modèles d’architecture logicielle
Introduction
❑ Conception d’IHM : difficile, donc
nécessairement itérative
❑ Itérativité implique modifiabilité du logiciel
❑ Complexité et taille croissantes des IHM
Architecture logicielle
❑ L'architecture informatique définit la
structuration d'un système informatique en
termes de composants et d'organisation de ses
fonctions.
❑ L’architecture d’un logiciel est la structure des
structures (modules) d’un système.
❑ Décrit la manière dont seront agencés les
différents éléments d’une application et comment
ils interagissent entre eux.
Architecture logicielle
Une architecture logicielle inclut:
❑ Les composants logiciels
❑ Les propriétés externes visibles de ces
composants
❑ Les relations entre ces composants
Architecture logicielle
L’architecture logicielle consiste à:
❑ Décrire l’organisation générale d’un système et sa
décomposition en sous-systèmes ou composants
❑ Déterminer les interfaces entre les sous-systèmes
❑ Décrire les interactions et le flot de contrôle entre les
sous systèmes
❑ Décrire les composants utilisés pour implanter les
fonctionnalités des sous-systèmes
– Les propriétés de ces composants
– Leur contenu (e.g., classes, autres composants)
– Les machines ou dispositifs matériels sur lesquels ces
modules seront déployés
Architecture logicielle
❑ Une fois le projet commencé, s’agissant d’un
élément aussi structurel, il est dangereux voire
impossible d’en changer.
❑ on observe souvent des architectures qui ne sont
pas parfaitement adaptées au contexte du projet
de développement. Car l’architecture logicielle est
avant tout issue d’un compromis entre les
exigences techniques, opérationnelles et
fonctionnelles qui entourent l’application.
Architecture logicielle
Conception des
composants
Conception des
interfaces
Conception architecturale
Conception des données
Rôle de l’architecture logicielle
❑ Permettre de mieux comprendre le système.
❑ Permettre aux développeurs de travailler sur
des parties individuelles du système en
isolation.
❑ Préparer les extensions du système.
❑ Faciliter la réutilisation et la réutilisabilité.
Styles architecturaux
❑ Architecture en appel et retours
Découper les fonctionnalités en sous-fonctionnalités qui sont également
découpées en sous-sous-fonctionnalités et ainsi de suite.
❑ Architecture en couches
La conception de logiciels nécessite de recourir à des bibliothèques. Une
bibliothèque très spécialisée utilise des bibliothèques moins spécialisées
qui elles-mêmes utilisent des bibliothèques génériques.
❑ Architecture centrée sur les données
Un composant central (SGBD, Datawarehouse) est responsable de la
gestion des données . Cette architecture sépare clairement les données
(serveurs) des traitements et de la présentation
Styles architecturaux
❑ Architecture orientée objet
Les composants du système (objets) intègrent des données et les
opérations de traitement de ces données. La communication et la
coordination entre les objets sont réalisées par un mécanisme de passage
de messages.
❑ Architecture orientée agent
L'agent logiciel utilise de manière autonome les autres agents pour réaliser
ses objectifs, il établit des dialogues avec les autres agents, il négocie et
échange de l'information, décide à chaque instant avec quels agents
communiquer en fonction de ses besoins immédiats et des disponibilités
des autres agents.
Qu’est-ce qui fait une bonne
architecture logicielle ?
▪ Son évolutivité
▪ Sa simplicité
▪ Sa maintenabilité
▪ Sa compatibilité
▪ Son interconnectivité
Modèles d’architecture logicielle
❑ Modèles fonctionnels :
▪ Seeheim, Arch
❑ Modèles à agents :
▪ MVC, ALV, PAC
❑ Modèle hybride :
▪ PAC-Amodeus
Modèles d’architecture logicielle
❑ Chaque modèle se propose d'identifier les
éléments significatifs qui entrent dans la
composition de la plupart des systèmes
interactifs, ainsi que les relations qui les lient.
❑ Tous les modèles partent du principe qu'un
système interactif comporte une partie
« interface » et une partie « application pure ».
❑ Cette dernière est souvent appelée noyau
fonctionnel, et tout ce qui s'y réfère appartient
au domaine.
Modèles d’architecture logicielle
❑ L’interface homme-machine comme une
entité externe au reste de l’application.
❑ Le noyau fonctionnel est considéré comme
préexistant, et les modèles de systèmes
interactifs décrivent essentiellement la partie
interface, ainsi que ses relations avec les
objets du domaine.
Modèles d’architecture logicielle
Modèles d’architecture logicielle
❑ L’espace IHM (interface) se caractérise par la priorité qu’il
faudrait accorder aux aspects ergonomiques et inclut en
particulier l’analyse des besoins et la conception de
l’interface consignée dans le document de spécifications
externes. À cette étape de conception, intervient
l’ergonomie pour la définition et la spécification de
l’interface utilisateur.
❑ L’espace logiciel (Noyau fonctionnel) , lié aux techniques
d’implémentation logicielles, laisse la place aux
compétences informatiques avec les conceptions globales
et détaillées, le codage, les tests unitaires et les tests
d’intégration.
Modèles à agents
❑ MVC
❑ ALV
❑ PAC
MVC
(Modèle, Vue, Contrôleur)
Modèle
Contrôleur Vue
MVC
(Modèle, Vue, Contrôleur)
❑ L'approche de MVC se base sur la
modifiabilité et la conception itérative, ainsi
que la compatibilité avec les langages à objets.
❑ MVC décompose les systèmes interactifs en
une hiérarchie d'agents.
❑ Un agent MVC consiste en un modèle muni
d'une ou plusieurs vues, et d'un ou
plusieurs contrôleurs.
MVC
(Modèle, Vue, Contrôleur)
❑ Le modèle est le noyau fonctionnel de l'agent. Il peut
représenter des données brutes (entier, chaîne de
caractères) ou des objets ayant un comportement
complexe. Le modèle notifie les vues qui lui sont associées à
chaque fois que son état se trouve modifié par le noyau de
l'application ou par ses contrôleurs.
❑ La vue maintient une représentation du modèle perceptible
par l'utilisateur, qu'elle met à jour à chaque changement
d'état du modèle. Elle est en général constituée d'objets
graphiques.
❑ Le contrôleur reçoit et interprète les événements
utilisateur, en les répercutant sur le modèle (modification
de son état) ou sur la vue (retour instantané).
MVC
(Modèle, Vue, Contrôleur)
❑ MVC n’est pas associé à un langage de
programmation.
❑ En général MVC agit comme une couche
supplémentaire (qu’on appelle un « framework »)
qui vient se greffer par-dessus un langage.
❑ MVC permet également de concevoir des
applications de manière claire et efficace grâce à
la séparation des intentions
❑ MVC permet également de répartir plus
facilement les tâches entre développeurs.
MVC
(Modèle, Vue, Contrôleur)
❑ Le Modèle-Vue-Contrôleur est une architecture
logicielle et une méthode de conception logicielle.
❑ MVC impose la séparation entre les données, les
traitements et la présentation.
❑ Le découplage entre la gestion de l'interface
utilisateur et la logique propre à l'application peut
se faire de différentes manières.
❑ Pour que le modèle puisse être découplé de la
vue, il faut que cette dernière ait la possibilité de
réagir aux changements de ce premier.
Conclusion
❑ Les modèles fonctionnels (en couche) sont de
plus en plus difficiles à appliquer aux interfaces
modernes.
❑ Les modèles à agents décrivent un autre style de
décomposition pour les interfaces utilisateur.
Cette approche est particulièrement adaptée aux
styles de programmation par objets, et permet de
décrire des aspects tels que la modularité, le
parallélisme et la distribution.
Conclusion
❑ MVC est le seul modèle à dissocier la gestion
des entrées de celle des sorties dans chacun
de ses agents, ce qui permet
conceptuellement de décrire l'apparence ou le
comportement en entrée d'un objet interactif
de façon indépendante.
Modèles d’architecture logicielle