Sie sind auf Seite 1von 17

Un profil UML 2.

0 pour
l’architecture logicielle
COSA
A. Alti
Département d’informatique
Université Farhat Abbas de Sétif - Algérie
Email : altiadel2002@yahoo.fr

A.Smeda
Université de Nantes – Ecole des Mines de Nantes - France
Email : smeda@univ-nantes.fr
Introduction

COSA : une approche hybride d'architectures logicielles


(Component-Object based Software Architecture)

Définition du profil UML 2.0


Les niveaux d’abstractions
Exemple d’illustration 
Prototype d’implémentation

Conclusion & Perspectives

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006


Component Object based Software Architecture (COSA) est une approche de
description d’architectures logicielles décrivant un système logiciel comme une
collection de composants qui interagissent entre eux par l’intermédiaire de
connecteurs.
Les composants et les connecteurs dans COSA ont le même niveau d’abstraction et
sont définis explicitement .

Les éléments architecturaux de COSA sont définis comme des types qui peuvent être
instanciés pour construire plusieurs architectures .

Quelle est la stratégie de modélisation des concepts architecturaux de COSA?


Nous proposons un profil UML 2.0 pour exprimer et modéliser de manière formelle les
concepts architecturaux de COSA.

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006


Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006
Diagramme de classes du modèle
COSA

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006


Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006
Un profil UML 2.0 propre au domaine de l'architecture logicielle


 Le
 . Le langage
langage UML
UML 2.02.0 offre
offre des
des moyens
moyens plus
plus explicites
explicites que
que la
la version
version UML
UML 1.4
1.4 pour
pour
représenter
représenter certains
certains concepts
concepts architecturaux.
architecturaux.
 D'autres
 D'autres concepts
concepts architecturaux
architecturaux tels
tels que
que les
les connecteurs,
connecteurs, les
les configurations,
configurations, etc.
etc. ne
ne
peuvent
peuvent pas
pas être
être exprimés
exprimés directement
directement enen UML
UML 2.02.0

Les intérêts primordiaux d’un profil UML 2.0 de COSA



 Exprimer
Exprimer les
les concepts
concepts architecturaux
architecturaux de de COSA
COSA en en UML
UML 2.0.
2.0.
 Définir
Définir de
de manière
manière formelle
formelle les
les concepts
concepts dede l'architecture
l'architecture logicielle
logicielle COSA.
COSA.
 Réaliser
Réaliser une
une spécification
spécification complète
complète et
et structurée
structurée de l’architecture
de l’architecture logicielle
logicielle COSA.
COSA.
 Réaliser
Réaliser la
la projection
projection des
des concepts
concepts architecturaux
architecturaux de de COSA
COSA vers
vers les
les concepts
concepts UML
UML
2.0.
2.0.

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006


Les trois niveaux d’abstractions

Metamodèle Niveau M2
«COSAProfile»

«apply» «apply»

Modèle Modèle
SimpleCS MergeAndSort Niveau M1

«instance» «instance» «instance»

Niveau M0
arch-1 arch-2 arch-1

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006


Le niveau de metamodèle ( M2 )
Le metamodèle de COSA est décrit comme un package UML stéréotypé : «COSA»
Ce package doit inclure un ensemble de stéréotypes : «COSAComponent»,
«ConnectorCOSA» «ConfigurationCOSA»...etc.
«COSA»
«ConfigurationCOSA»
Component

«COSAComponent»
«COSAComponent» «Attachment» Connector
Component
1 1

context
context UML::InfrastructureLibrary::Core::Constructs::Component
UML::InfrastructureLibrary::Core::Constructs::Component
inv
inv: :self.isStereotyped(“COSAConfiguration”)
self.isStereotyped(“COSAConfiguration”)
implies
implies
(self.ownedPort->forAll->
(self.ownedPort->forAll->
(r|r.isStereotyped(“ComponentInterface”)))
(r|r.isStereotyped(“ComponentInterface”)))and
and
(self.member->select(m|m.oclIsKindOf(Component))->forAll
(self.member->select(m|m.oclIsKindOf(Component))->forAll
->(c|c.isStereotyped(“COSAComponent”)))->size()>=1)and
->(c|c.isStereotyped(“COSAComponent”)))->size()>=1)and
(self.member->select(m|m.oclIsTypeOf(Class))->forAll
(self.member->select(m|m.oclIsTypeOf(Class))->forAll
->(c|c.isStereotyped(“COSAConnector”)))->size()>=1)and
->(c|c.isStereotyped(“COSAConnector”)))->size()>=1)and
(self.clientDependency.target->select->
(self.clientDependency.target->select->
(t|t.oclIsKindOf(Interface)))->isEmpty())
(t|t.oclIsKindOf(Interface)))->isEmpty())

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006


