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)
2. 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.
3. 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.
4. 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)
5. 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.
6. 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.
7. 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.
„
9. 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.
interfaces
Connecteurs.
Configurations.
11. 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/.
12. 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)
13. 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
14. 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”)
16. 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.
17. 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.
18. 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.
19. Rôles
19
Définissent les interfaces des connecteurs.
Chaque rôle d’un connecteur définit un des participants de l’interaction
modélisé par le connecteur.
Chaque connecteur peut avoir 2 a plusieurs rôles.
20. 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.
21. 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).
22. 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.
24. Styles(familles)
24
Une collection de types et de contraintes appliquée a un système.
Exemples:
Pipe and filter
Client_server
Publish_subscribe
ect
25. 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.
27. 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.
30. 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.