Thèse de Doctorat Ahmad K HEIR Mémoire présenté en vuede l’obtention du gradedeDocteurdel’Université de Nantes DocteurdeL’Université Libanaise sous le labelde l’Université de NantesAngers Le Mans Écoledoctorale:Sciencesettechnologiesdel’information,etmathématiques Discipline:Informatiqueetapplications,sectionCNU27 Unitéderecherche:Laboratoired’informatiquedeNantes-Atlantique(LINA) Soutenuele13Novembre2014 MoVAL : Modélisation multipoints de vue /multi-granularités d’architectures logicielles JURY Président: M.Bilal CHEBARO,Professeur,UniversitéLibanaise Rapporteurs: Mme Parisa GHODOUS,Professeur,UniversitédeLyonI M.Henri BASSON,Professeur,Universitédulittoralcoted’opale Examinateurs: M.Bilal CHEBARO,Professeur,UniversitéLibanaise M.JeanClaudeROYER,Professeur,EcoledesminesdeNantes Directeursdethèse: M.Mourad OUSSALAH,Professeur,UniversitédeNantes M.Kifah TOUT,Professeur,UniversitéLibanaise Co-directricedethèse: Mme Hala NAJA,Maîtredeconf.,UniversitéLibanaise Remerciements 3 1 Introduction Le travail de cette thèse se situe dans le domaine des architectures logicielles, et porte sur la modélisa- tion d’une architecture logicielle multipointsde vue et multi-granularités pour des systèmes informatiques évolutifs. 1.1 Qu’est ce qu’une architecture? Letermearchitectureest issud’unmotgrec quisignifie"chef" ou"principe". Depuis longtemps, la notion d’architecture est liée à la construction des édifices et des bâtiments com- plexes comme les pyramides pharaoniques, l’église La Sagrada Familia, et beaucoup d’autres monuments architecturaux que nous avons connus dans notre histoire. Le dictionnaire Larousse [Larousse, 1995] dé- finit l’architecture d’un édifice comme étant sa finalité : "La finalité de tout édifice est la réalisation d’un lieu qui isole ses occupants tout en ménageant des échanges (locomoteurs, thermiques, optiques) avec le milieuextérieur.Letypedel’édifice(parti,matériaux,structure,éventueldécor)estconditionnéparlesres- sourcestechniquesdechaquecivilisationconfrontéesauxconditionsphysiquesdulieuetparleprogramme (destination)qui luiestassigné". 1.2 Les architectures logicielles en informatique Depuislafindesannées1960s,lesinformaticiensontempruntéetadaptélanotiond’architecturepourl’ap- pliquer dans la construction des systèmes informatiques; ainsi on a vu apparaître la notion d’architecture logicielle[Naurand Randell, 1969]. Une architecture logicielle en informatique décrit les différents éléments constituant un ou plusieurs sys- tèmes informatiques, leur organisation, interrelation, et interactions. L’architecture d’un système informa- tiqueestl’ensembledecesconceptsetpropriétésfondamentauxdanssonenvironnement,incarnésdansses éléments,relations,et les principesdesaconceptionet sonévolution. 1.3 Les apports des vues en architecture logicielle Tout système informatique, qu’il soit simple ou difficile à comprendre, est constitué de plusieurs éléments liés ensemble. Il peut avoir un petit nombre d’éléments, ou peut-être un seul élément, comme il peut avoir unedizaineouunecentained’éléments;cetteliaisonpeutêtre trivialeou complexe. 5 En plus, toutsystèmeinformatiqueest constituédeplusieurséléments quiinteragissentl’un avecl’autreet avec l’environnement externe au système d’une manière déterministe ou prévisible. Le comportement de ces élémentspeut être simpleet facile à comprendre, et il peut êtrede mêmetrès compliquépourqu’ilsoit compris entièrement par une seule personne. Ce comportement reste toujours existant pour tout système informatique, qu’il soit documenté ou non. En d’autres termes, tout système informatique dispose d’une architecture, qu’ellesoitdocumentéedans unedescriptiond’architectureou non. L’introductiondesvuesenarchitecturelogicielleacontribuéàaméliorerenplusleprocessusdedescription d’unetellearchitecturedeplusieursmanières [Rozanski andWoods, 2011]: • la séparation des préoccupations : la séparation des multiples aspects d’un système en plusieurs mo- dèles différents aide durant le processus d’analyse, de conception, etc., en permettant de se focaliser dans chaqueétapeàun aspectparticulier; • la communication avec les groupes d’intervenants : la communication entre des groupes d’interve- nantsavecdespréoccupationsdiversesestundéfipourl’architecte.Lesapprochesbaséessurlesvues offrent lapossibilitéauxintervenantsdeconvergerassezrapidementversles descriptionsd’architec- turequiles intéressentrépondantàleurs préoccupations; • la gestion de la complexité : considérer simultanément dans un même modèle tous les aspects d’un systèmeinduitunecomplexitéqu’unêtrehumainnepeutpasgérer.Lefaitdedécomposerlemodèle en des modèlesselondes vuesdifférentes, réduitremarquablementlacomplexité. 1.4 Les limites des approches existantes Malgré les avantages apportés par les approches d’architecture logicielle multipoints de vue en termes de séparation des préoccupations des systèmes informatiques et de réduction de la complexité, ces dernières souffrentcependant encore deplusieurslimitations,comme: • la complexité inhérente au sein d’une vue. En effet, les préoccupations primitives de très haut ni- veau associées à une vue particulière d’une architecture logicielle ne peuvent jamais être traitées directement dans un seul modèle associé à un seul niveau d’abstraction, qui contient tous les détails nécessairespourmenerl’implémentation.Pourtant,onabesointoujoursdedévelopperplusieursmo- dèlesdansplusieursniveauxd’abstractionpourpouvoirrépondreeffectivementàces préoccupations primitives.Ainsi,laprésenced’unehiérarchieplated’unevuearchitecturaledanslaquellecoexistent des modèles de très haut niveau avec des modèles très proches de l’implémentation est toujours in- confortableet déroutantepourlesarchitectes logiciels; • les problèmes d’inconsistance qui peuvent avoir lieu entre les différentes vues de l’architecture. Ces problèmes d’inconsistance résultent du fait que les préoccupations du système informatique seront traitées séparément dans plusieurs vues de l’architecture logicielle, sans que les intervenants impli- qués dans la construction d’une vue donnée de cette architecture, seront impliqués dans la construc- tiondes autres vues; • l’absence d’un processus de définition de ces architectures logicielles qui soit complet et adaptable aveclesprocessusdedéveloppementlogiciels.Eneffet,latâchededéfinitiond’architectureslogi- cielles est une tâche vraiment lourde, critique et difficile. Pour cela, un architecte logiciel a toujours besoins de meilleures pratiques (mieux connues en anglais par best practices) rassemblées dans une méthodologie ou un processus de définition complet, afin qu’il soit capable de construire effective- ment, et dans une durée acceptable, une architecture logicielle appropriée répondant aux problèmes visés par le système informatique. Normalement, ce processus doit être adaptable avec les différents processusdedéveloppementquipeuventêtreadoptésdurantlaconstructiondusystèmeinformatique. 1.5 La contribution de la thèse Danscettethèse,nousproposonsunenouvelleapproched’architecturelogiciellemultipointsdevue,déno- tée MoVAL (Model, View, and AbstractionLevel based software architecture),qui est basée surle standard ISO/IEC/IEEE42010,intitulé"Systemsandsoftwareengineering-Architecturedescription"[ISO/IEC/IEEE, 2011]. Cette approcherépondaux limitesdes approches existantes,et elleest caractérisée parles pointssuivants: • MoVALest uneapproched’architecturelogiciellemultipointsdevue; • Elledéfinitpourchaquevueunehiérarchiedeniveauxd’abstraction; • Les niveaux d’abstraction d’une vue dans MoVAL sont de deux types : (1) les niveaux de réalisation d’unevueet (2)lesniveauxdedescriptionassociés àchaqueniveauderéalisation; • MoVAL définit différents types de liens architecturaux assurant la cohérence de l’architecture et la résolutiondesinconsistancesaffrontées; • Dansl’approcheMoVAL,unprocessusdedéfinitiond’architectureestprésentépourguiderlaconstruc- tiondes architectures logicielles. 1.6 Le plan de la thèse Ce mémoiredethèseestarticuléautourdetroisparties distinctes: • Lapremièrepartieintitulée"Étatdel’art" comportedeux chapitres: – le chapitre "Synthèse bibliographique" (Chapitre 2) présente une synthèse bibliographique à propos de l’application de la notion de vue/point de vue dans quatre domaines de l’informa- tique : (1) la spécification des besoins, (2) la modélisation des systèmes, (3) la programmation, finalementet surtouten (4)architecturelogicielle. – le chapitre"Analysecomparativeet limitations"(Chapitre 3) présente uneanalyse comparative entre les différentes approches d’architecture logicielle multipoints de vue afin de déterminer leursdéfaillances majeures etleurs limitations. • Ladeuxièmepartiedecettethèse,intitulée"MoVAL",présentenotrecontributiondansledomaineet comportetroischapitres : – le chapitre "MoVAL : Approche et concepts de base" (Chapitre 4) présente les motivations de notre approche, et définit ses éléments de base. Ensuite, plusieurs types de visualisation d’une architecturelogicielleetun cataloguedepointdevueserontproposés. – dans le chapitre "Formalisation de MoVAL" (Chapitre 5) nous formalisons les définitions pré- sentéesdanslechapitreprécédents afin d’assurerlacohérenceet lacomplétudedenotrepropo- sition. – le chapitre "MoVAL-ADP : le processus de définition d’architecture adapté à MoVAL" (Cha- pitre6)présenteunprocessusdedéfinitiond’architecturelogiciellespécifiqueàMoVAL,dénoté MoVAL-ADP,quiestconformeauprocessusunifié(UP)etdiviséenquatrephasesprincipales: laphaseInception, laphaseElaboration,laphaseConstructionet laphaseTransition. • La troisième partie de cette thèse intitulée "Expérimentations", se concentre dans son unique cha- pitre sur la validation pratique de l’approche. Ainsi, nous présentons dans le chapitre 7 le prototype d’implémentationdenotreoutil"MoVAL-Tool". Finalement,lechapitre8 conclutce mémoireet présentenos contributionsetnos perspectives. I État de l’art 9
Description: