Approches de Re Re - - architecturisation architecturisation des des syst syst è è mes existants mes existants

98  Download (0)

Full text

(1)

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

(2)

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

(3)

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

(4)

Introduction Introduction

„ Application conçue à base de composants

z Assemblage de composants logiciels

(5)

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

(6)

Introduction

Increasing Productivity

(7)

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

(8)

D D é é veloppement de SBC veloppement de SBC

ƒ Cycle de vie d’un logiciel

Nouveau développement

À base de composants

(9)

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 ?)

(10)

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

(11)

D D éveloppement de SBC é veloppement de SBC

Migration vers les SBC : développement à partir de l’existant

Nouveau développement

À base de composants

Transformer des systèmes existants en systèmes à base de composants

(12)

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

(13)

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

(14)

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

(15)

■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

(16)

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

(17)

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

(18)

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 ones

Systè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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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é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 !

(24)

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

(25)

Les principes de l

Les principes de l’ ’extraction d extraction d ’ ’ architecture architecture

Les guides de l

Les guides de lextractionextraction

(26)

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

(27)

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

(28)

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

(29)

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 dun 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

(30)

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éé

(31)

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éété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/dinstallation/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

(32)

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 dun 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.

(33)

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,

(34)

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éétés des s des composants

composants et celles des et celles des contours

contours

3.3. Choix de mChoix de étriquestriques pour la pour la mesure des propri

mesure des propriétéés des s des contours

contours

(35)

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.

(36)

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

(37)

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é

(38)

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

(39)

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étés mesurables sur le contour.s mesurables sur le contour.

„„ DifficultDifficultéé avec la mesure des interfaces fournisavec la mesure des interfaces fournis

(40)

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é

(41)

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

(42)

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

(43)

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.

(44)

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.

(45)

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 mfinition des méétriques pour la mesure des propritriques pour la mesure des propriéété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.

(46)

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

(47)

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 lautonomieautonomie

‰‰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

(48)

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

(49)

Analyse et r

Analyse et r é é ification de la qualit ification de la qualit é é architecturale architecturale

„„ QualitQualitéé ddun 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 :

(50)

Analyse et r

Analyse et r é é ification de la qualit ification de la qualit é é architecturale architecturale

„„ CaractéCaractéristiques des composantsristiques des composants

(51)

Analyse et r

Analyse et r é é ification de la qualit ification de la qualit é é architecturale architecturale

„„ CaractCaractééristiques de lristiques de larchitecturearchitecture

(52)

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éé

(53)

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

(54)

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

(55)

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

(56)

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

(57)

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 )

2

Intra Complexite = ⋅

( ) 10

4

RelS s = Complexite

une architecture

( ) ( ) ( ) ( )

⎜ ⎞

⎛ ⋅

⎟⎟ ⋅

⎜⎜ ⎞

⎛ ⋅

= ∑ ∑

= s C

k

k

s s

k k

C n deg RelS

Rel

1

0

max

(58)

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

(59)

Processus de partitionnement

Processus de partitionnement

(60)

Processus de partitionnement

Processus de partitionnement

(61)

Processus de partitionnement

Processus de partitionnement

(62)

Processus de partitionnement

Processus de partitionnement

(63)

Processus de partitionnement

Processus de partitionnement

(64)

Processus de partitionnement

Processus de partitionnement

(65)

Processus de partitionnement

Processus de partitionnement

(66)

Processus de partitionnement

Processus de partitionnement

(67)

Processus de partitionnement

Processus de partitionnement

(68)

Processus de partitionnement

Processus de partitionnement

(69)

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

(70)

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

(71)

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

(72)

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

(73)

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

(74)

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

(75)

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

(76)

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

(77)

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

(78)

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.

(79)

Quelques cas d’étude

‰ ss

Derrière les rideaux d’ArgoUML !

(80)

Quelques cas d’étude

(81)

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.

(82)

Quelques cas d’étude

(83)

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

(84)

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.

(85)

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

(86)

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

(87)

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

Figure

Updating...

References

Related subjects :