A development process for building adaptative software architectures - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2017

A development process for building adaptative software architectures

Un processus de développement d'architectures logicielles adaptatives

Résumé

Adaptive software is a class of software which is able to modify its own internal structure and hence its behavior at runtime in response to changes in its operating environment. Adaptive software development has been an emerging research area of software engineering in the last decade. Many existing approaches use techniques issued from software product lines (SPLs) to develop adaptive software architectures. They propose tools, frameworks or languages to build adaptive software architectures but do not guide developers on the process of using them. Moreover, they suppose that all elements in the SPL specified are available in the architecture for adaptation. Therefore, the adaptive software architecture may embed unnecessary elements (components that will never be used) thus limiting the possible deployment targets. On the other hand, the components replacement at runtime remains a complex task since it must ensure the validity of the new version, in addition to preserving the correct completion of ongoing activities.To cope with these issues, this thesis proposes an adaptive software development process where tasks, roles, and associate artifacts are explicit. The process aims at specifying the necessary information for building adaptive software architectures. The result of such process is an adaptive software architecture that only contains necessary elements for adaptation. On the other hand, an adaptation mechanism is proposed based on transactions management for ensuring consistent dynamic adaptation. Such adaptation must guarantee the system state and ensure the correct completion of ongoing transactions. In particular, transactional dependencies are specified at design time in the variability model. Then, based on such dependencies, components in the architecture include the necessary mechanisms to manage transactions at runtime consistently.
Les logiciels adaptatifs sont une classe de logiciels qui peuvent modifier leur structure et comportement à l'exécution afin de s'adapter à des nouveaux contextes d'exécution. Le développement de logiciels adaptatifs a été un domaine de recherche très actif les dix dernières années. Plusieurs approches utilisent des techniques issues des lignes des produits afin de développer de tels logiciels. Ils proposent des outils, des frameworks, ou des langages pour construire des architectures logicielles adaptatives, mais ne guident pas les ingénieurs dans leur utilisation. De plus, ils supposent que tous les éléments spécifiés à la conception sont disponibles dans l'architecture pour l'adaptation, même s'ils ne seront jamais utilisés. Ces éléments inutiles peuvent être une cause de soucis lors du déploiement sur une cible dont l'espace mémoire est très contraint par exemple. Par ailleurs, le remplacement de composants à l'exécution reste une tâche complexe, elle doit assurer non seulement la validité de la nouvelle version, mais aussi préserver la terminaison correcte des transactions en cours. Pour faire face à ces problèmes, cette thèse propose un processus de développement de logiciels adaptatifs où les tâches, les rôles, et les artefacts associés sont explicites. En particulier, le processus vise la spécification d'informations nécessaires pour construire des architectures logicielles adaptatives. Le résultat d'un tel processus est une architecture logicielle adaptative qui contient seulement des éléments utiles pour l'adaptation. De plus, un mécanisme d'adaptation est proposé basé sur la gestion de transactions pour assurer une adaptation dynamique cohérente. Elle assure la terminaison correcte des transactions en cours. Nous proposons pour cela la notion de dépendance transactionnelle : dépendance entre des actions réalisées par des composants différents. Nous proposons la spécification de ces dépendances dans le modèle de variabilité, et de l'exploiter pour décider des fonctions de contrôle dans les composants de l'architecture, des fonctions qui assurent une adaptation cohérente à l'exécution.
Fichier principal
Vignette du fichier
2017IMTA0026_Huynh-Ngoc-Tho.pdf (2.53 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)
Loading...

Dates et versions

tel-01784869 , version 1 (03-05-2018)

Identifiants

  • HAL Id : tel-01784869 , version 1

Citer

Ngoc Tho Huynh. A development process for building adaptative software architectures. Software Engineering [cs.SE]. Ecole nationale supérieure Mines-Télécom Atlantique, 2017. English. ⟨NNT : 2017IMTA0026⟩. ⟨tel-01784869⟩
395 Consultations
425 Téléchargements

Partager

Gmail Facebook X LinkedIn More