Javascript must be enabled to continue!
A formal approach to automate the evolution management in component-based software development processes
View through CrossRef
Une approche formelle pour automatiser la gestion de l'évolutiondans les processus de développement à base de composants
Gérer l'évolution des logiciels est une tâche complexe mais nécessaire. Tout au long de son cycle de vie, un logiciel doit subir des changements, pour corriger des erreurs, améliorer ses performances et sa qualité, étendre ses fonctionnalités ou s’adapter à son environnement. A défaut d’évoluer, un logiciel se dégrade, devient obsolète ou inadapté et est remplacé. Cependant, sans évaluation de leurs impacts et contrôle de leur réalisation, les changements peuvent être sources d’incohérences et de dysfonctionnements, donc générateurs de dégradations du logiciel. Cette thèse propose une approche améliorant la gestion de l'évolution des logiciels dans les processus de développement orientés composants. Adoptant une démarche d’ingénierie dirigée par les modèles (IDM), cette approche s’appuie sur Dedal, un langage de description d’architecture (ADL) séparant explicitement trois niveaux d’abstraction dans la définition des architectures logicielles. Ces trois niveaux (spécification, configuration et assemblage) correspondent aux trois étapes principales du développement d’une architecture (conception, implémentation, déploiement) et gardent la trace des décisions architecturales prises au fil du développement. Ces informations sont un support efficace à la gestion de l’évolution : elles permettent de déterminer le niveau d’un changement, d’analyser son impact et de planifier sa réalisation afin d’éviter la survenue d’incohérences dans la définition de l’architecture (érosion, dérive, etc.). Une gestion rigoureuse de l’évolution nécessite la formalisation, d’une part, des relations intra-niveau liant les composants au sein des modèles correspondant aux différents niveaux de définition d’une architecture et, d’autre part, des relations inter-niveaux liant les modèles décrivant une même architecture aux différents niveaux d’abstraction. Ces relations permettent la définition des propriétés de consistance et de cohérence servant à vérifier la correction d’une architecture. Le processus d’évolution est ainsi décomposé en trois phases : initier le changement de la définition de l’architecture à un niveau d’abstraction donné ; vérifier et rétablir la consistance de cette définition en induisant des changements complémentaires ; vérifier et rétablir la cohérence globale de la définition de l’architecture en propageant éventuellement les changements aux autres niveaux d’abstraction.Ces relations et propriétés sont décrites en B, un langage de modélisation formel basé sur la théorie des ensembles et la logique du premier ordre. Elles s’appliquent à des architectures définies avec un adl formel écrit en B dont le méta-modèle, aligné avec celui de Dedal, permet d’outiller la transformation de modèles entre les deux langages. Cette intégration permet de proposer un environnement de développement conjuguant les avantages des approches IDM et formelle : la conception d’architectures avec l’outillage de Dedal (modeleur graphique); la vérification des architectures et la gestion de l’évolution avec l’outillage de B (animateur, model-checker, solver). Nous proposons en particulier d’utiliser un solver B pour calculer automatiquement des plans d’évolution conformes à notre proposition et avons ainsi défini l’ensemble des règles d’évolution décrivant les opérations de modification applicables à la définition d’une architecture. Le solver recherche alors automatiquement une séquence de modifications permettant la réalisation d’un changement cible tout en préservant les propriétés de consistance et de cohérence de l’architecture. Nous avons validé la faisabilité de cette gestion de l’évolution par une implémentation mêlant optimisation et génie logiciel (search-based software engineering), intégrant notre propre solver pourvu d’heuristiques spécifiques qui améliorent significativement les temps de calcul, pour expérimenter trois scénarios d’évolution permettant de tester la réalisation d’un changement à chacun des trois niveaux d’abstraction.
Title: A formal approach to automate the evolution management in component-based software development processes
Description:
Une approche formelle pour automatiser la gestion de l'évolutiondans les processus de développement à base de composants
Gérer l'évolution des logiciels est une tâche complexe mais nécessaire.
Tout au long de son cycle de vie, un logiciel doit subir des changements, pour corriger des erreurs, améliorer ses performances et sa qualité, étendre ses fonctionnalités ou s’adapter à son environnement.
A défaut d’évoluer, un logiciel se dégrade, devient obsolète ou inadapté et est remplacé.
Cependant, sans évaluation de leurs impacts et contrôle de leur réalisation, les changements peuvent être sources d’incohérences et de dysfonctionnements, donc générateurs de dégradations du logiciel.
Cette thèse propose une approche améliorant la gestion de l'évolution des logiciels dans les processus de développement orientés composants.
Adoptant une démarche d’ingénierie dirigée par les modèles (IDM), cette approche s’appuie sur Dedal, un langage de description d’architecture (ADL) séparant explicitement trois niveaux d’abstraction dans la définition des architectures logicielles.
Ces trois niveaux (spécification, configuration et assemblage) correspondent aux trois étapes principales du développement d’une architecture (conception, implémentation, déploiement) et gardent la trace des décisions architecturales prises au fil du développement.
Ces informations sont un support efficace à la gestion de l’évolution : elles permettent de déterminer le niveau d’un changement, d’analyser son impact et de planifier sa réalisation afin d’éviter la survenue d’incohérences dans la définition de l’architecture (érosion, dérive, etc.
).
Une gestion rigoureuse de l’évolution nécessite la formalisation, d’une part, des relations intra-niveau liant les composants au sein des modèles correspondant aux différents niveaux de définition d’une architecture et, d’autre part, des relations inter-niveaux liant les modèles décrivant une même architecture aux différents niveaux d’abstraction.
Ces relations permettent la définition des propriétés de consistance et de cohérence servant à vérifier la correction d’une architecture.
Le processus d’évolution est ainsi décomposé en trois phases : initier le changement de la définition de l’architecture à un niveau d’abstraction donné ; vérifier et rétablir la consistance de cette définition en induisant des changements complémentaires ; vérifier et rétablir la cohérence globale de la définition de l’architecture en propageant éventuellement les changements aux autres niveaux d’abstraction.
Ces relations et propriétés sont décrites en B, un langage de modélisation formel basé sur la théorie des ensembles et la logique du premier ordre.
Elles s’appliquent à des architectures définies avec un adl formel écrit en B dont le méta-modèle, aligné avec celui de Dedal, permet d’outiller la transformation de modèles entre les deux langages.
Cette intégration permet de proposer un environnement de développement conjuguant les avantages des approches IDM et formelle : la conception d’architectures avec l’outillage de Dedal (modeleur graphique); la vérification des architectures et la gestion de l’évolution avec l’outillage de B (animateur, model-checker, solver).
Nous proposons en particulier d’utiliser un solver B pour calculer automatiquement des plans d’évolution conformes à notre proposition et avons ainsi défini l’ensemble des règles d’évolution décrivant les opérations de modification applicables à la définition d’une architecture.
Le solver recherche alors automatiquement une séquence de modifications permettant la réalisation d’un changement cible tout en préservant les propriétés de consistance et de cohérence de l’architecture.
Nous avons validé la faisabilité de cette gestion de l’évolution par une implémentation mêlant optimisation et génie logiciel (search-based software engineering), intégrant notre propre solver pourvu d’heuristiques spécifiques qui améliorent significativement les temps de calcul, pour expérimenter trois scénarios d’évolution permettant de tester la réalisation d’un changement à chacun des trois niveaux d’abstraction.
Related Results
Generative AI for Enterprise Software Engineering: Current Applications, Challenges, and Future Research Directions
Generative AI for Enterprise Software Engineering: Current Applications, Challenges, and Future Research Directions
Generative Artificial Intelligence (GenAI) and Large Language Models (LLMs) are revolutionizing
<br>
enterprise software engineering, meaning there is intelligent automation ...
Cidade educativa e movimentos culturais: um ensaio da educação não formal no ensino superior (p.221-239)
Cidade educativa e movimentos culturais: um ensaio da educação não formal no ensino superior (p.221-239)
Este artigo tem como propósito apontar maneiras de pensar e praticar a educação não formal em um curso de graduação em Pedagogia e colaborar para a formação do futuro profissional ...
Woningcorporaties en Vastgoedontwikkeling
Woningcorporaties en Vastgoedontwikkeling
This summary highlights the findings of the PhD-thesis ‘Woningcorporaties en Vastgoedontwikkeling: Fit for Use’ (‘Housing associations and Real Estate Development: Fit for Use?’). ...
A Literature Survey on Software Component Selection in Component-Based Software Engineering
A Literature Survey on Software Component Selection in Component-Based Software Engineering
This study presents a literature survey on software component selection within component-based software engineering, a field that has significantly transformed the construction of ...
Component‐Based Systems
Component‐Based Systems
AbstractHuman‐engineered physical devices such as cars and appliances and computers, as well as naturally occurring physical objects such as forests and galaxies and nerve bundles,...
RECOGNIZING LEAN SIX SIGMA SOFTWARE PROJECT MANAGER BY FUZZY METHODOLOGY IN SOFTWARE INDUSTRY
RECOGNIZING LEAN SIX SIGMA SOFTWARE PROJECT MANAGER BY FUZZY METHODOLOGY IN SOFTWARE INDUSTRY
The main objective of this research is to design a structure for Identifying Lean Six Sigma Software Manager among software professionals by Fuzzy Sets. Researchers investigated th...
A framework for software safety in safety-critical systems
A framework for software safety in safety-critical systems
Software for safety-critical systems must deal with the hazards identified by safety analysis in order to make the system safe, risk-free, and fail-safe. Because human lives may be...
Enhancing Non-Formal Learning Certificate Classification with Text Augmentation: A Comparison of Character, Token, and Semantic Approaches
Enhancing Non-Formal Learning Certificate Classification with Text Augmentation: A Comparison of Character, Token, and Semantic Approaches
Aim/Purpose: The purpose of this paper is to address the gap in the recognition of prior learning (RPL) by automating the classification of non-formal learning certificates using d...

