Représentation de l’architecture
Langage
R. MZID KEBEILI
Architectures Logicielles
19
Représentation de l’architecture
Les langages de description des Architectures (ADL)
Les langages de description d'architecture ont pour but de
décrire formellement les architectures logicielles et matérielles
d'un système informatique
Un
langage de description d'architecture
comment un ensemble de composants interagissent
(ADL) spécifie
Une telle description doit permettre d'analyser, de raisonner a
priori sur un système informatique et surtout maitriser leur
complexité
R. MZID KEBEILI
Architectures Logicielles
20
Représentation de l’architecture
Les langages de description des Architectures (ADL)
R. MZID KEBEILI
Architectures Logicielles
21
Représentation de l’architecture
Les langages de description des Architectures (ADL)
-- AADL--
AADL : Avionics Architecture Description Language
o SAE (Society of Automotive Engineers) Standard
o Version 1.0 publiée en 2004, puis version 2 en 2008
o Un langage de spécification pour les applications avioniques
Plusieurs représentations possibles d’un modèle AADL
o Représentation graphique (vision globale du modèle)
o Représentation textuelle (focaliser sur les détails d’une partie du
modèle)
o Représentation XML (inter-opérabilité entre outils).
R. MZID KEBEILI
Architectures Logicielles
22
Représentation de l’architecture
Les langages de description des Architectures (ADL)
-- AADL--
Quelques outils
o OSATE/Eclipse
o Ocarina (Télécom-ParisTech)
o Cheddar (UBO/LISyC)
AADL fournit
o Composants
logiciels
(mémoire, bus, device)
o Composant système (system, mode)
o Ports (data, event)
(data,
thread, processes)
/Matériel
R. MZID KEBEILI
Architectures Logicielles
23
Représentation de l’architecture
Les langages de description des Architectures (ADL)
-- AADL--
AADL : Les composants logiciels
R. MZID KEBEILI
Architectures Logicielles
24
Représentation de l’architecture
Les langages de description des Architectures (ADL)
-- AADL--
AADL : Les composants matériels
R. MZID KEBEILI
Architectures Logicielles
Advertisement
25
Représentation de l’architecture
Les langages de description des Architectures (ADL)
-- AADL--
AADL : Le composant système
R. MZID KEBEILI
Architectures Logicielles
26
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--AADL--
R. MZID KEBEILI
Architectures Logicielles
27
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML--
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Vue de L’architecture--
Considérer l’architecture logicielle selon différents points de vue :
o Structurel
Vue statique de l’architecture (ou logique)
o Déploiement
Configuration physique de l’architecture logicielle
o Dynamique
Modélise
la communication entre
les composantes de
l’architecture
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de paquetage--
Officiellement en tant que diagramme avec UML2
Organisation de l’architecture
o Vue structurelle
o Structure hiérarchique et modulaire
Un paquetage
Règles de nommage
o Un paquetage = un espace de noms
o Contient des diagrammes (dont d’autres des paquetages)
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de paquetage--
Dépendance entre les éléments contenu dans le paquetages
o Relation « use »
Pas de transitivité entre dépendances
o A dépend de B, qui dépend de C : A ne dépend pas
obligatoirement de C
Stéréotypes de dépendance
o «import »: utilisation sans préfixe des noms des éléments
importés
o « access » : les éléments sont accessibles
o « merge » : fusion de deux paquetages en un seul
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de paquetage--
Nommage
o Cohérent
o Unicité des noms au sein du paquetage
Advertisement
Dépendance
o Pas de cycle, un seul sens
o Une seule
Faible couplage
o Minimiser les dépendances
o Stabilité des dépendances : A dépend de B, une modification de A
ou de B ne modifie pas la dépendance
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de paquetage--
Décomposition
R. MZID KEBEILI
Développement des STREs
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Motivation
o Réutilisabilité : l'aptitude d'un logiciel à être réutilisé, en tout ou en
partie, dans de nouvelles applications
o Classe (plus loin les paquetages) : Faible granularité, connexions figées
(associations => liens structurels) => Réponse pas totalement adaptée á
la problématique de réutilisation
Component-Based Software Engineering
o Notion du composant : réutilisation + évolution indépendante de
l’application qui l’utilise
o Pas une nouvelle approche : Toujours OO, facteur d’échelle
o Le composant est à l’architecture du logiciel ce que la classe est à
l’architecture du code
1
R. MZID KEBEILI
Architectures Logicielles
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Le diagramme de composant permet de représenter
les
composants logiciels d’un système ainsi que les liens existant
entre ces composants
Les composants logiciels peuvent être de deux origines
o Des composants métiers propres à une entreprise (LogicalComponents)
o Des composants disponibles sur le marché comme par exemple les
composants EJB, CORBA, .NET, WSDL (BasicComponents)
Les composants logiciels
o Vue logique (composants et connecteurs)
o Vue implémentation et déploiement (nœuds et artefacts)
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Un composant est une unité autonome représenté par un
classeur structuré, comportant une ou plusieurs interfaces
requises ou offertes
Il existe deux types d’interface :
o Interfaces requises : ce sont des interfaces qui fournissent un
service au composant et dont il a besoin pour fonctionner
o Interfaces fournies : ce sont des interfaces par lesquels le
composant fourni lui-même un service
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Un composant peut être remplacé par n’importe quel autre composant
compatible (ayant les mêmes interfaces)
Un composant peut évoluer indépendamment des applications ou des
Advertisement
autres composants qui l’utilise à partir du moment ou les interfaces sont
respectées
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Représentation général d’un composant en UML
Représentation avec
UML 1
Représentation avec
UML 2
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Deux types de représentation du diagramme de composant
o Représentation « boite noire » : une vue externe du composant
qui présente ses interfaces fournies et requises sans entrer dans
le détail de l’implémentation du composant
o Représentation « boite Blanche » : une vue interne du composant
qui décrit son implémentation à l’aide de classificateurs (classes,
autres composants) qui le composent
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Représentation boite noire du diagramme de composant : plusieurs sont
possibles
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Représentation boite noire du diagramme de composant : plusieurs sont
possibles
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Représentation boite blanche du diagramme de composant : plusieurs sont
possibles (vue interne du composant)
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Représentation boite blanche du diagramme de composant : plusieurs sont
possibles (vue interne du composant)
Notion de port : point de connexion entre le classeur (composant) et son
environnement
Les ports sont des points de connexions typés par des interfaces
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Représentation boite blanche du diagramme de composant : plusieurs sont
possibles (vue interne du composant)
Connecteur de délégation: un
lien permettant de modéliser
le
Advertisement
comportement des entités qui réalisent un classeur
La réalisation de l’interface Starter est déléguée á la classe
TorqueManager
1
R. MZID KEBEILI
Architectures Logicielles
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Vue implémentation du diagramme de composant (ancienne approche)
o Utilisation des Stéréotypes applicables sur la méta-classe composant
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Composant--
Vue implémentation du diagramme de composant (ancienne approche)
o Dépendance entre les composants : Les relations de dépendance
représentent généralement des dépendances de compilation ou
d'exécution
o Exemple
« Component ,
file»
Client
« Component ,
Library»
Java.lang
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Déploiement--
Le diagramme de déploiement permet de représenter le déploiement
de l’architecture logicielle (les composants) sur les nœuds d’exécution
Une autre vue de L’architecture logicielle : Implémentation physique
Deux types : Spécification et instance
Nœud : Une ressource matérielle du système avec le stéréotype
« device » (optionnel)
o Composant physique avec capacité de calcul
o Autres : capteur, serveur, etc.
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Déploiement--
Représentation d’un nœud
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Déploiement--
Artéfact : Un artefact correspond à un élément concret existant dans
le monde réel (document, exécutable, fichier, tables de bases de
données, script…)
Un composant doit être manifesté par un artéfact
R. MZID KEBEILI
Architectures Logicielles
1
Représentation de l’architecture
Les langages de description des Architectures (ADL)
--UML/Diagramme de Déploiement--
Les artéfacts sont déployés sur les nœuds
R. MZID KEBEILI
Architectures Logicielles
1