Le niveau de modèle (M1)
Ce niveau permet de décrire un modèle d’architecture spécifique (ex : système client-
serveur) avec l’application du profil UML 2.0 de COSA.
Dans ce niveau, les contraintes OCL sont vérifiées et le système final projeté doit être
conforme au profil UML.
<<COSAConfiguration>>
Client-Serveur
<<COSAComponent>> <<COSAComponent>>
Serveur Client
<<COSANonFuncProp>> Type-données = Format-2 <<COSANonFuncProp>> Type-données
<<COSANonFuncProp>> Type-données == Format-1
Format-1
Besoin
<<ComponentInterface>>
<<ComponentInterface>> IClient
IServeur
Service

<<COSAImplementation>> <<COSAImplementation>>
<<COSAImplementation>>
ServeurImp <<COSAConstraint>> ClientImp
ClientImp
{self.clients-max = 2}

<<COSAImplementation>>
<<COSAConnector>> Client-ServeurImp
RPC <<COSAImplementation>>
<<COSANonFuncProp>> nb-rôles
<<COSANonFuncProp>> debit = 10 kb/s RPCImp
<<COSAGlu>>
GluRPC
Partcipateur -1 Partcipateur -2
<<COSAConstraint>>
<<ConnectorInterface>> {self.nb-rôles = 2}
IRPC

L’application du profil pour le système Client-Serveur

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006


Le niveau d’architecture (M0)
Ce niveau fournit un ensemble d’instances des types de composants, types des
connecteurs et types des configurations. Ces types sont définis dans M 1.

«profile»
COSA «apply»
CSSimple

«instance» «instance»

arch2 arch1

Deux instances du système client/serveur

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006


Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006
Classe Configuration Client-Serveur {
Classe Composant Serveur {
Propriétés {Type-données = format-1}
Contraintes {max-clients=2;} // contraintes de serveur
Implémentations {ServeurImp;}
Interface { Mode-connexion : synchrone ;
Ports fournis {service;}}
}
<<COSAConfiguration>>
Classe Composant client {
Propriétés {Type-données = format-1;}
arch1 : Client-Serveur
Implémentations {ClientImp;} <<ConnectorCOSA>>
Interface {Ports fournis {besoin;}} rpc : RPC
}

Classe Connecteur RPC { <<ConnectorInterface>>


Propriétés {débit = 10 kb/s;} IRPC : IRPCType
Contraintes {nb-roles=2;}

Particpateur -2
Particpateur -1
Implémentations {RPCImp;} <<COSAComponent>> <<COSAComponent>>
Interface { Mode-connexion : synchrone ; S1 : Serveur C1 : Client

besoin
service
Roles {particpateur-1; particpateur-2;}
Glu {…}} <<ComponentInterface>> <<ComponentInterface>>
} IServeur: IServeurType IClient: IClientType

Instance client-serveur arch-1 {


Instances {
S1: serveur; Exemple du Client-Serveur en UML 2.0
C1: client;
C1-S1: RPC;}
Attachments {C1. besoin vers C1-S1. particpateur-1;
S1.service to C1-S1. participateur-2; }
}

Exemple du Client - Serveur en COSA


Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006
PlugIn COSA dans IBM Software Modeler pour Eclipse 3.1

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006


 L’approche COSA décrit de manière abstraite les architectures logicielles à
base de composants des systèmes informatiques. Les composants et les
connecteurs ont le même niveau d’abstraction et ils sont définis explicitement.

 UML 2.0 fournit un ensemble de mécanismes d’extensions pour exprimer les


concepts des langages de description d’architectures logicielles.

 Nous avons développé un profil UML pour l’approche COSA. Ce profil nous a
permis de projeter les concepts de COSA vers les concepts d’UML 2.0 .
 Un prototype d’implémentation écrit en Java a été implémenté dans la plate
forme de développement logiciel d’IBM Software pour Eclipse 3.1. Ce prototype
valide de manière pratique la projection des concepts de COSA vers UML 2.0

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006


 La transformation de COSA vers les plates formes objets (EJB 2.0)
 La définition du modèle intermédiaire avec des règles de transformations

 L’automatisation de processus de transformation.

Congrès INFORSID 2006 OCM-SI 2006 HAMMAMET – 31 Mai au 3 Juin 2006

Das könnte Ihnen auch gefallen