1 ère Année Master ISI
Notes de Cours
Administration et Organisation des SI
Cours 5
Les Langages de Description d'Architectures
Présenté par
[Link] <[Link]@[Link]>
2016/2017
Définition et fonctionnalités
Un ADL est un langage qui permet la modélisation d'une architecture conceptuelle
d'un système logiciel.
Il fournit une syntaxe concrète et une structure générique (framework) pour
caractériser les architectures.
Parmi les fonctionnalités des ADL :
Exprimer les choix architecturaux.
Définir les contraintes architecturales
Analyser à partir de plusieurs points de vue.
Proposer un modèle d'exécution plus abstrait et plus générique qui permettrait une
plus grande indépendance vis-à-vis de la plateforme d'exécution.
Intégrer les quantifications de la logique de premier ordre ainsi que les autres types
de quantification comme la décision (utile dans de nombreux cas).
Créer des patrons d'architecture.
Les fonctions des outils support d'un ADL
Gestion des erreurs
Les outils proposent une gestion des erreurs.
Interaction de différentes vues
La plupart des outils proposent les deux vues basiques d'une architecture : textuelle et
graphique.
Analyse de la description architecturale
Les outils proposent la vérification d'un certain nombre de propriétés et le contrôle du
respect des contraintes.
Raffinage d'architecture
Les outils proposent la manipulation de différents niveaux de détails.
Génération de code
Un grand nombre d'outil support d'un ADL permettent la génération de code C++, Java,
Ada, etc.
ADLs existants
Les ADLs peuvent être classés en deux grandes familles:
La première correspond aux langages qui privilégient la description des éléments de
l’architecture et leur assemblage structurel,
La seconde définit les langages qui se centrent sur la description de la configuration
d’une architecture et sur la dynamique du système.
Exemples d’ADLs:
UniCon, Aesop, Darwin, C2, Wright, Rapide, OLAN, ACME, AADL.
AADL (Architecture Analysis & Design Language)
Anciennement « Avionics Architecture Description Language »
Evolution de MetaH, qui était développé par Honeywell
Dédié aux systèmes répartis embarqués temps réel
Décrit des éléments matériels et logiciels
Conçu pour permettre la génération de systèmes exécutables
Plusieurs représentations
Représentation textuelle pour contrôler tous les détails du système.
Représentation en XML pour l’interopérabilité entre outils
Représentation graphique (convenable pour avoir une vision globale du système)
• Version 1.0 publiée en 2004.
• Version 2 a été publiée fin 2009.
Les composants AADL
AADL permet de décrire des composants connectés entre eux pour former une
architecture.
6Un composant AADL représente une entité matérielle ou logicielle qui appartient au
système en cours de modélisation.
Un composant possède un type (component type), qui spécifie son interface, et une ou
plusieurs implantations (component implementation).
Le type d’un composant est constitué de trois parties : les éléments d’interface
(features), les flots (flows) et les propriétés (properties).
Une implantation, par contre, décrit la structure interne du composant en termes de
sous composants (subcomponents), connexions (connections) entre les éléments
d’interface de ces sous-composants, et les propriétés (properties).
Catégories de composants AADL
AADL définit plusieurs catégories de composants, réparties en trois grandes familles de
composants
7 :
1. Les composants logiciels décrivent les éléments applicatifs de l'architecture.
2. Les composants matériels définissent les éléments de la plate forme d'exécution.
3. Les composants hybrides (ou systèmes) permettent de structurer l'architecture de
l'application (hiérarchiser une description AADL).
Les composants AADL
Composants logiciels
Il existe cinq sortes de composants logiciels :
Le composant processus :
Il définit un espace mémoire qui sert à contenir les threads ainsi que les données partagées entre
eux. Un processus doit contenir au moins un thread.
Le composant thread :
Il modélise les files d'exécution qui constituent les éléments actifs des logiciels. Un thread doit être
contenu dans un processus.
Le composant thread group :
Il regroupe les threads afin de former des hiérarchies entre les processus légers (thread).
Le composant data :
Il représente les structures de données qui peuvent être stockées ou échangées entre les
composants.
Le composant subprogram :
Il modélise les procédures (code séquentiel exécutable), telles que les procédures des langages
impératifs.
Les composants AADL
Composants matériels
Les composants matériels représentent les ressources matérielles de calcul et
d'interface avec le système. Il existe quatre genres de composants matériels :
Le composant processor :
Les composants processor modélisent un ensemble constitué d'un microprocesseur.
Les processeurs peuvent exécuter des threads, avoir des mémoires et accéder à un bus.
Le composant memory :
Les composants mémoires représentent les dispositifs qui stockent les données et le code
exécutable (mémoire physique : disque dur, mémoire vive, ...).
Le composant device :
Les composants périphériques représentent des éléments dont la structure interne est ignorée,
seule l'interface d'un périphérique est visible de l'extérieur. Un périphérique est vu comme une boite
noire.
Le composant bus :
Les composants bus fournissent la communication entre les processeurs, les périphériques et les
mémoires.
Les composants AADL
Composants hybrides
10
Les systèmes, modélisés par le composant system, permettent de rassembler les
différents composants d'une manière logique pour structurer l'architecture de
l'application.
Les composants systèmes ne représentent aucun élément concret.
Composition de composants AADL
Merci pour votre attention
11