Dalila Tamzalit, maître de conférences au sein de l’équipe NaoMod, soutiendra son Habilitation à diriger des recherches intitulée « Vers une Ingénierie de l’Évolution Logicielle : une approche architecturale – Verrous, contributions et perspectives » / « Towards Engineering of Software Evolution : an architectural approach – issues, contributions and perspectives »
vendredi 26 juin 2020 à 14h en visio.
Le manuscrit est consultable sur le cloud.
Jury :
– Président du jury : Claude Jard
– Rapporteurs : Yamine Aït-Ameur (Professeur, IRIT / INPT-ENSEEIHT Toulouse), Marianne Huchard (Professeure, LIRMM / Université Montpellier), Houari Sahraoui (Professeur, Dpt d’informatique et recherche opérationnelle / Université de Montréal)
– Membres : Mireille Blay-Fornarino (Professeure, I3S / Université de Nice), Xavier Blanc (Professeur, LaBRI / Université de Bordeaux), Mourad Oussalah (Professeur, LS2N / Université de Nantes), Yves Caseau (Group chief information officer / Michelein Clermont-Ferrand)
Résumé :
Les travaux de recherche, présentés dans le cadre de mon projet d’Habilitation à diriger des Recherches, s’inscrivent dans la problématique générale de l’évolution des Architectures Logicielles. Il est à souligner que le terme évolution s’entend au sens large : migration, adaptation, refactoring, rétro-conception, réingénierie, restructuration, maintenance, traçabilité… Chacun de ces travaux est présenté selon son contexte, les verrous scientifiques qu’il traite, les principales contributions ainsi que sa validation et sa valorisation au travers de publications. Il est à noter qu’ils suivent un même fil conducteur, celui de prôner une Ingénierie de l’évolution des architectures logicielles, en termes de fondements, modèles et méthodologies. Ainsi, mes travaux de recherche s’articulent autour de la spécification et la formalisation : (i) des architectures logicielles évolutives et (ii) des architectures de l’évolution logicielle. La principale ligne directrice est d’identifier et de cerner les caractéristiques intrinsèques de systèmes logiciels afin de spécifier et gérer leur évolution indépendamment de leur fonctionnement. Pour y arriver, le principe clé adopté est celui de la séparation stricte des préoccupations de l’évolution des autres préoccupations. Il est couplé à une approche par abstraction (métamodèles et méthodologies). En couplant ce principe et cette approche, il a été ainsi possible de réifier différentes préoccupations liées à l’évolution sous forme de concepts statiques (modèles) et dynamiques (processus) à un haut niveau d’abstraction, permettant une représentativité aux niveaux stratégiques de décision, tout en offrant une assistance aux architectes. Ces travaux ont concerné différents paradigmes d’architectures logicielles : depuis l’objet durant ma thèse, aux composants en passant par la SOA et en considérant les styles architecturaux SaaS mutualisé et micro-services. Ces travaux ont été menés au travers d’encadrement et de co-encadrement doctoral de 9 thèses et 11 Master2, ainsi que des collaborations avec des confrères français, européens, internationaux et avec des entreprises.
Les travaux présentés ne sont qu’une partie de mes travaux de recherche, ceux portant sur et pour les problématiques d’évolution des architectures logicielles à base de composants et autour de la notion de service (SOA), notamment les styles architecturaux SaaS mutualisé et micro-services. La raison est double : ces travaux constituent l’essentiel de mes activités de recherche et mes projets futurs s’inscrivent dans leur continuité. De 2002 à 2010, ils ont porté sur les architectures logicielles à base de composants au travers de leurs langages de description, les ADLs (Architecture Description Languages). Les principales contributions ont été de proposer (1) un modèle générique pour l’évolution structurelle d’architectures logicielles, (2) un modèle de capitalisation de savoir-faire d’évolutions architecturales, (3) une approche d’extraction d’architectures logicielles à partir de systèmes objets patrimoniaux ainsi que (4) des patrons d’évolution architecturale. De 2010 à aujourd’hui, mes travaux ont porté sur les architectures logicielles autour de la notion de service (SOA, SaaS, micro-services). Les principales contributions ont été de proposer (5) un modèle d’externalisation de la gestion de la variabilité d’applications SaaS mutualisées, (6) une approche SOA de restructuration et d’adaptation de workflows d’entreprise ainsi que (7) la migration de systèmes monolithes vers des architectures micro-services.
Enfin, différentes perspectives explicitent mon projet scientifique intitulé « vers une industrialisation de l’évolution logicielle » afin de prendre en compte le contexte des nouvelles générations d’architectures logicielles. L’objectif est de tendre vers des systèmes logiciels durables dans le temps, en augmentant leur espérance de vie, idéalement de manière continue. J’attache également à ce projet des pistes qui me paraissent d’importance : la formation universitaire et les collaborations avec le monde socio-économique.
Mots-clés : Architectures Logicielles, Évolution Logicielle, Migration, Adaptation, Réification et Réutilisation des connaissances d’évolution, Styles et Patrons d’Évolution, Architectures Orientées Services (SOA), SaaS mutualisé, Variabilité, Externalisation, Micro-Services.
Abstract:
The research work, presented in the context of my Habilitation à diriger des Recherches (HdR), is part of the general field of Software Architectures evolution. The term evolution is considered in a broad sense: migration, adaptation, refactoring, reverse engineering, reengineering, restructuring, maintenance, traceability… Each of these research works is presented according to its context, the addressed scientific issues, the main contributions as well as its validation and valorisation through publications. They follow the same common idea: advocating an Engineering of software architecture evolution, in terms of foundations, models and methodologies. Thus, my research work is based on the specification and formalisation of: (i) evolving software architectures and (ii) software architectures for evolution. The main guideline is to identify and define the intrinsic features of software systems in order to specify and manage their evolution independently of their operation. To achieve this, the key principle adopted is the strict separation of evolution concerns from other concerns. It is coupled with an abstraction approach (metamodels and methodologies). By coupling this principle and this approach, it has thus been possible to reify different concerns related to evolution in the form of static (models) and dynamic (processes) concepts at a high level of abstraction, allowing representativeness at strategic levels of decision making, while offering assistance to architects. This work has concerned different paradigms of software architectures: from the object during my PhD, to components, then through SOA and considering the SaaS multitenant and micro-services architectural styles. These research works were made possible and have been carried out through the supervision and co-supervision of 9 PhD and 11 Master2 students, as well as collaborations with French, European and international colleagues and also with companies.
The presented works are only a part of my research work, those dealing with and for the evolution of component-based software architectures and around the notion of service (SOA), in particular the SaaS multitenant and micro-services architectural styles. The reason is twofold: these works represent the main part of my research activities and my future projects are in line with them. From 2002 to 2010, they focused on component-based software architectures through their description languages, the ADLs (Architecture Description Languages). The main contributions have been to propose (1) a generic model for the structural evolution of software architectures, (2) a model for capitalising know-how of architectural evolutions, (3) an approach for extracting software architectures from legacy object systems and (4) architectural evolution patterns. From 2010 to today, my work has focused on software architectures around the notion of service (SOA, SaaS, micro-services). The main contributions have been to propose (5) an outsourcing model for managing the variability of SaaS multitenant applications, (6) an SOA approach for restructuring and adapting business workflows and (7) the migration of monolithic systems to micro-services architectures.
Finally, different perspectives outline my scientific project entitled « Towards an industrialization of software evolution » in order to take into account the context of new generations of software architectures. The objective is to move towards software systems that are sustainable over time, by increasing their life expectancy, ideally in a continuous manner. I also attach importance to this project in terms of university training and collaboration with the socio-economic world.
Keywords: Software Architectures, Software Evolution, Migration, Adaptation, Reification and Reuse of Evolution Knowledge, Evolution Styles and Patterns, Service Oriented Architectures (SOA), Shared SaaS, Variability, Outsourcing, Micro-Services.