Post on 21-Jul-2015
Language de description d’architecture
ACMEAmira Hakim
Dept de Mathématique & InformatiqueUniversité de Souk-Ahras
1
UNIVERSITE MOHAMED CHERIF MESSADIASOUK-AHRAS
Introduction
2
Architecture en informatique :
la structure générale d'un système informatique, l'organisation des différents éléments du système (logiciels, matériel, humains, information) et la relation
entre ces éléments.Elle introduit les notions et concepts de découpage en couches, modules,
composants, design patterns et Frameworks.
diagrammes d’architecture
3
Architecture métier : décrit les applications informatiques, les principales bases
de données du système informatique , d'une institution ou d'une entreprise.
Architecture des informations : L'architecture des informations concerne la
manière dont les informations sont organisées et les manières d'accéder à ces
informations.
Architecture matérielle: comprend toutes les caractéristiques générales, la
conception, le choix et l'organisation des différents dispositifs électroniques des
appareils informatiques.
Architecture technique : est une vue tournée sur l'organisation logique de la
plateforme informatique (système d'exploitation utilisé ,les serveur ,les protocoles)
Architecture logicielle : Le diagramme d'architecture logicielle décrit la nature
des différents modules d'un logiciel, les responsabilités et les fonctionnalités de
chaque module.
Architectures logicielles
4
L’architecture logicielle décrit d’une manière symbolique et schématique les différents éléments d’un ou de plusieurs systèmes informatiques, leurs
interrelations et leurs interactions.
La définition d’une architecture logicielle passe donc par la réponse à la question suivante : Quelles règles doit-on suivre pour réussir à développer
des systèmes qui répondent à toutes les exigences fonctionnelles (les services à rendre) et non fonctionnelles performance et extensibilité du
système par exemple)
Architectures logicielles
5
Globalement, une architecture logicielle peut-être vue comme :
un ensemble de briques de base : les composants .
un ensemble de règles d’utilisation de ces briques de base : le mode d’emploi ou gabarit d’utilisation .
un ensemble de recettes et de conseils pour combiner et gérer les interactions entre les différents composants : le savoir faire .
Un ensemble de principes directeurs qui aident le concepteur dans ses décisions si besoin est : les assistants.
Objectifs de l’architecture logicielle
6
Offrir une vue d’ensemble et un fort niveau d’abstraction afin d’être en mesure d’appréhender un système logiciel.
Proposer une organisation grossière du système comme une collection de pièces logicielles.
Favoriser la modélisation de systèmes logiciels de plus en plus complexes.
Réduire les coûts et les délais de développement des systèmes complexes.
Exposer de manière compréhensible et synthétique la complexité d’un système logiciel et faciliter l’assemblage de pièces logicielles.
L’architecture joue le rôle essentielle de passerelle entre l’expression du besoin d’un système et l’étape de codage du logiciel.
Architecture Description Languages
7
Un ADL est un langage qui fournit des fonctionnalités pour la modélisation de l’architecture conceptuelle des systèmes logiciels.
Les ADLs fournissent à la fois un cadre conceptuel et une syntaxe concrète pour la caractérisation des architectures logicielles.
„
Evolution des ADLs
8
Frise chronologique des ADLs ainsi que leurs origines
Pourquoi a-t-on besoin d’ADLs ?
9
L’architecture formelle est requise afin de:
Modéliser le système.
Tester le système.
Eviter les mauvaises décisions architecturales.
Permettre la réutilisabilité.
Minimiser les couts de développement.
Spécification explicite de:
Composants.interfacesConnecteurs.Configurations.
ACME
10
ACME
ACME
11
Créé au début de 1995 par D. Garlan, R. Monroe, et D. Wile.
Classés dans les langages architectural d’interchange .
Supporte l’interchange de descriptions architecturales entre differents outlis de conception d’architecture.
AcmeStudio web page :http://www.cs.cmu.edu/~acme/.
ACME :définition
12
Le projet ACME, commencé en 1995 ,a pour principal but de fournir un
langage commun permettant l’échange de descriptions architecturales entre
plusieurs outils de conception d’architecture .Il s’agit d’un langage de
description d’architecture logicielle fournissant une base conceptuelle
abstraite et suffisamment générale pour permettre la description de
nouveaux outils et notations .Il fournit un outil de conception graphique
(ACMEStudio),une bibliothèque (ACMElib)fournissant une infrastructure
complète de manipulation de descriptions d’architecture et un outil de
génération de documents html (ACMEweb)
Avantages d’ACME
13
Ontologie architecturale avec 7 éléments de conception.
Mécanisme d'annotation flexible.
Type de mécanisme pour abstraire des idiomes et des styles réutilisables communes.
Cadre sémantique ouvert pour analyser les descriptions architecturales.
Acme est utilisé comme une représentation commune des caractéristiques de base de l'ADL:
• Composants• Connecteurs• Systèmes• Propriétés• Contraintes• Styles
Types d'éléments de conception
14
Composants: éléments élémentaire de calculs ou de stockage d’informations.
Connecteurs: Interactions entre composants.
Systèmes: la configuration des composants et des connecteurs
Ports: interfaces de composants.
Rôles: interfaces de connecteurs.
Représentations: les propriétés de composants.
Rep-maps(abréviation de :“représentation-map”)
Types d'éléments de conception
15
Eléments d’une description ACME
Les composants
16
éléments primaires de calculs et bases de données d’un système:
• Clients• Serveurs• Filtres• Objets• Bases de données
Un composant possède un ensemble d’interfaces, appelés ports, qui définissent les points d’interaction entre cet élément et son environnement.
Les connecteurs
17
Les interactions entre composants:
• tubes(pipes).•Appels de procédure.•Evénement.•Protocoles.•Relations SQL
Les connecteurs ont des interfaces qui définissent les rôles joués par chaque participant dans l'interaction.
Ports
18
Définissent les interfaces de composants. chaque port est un point d’interaction entre le composant et l’environnement. Un composant peut avoir plusieurs ports avec différents types.
Exemple de ports:•Signature de méthodes.•Evénements.•Liste de procédure a appeler.
Rôles
19
Définissent les interfaces des connecteurs.
Chaque rôle d’un connecteur définit un des participants de l’interactionmodélisé par le connecteur.
Chaque connecteur peut avoir 2 a plusieurs rôles.
Attachements
20
Définissent la façon dont les rôles et les ports sont connectés dans une configuration.
Effectue la liaison des rôles de connecteurs aux ports de composants.
Systèmes ,architecture ou configuration
21
Diagrammes de modélisation des configurations de composants.
Les composants et les connecteurs peuvent représenter des sous - systèmes, chacun avec sa propre architecture interne.(Hiérarchie).
Rep‐Map
22
indique la correspondance entre la représentation interne du système et l'interface externe du composant ou connecteur qui est représenté.
par exemple un rep‐map offre une association entre les ports internes et les ports externes.
propriétés
23
Les sept éléments peuvent être annotés avec des propriétés.
Une propriétés a un nom, un type et une valeur.
Styles(familles)
24
Une collection de types et de contraintes appliquée a un système.
Exemples:Pipe and filterClient_serverPublish_subscribeect
Pipes et filtres
25
Architecture de flux de données.
Le filtre(filter) est un composant et le tuyau(pipe) est un connecteur.
Le filtre dispose d'interfaces à partir de laquelle un ensemble d'entrées peut s'écouler à l'intérieur et un ensemble de sorties peut s'écouler en extérieur.
Cette architecture limite les topologies de séquences linéaires de filtre.
Pipe and filter en ACME
26
Client-serveur
27
Le modèle:Le Client : processus demandant l’exécution d’une opération à un autre processus par envoi de message contenant le descriptif de l’opération à exécuter et attendant la réponse de cette opération par un message en retour.Le Serveur : processus accomplissant une opération sur demande d’un client, et lui transmettant le résultat.
La Requête : message transmis par un client à un serveur décrivant l’opération à exécuter pour le compte du client.
La Réponse : message transmis par un serveur à un client suite à l’exécution d’une opération, contenant le résultat de l’opération.
Client-serveur en ACME
28
29
Tutoriel par D. Garlan
Conclusion
30
L 'étape de description architecturale est de plus en plus fréquente dans la phase de conception d’un logiciel.
Elle offre au concepteur un niveau d’abstraction plus élevé en lui permettant de ne pas prendre en compte les détails de l’architecture.
Fin
31
Merci Pour votre Attention!