Approches de
Approches de Re Re - - architecturisation architecturisation des des syst syst è è mes existants mes existants
1)Migration des syst
1)Migration des systèèmes orientmes orientéés objets existants vers des s objets existants vers des systsystèèmes mes àà base de composantsbase de composants
2) Restructuration des systèmes à base de composants Abdelhak
Abdelhak--Djamel SeriaiDjamel Seriai Maitre de conf
Maitre de conféérences rences LIRMM/Universit
LIRMM/Universitéé de Montpellier 2de Montpellier 2
Contact : seriai
Contact : seriai@lirmm.f@lirmm.f
Introduction
Approche « composant logiciel»
Approche facilitant la réutilisation, l’évolution et la maintenance de logiciels selon une idée analogue à celle des composants en industrie électronique ou mécanique
Composants et assemblage mécanique Composants et assemblage logiciel
Introduction
C’est quoi un composant ?
Une unité de composition possédant des interfaces spécifiées par contrat et des dépendances
explicites avec le contexte. Il peut être déployé indépendamment et peut être composé par un tiers
Introduction Introduction
Application conçue à base de composants
z Assemblage de composants logiciels
Introduction Introduction
Avantages des composants
z Facilite la réutilisation, l’évolution, la compréhension, l’intégration, etc.
¾ Le composant est une unité de construction à gros grains
¾ Encapsulation : Interfaces = seule voie d’accès, séparation interface-réalisation
¾ Composabilité
– Dépendances explicites (expression des ressources fournies et requises)
– Composition hiérarchique (un assemblage de composants est un composant)
¾ Capacité de description globale (langage de description architecturale)
¾ Adaptation et reconfiguration
Introduction
Increasing Productivity
D D é é veloppement de SBC veloppement de SBC
Cycle de vie d’un logiciel
9 Définition des objectifs : définir la finalité du projet
9 Analyse des besoins et faisabilité : recueil et la formalisation des besoins
9 Conception générale : élaboration des spécifications de l'architecture générale
9 Conception détaillée : définir chaque sous-ensemble du logiciel
9 Codage (Implémentation ou programmation)
9 Tests unitaires
9 Intégration: s'assurer de l'interfaçage des différents éléments (modules)
9 Qualification (ou recette): vérification de la conformité du logiciel aux spécifications initiales
9 Documentation: produire les informations nécessaires pour l'utilisation du logiciel et pour des développements ultérieurs
9 Mise en production
9
9 Maintenance : toutes les actions correctives (maintenance corrective) et évolutives (maintenance évolutive) sur le logiciel
D D é é veloppement de SBC veloppement de SBC
Cycle de vie d’un logiciel
Nouveau développement
À base de composants
D D é é veloppement de SBC veloppement de SBC
Les systèmes existants
¾ Besoin de réutilisation
9 faciliter et diminuer les coûts des nouveaux projets par la capitalisation de l’existant
¾ Besoin de faciliter la maintenance
9 Absence de vues abstraites, donc difficulté de compréhension 9 Conception « petits grains » (les classes, …)
¾ donc, difficulté de séparation de préoccupations 9 Phénomène d’érosion
¾ Est concernée la documentation de la réalisation (le comment ?)
¾ Est moins concernée la documentation des fonctionnalités (le quoi ?)
D D é é veloppement de SBC veloppement de SBC
Migration vers les SBC : développement à partir de l’existant¾ Faire évoluer l’existant
migration
Système orienté objet Système à base de composants
D D éveloppement de SBC é veloppement de SBC
■
Migration vers les SBC : développement à partir de l’existantNouveau développement
À base de composants
Transformer des systèmes existants en systèmes à base de composants
DDééveloppement de SBCveloppement de SBC
■
Migration manuelle difficile :¾Coûteuse 9 Temps 9 Experts
¾Source d’erreurs
Migration de A à Z terminée avec succès !
ROMANTIC : Re-engineering of Object- oriented systeMs by Architecture
extractioN and migraTIon to Component based one
D D é é veloppement de SBC veloppement de SBC
• La migration /les différents types d’évolution et de maintenance
Maintenance
Réingénierie Rétro-ingénierie Tests
Restructuration Extraction de design
Refactoring Extraction d’architecture Visualisation
Migration
D D é é veloppement de SBC veloppement de SBC
• La migration/les différents objectifs de l’évolution et de la maintenance
Maintenance
Correction Amélioration
Préventive Corrective Perfective Adaptative
■Migration point-à-point versus migration centrée architecture
Langage et plate-forme objet
Proce ssus d
e migr
ation Génération de code Extraction d’architecture
Architecture logicielle
Processus de migration
Langage et plate-forme objet
La migration centr
La migration centr é é e architecture e architecture
Langages et plateformes à base de composants Langages et plateformes à base de composants
La migration centr
La migration centr é é e architecture e architecture
ArchitectureArchitecture
zz Abstraction dAbstraction d’’un systun systèèmeme
¾¾ComposantsComposants
– Encapsule la partie métier – Interfaces
• Fournies
• Requises
¾¾ConnecteursConnecteurs
– Communications entre les composants
¾¾ConfigurationConfiguration
– Topologie des connections entre les composants à travers les connecteurs
La migration centr
La migration centr é é e architecture e architecture
IntIntéérêtsrêts
zz Échanges entre les diffÉchanges entre les difféérents acteurs du cycle de vierents acteurs du cycle de vie
zz RepréReprésentationsentation du du systsystèèmeme ::
¾¾MeilleurMeilleur comprcomprééhensionhension
¾¾VVéérificationrification des des propripropriééttééss
¾¾Localisation des dLocalisation des dééfautsfauts
¾¾RRééduction des risques dans les modificationsduction des risques dans les modifications
zz RéRéutilisationutilisation
Etat des lieuxEtat des lieux
zz SystSystèèmes conmes conççus sans reprus sans repréésentation de lsentation de l’’architecturearchitecture
zz SystèSystèmes avec une reprmes avec une repréésentation incorrectesentation incorrecte
¾¾PhPhéénomnomèène dne d’é’érosion :rosion :
– Écart entre architecture conçue et implémentée.
– Manque de synchronisation pendant les phases de maintenance
La migration centr
La migration centr ée architecture é e architecture
■
ROMANTIC : Re-engineering of Object-oriented systeMs by Architecture extractioN and migraTIon to Component based onesSystème à Base de Composants Système Orienté
Objet
Extraction d’architecture
Restructuration
&
refactoring
Migration du système
OO vers composants
Restructuration
&
refactoring
Quels composants ?
Réalisation des composants
La migration centr
La migration centr é é e architecture e architecture
Maintenance
Ré-ingénierie Rétro-ingénierie Tests
Restructuration Extraction de design
Refactoring Extraction d’architecture Visualisation
Migration
Les principes de l
Les principes de l ’ ’ extraction d extraction d ’ ’ architecture architecture
■Modèle de correspondance orienté-objet/composant
Software component
instances
Class instances
Instance of
Corresponding to Correspondence model
Architectural concepts
Object oriented concepts
Metamodel
Model
Instance
Les principes de l
Les principes de l ’ ’ extraction d extraction d ’ ’ architecture architecture
ArchitectureArchitecture
zz Une partition des classes du Une partition des classes du systèsystèmeme
Composant Composant
zz Un ensemble de classesUn ensemble de classes
ConnecteurConnecteur
zz Lien de déLien de dépendance entre classes pendance entre classes de composants diff
de composants difféérentsrents
Les principes de l
Les principes de l’ ’extraction d extraction d ’ ’ architecture architecture
Contour :Contour :
zz Ensemble de classesEnsemble de classes
Composant :Composant :
zz Abstraction dAbstraction d’’un un contour
contour
Architecture :Architecture :
zz Partition des classes Partition des classes en contours
en contours
Les principes de l
Les principes de l ’ ’ extraction d extraction d ’ ’ architecture architecture
Approche manuelleApproche manuelle
zz Même difficultMême difficultéés que la conceptions que la conception
zz Fort besoin en expertiseFort besoin en expertise
Approche automatiqueApproche automatique
zz L’L’espace des solutionsespace des solutions
¾¾ Nombre d’Nombre d’architectures possibles:architectures possibles:
¾¾ SéSélection allection alééatoire?atoire?
¾¾ La plupart des solutions possibles sont mauvaisesLa plupart des solutions possibles sont mauvaises – Sémantique des composants
– Granularité des composants
( )
(
n 2+ ⋅1n)
!⋅!n !Les principes de l
Les principes de l ’ ’ extraction d extraction d ’ ’ architecture architecture
Processus automatiqueProcessus automatique
zz Limite les besoins en expertiseLimite les besoins en expertise
zz Exploration de lExploration de l’espace de solution’espace de solution
zz Besoin dBesoin d’’un ensemble de guidesun ensemble de guides
¾¾Oriente le choix de la meilleure architectureOriente le choix de la meilleure architecture
¾¾Dirige lDirige l’’explorationexploration
¾¾SSéélectionne les solutionslectionne les solutions
Les principes de l
Les principes de l’ ’extraction d extraction d ’ ’ architecture architecture
Les guides de l
Les guides de l’’extractionextraction
Les principes de l
Les principes de l ’ ’ extraction d extraction d ’ ’ architecture architecture
SéSémantique des mantique des éélléments éments architecturaux
architecturaux
zz Construire des composants Construire des composants
QualitQualitéé dd’’une architecture et de une architecture et de ses éses éllééments ments
zz Construire des bons Construire des bons composants
composants
ÉlÉlééments de conceptionments de conception
zz Construire des composants Construire des composants reflrefléétant les services dtant les services déésirsirééss
Les principes de l
Les principes de l’’extraction dextraction d’’architecturearchitecture
Définition d’une fonction
d’évaluation de la qualité
Trouver une instance du modèle de correspondance
qui maximise cette fonction
Processus de construction
des
composants
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
DéDéfinitionfinition
zz La ou les structures du systLa ou les structures du systèème ce qui inclut les composants me ce qui inclut les composants logiciels, les propri
logiciels, les propriééttéés externes de ces composants et les s externes de ces composants et les relations entre
relations entre euxeux. (Kazman). (Kazman)
zz AbstractionAbstraction
¾¾Montre les interractions entre composantsMontre les interractions entre composants
¾¾Masque les informations purement internesMasque les informations purement internes
Les éLes éllééments architecturauxments architecturaux
zz Les composants logicielsLes composants logiciels
zz Les connecteursLes connecteurs
zz La configurationLa configuration
Analyse et r
Analyse et r éification de la s é ification de la s émantique de la notion d é mantique de la notion d ’ ’ architecture architecture
Il distingue cette définition de celle d’un composant déployable qui est:
Un composant (a) pre-paquetagé, (b) distribué indépendamment, (c) facile à installer et désinstaller et (d) auto-descriptif
DDééfinitions gfinitions géénnééralement admises dralement admises d’’un composantun composant
zz SzyperskiSzyperski (Szyperski(Szyperski, 1998), 1998)))
zz Heinemann et CouncillHeinemann et Councill (Heinemann et al., 2001)(Heinemann et al., 2001)
zz LuerLuer (Luer(Luer et al., 2002).et al., 2002).
Une unité de composition possédant des interfaces spécifiées par contrat et des dépendances explicites avec le contexte. Il peut être déployé indépendamment et peut être composé par un tiers
Un élément logiciel qui (a) encapsule une implémentation réutilisable d’une fonctionnalité, (b) peut être composé sans modification et (c) adhère à un modèle de composant.
Un élément logiciel qui est conforme à un modèle de composant et peut être déployé indépendamment et composé sans modification selon un standard de composition
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
Lien entre dLien entre dééployable et autonomeployable et autonome
zz DDééployable :ployable :
¾¾ComprComprééhensiblehensible
¾¾Adaptable Adaptable
¾¾AutonomeAutonome
¾¾SpSpéécialiscialiséé
On ne retient pas l’On ne retient pas l’adaptabilitadaptabilitéé et la compréet la compréhensibilithensibilitéé
zz Trop liTrop liéées es àà ll’’implimpléémentationmentation
CaractCaractééristiques sristiques séémantiques du composant :mantiques du composant :
zz ComposableComposable
zz AutonomeAutonome
zz spéspécialiscialiséé
Analyse et r
Analyse et r éification de la s é ification de la s émantique de la notion d é mantique de la notion d ’ ’ architecture architecture
Notre déNotre définitionfinition
zz Un composantUn composant
z
z Le modèLe modèle dle d’’un composant (un composant (standard du composantstandard du composant))
¾
¾ Le modèLe modèle des composants regroupe les autres proprile des composants regroupe les autres propriééttéés du composant s du composant AdhAdhésion ésion àà un standard de composition un standard de composition
Auto-Auto-description, prdescription, pré-é-paquetage, facilitpaquetage, facilitéé dd’installation/d’installation/déésinstallationsinstallation
Un modèle de composant est la combinaison de (a) un standard de composant qui gouverne la construction de chaque composant et (b) un standard de composition qui régit comment organiser un ensemble de composants en une application et comment ces composants
communiquent et interagissent entre eux. (Luer et al., 2002)
Un composant est un élément logiciel qui (a) est composable sans modification, (b) peut être distribué de manière autonome, (c) encapsule une fonctionnalité, et (d) qui adhère à un
modèle de composant
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
Objectif Objectif
zz Mesurer les caractMesurer les caractééristiques dristiques d’’un composantun composant
ProblProblèèmes :mes :
zz Absence de composantsAbsence de composants
¾¾ Seulement un regroupement de classesSeulement un regroupement de classes
Processus en deux éProcessus en deux étapes :tapes :
zz Comment mesurer les caractComment mesurer les caractééristiques sur un composant?ristiques sur un composant?
¾
¾ Identification des propriéIdentification des propriéttés mesurables des composantsés mesurables des composants
¾¾ Lien avec les caractéLien avec les caractéristiquesristiques
zz Comment mesurer ces propriComment mesurer ces propriééttéés mesurables sur un contour?s mesurables sur un contour?
¾
¾ Identification des propriéIdentification des propriéttés mesurables du contour.és mesurables du contour.
¾¾ Liens avec les propriéLiens avec les propriéttés mesurables du composant.és mesurables du composant.
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture, architecture,
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
Processus en trois éProcessus en trois étapes :tapes :
1.1. Identification des liens Identification des liens entre
entre caractcaractééristiquesristiques
sséémantiques et mantiques et propripropriééttééss des composants
des composants
2.2. Identification des liens entre Identification des liens entre les propri
les propriééttéés des s des composants
composants et celles des et celles des contours
contours
3.3. Choix de mChoix de méétriquestriques pour la pour la mesure des propri
mesure des propriététéés des s des contours
contours
Analyse et r
Analyse et r éification de la s é ification de la s émantique de la notion d é mantique de la notion d ’ ’ architecture architecture
Caractéristiques sémantiques
Propriétés du composant Raffinée en
1
Une interface dont les services sont très cohérents fournit probablement une seule fonctionnalité
Un ensemble d’interfaces très cohérentes a plus de chance de fournir un nombre limité de fonctionnalités
Si le code du composant est très couplé, il fournit probablement un nombre réduit de fonctionnalités
La moyenne des cohésions entre les services dans une interface
La cohésion entre les interfaces
Le couplage et la cohésion à l’intérieur du composant
Propriétés de la structure du composant Analyse
Le nombre d’interfaces fournies
Etc.
Analyse et r
Analyse et ré é ification de la s ification de la s émantique de la notion d é mantique de la notion d’ ’architecture architecture
Autonomie
Analyse
Un composant est complètement autonome s’il ne possède pas d’interface requise
Liens caractéristique Autonomie / propriétés de la structure de composant
L’autonomie peut être mesurée à travers la propriété «nombre d’interfaces requises»
Caractéristiques sémantiques
Propriétés du composant Raffinée en
1
Analyse et r
Analyse et r éification de la s é ification de la s émantique de la notion d é mantique de la notion d ’ ’ architecture architecture
Caractéristiques sémantiques
Propriétés du composant Raffinée en
1
Composabilité Analyse
Un composant est considéré comme composable d’abord parce qu’il définit clairement les services qu’il fournit et ceux qu’il requiert, à travers des interfaces
Un composant sera plus facile à assembler avec un autre si, dans chacune de ses interfaces, les services sont cohérents
Liens caractéristique Composabilité / propriétés de la structure de composant
La propriété «cohésion des services dans chaque interface» permet de mesurer la composabilité
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
■■ CaractCaractéristiques des composants vs. Propriéristiques des composants vs. Propriététés structurelles des composantsés structurelles des composants
+ : la caractéristique et la propriété sont co-variantes
- : la caractéristique et la propriété varient en sens inverse
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
Structure des composants vs. Structure des contoursStructure des composants vs. Structure des contours
5 proprié5 propriéttéés mesurables sur le contour.s mesurables sur le contour.
DifficultDifficultéé avec la mesure des interfaces fournisavec la mesure des interfaces fournis
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
■■ Structure des composants vs. Structure des contoursStructure des composants vs. Structure des contours
Calcul de la moyenne des cohésions des services de chaque interface du composant L’ensemble des interfaces du composant est en correspondance avec l’interface du contour
La moyenne des cohésions de chaque classe de l’interface donne une bonne idée de la moyenne des cohésions des services dans chaque interface du composant
La moyenne des cohésions de chaque classe de l’interface du contour pour mesurer cette propriété
Analyse et r
Analyse et r éification de la s é ification de la s émantique de la notion d é mantique de la notion d ’ ’ architecture architecture
■■ Structure des composants vs. Structure des contoursStructure des composants vs. Structure des contours Cohésion entre les interfaces du composant
Associée à la propriété du contour mesurant la cohésion des classes de son interface Cohésion/couplage interne du composant
Liées à la cohésion/le couplage des classes du contour Nombre d’interfaces fournies du composant
Nous associe à chaque classe de l’interface du contour qui possède une méthode publique, une interface fournie du composant
Nombre d’interfaces requises par le composant
Peut être évaluée en utilisant le couplage du composant avec l’extérieur Liée au couplage externe du contour
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
■■ Structure des composants vs. Structure des contoursStructure des composants vs. Structure des contours
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
■ Définition des métriques pour la mesure des propriétés du contour Mesure de couplage
Besoin
Les propriétés «couplage des classes du contour» et « couplage entre les classes du contour et l’extérieur» nécessitent une mesure de couplage
Propriétés requises pour la métrique de couplage
Refléter uniquement les liens d’utilisation entre deux objets Permettre de mesurer l’intensité des liens entre deux objets
Doit être relative et indépendante du langage de programmation Constat
Aucune métrique disponible dans la littérature ne satisfait tous ces besoins Solution
Définir notre propre métrique à partir de celles existantes.
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
Mesure de couplage (E est un ensemble de classes)Mesure de couplage (E est un ensemble de classes)
zz CM(E) CM(E) :: nombre d'appels de mnombre d'appels de mééthodes entre classes de thodes entre classes de EE, , pondépondérréé par le nombre de paramèpar le nombre de paramètres.tres.
zz CA(E)CA(E) : nombre d'attributs d'une classe de : nombre d'attributs d'une classe de EE qui ont pour qui ont pour type une autre classe de
type une autre classe de EE. .
zz CP(E)CP(E) : nombre de paramè: nombre de paramètres dans une classe de tres dans une classe de EE qui qui ont pour type une autre classe de
ont pour type une autre classe de EE..
Le couplage de Le couplage de E E est la moyenne des troisest la moyenne des trois
Le couplage de Le couplage de EE avec lavec l’’extextéérieur est le complrieur est le compléément.ment.
Analyse et r
Analyse et r éification de la s é ification de la s émantique de la notion d é mantique de la notion d ’ ’ architecture architecture
■■ DéDéfinition des mfinition des méétriques pour la mesure des propritriques pour la mesure des propriééttéés du contour s du contour Mesure de la coh
Mesure de la cohéésion (E ensemble de classes)sion (E ensemble de classes) LCC(E) : (
LCC(E) : (LooseLoose Class Class Cohesion, Cohesion, BiemanBieman et Kang) mesure le et Kang) mesure le nombre de paires de m
nombre de paires de méthodes connectéthodes connectées directement ou ées directement ou indirectement.
indirectement.
Deux m
Deux mééthodes sont connectthodes sont connectéées si elles utilisent de manies si elles utilisent de manièère re directe ou indirecte des attributs en commun
directe ou indirecte des attributs en commun Deux m
Deux méthodes sont connectéthodes sont connectées indirectement sées indirectement s’il existe une ’il existe une chachaîne de mîne de méthodes connectéthodes connectéées qui les relient.es qui les relient.
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
Analyse et r
Analyse et r é é ification de la s ification de la s é é mantique de la notion d mantique de la notion d ’ ’ architecture architecture
Mesure de la composabilitMesure de la composabilitéé
Mesure de l’Mesure de l’autonomieautonomie
Mesure de la spéMesure de la spécialisationcialisation
Fonction dFonction d’évaluation de la s’évaluation de la séémantique des composantsmantique des composants
Analyse et r
Analyse et r éification de la qualit é ification de la qualit é é architecturale architecturale
ObjectifsObjectifs
zz Mesurer les caractMesurer les caractééristiques de qualitristiques de qualitéé de lde l’’architecturearchitecture
zz Ajout Ajout àà la fonction objectifla fonction objectif
Adaptation de mesures existantesAdaptation de mesures existantes
zz ÉÉtudes des travaux de mesure de qualitétudes des travaux de mesure de qualité
zz Adaptation pour notre approcheAdaptation pour notre approche
Analyse et r
Analyse et r é é ification de la qualit ification de la qualit é é architecturale architecturale
QualitQualitéé dd’’un produit ou service :un produit ou service :
zz Ensemble de caractEnsemble de caractééristiques qui lui permettent de remplir les besoins ristiques qui lui permettent de remplir les besoins spéspécificifiéés ou impliqus ou impliquéés. ( ISO9126 )s. ( ISO9126 )
QualitéQualité dd’un logiciel :’un logiciel :
Analyse et r
Analyse et r é é ification de la qualit ification de la qualit é é architecturale architecturale
CaractéCaractéristiques des composantsristiques des composants
Analyse et r
Analyse et r é é ification de la qualit ification de la qualit é é architecturale architecturale
CaractCaractééristiques de lristiques de l’’architecturearchitecture
Analyse et r
Analyse et r éification de la qualit é ification de la qualit é é architecturale architecturale
On rejette celles qui:On rejette celles qui:
zz Ne dNe déépendent pas de lpendent pas de l’architecture’architecture
¾¾PrPréécision ( Fonctionnalitcision ( Fonctionnalitéé ))
¾¾CapacitCapacitéé dd’’apprentissage ( apprentissage ( UtilisabilitUtilisabilitéé ))
zz NNéécessitent des informations indisponibles dans notre cessitent des informations indisponibles dans notre approche
approche
¾¾EfficacitEfficacitéé
¾¾PortabilitPortabilitéé
On analyse et on réOn analyse et on réifieifie
zz FiabilitFiabilitéé
zz MaintenabilitMaintenabilitéé
Analyse et r
Analyse et r é é ification de la qualit ification de la qualit é é architecturale architecturale
Mesure de la Mesure de la maintenabilitémaintenabilité
zz La maintenabilitéLa maintenabilité mesure lmesure l’effort requis pour maintenir ’effort requis pour maintenir l’l’architecturearchitecture
zz La maintenabilitLa maintenabilitéé dd’’une architecture dune architecture déépend depend de
¾¾La maintenabilitLa maintenabilitéé des composantsdes composants
¾¾La maintenabilitéLa maintenabilité de la configurationde la configuration
zz Mesure de la maintenabilitéMesure de la maintenabilité des composants et de la des composants et de la configuration
configuration
¾¾BasBaséée sur la the sur la thééorie de lorie de l’’informationinformation
¾¾BasBaséée sur les travaux de Jenkinse sur les travaux de Jenkins
– La maintenabilité d’un module décroît avec le nombre de dépendances
Analyse et r
Analyse et r éification de la qualit é ification de la qualit é é architecturale architecturale
Mesure de la Mesure de la maintenabilitmaintenabilitéé
zz MaintenabilitMaintenabilitéé dd’’un composantun composant
¾¾2 phases de classes dans le composant2 phases de classes dans le composant
– Une phase stable (degré < Kt) – Une phase instable (degré > Kt)
¾¾La proportion de chaque phase donne une mesure de La proportion de chaque phase donne une mesure de la maintenabilit
la maintenabilitéé
zz G un grapheG un graphe
¾¾Les sommets sont les classesLes sommets sont les classes
¾¾Un arc entre a et b si a dUn arc entre a et b si a déépend de bpend de b
zz DegréDegré KtKt : :
( ) ∑ ( )
∑
= =⋅
=
⋅
max' 0
'
' n
' '
n '
k
k k k
k t
t
k k
k
k
Analyse et r
Analyse et r é é ification de la qualit ification de la qualit é é architecturale architecturale
Mesure de la Mesure de la maintenabilitmaintenabilitéé
zz MaintenabilitMaintenabilitéé de la configurationde la configuration
¾¾Idem composant Idem composant
¾¾Mais les composants remplacent les classesMais les composants remplacent les classes
zz MaintenabilitMaintenabilitéé de lde l’’architecture architecture
( ) ( ) ( ) ⎟ ⎟
⎠
⎞
⎜ ⎜
⎝
⎛ +
⋅
= ∑
∈
C C s
C
C s
MConf MComp
1 2
M 1
Analyse et r
Analyse et r é é ification de la qualit ification de la qualit é é architecturale architecturale
Mesure de la fiabilitMesure de la fiabilitéé
zz La fiabilitéLa fiabilité mesure la capacitmesure la capacitéé du systdu systèème me àà fournir le service fournir le service demand
demandéé au moment donnau moment donnéé
zz DDéépend de la complexitpend de la complexitéé du systdu systèème (Henry et me (Henry et KafuraKafura, 1981), 1981)
zz La complexitLa complexitéé dd’’une architecture dune architecture déépendpend
¾¾De la complexitDe la complexitéé des composantsdes composants
¾¾Du poids de chaque composant dans lDu poids de chaque composant dans l’’architecturearchitecture
zz La complexitéLa complexité dd’’un composant dun composant dépend épend
¾¾Du couplage avec les autres composantsDu couplage avec les autres composants
¾¾De la cohDe la cohéésion dans le composantsion dans le composant
Analyse et r
Analyse et r é é ification de la qualit ification de la qualit é é architecturale architecturale
Mesure de la fiabilitMesure de la fiabilitéé
zz ComplexitéComplexité d’d’un composant un composant
zz FiabilitFiabilitéé dd’’un composantun composant
zz FiabilitéFiabilité d’d’une architecture
( Inter )
2Intra Complexite = ⋅
( ) 10
4RelS s = Complexite
une architecture
( ) ( ) ( ) ( ) ⎟
⎠
⎜ ⎞
⎝
⎛ ⋅
⎟⎟ ⋅
⎠
⎜⎜ ⎞
⎝
⎛ ⋅
= ∑ ∑
∈
−
= s C
k
k
s s
k k
C n deg RelS
Rel
1
0
max
Processus de partitionnement Processus de partitionnement
ClusteringClustering hihiéérarchiquerarchique
zz SimilaritSimilaritéé : fonction d: fonction d’é’évaluation de la svaluation de la sémantiqueémantique
zz RRéésultat : sultat :
¾¾un dendrogramme des classesun dendrogramme des classes
¾¾Une hiUne hiéérarchie de clustersrarchie de clusters
On souhaite une partition des classesOn souhaite une partition des classes
Identification des composantsIdentification des composants
zz Coupe dans le dendrogrammeCoupe dans le dendrogramme
zz Objectif :Objectif :
¾¾Une partition Une partition
¾¾Des contours qui atteignent les seuilsDes contours qui atteignent les seuils
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement
Processus de partitionnement Processus de partitionnement
Identification des composantsIdentification des composants
zz Parcours en profondeur du dendrogrammeParcours en profondeur du dendrogramme
zz A chaque nA chaque nœœudud
¾¾Si la fonction dSi la fonction d’é’évaluation est meilleur que la moyenne valuation est meilleur que la moyenne des fils on a un composant
des fils on a un composant
Processus de partitionnement Processus de partitionnement
Approche par optimisation Approche par optimisation
zz Algorithme de Algorithme de SimulatedSimulated AnnealingAnnealing
zz Point de déPoint de départpart
¾¾Partition en composante fortement connexePartition en composante fortement connexe
zz Voisinage Voisinage
¾¾2 op2 opéérationsrations
– Déplacement d’une classe vers un cluster existant – Déplacement d’une classe vers un nouveau cluster zz Parcours de lParcours de l’’espace des solutionsespace des solutions
zz Si la nouvelle solution est moins bonneSi la nouvelle solution est moins bonne
¾¾On la conserve avec la probabilitéOn la conserve avec la probabilité ::
T E
e
− ∆
Processus de partitionnement Processus de partitionnement
Approche par optimisation Approche par optimisation
zz Point de dPoint de déépart : part :
¾¾Partition en composante fortement connexePartition en composante fortement connexe
Processus de partitionnement Processus de partitionnement
Approche par optimisation Approche par optimisation
zz Point de dPoint de déépart : part :
¾¾Partition en composante fortement connexePartition en composante fortement connexe
zz OpOpéérationsrations
¾¾Fusion /Fusion /ééclatement de contours.clatement de contours.
¾¾DDééplacement dplacement d’’un un éélléément entre contoursment entre contours
Processus de partitionnement Processus de partitionnement
Approche par optimisation Approche par optimisation
zz Point de dPoint de déépart : part :
¾¾Partition en composante fortement connexePartition en composante fortement connexe
zz OpOpéérationsrations
¾¾Fusion /Fusion /ééclatement de contours.clatement de contours.
¾¾DDééplacement dplacement d’’un un éélléément entre contoursment entre contours
zz Avantage :Avantage :
¾¾Le rLe réésultat est situsultat est situéé par rapport par rapport àà l’l’optimumoptimum
zz ProblProblèèmes :mes :
¾¾ComplexitComplexitéé importanteimportante
¾¾NNéécessitcessitéé de dde déévelopper un algorithme spvelopper un algorithme spéécifiquecifique
Processus de partitionnement Processus de partitionnement
Processus dProcessus d’’exploration exploration
zz Algorithme d’Algorithme d’explorationexploration
zz Algorithme de recuit simulAlgorithme de recuit simuléé
¾¾A chaque A chaque éétape tape
– On choisit une solution dans le voisinage de la solution actuelle – Si la voisine est meilleure elle devient le point de départ de l’étape
suivante
– Sinon elle peut être accepté comme nouveau point de départ
• Évite les minima locaux
• Fonction de la température
Processus de partitionnement Processus de partitionnement
Processus dProcessus d’’exploration exploration
zz Le point de déLe point de départpart
¾¾La solution de la hiLa solution de la hiérarchie de contrainteérarchie de contrainte
zz La tempLa tempéérature initialerature initiale
¾¾Calculer pour un taux dCalculer pour un taux d’’acceptation de 80%acceptation de 80%
zz Le schLe schééma de refroidissementma de refroidissement
¾¾GGééomoméétriquetrique
– À chaque étape la température décroît d’un facteur constant – Tend vers 1
Processus de partitionnement Processus de partitionnement
Processus dProcessus d’exploration ’exploration
zz DDééfinition du voisinagefinition du voisinage
¾¾OpOpéérateurs de modificationrateurs de modification
– Fusion de deux ensembles de classes
– Déplacement d’une classe vers un autre ensemble
– Création d’un nouvel élément de la partition à partir d’une classe
¾¾Choix de lChoix de l’’opéopérateur alrateur alééatoireatoire
– Mais limité par les contraintes
• Si deux classes doivent être dans le même ensemble
Processus de partitionnement Processus de partitionnement
Processus dProcessus d’’exploration exploration
zz Acceptation d’Acceptation d’un nouveau point de dun nouveau point de départépart
zz A : acceptationA : acceptation
zz p1>p2>p3
∆F>0 ∆F<0
∆C>0 A p1(∆F,∆c,T)
∆C<0 p2(∆F,∆c,T) p3(∆F,∆c,T)
p1>p2>p3
Quelques cas d’étude
■
ArgoUML¾Un outil de modélisation en UML développé en JAVA.
¾Contient 1210 classes.
¾Plus de 55000 relations
d’utilisation entre ces classes.
Quelques cas d’étude
ss
Derrière les rideaux d’ArgoUML !
Quelques cas d’étude
Quelques cas d’étude
■
Treize composants identifiés¾ Le nombre de classes par composant 9 Moyenne 57 classes/ composant 9 Quelques composants identifiés
9Composant « génération de code » 9Composant « gestion de diagrammes » 9Composant « IU »
9 Etc.
Quelques cas d’étude
Documentation et recommandations Documentation et recommandations
Manque de prise en compte de lManque de prise en compte de l’’architecte dans les guides architecte dans les guides prprééccéédentsdents
Utilisation de la documentation et des recommandationsUtilisation de la documentation et des recommandations
zz Pour déPour déterminer le point de dterminer le point de déépart de lpart de l’exploration’exploration
zz Pour réPour réduire lduire l’’espace des solutionsespace des solutions
zz Pour diriger l’Pour diriger l’explorationexploration
¾¾Choix de la solution suivante Choix de la solution suivante àà partir de la solution partir de la solution actuelle
actuelle
Documentation et recommandations Documentation et recommandations
3 documentations utilis3 documentations utilisééeses
zz Les diagrammes UMLLes diagrammes UML
zz Les commentaires et la séLes commentaires et la sémantique contenu dans le code mantique contenu dans le code source
source
zz Les donnéLes données de gestion de projet es de gestion de projet
¾¾Log CVSLog CVS
Les recommandations de lLes recommandations de l’’architectearchitecte
zz Nombre de composantsNombre de composants
zz Associations entre classesAssociations entre classes
zz Dissociations entre classesDissociations entre classes
zz Etc.Etc.
Diagramme UML
Code source Log Projet
Recommandations architecte
Extraction d’architecture Extraction d’architecture
Identification composants Identification composants
Identification connecteurs Identification connecteurs
Code système objet
Documentation et recommandations Documentation et recommandations
Un processus interactif avec lUn processus interactif avec l’’architectearchitecte
zz Si l’Si l’architecte est disponiblearchitecte est disponible
Un processus en 4 Un processus en 4 éétapestapes
zz Extraction des informations de la documentationExtraction des informations de la documentation
zz Validation des informations extraites par lValidation des informations extraites par l’’architectearchitecte
¾¾Modification des relations extraitesModification des relations extraites
¾¾SuppressionSuppression
¾¾Ajout Ajout
zz Recommandations de lRecommandations de l’’architectearchitecte
zz Calcul dCalcul d’’une hiune hiéérarchie de contraintes pour la solutionrarchie de contraintes pour la solution
Extraction des informations Extraction des informations
A partir de chaque type de documentation disponible A partir de chaque type de documentation disponible
On extrait une hiOn extrait une hiérarchie de regroupement de classeérarchie de regroupement de classe
Plus des informations supplPlus des informations suppléémentaires suivant le type de mentaires suivant le type de documents
documents
zz Cas dCas d’’utilisation du groupe de classes utilisation du groupe de classes
¾¾Diagrammes UMLDiagrammes UML
zz Mots clefs associéMots clefs associés au groupe de classess au groupe de classes
¾¾Code sourceCode source