0% ont trouvé ce document utile (0 vote)
424 vues14 pages

Chapitre 1

Ce document définit les notions clés de l'architecture logicielle, notamment la différence entre architecture et conception, les critères de qualité, les modèles d'architecture et les composants. Il présente également les styles architecturaux.

Transféré par

FARAH BELLAAJ
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
424 vues14 pages

Chapitre 1

Ce document définit les notions clés de l'architecture logicielle, notamment la différence entre architecture et conception, les critères de qualité, les modèles d'architecture et les composants. Il présente également les styles architecturaux.

Transféré par

FARAH BELLAAJ
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

ARCHITECTURE LOGICIELLE

Niveau: 2 LIG-BI
Institut Supérieur de Gestion Industrielle
Année universitaire: 2023-2024
Enseignante: Mme Farah BELLAAJ ELLOUMI
CHAPITRE 1: LES FONDEMENTS DES
ARCHITECTURES LOGICIELLES
DÉFINITIONS

• Qu’est-ce qu’une architecture logicielle ?


• L’architecture logicielle = abstraction d’un logiciel
• Décrit d’une manière symbolique et schématique les différents éléments
d’un ou de plusieurs systèmes informatiques (SI), leurs interrelations et leurs
interactions.
• L’architecture d’un logiciel est la structure des modules d’un SI
• Elle inclut :
• Les composants logiciels
• Les propriétés externes visibles de ces composants
• Les relations entre ces composants
• le modèle d'architecture décrit comment il doit être conçu de manière à
répondre aux spécifications.
ARCHITECTURE VS CONCEPTION

• Il n'existe pas de vrai consensus concernant le sens des mots


"architecture" et "conception" dans le domaine du développement
logiciel. Ces deux termes sont souvent employés de manière
interchangeable. Il arrive aussi que l'architecture soit appelée
"conception préliminaire" et la conception proprement dite "conception
détaillée". Certaines méthodologies de développement incluent la
définition de l'architecture dans une phase plus globale appelée
"conception".
• L’architecture logicielle :
• est une forme de conception
• ne définit pas une implémentation du logiciel
• mise plutôt sur la structure et moins sur le domaine d’application
ARCHITECTURE VS CONCEPTION

• L'architecture logicielle (software architecture) considère le logiciel


de manière globale. Il s'agit d'une vue de haut niveau qui définit le
logiciel dans ses grandes lignes : que fait-il ? Quelles sont les sous-
parties qui le composent ? Sous quelle forme sont stockées ses données
? etc.
• La conception logicielle (software design) intervient à un niveau de
granularité plus fin et permet de préciser comment fonctionne chaque
sous-partie de l'application. Quel logiciel est utilisé pour stocker les
données ? Comment est organisé le code ? Comment une sous-partie
expose-t-elle ses fonctionnalités au reste du système ? etc.
CRITÈRES DE QUALITÉ LOGICIELLE

• L'interopérabilité extrinsèque exprime la capacité du logiciel à communiquer


et à utiliser les ressources d'autres logiciels comme les documents créés par une
certaine application.
• L'interopérabilité intrinsèque exprime le degré de cohérence entre le
fonctionnement des commandes et des modules à l'intérieur d'un système ou
d'un logiciel.
• La portabilité exprime la possibilité de compiler le code source et/ou
d'exécuter le logiciel sur des plates-formes (machines, systèmes d'exploitation,
environnements) différentes.
• La compatibilité exprime la possibilité, pour un logiciel, de fonctionner
correctement dans un environnement ancien (compatibilité descendante) ou
plus récent (compatibilité ascendante).
POURQUOI UN ARCHITECTE
LOGICIEL?

• Assurer la stabilité et la robustesse du système


• Permettre une maintenance relativement facile
• Permettre les évolutions futures
• Minimiser les complications
• Guider les programmeurs dans leurs efforts de
développement
LES MODÈLES D'ARCHITECTURE
LES MODÈLES D'ARCHITECTURE

• La vue logique constitue la principale description architecturale d'un système


informatique. Cette vue décrit, de façon statique et dynamique, le système en
termes d'objets et de classes. Elle permet d'identifier les différents éléments et
mécanismes du système à réaliser.
• La vue comportement décrit les interactions entre les différents processus,
threads (fils d'exécution) ou tâches. Elle permet d'exprimer la synchronisation
et l'allocation des objets et de vérifier le respect des contraintes de fiabilité,
d'efficacité et de performances des systèmes multitâches.
LES MODÈLES D'ARCHITECTURE

• La vue implémentation permet de visualiser l'organisation des composants


(bibliothèque dynamique et statique, code source...) dans l'environnement de
développement. Cette vue permet également de gérer la configuration (auteurs,
versions...).
• La vue de déploiement représente le système dans son environnement
d'exécution. Elle traite des contraintes géographiques (distribution des
processeurs dans l'espace), des contraintes de bandes passantes, du temps de
réponse et des performances du système ainsi que de la tolérance aux fautes et
aux pannes. Cette vue est fort utile pour l'installation et la maintenance
régulière du système.
• La vue des cas d'utilisation est un modèle d'analyse formalisé par Ivar
Jacobson. Un cas d'utilisation est défini comme un ensemble de scénarios
d'utilisation, chaque scénario représentant une séquence d'interaction des
utilisateurs (acteurs) avec le système.
NOTIONS DE COMPOSANTS ET DE
LIEN ENTRE COMPOSANTS

• Diagramme de composants
• Offre une vue de haut niveau de l’architecture du système
• Utilisé pour décrire le système d’un point de vue implémentation
• Permet de décrire les composants d’un système et les interactions entre
ceux-ci
• Illustre comment grouper concrètement et physiquement les éléments
(objets, interfaces, etc.) du système au sein de modules qu’on appelle
composants
NOTIONS DE COMPOSANTS ET DE
LIEN ENTRE COMPOSANTS

• Composant
• Encapsule un traitement et/ou des données
• Encapsule un sous-ensemble de fonctionnalités et/ou de
données du système
• Restreint l’accès à ce sous-ensemble au moyen d’une
interface définie explicitement
• Possède des dépendances explicitement définies pour
exprimer les contraintes requises par son contexte
d’exécution ou sa réalisation
• Unité autonome servant de bloc de construction pour le
système
• Les composants implémentent typiquement des services
NOTIONS DE COMPOSANTS ET DE
LIEN ENTRE COMPOSANTS

• Dépendances entre composants


• Dépendance = relation entre deux composants
• Types de dépendances :
• Un composant peut dépendre d’un autre composant qui
lui fournit un service ou une information
• Un composant peut dépendre d’une classe qui
implémente une partie de son comportement.
• Un composant peut dépendre d’un artefact (code source,
fichier .jar, etc.) qui l’implante concrètement.
LES DIFFÉRENTS STYLES
ARCHITECTURAUX

•  Cours 1

Vous aimerez peut-être aussi