Architecture Ch1
Architecture Ch1
Architecture Ch1
Architecture logicielle
Rihab JMAL
D-PIIM
2022-2023
1
Objectifs:
1
2/3/2023
Plan:
1• Introduction aux architectures logicielles
2
2/3/2023
1. Définitions
• Logiciel :
C’est un ensemble de séquences d’instructions interprétables par une
machine et d’un jeu de données nécessaires à ces opérations.
Processus et outils
Besoin
Produit logiciel
5
1. Définitions
• Étapes de réalisation d’un logiciel :
3
2/3/2023
1. Définitions
• L’architecture logicielle = abstraction d’un logiciel
• Une architecture logicielle : la structure d’un système,
comprenant:
les composantes logicielles,
les propriétés exposées de ces composantes, et
les interactions entre celles-ci.
1. Définitions
• Structurer un logiciel en termes de composants consiste à :
définir les fonctionnalités associées aux composants
définir les interfaces entre les composants
déterminer les dépendances entre les composants
décomposer les composants en sous-composants
4
2/3/2023
• Pour améliorer l’analyse : offre une base pour l’analyse plus approfondie de la
conception du logiciel, analyse de la cohérence, test de conformité, analyse des
dépendances.
10
5
2/3/2023
6
2/3/2023
13
Présentation
Contrôleur
Services
Domaine
Persistance
14
7
2/3/2023
La couche Présentation
• La couche Présentation gère et assure l'affichage de l'interface graphique
utilisateur ou les Interfaces Homme-Machine (IHM : fenêtres, pages,
composants graphiques...)
• Cette couche intègre principalement :
la gestion du domaine visuel
l'interaction avec les utilisateurs
l'interception des évènements utilisateurs et l'appel a la couche Contrôleur
la gestion du multicanal (web, voix, mobile, fax)
les services de portail (agrégation d’IHM, bouquets de services)
les services d’impression (impressions PDF, gestion de templates...
15
La couche Contrôleur
• La couche Contrôleur gère:
le contrôle de la cinématique des écrans
l’invocation des appels de services
les erreurs et les exceptions qui peuvent être levées
les sessions / espace de travail utilisateur
les habilitations et les droits d’accès
16
8
2/3/2023
La couche Services
• La couche Services correspond aux traitements qu’effectue l’application. Elle
représente l’implémentation de la logique des cas d’utilisation (use-case
fonctionnels).
• Cette couche doit :
implémenter la logique métier
gérer la sécurité applicative
gérer les transactions étendues (processus, compensation)
gérer l’intégrité́ transactionnelle (transactions locales et distribuées)
gérer les appels aux objets métiers de la couche Domaine
17
La couche Domaine
La couche Domaine gère l'integrité du modèle ≪ métiers ≫. Cette couche intègre
principalement:
• la gestion des règles métiers ≪ élémentaires ≫ (sans état, sans processus)
• la fourniture des moyens d'accès a l'information (SGBDR, Mainframe...)
• le respect des propriétés transactionnelles de la couche persistance
• La couche Domaine recense les objets métiers manipulées par l’application
• La couche Domaine est concentrée sur le métier de l’entreprise, commun à toutes
les applications
18
9
2/3/2023
La couche Persistance
La couche Persistance intègre principalement :
• La persistance complète du Système d'Informations (données structurées ou
non structurées, gérées entre autres via un SGBDR, ...)
• La fourniture des services de stockage des données, moteurs relationnels,
bases objets, bases XML...
• La création, la modification, la suppression d'occurrences des objets métiers
• Elle contient un niveau d’abstraction de données les DAO (Data Access
Object) qui prennent en charge l'accès à la source de données (SGBDR,
fichiers XML, CICS, ...). Ils offrent une vision objet des occurrences d’entités
du modèle physique de données
19
Framework de développement
• La mise en œuvre d’un framework de développement est un élément
fondamental pour la réussite du projet.
• Un framework (cadre de travail) correspond a un ensemble d’outils du
marche, de bibliothèques, de spécifiques et de méthodologies qui visent a
faciliter, cadrer et accélérer les développements du projet.
• Le framework de développement, élaboré en phase d’étude et consolide en
phase d’implémentation, est fondamental a la bonne réussite du projet :
il définit le cadre de travail et les engagements de chacune des parties,
fonctionnelles et techniques, en spécifiant le processus de développement
il permet de mieux écorréler les aspects techniques de l’implémentation des
fonctionnalités
il contraint et standardise les développements
il diminue les risques lies au projet
20
10
2/3/2023
22
11
2/3/2023
23
24
12
2/3/2023
25
Diagramme de paquetages
13
2/3/2023
Diagramme de déploiement
• Les diagrammes de déploiement montrent la disposition physique des matériels
qui composent le système et la répartition des composants sur ces matériels.
• Les ressources matérielles sont représentées sous forme de nœuds qui sont connectés
entre eux, à l'aide d'un support de communication.
• La nature des lignes de communication et leurs caractéristiques peuvent être
précisées.
• L'implantation des modules principaux sur les nœuds du réseau.
• Les exigences en terme de performances: Temps de réponse, tolérance aux fautes et
pannes...
28
14
2/3/2023
Exemple de diagramme de
déploiement
29
Diagramme de composants
30
15
2/3/2023
Éléments architecturaux
Éléments architecturaux
Composant
32
16
2/3/2023
Éléments architecturaux
Composant
33
Éléments architecturaux
Interface de composant
• Permet à un composant d’exposer les moyens à utiliser pour communiquer avec lui
• Types d’interfaces:
Interface offerte : définit la façon de demander l’accès à un service offert par le
composant
Interface requise : définit le type de services (aide) requis par le composant
34
17
2/3/2023
Éléments architecturaux
Dépendances entre 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. Dépendance de réalisation
Un composant peut dépendre d’un artefact (code source, fichier .jar, etc.) qui
l’implante concrètement. Dépendance de manifestation
35
Éléments architecturaux
Connecteur
• Dans les systèmes complexes, les interactions peuvent constituer un enjeu encore
plus important que les fonctionnalités des composants individuels
• Définition : élément architectural qui définit le type d’interactions entre les
composants et les règles gouvernant ces interactions
• Un connecteur relie les ports de deux ou plusieurs composants
• Un connecteur décrit un mécanisme de connection indépendant de l’application
• Représente un concept abstrait, paramétrable et indépendant des composants
spécifiques qu’il relie
• Les attributs du connecteurs décrivent ses propriétés comportementales; E.g. sa
capacité, le temps de latence, le type d’interaction (binaire/naire,
asymétrique/symétrique, détails du protocole), etc.
36
18
2/3/2023
Éléments architecturaux
Connecteur :
Exemple de diagramme de
composants: gestion de magasin
38
19
2/3/2023
Exercice1
39
Exercice 2
• Une architecture matérielle est constituée d'un serveur, d'un kiosques et d'une console.
Le serveur utilise une tour de disques durs montés en RAID. la kiosque communique
avec le serveur par une liaison Ethernet 100b et la console par une liaison RS232C.
• Les caractéristiques du serveur sont:
Processeur Pentium
Mémoire vive : 4 Go
Ecran 17 pouces
20