Title: Composition conceptuelle base sur la relation ToutPartie
1Composition conceptuelle basée sur la relation
Tout-Partie
- Soutenance de thèse de doctorat
Directeur Pr Franck Barbier Co-Directeur Dr
Jean-Michel Bruel
2Contribution
- Thèse une meilleure prise en compte de la
composition au niveau conceptuel améliore la
manière dont les composants sont assemblés au
niveau logiciel - Définition dun modèle de composition conceptuel
hiérarchique - Application de létude de la relation Tout-Partie
à la composition de composants - Modification du métamodèle UML contraintes OCL
(Object Constraint Language) - Identification dune méthode de composition
comportementale - Définition dune plate-forme de composition
- 3 outils
- Traite les aspects conceptuels, assemblage et
validation
3Plan de lexposé
- Introduction au développement à base de
composant et à la composition - Définition dun modèle de composition
- Outillage une plateforme de composition
- Conclusion et perspectives
4Composant, CBD et CBSE
- Composant notre vision
- Composant
- Entité réutilisable pour la composition
- Encapsule son implémentation
- Déployable indépendamment des autres composants
- Possède un état
- Interfaces de services requis, fournis et
configuration - Granularité tout composant
- Sous-types de composants COTS et composants
maison - Travaux sur lapproche composant
- CBD développement à base de composants
- CBSE ingénierie logicielle basée composants
Szyperski 02
Crnkovic 02
5Composition horizontale versus verticale
(hiérarchique)
6Composition logicielle
- Langage de script (Perl, JavaScript) et de glue
- Manques de support spécifique pour la composition
(script) - Maintenance lourde (glue)
- Modèles de composants technologiques (EJB, CCM,
.Net, Fractal) - Problèmes dhétérogénéité entre composants
- Support limité pour la composition hiérarchique
- Langages de description darchitectures (Olan,
ACME) - Conception détaillée
- Sintéresse à tout type darchitecture et pas
seulement composants - Langages de composition PICT, PICCOLA, CL
- Approches formelles
- Utilisateurs spécialistes
7Composition conceptuelle
- Utilisation de contrats
- 4 niveaux de contrats Beugnard et al, 99
- Syntaxiques
- Sémantiques (contraintes)
- Synchronisation
- Qualité de service
- Manque de support pour les niveaux
synchronisation et qualité de service - Patron Composite Gamma et al, 95
- Capitalisation de la connaissance
- Manque de sémantique
8Problématique
- Cadre général composition conceptuelle
- composition verticale
- Objectif améliorer la sémantique de la relation
de composition - Cadre applicatif approche semi formelle (UML)
- Lien entre les mécanismes de composition
conceptuelle et de composition logicielle
9Stratégie
- Définition dun modèle de composition
- Application aux composants de la base sémantique
de la relation Tout-Partie (WPR) - Résultats existants en ingénierie objet
- Adéquation avec une approche verticale
- Application à UML
- Définition dune plate-forme de composition
- Validation du modèle de composition par
construction - Garantir la cohérence vis-à-vis du modèle
conceptuel
10Plan de lexposé
- Introduction au développement à base de
composants et à la composition - Définition dun modèle de composition
- Etude de lapplication de la relation Tout-Partie
pour la composition conceptuelle - Modèle de composition statique
- Modèle de composition comportemental
- Outillage une plateforme de composition
- Conclusion et perspectives
11Modélisation objet un point de départ
- Etude de la relation Tout-Partie pour la
modélisation objet Barbier et al, 2003 - Objectif répondre à lincohérence entre
agrégation et composition - Résultats
- Classification des propriétés de la relation
- Proposition de modification du métamodèle UML
- Traduction des propriétés de la relation en OCL
- Etudier lapplicabilité de ces résultats à la
lingénierie composant - Identifier les propriétés utilisables
- Appliquer le même procédé pour la composition de
composants - Discuter les propriétés sur des cas
informatiques - Principe un composant Tout est composé de
sous-composants(composants Parties)
12Propriétés de la relation Tout-PartieModélisation
objet
- Propriétés primaires
- Nature binaire
- Propriété émergente et résultante
- Asymétrie au niveau des instances de composant
- Antisymétrie au niveau des composants
- Propriétés secondaires
- Encapsulation
- Partageabilité locale et globale
- Transitivité
- Dépendances des cycles de vie (9 cas)
- Séparabilité
- Mutabilité
- Configurationalité
13Propriétés de composition pour les composants
- Propriétés primaires
- Asymétrie au niveau des instances de composant
- Antisymétrie au niveau des composants
- Propriétés secondaires
- Encapsulation
- Partageabilité locale et globale
- Dépendances des cycles de vie (9 cas)
- Séparabilité
- Mutabilité
Aspectsarchitecturaux
Aspectsdynamiques
14Exemples de sémantiques exprimables
- Exemple de partageabilité
- MACHINE A CAFE Module de préparation de boisson
- CALCULATEUR Centrale de mesure
- Exemple de dépendance existentielle
- DICTIONNAIRE DE MOTS Gestionnaire de BD
- MACHINE A CAFE Module de préparation de boisson
- Exemple de séparabilité mutabilité
- SERVEUR Session
- MACHINE A CAFE Monnayeur
15Différents sous-types relation de composition
pour les composants
- Agrégation et composition non suffisants
16Composition de composants exemples (1)
Etude de cas de la machine à café
Relation decompositionhiérarchique
SCOMP
17Composition de composants exemples (2)
Etude de cas de la machine à café
LCOMP
18Composition de composants exemples (3)
Etude de cas de la machine à café
SAGG
19Composition de composants exemples (4)
Etude de cas de la machine à café
LAGG
20Plan de lexposé
- Introduction au développement à base de
composants et à la composition - Définition dun modèle de composition
- Etude de lapplication de la relation Tout-Partie
pour la composition conceptuelle - Modèle de composition statique
- Modèle de composition comportemental
- Outillage une plateforme de composition
- Conclusion et perspectives
21Composition en UML
- UML 1.x
- Composant unité de déploiement
- Relation de composition
- agrégation et composition
- UML 2.0
- Composant unité de conception et de déploiement
- Relation de composition
- Agrégation et composition
- Structures composites (inclusion topologique)
- Mécanismes de délégation
22Sémantique dUML
- Existence de points de variation sémantique
- Sémantique UML
- Contraindre la syntaxe Harel, IEEE Transaction,
04 - Métamodèle règles OCL langage naturel
- Objectif spécialiser le métamodèle et renforcer
le niveau contrainte
23Application à UML métamodèle
24Application à UML métamodèle
25Contraintes OCL
- Adaptation des contraintes de Barbier et al, 03
- Exemple
- context VerticalComponentRelationship inv
ExclusionLocale - self.partMember.compinstance-gtforAll(p
p.whole.size lt 1)
26Plan de lexposé
- Introduction au développement à base de
composants et à la composition - Définition dun modèle de composition
- Etude de lapplication de la relation Tout-Partie
pour la composition conceptuelle - Modèle de composition statique
- Modèle de composition comportementale
- Outillage une plateforme de composition
- Conclusion et perspectives
27Composition comportementale (1)
- Déduire le comportement du composé en fonction
des comportements de ses sous-composants - Description des comportements par utilisation des
Statecharts - Lien entre les comportements du composé et des
composants implicite
28Composition comportementale (2)
- Utilisation de la méthode de Pazzi Pazzi 00
- Composition hiérarchique explicite de Statecharts
sans modification des états des sous-composants
Composant Gestion O/F
ouverture ltpresser, RCgt
Verrouillé
Ouverture
fermeture ltlever, VCgt
fermé lt CRgt
ouvert ltCVgt
Déverrouillé
Fermeture
Rouge
Composant Lumière
Eteint
presser
RC
CR
VC
Pressé
Vert
lever
Clignotant
Composant Bouton
CV
29Composition comportementale (2)
- Utilisation de la méthode de Pazzi Pazzi 00
- Composition hiérarchique explicite de Statecharts
sans modification des états des sous-composants
Composant Gestion O/F
ouverture ltpresser, RCgt
Verrouillé
Ouverture
fermeture ltlever, VCgt
fermé lt CRgt
ouvert ltCVgt
Déverrouillé
Fermeture
Rouge
Composant Lumière
Eteint
presser
RC
CR
VC
Pressé
Vert
lever
Clignotant
Composant Bouton
CV
30Composition comportementale (2)
- Utilisation de la méthode de Pazzi Pazzi 00
- Composition hiérarchique explicite de Statecharts
sans modification des états des sous-composants
Composant Gestion O/F
ouverture ltpresser, RCgt
Verrouillé
Ouverture
fermeture ltlever, VCgt
fermé lt CRgt
ouvert ltCVgt
Déverrouillé
Fermeture
Rouge
Composant Lumière
Eteint
presser
RC
CR
VC
Pressé
Vert
lever
Clignotant
Composant Bouton
CV
31Composition comportementale (2)
- Utilisation de la méthode de Pazzi Pazzi 00
- Composition hiérarchique explicite de Statecharts
sans modification des états des sous-composants
Composant Gestion O/F
ouverture ltpresser, RCgt
Verrouillé
Ouverture
fermeture ltlever, VCgt
fermé lt CRgt
ouvert ltCVgt
Déverrouillé
Fermeture
Rouge
Composant Lumière
Eteint
presser
RC
CR
VC
Pressé
Vert
lever
Clignotant
Composant Bouton
CV
32Bilan du modèle de composition
- Application de la relation Tout-Partie à la
composition de composants - Identification des propriétés de composition
- Définition de quatre sous-types de relation de
composition - Modèle de composition statique
- Modification du métamodèle UML
- Adaptation des contraintes OCL
- Modèle de composition comportemental
- Identification dune méthode permettant la
description du comportement du composé en
fonction de celui des sous-composants
33Plan de lexposé
- Introduction au développement à base de
composants et à la composition - Définition dun modèle de composition
- Outillage une plateforme de composition
- Définition dun profil UML (niveau conceptuel)
- Définition dun environnement de composition
(niveau composition logicielle) - Utilisation dune librairie de test (niveau
vérification) - Conclusion et Perspectives
34Outillage niveau validation
Modèle de composition
Architecture Dynamique
Vérification
Cycle De vie
Conception
Assemblage / déploiement
Architecture Dynamique
Application du modèle
35Le profil UML Whole Part Composition Profile
(WPCP)
- Spécialisation du métamodèle UML
- Mécanismes dextension
- Stéréotypes
- Valeurs marquées
- Contraintes
- Objecteering
- Développé par Softeam
- Basé sur UML 1.4
- Propose le module Profile Builder
- Langage J
36Objectif
- Mise en uvre concrète du modèle au niveau
conception - Détection de la non validité des modèles (dun
point de vue conception) - Validation des propriétés de composition
- Validation de lapproche
37Principe
- Diagrammes basés sur les diagrammes de classe
- Diagramme de Type de Composant (DTC)
- Diagramme dInstance de Composant (DIC)
- Exemples
- Code J basé sur les règles OCL du modèle de
composition (checkers)
38Principe dutilisation
Concepteur
39Outillage niveau validation
Modèle de composition
Architecture Dynamique
Vérification
Cycle De vie
Conception
Assemblage / déploiement
Architecture Dynamique
Architecture Dynamique
Application du modèle
40Environnement de composition
- Contraindre la composition de composants
- A lexécution
- Selon les propriétés de composition
- Objectifs
- Développement
- Vérification au plus tôt de la faisabilité du
modèle - Détection derreurs ou doublis de modélisation
- Sélection de composants réutilisables
- Minimum deffort pour cette phase
- Administration sur déploiement
- À distance
- Dynamique
41Java Management eXtensions (JMX)
- Extension de la plate-forme Java
- Introspection, portabilité,
- Manipulation de composants à distance (MBean)
- Définition de relations (associations) entre les
composants
42Whole Part Composition Environment (WPCE) une
extension pour la composition
- Extension de JMX co-réalisée durant le DEA de
Fabien Romeo - Extension du service de relation permettant la
définition des relations de composition - Maintien et contrôle de la cohérence des
relations vis-à-vis des propriétés de composition
43Principe dutilisation
44Spécification des propriétés
COFFEE-MACHINE DrinkMaker public interface
CM_DM_RelationMBean extends GlobalUnsharing,
LifetimeDependency COFFEE-MACHINE
Coiner public interface CM_C_RelationMBean
extends GlobalShareability, LifetimeDependency
45Exemple de la non partageabilité
La propriété de non partageabilité a été
spécifiée entre DrinkMaker et CoffeeMachine
2ième composant CoffeeMachine
Relation initiale
46Exemple de la non partageabilité (2)
Spécification dynamique dun lien entre le 2ième
composant CoffeeMachine et le composant DrinkMaker
47Exemple de la non partageabilité (3)
Détection de la violation de la propriété de non
partageabilité
48Outillage niveau validation
Modèle de composition
Architecture Dynamique
Comportement
Vérification
Cycle De vie
Conception
Assemblage / déploiement
Architecture Dynamique
Architecture Dynamique
Comportement
Application du modèle
49Thèse financée par Component
- Projet IST-1999-20162 (5th Framework)
- Consortium de 12 partenaires dont Engineering
(It.), IESE (All.), IVF (S), Labein (Esp.),
Philips (Angl.), SI (Angl.), LIUPPA (France) - Définition de la technologie BIT (Built-In Test)
- Implémentation de fonctionnalités de tests
intégrés dans des composants logiciels - Terminé au printemps 2003
50Validation comportementale utilisation de la
technologie BIT
- Validation du comportement externe du composé
- Validation du comportement interne du composé
- Basé sur des outils de tests intégrés déployables
(ou non) - Contrats classiques
- Contrats basés états
51Principe des composants BIT
52Architecture le la librairie BIT/J
53Application à notre approche
54Plan de lexposé
- Introduction au développement à base de
composants et à la composition - Définition dun modèle de composition
- Outillage une plateforme de composition
- Conclusion et Perspectives
55Conclusion
- Améliorer la composition logicielle en la prenant
mieux en compte au niveau conceptuel - Définition dun modèle de composition
- Etude de la relation Tout-Partie pour les
composants - Définition du modèle de composition statique
- Définition de 4 sous-types de relation de
composition - Basé sur des propriétés de composition
- Identification dun modèle de composition
comportemental - Outillage
- Couverture du cycle de vie dune application
basée composants (modélisation, déploiement et
vérification)
56Bilan
- Composition traitée sur un seul nud de
déploiement - Prise en considération partielle dUML 2.0
- Lien entre le modèle comportemental et les
propriétés de composition - Travaux entrant dans la dynamique du tout
modèle - Extension du pouvoir dexpression dUML
- Amélioration de la sémantique dUML
- Outillage opérationnel
57Perspectives
- Applications à plusieurs nuds de déploiement
- Vérification des contraintes de composition
- Vers une vérification décentralisée
- Utilisation de niveaux de vérification
- Agents de contrôle
- Vers lingénierie des modèles
- Définition dun modèle spécifique à
lenvironnement de composition - Génération automatique des composants,
compositions et tests
58Merci de votre attention
- Vos questions
- Démonstration possible
59ANNEXES
60Cycle de vie dune application
Analyse des besoins
Analyse des besoins
Déploiement
Conception
Remplacement
Maintenance
61Du CBD à la CBSE
- CBD développement dapplications à base de
composants (par composition de composants) - Réutilisation de composants physiques
- Modularité des applications
- Niveau implémentation et assemblage
- Approche artisanale
- CBSE ingénierie logicielle basée composants
- Méthodes et outils pour le CBD
- Couverture de tout le cycle de vie
- Tout niveau
- Approche industrielle
62Intégration Vs Composition
63La composition
- Composition un concept pris en compte
- Au niveau implémentation
- Syntaxiquement
- On parle de composition logicielle
public class CoffeeMachine implements
Coiner _coiner _coiner.setCoin()
64Incohérence entre agrégation et composition (1)
- Aggregate class a class that represents the
whole in an aggregation (whole-part)
relationship. See aggregation. - Aggregation A special form of association that
specifies a whole-part relationship between the
aggregate (whole) and the component part. See
composition. - Composition A form of aggregation which requires
that a part instance be included in at most one
composite at a time, and that the composite
object is responsible for a creation and a
destruction of the parts. Composition may be
recursive. Synonym composite aggregation. - Terme whole part non défini
65Incohérence entre agrégation et composition (2)
- Composition définie comme un sous-type de
lagrégation. - Pertinent ssi agrégation spécialise association
et composition spécialise aggrégation. - UML 2.0
- precise semantics of shared aggregation varies
by application area and modeler
66Métamodélisation
- Modèle Vs Métamodèle
- Les 4 niveaux du Meta Object Facility (MOF)
67Différences entre Objets et Composants
68Propriétés écartées
- Nature binaire (par définition)
- Propriétés émergentes et résultantes
(heuristiques de modélisation) - Transitivité (redondance avec la partageabilité
et lencapsulation) dun point de vue service - Configurationalité (non intéressante pour la
composition verticale)
69Propriétés émergente et résultante
- Emergente caractéristique intrinsèque du
composé - Résultante caractéristique du composé dont la
valeur dépend des sous-composants - Exemple
- CALCULATEUR Centrale de mesure
- Emergente Fréquence de calcul
- Résultante Calcul de laccélération
70Asymétrie au niveau des instances
- Irréflectivité et antisymétrie
71Propriétés retenues
72Relations entre les propriétés
- Encapsulation et partageabilité
- Encapsulation gt non partageabilité globale
dépendance de cycle de vie de type inclusion (le
tout est au moins créé (détruit) en même temps
que la partie (après la partie) - Exclusion globale et locale gt encapsulation
- Séparabilité et mutabilité
- Dépendance de cycles de vie
73Différents sous-types de WPR (1)
Tout-Partie binaire asymétrie au niveau des
instances antisymétrie au niveau des
composants propriété émergente propriété
résultante
74Composition comportementale (1)
75Composition comportementale (2)
76Composition comportementale (3)
77Architecture JMX
78Propriété de dépendance existentielle (1)
Composant CoffeeMachine. Il est composé des sous
composants Coiner et DrinkMaker. Une propriété
dexclusion globale a été spécifié sur la
relation CoffeeMachine-Coiner. Cela implique une
non partageabilité et une dépendance existentielle
79Propriété de dépendance existentielle (2)
Suppression du composant Coiner.
80Propriété de dépendance existentielle (3)
composant Coiner effectivement supprimé.
81Propriété de dépendance existentielle (4)
Tous les composants ont été supprimés
82DTC de la machine à café
83DIC de la machine à café
84Contract Testing versus QoS Testing
85Description du comportement
- protected void init_behavior() throws
Statechart_exception - _Ready new BIT_state("Ready")
- _NoDrinkSelected new BIT_state("NoDrinkSelec
ted") _NoMoneyGiven new
BIT_state("NoMoneyGiven") -
- _BIT_coffeeMachine new BIT_state_monitor((((
_Preparation .xor(_ReadyToPrepare)).x
or(_Ready)).xor(_PreparingDrink)) - .xor(_GivingDrink),"BIT_coffeeMachine
") - _Ready.inputState()
86Test sur transition
- public java.lang.String cancel() throws
Statechart_exception - java.lang.String result super.cancel()
- _BIT_coffeeMachine.fires(_Preparation,
_Ready) - _BIT_coffeeMachine.fires(_ReadyToPrepare,
_Ready) - _BIT_coffeeMachine.fires(_NoDrinkSelected,
_Ready) - _BIT_coffeeMachine.fires(_NoMoneyGiven,
_Ready) - _BIT_coffeeMachine.used_up()
- return result
87Demo BIT_Stack
_Empty new BIT_state("Empty") _Only_one new
BIT_state("Only one") _More_than_one new
BIT_state("More than one") _Not_empty
(BIT_state) (_Only_one.xor(_More_than_one)).name("
Not empty") _BIT_stack new BIT_state_monitor(_
Empty.xor(_Not_empty),"BIT stack") _Empty.inputSt
ate()
public java.lang.Object push(java.lang.Object o1)
throws Statechart_exception
java.lang.Object result _stack.push(o1)
/ state transitions here \_BIT\_stack.fires(from
State, toState) / _BIT_stack.fires(_Empty
, _Only_one) _BIT_stack.fires(_Only_one,
_More_than_one) _BIT_stack.fires(_More_tha
n_one, _More_than_one) _BIT_stack.used_up(
) return result
88Vérification des contraintes de composition
89Vers lingénierie des modèles
- Prise en compte de lenvironnement WPCE au niveau
modèle - Définir un modèle spécifique pour WPCE
- Définir un outil de transformation du modèle WPCE
vers le code - Automatisation du passage du modèle de
composition indépendant vers le modèle WPCE - Définir un outil de transformation entre WPCP et
le modèle WPCE - Application du principe de lenvironnement WPCE à
un modèle de composants (Fractal) - Etudier comment appliquer le modèle de
composition à Fractal - Développer un outil de transformation entre WPCP
et Fractal