14 resultados para Maintenance Engineering
em Université de Montréal, Canada
Resumo:
La tâche de maintenance ainsi que la compréhension des programmes orientés objet (OO) deviennent de plus en plus coûteuses. L’analyse des liens de dépendance peut être une solution pour faciliter ces tâches d’ingénierie. Cependant, analyser les liens de dépendance est une tâche à la fois importante et difficile. Nous proposons une approche pour l'étude des liens de dépendance internes pour des programmes OO, dans un cadre probabiliste, où les entrées du programme peuvent être modélisées comme un vecteur aléatoire, ou comme une chaîne de Markov. Dans ce cadre, les métriques de couplage deviennent des variables aléatoires dont les distributions de probabilité peuvent être étudiées en utilisant les techniques de simulation Monte-Carlo. Les distributions obtenues constituent un point d’entrée pour comprendre les liens de dépendance internes entre les éléments du programme, ainsi que leur comportement général. Ce travail est valable dans le cas où les valeurs prises par la métrique dépendent des entrées du programme et que ces entrées ne sont pas fixées à priori. Nous illustrons notre approche par deux études de cas.
Resumo:
Un système, décrit avec un grand nombre d'éléments fortement interdépendants, est complexe, difficile à comprendre et à maintenir. Ainsi, une application orientée objet est souvent complexe, car elle contient des centaines de classes avec de nombreuses dépendances plus ou moins explicites. Une même application, utilisant le paradigme composant, contiendrait un plus petit nombre d'éléments, faiblement couplés entre eux et avec des interdépendances clairement définies. Ceci est dû au fait que le paradigme composant fournit une bonne représentation de haut niveau des systèmes complexes. Ainsi, ce paradigme peut être utilisé comme "espace de projection" des systèmes orientés objets. Une telle projection peut faciliter l'étape de compréhension d'un système, un pré-requis nécessaire avant toute activité de maintenance et/ou d'évolution. De plus, il est possible d'utiliser cette représentation, comme un modèle pour effectuer une restructuration complète d'une application orientée objets opérationnelle vers une application équivalente à base de composants tout aussi opérationnelle. Ainsi, La nouvelle application bénéficiant ainsi, de toutes les bonnes propriétés associées au paradigme composants. L'objectif de ma thèse est de proposer une méthode semi-automatique pour identifier une architecture à base de composants dans une application orientée objets. Cette architecture doit, non seulement aider à la compréhension de l'application originale, mais aussi simplifier la projection de cette dernière dans un modèle concret de composant. L'identification d'une architecture à base de composants est réalisée en trois grandes étapes: i) obtention des données nécessaires au processus d'identification. Elles correspondent aux dépendances entre les classes et sont obtenues avec une analyse dynamique de l'application cible. ii) identification des composants. Trois méthodes ont été explorées. La première utilise un treillis de Galois, la seconde deux méta-heuristiques et la dernière une méta-heuristique multi-objective. iii) identification de l'architecture à base de composants de l'application cible. Cela est fait en identifiant les interfaces requises et fournis pour chaque composant. Afin de valider ce processus d'identification, ainsi que les différents choix faits durant son développement, j'ai réalisé différentes études de cas. Enfin, je montre la faisabilité de la projection de l'architecture à base de composants identifiée vers un modèle concret de composants.
Resumo:
La production biologique d'hydrogène (H2) représente une technologie possible pour la production à grande échelle durable de H2 nécessaire pour l'économie future de l'hydrogène. Cependant, l'obstacle majeur à l'élaboration d'un processus pratique a été la faiblesse des rendements qui sont obtenus, généralement autour de 25%, bien en sous des rendements pouvant être atteints pour la production de biocarburants à partir d'autres processus. L'objectif de cette thèse était de tenter d'améliorer la production d'H2 par la manipulation physiologique et le génie métabolique. Une hypothèse qui a été étudiée était que la production d'H2 pourrait être améliorée et rendue plus économique en utilisant un procédé de fermentation microaérobie sombre car cela pourrait fournir la puissance supplémentaire nécessaire pour une conversion plus complète du substrat et donc une production plus grande d'H2 sans l'aide de l'énergie lumineuse. Les concentrations optimales d’O2 pour la production de H2 microaérobie ont été examinées ainsi que l'impact des sources de carbone et d'azote sur le processus. La recherche présentée ici a démontré la capacité de Rhodobacter capsulatus JP91 hup- (un mutant déficient d’absorption-hydrogénase) de produire de l'H2 sous condition microaérobie sombre avec une limitation dans des quantités d’O2 et d'azote fixé. D'autres travaux devraient être entrepris pour augmenter les rendements d'H2 en utilisant cette technologie. De plus, un processus de photofermentation a été créé pour améliorer le rendement d’H2 à partir du glucose à l'aide de R. capsulatus JP91 hup- soit en mode non renouvelé (batch) et / ou en conditions de culture en continu. Certains défis techniques ont été surmontés en mettant en place des conditions adéquates de fonctionnement pour un rendement accru d'H2. Un rendement maximal de 3,3 mols de H2/ mol de glucose a été trouvé pour les cultures en batch tandis que pour les cultures en continu, il était de 10,3 mols H2/ mol de glucose, beaucoup plus élevé que celui rapporté antérieurement et proche de la valeur maximale théorique de 12 mols H2/ mol de glucose. Dans les cultures en batch l'efficacité maximale de conversion d’énergie lumineuse était de 0,7% alors qu'elle était de 1,34% dans les cultures en continu avec un rendement de conversion maximum de la valeur de chauffage du glucose de 91,14%. Diverses autres approches pour l'augmentation des rendements des processus de photofermentation sont proposées. Les résultats globaux indiquent qu'un processus photofermentatif efficace de production d'H2 à partir du glucose en une seule étape avec des cultures en continu dans des photobioréacteurs pourrait être développé ce qui serait un processus beaucoup plus prometteur que les processus en deux étapes ou avec les co-cultures étudiés antérieurément. En outre, l'expression hétérologue d’hydrogenase a été utilisée comme une stratégie d'ingénierie métabolique afin d'améliorer la production d'H2 par fermentation. La capacité d'exprimer une hydrogénase d'une espèce avec des gènes de maturation d'une autre espèce a été examinée. Une stratégie a démontré que la protéine HydA orpheline de R. rubrum est fonctionnelle et active lorsque co-exprimée chez Escherichia coli avec HydE, HydF et HydG provenant d'organisme différent. La co-expression des gènes [FeFe]-hydrogénase structurels et de maturation dans des micro-organismes qui n'ont pas une [FeFe]-hydrogénase indigène peut entraîner le succès dans l'assemblage et la biosynthèse d'hydrogénase active. Toutefois, d'autres facteurs peuvent être nécessaires pour obtenir des rendements considérablement augmentés en protéines ainsi que l'activité spécifique des hydrogénases recombinantes. Une autre stratégie a consisté à surexprimer une [FeFe]-hydrogénase très active dans une souche hôte de E. coli. L'expression d'une hydrogénase qui peut interagir directement avec le NADPH est souhaitable car cela, plutôt que de la ferrédoxine réduite, est naturellement produit par le métabolisme. Toutefois, la maturation de ce type d'hydrogénase chez E. coli n'a pas été rapportée auparavant. L'opéron hnd (hndA, B, C, D) de Desulfovibrio fructosovorans code pour une [FeFe]-hydrogénase NADP-dépendante, a été exprimé dans différentes souches d’E. coli avec les gènes de maturation hydE, hydF et hydG de Clostridium acetobutylicum. L'activité de l'hydrogénase a été détectée in vitro, donc une NADP-dépendante [FeFe]-hydrogénase multimérique active a été exprimée avec succès chez E. coli pour la première fois. Les recherches futures pourraient conduire à l'expression de cette enzyme chez les souches de E. coli qui produisent plus de NADPH, ouvrant la voie à une augmentation des rendements d'hydrogène via la voie des pentoses phosphates.
Resumo:
Les changements sont faits de façon continue dans le code source des logiciels pour prendre en compte les besoins des clients et corriger les fautes. Les changements continus peuvent conduire aux défauts de code et de conception. Les défauts de conception sont des mauvaises solutions à des problèmes récurrents de conception ou d’implémentation, généralement dans le développement orienté objet. Au cours des activités de compréhension et de changement et en raison du temps d’accès au marché, du manque de compréhension, et de leur expérience, les développeurs ne peuvent pas toujours suivre les normes de conception et les techniques de codage comme les patrons de conception. Par conséquent, ils introduisent des défauts de conception dans leurs systèmes. Dans la littérature, plusieurs auteurs ont fait valoir que les défauts de conception rendent les systèmes orientés objet plus difficile à comprendre, plus sujets aux fautes, et plus difficiles à changer que les systèmes sans les défauts de conception. Pourtant, seulement quelques-uns de ces auteurs ont fait une étude empirique sur l’impact des défauts de conception sur la compréhension et aucun d’entre eux n’a étudié l’impact des défauts de conception sur l’effort des développeurs pour corriger les fautes. Dans cette thèse, nous proposons trois principales contributions. La première contribution est une étude empirique pour apporter des preuves de l’impact des défauts de conception sur la compréhension et le changement. Nous concevons et effectuons deux expériences avec 59 sujets, afin d’évaluer l’impact de la composition de deux occurrences de Blob ou deux occurrences de spaghetti code sur la performance des développeurs effectuant des tâches de compréhension et de changement. Nous mesurons la performance des développeurs en utilisant: (1) l’indice de charge de travail de la NASA pour leurs efforts, (2) le temps qu’ils ont passé dans l’accomplissement de leurs tâches, et (3) les pourcentages de bonnes réponses. Les résultats des deux expériences ont montré que deux occurrences de Blob ou de spaghetti code sont un obstacle significatif pour la performance des développeurs lors de tâches de compréhension et de changement. Les résultats obtenus justifient les recherches antérieures sur la spécification et la détection des défauts de conception. Les équipes de développement de logiciels doivent mettre en garde les développeurs contre le nombre élevé d’occurrences de défauts de conception et recommander des refactorisations à chaque étape du processus de développement pour supprimer ces défauts de conception quand c’est possible. Dans la deuxième contribution, nous étudions la relation entre les défauts de conception et les fautes. Nous étudions l’impact de la présence des défauts de conception sur l’effort nécessaire pour corriger les fautes. Nous mesurons l’effort pour corriger les fautes à l’aide de trois indicateurs: (1) la durée de la période de correction, (2) le nombre de champs et méthodes touchés par la correction des fautes et (3) l’entropie des corrections de fautes dans le code-source. Nous menons une étude empirique avec 12 défauts de conception détectés dans 54 versions de quatre systèmes: ArgoUML, Eclipse, Mylyn, et Rhino. Nos résultats ont montré que la durée de la période de correction est plus longue pour les fautes impliquant des classes avec des défauts de conception. En outre, la correction des fautes dans les classes avec des défauts de conception fait changer plus de fichiers, plus les champs et des méthodes. Nous avons également observé que, après la correction d’une faute, le nombre d’occurrences de défauts de conception dans les classes impliquées dans la correction de la faute diminue. Comprendre l’impact des défauts de conception sur l’effort des développeurs pour corriger les fautes est important afin d’aider les équipes de développement pour mieux évaluer et prévoir l’impact de leurs décisions de conception et donc canaliser leurs efforts pour améliorer la qualité de leurs systèmes. Les équipes de développement doivent contrôler et supprimer les défauts de conception de leurs systèmes car ils sont susceptibles d’augmenter les efforts de changement. La troisième contribution concerne la détection des défauts de conception. Pendant les activités de maintenance, il est important de disposer d’un outil capable de détecter les défauts de conception de façon incrémentale et itérative. Ce processus de détection incrémentale et itérative pourrait réduire les coûts, les efforts et les ressources en permettant aux praticiens d’identifier et de prendre en compte les occurrences de défauts de conception comme ils les trouvent lors de la compréhension et des changements. Les chercheurs ont proposé des approches pour détecter les occurrences de défauts de conception, mais ces approches ont actuellement quatre limites: (1) elles nécessitent une connaissance approfondie des défauts de conception, (2) elles ont une précision et un rappel limités, (3) elles ne sont pas itératives et incrémentales et (4) elles ne peuvent pas être appliquées sur des sous-ensembles de systèmes. Pour surmonter ces limitations, nous introduisons SMURF, une nouvelle approche pour détecter les défauts de conception, basé sur une technique d’apprentissage automatique — machines à vecteur de support — et prenant en compte les retours des praticiens. Grâce à une étude empirique portant sur trois systèmes et quatre défauts de conception, nous avons montré que la précision et le rappel de SMURF sont supérieurs à ceux de DETEX et BDTEX lors de la détection des occurrences de défauts de conception. Nous avons également montré que SMURF peut être appliqué à la fois dans les configurations intra-système et inter-système. Enfin, nous avons montré que la précision et le rappel de SMURF sont améliorés quand on prend en compte les retours des praticiens.
Resumo:
Les défis conjoints du changement climatique d'origine anthropique et la diminution des réserves de combustibles fossiles sont le moteur de recherche intense pour des sources d'énergie alternatives. Une avenue attrayante est d'utiliser un processus biologique pour produire un biocarburant. Parmi les différentes options en matière de biocarburants, le bio-hydrogène gazeux est un futur vecteur énergétique attrayant en raison de son efficacité potentiellement plus élevé de conversion de puissance utilisable, il est faible en génération inexistante de polluants et de haute densité d'énergie. Cependant, les faibles rendements et taux de production ont été les principaux obstacles à l'application pratique des technologies de bio-hydrogène. Des recherches intensives sur bio-hydrogène sont en cours, et dans les dernières années, plusieurs nouvelles approches ont été proposées et étudiées pour dépasser ces inconvénients. À cette fin, l'objectif principal de cette thèse était d'améliorer le rendement en hydrogène moléculaire avec un accent particulier sur l'ingénierie métabolique et l’utilisation de bioprocédés à variables indépendantes. Une de nos hypothèses était que la production d’hydrogène pourrait être améliorée et rendue plus économiquement viable par ingénierie métabolique de souches d’Escherichia coli producteurs d’hydrogène en utilisant le glucose ainsi que diverses autres sources de carbone, y compris les pentoses. Les effets du pH, de la température et de sources de carbone ont été étudiés. La production maximale d'hydrogène a été obtenue à partir de glucose, à un pH initial de 6.5 et une température de 35°C. Les études de cinétiques de croissance ont montré que la μmax était 0.0495 h-1 avec un Ks de 0.0274 g L-1 lorsque le glucose est la seule source de carbone en milieu minimal M9. .Parmi les nombreux sucres et les dérivés de sucres testés, les rendements les plus élevés d'hydrogène sont avec du fructose, sorbitol et D-glucose; 1.27, 1.46 et 1.51 mol H2 mol-1 de substrat, respectivement. En outre, pour obtenir les interactions entre les variables importantes et pour atteindre une production maximale d'hydrogène, un design 3K factoriel complet Box-Behnken et la méthodologie de réponse de surface (RSM) ont été employées pour la conception expérimentale et l'analyse de la souche d'Escherichia coli DJT135. Le rendement en hydrogène molaire maximale de 1.69 mol H2 mol-1 de glucose a été obtenu dans les conditions optimales de 75 mM de glucose, à 35°C et un pH de 6.5. Ainsi, la RSM avec un design Box-Behken était un outil statistique utile pour atteindre des rendements plus élevés d'hydrogène molaires par des organismes modifiés génétiquement. Ensuite, l'expression hétérologue de l’hydrogénases soluble [Ni-Fe] de Ralstonia eutropha H16 (l'hydrogénase SH) a tenté de démontrer que la mise en place d'une voie capable de dériver l'hydrogène à partir de NADH pourrait surpasser le rendement stoechiométrique en hydrogène.. L’expression a été démontrée par des tests in vitro de l'activité enzymatique. Par ailleurs, l'expression de SH a restaurée la croissance en anaérobie de souches mutantes pour adhE, normalement inhibées en raison de l'incapacité de réoxyder le NADH. La mesure de la production d'hydrogène in vivo a montré que plusieurs souches modifiées métaboliquement sont capables d'utiliser l'hydrogénase SH pour dériver deux moles d’hydrogène par mole de glucose consommé, proche du maximum théorique. Une autre stratégie a montré que le glycérol brut pourrait être converti en hydrogène par photofermentation utilisant Rhodopseudomonas palustris par photofermentation. Les effets de la source d'azote et de différentes concentrations de glycérol brut sur ce processus ont été évalués. À 20 mM de glycérol, 4 mM glutamate, 6.1 mol hydrogène / mole de glycérol brut ont été obtenus dans des conditions optimales, un rendement de 87% de la théorie, et significativement plus élevés que ce qui a été réalisé auparavant. En prolongement de cette étude, l'optimisation des paramètres a également été utilisée. Dans des conditions optimales, une intensité lumineuse de 175 W/m2, 30 mM glycérol et 4.5 mM de glutamate, 6.69 mol hydrogène / mole de glycérol brut ont été obtenus, soit un rendement de 96% de la valeur théorique. La détermination de l'activité de la nitrogénase et ses niveaux d'expression ont montré qu'il y avait relativement peu de variation de la quantité de nitrogénase avec le changement des variables alors que l'activité de la nitrogénase variait considérablement, avec une activité maximale (228 nmol de C2H4/ml/min) au point central optimal. Dans la dernière section, la production d'hydrogène à partir du glucose via la photofermentation en une seule étape a été examinée avec la bactérie photosynthétique Rhodobacter capsulatus JP91 (hup-). La méthodologie de surface de réponse avec Box-Behnken a été utilisée pour optimiser les variables expérimentales de façon indépendante, soit la concentration de glucose, la concentration du glutamate et l'intensité lumineuse, ainsi que d'examiner leurs effets interactifs pour la maximisation du rendement en hydrogène moléculaire. Dans des conditions optimales, avec une intensité lumineuse de 175 W/m2, 35 mM de glucose, et 4.5 mM de glutamate,, un rendement maximal d'hydrogène de 5.5 (± 0.15) mol hydrogène /mol glucose, et un maximum d'activité de la nitrogénase de 246 (± 3.5) nmol C2H4/ml/min ont été obtenus. L'analyse densitométrique de l'expression de la protéine-Fe nitrogenase dans les différentes conditions a montré une variation significative de l'expression protéique avec un maximum au point central optimisé. Même dans des conditions optimales pour la production d'hydrogène, une fraction significative de la protéine Fe a été trouvée dans l'état ADP-ribosylée, suggérant que d'autres améliorations des rendements pourraient être possibles. À cette fin, un mutant amtB dérivé de Rhodobacter capsulatus JP91 (hup-) a été créé en utilisant le vecteur de suicide pSUP202. Les résultats expérimentaux préliminaires montrent que la souche nouvellement conçue métaboliquement, R. capsulatus DG9, produit 8.2 (± 0.06) mol hydrogène / mole de glucose dans des conditions optimales de cultures discontinues (intensité lumineuse, 175 W/m2, 35 mM de glucose et 4.5 mM glutamate). Le statut d'ADP-ribosylation de la nitrogénase-protéine Fe a été obtenu par Western Blot pour la souche R. capsulatus DG9. En bref, la production d'hydrogène est limitée par une barrière métabolique. La principale barrière métabolique est due au manque d'outils moléculaires possibles pour atteindre ou dépasser le rendement stochiométrique en bio-hydrogène depuis les dernières décennies en utilisant les microbes. À cette fin, une nouvelle approche d’ingénierie métabolique semble très prometteuse pour surmonter cette contrainte vers l'industrialisation et s'assurer de la faisabilité de la technologie de la production d'hydrogène. Dans la présente étude, il a été démontré que l’ingénierie métabolique de bactéries anaérobiques facultatives (Escherichia coli) et de bactéries anaérobiques photosynthétiques (Rhodobacter capsulatus et Rhodopseudomonas palustris) peuvent produire de l'hydrogène en tant que produit majeur à travers le mode de fermentation par redirection métabolique vers la production d'énergie potentielle. D'autre part, la méthodologie de surface de réponse utilisée dans cette étude représente un outil potentiel pour optimiser la production d'hydrogène en générant des informations appropriées concernant la corrélation entre les variables et des producteurs de bio-de hydrogène modifiés par ingénierie métabolique. Ainsi, un outil d'optimisation des paramètres représente une nouvelle avenue pour faire un pont entre le laboratoire et la production d'hydrogène à l'échelle industrielle en fournissant un modèle mathématique potentiel pour intensifier la production de bio-hydrogène. Par conséquent, il a été clairement mis en évidence dans ce projet que l'effort combiné de l'ingénierie métabolique et la méthodologie de surface de réponse peut rendre la technologie de production de bio-hydrogène potentiellement possible vers sa commercialisation dans un avenir rapproché.
Resumo:
La démence d'Alzheimer est une maladie neurodégénérative caractérisée par une perte progressive et irreversible des fonctions cognitives et des compétences intellectuelles. La maladie d’Alzheimer se présente sous deux formes: la forme familiale ou précoce (EOAD) qui représente 5% des cas et elle est liée à des mutations génétiques affectant le métabolisme des peptides amyloïde; et la forme tardive ou sporadique (LOAD) qui représente 95% des cas mais son étiologie est encore mal définie. Cependant, le vieillissement reste le principal facteur de risque pour développer LOAD. Les changements épigénétiques impliquant des modifications des histones jouent un rôle crucial dans les maladies neurodégénératives et le vieillissement lié à l'âge. Des données récentes ont décrit LOAD comme un désordre de l'épigénome et ont associé ce trouble à l'instabilité génomique. Les protéines Polycomb sont des modificateurs épigénétiques qui induisent le remodelage de la chromatine et la répression des gènes à l'hétérochromatine facultative. Nous rapportons que les souris hétérozygotes pour une protéine Polycomb développent avec l'âge un trouble neurologique ressemblant à LOAD caractérisé par l’altération des fonctions cognitives, la phosphorylation de la protéine tau, l'accumulation des peptides amyloïde, et le dysfonctionnement synaptique. Ce phénotype pathologique est précédé par la décondensation de l’hétérochromatine neuronale et l'activation de la réponse aux dommages à l'ADN. Parallèlement, une réduction d’expression de polycomb, malformations de l'hétérochromatine neuronale, et l'accumulation de dommages à l'ADN étaient également présents dans les cerveaux de patients LOAD. Remarquablement, les dommages de l'ADN ne sont pas distribués de façon aléatoire sur le génome mais sont enrichis au niveau des séquences répétitives. Les conclusions présentées dans cette thèse ont identifié des modifications épigénétiques spécifiques qui conduisent à une instabilité génomique aberrante menant à la formation de LOAD. Ces résultats vont aider au développement de nouveaux traitements qui peuvent potentiellement ralentir la neurodégénérescence.
Resumo:
La fibrillation auriculaire (FA) est la forme d’arythmie la plus fréquente et représente environ un tiers des hospitalisations attribuables aux troubles du rythme cardiaque. Les mécanismes d’initiation et de maintenance de la FA sont complexes et multiples. Parmi ceux-ci, une contribution du système nerveux autonome a été identifiée mais son rôle exact demeure mal compris. Ce travail cible l’étude de la modulation induite par l’acétylcholine (ACh) sur l’initiation et le maintien de la FA, en utilisant un modèle de tissu bidimensionnel. La propagation de l’influx électrique sur ce tissu est décrite par une équation réaction-diffusion non-linéaire résolue sur un maillage rectangulaire avec une méthode de différences finies, et la cinétique d'ACh suit une évolution temporelle prédéfinie qui correspond à l’activation du système parasympathique. Plus de 4400 simulations ont été réalisées sur la base de 4 épisodes d’arythmies, 5 tailles différentes de région modulée par l’ACh, 10 concentrations d’ACh et 22 constantes de temps de libération et de dégradation d’ACh. La complexité de la dynamique des réentrées est décrite en fonction de la constante de temps qui représente le taux de variation d’ACh. Les résultats obtenus suggèrent que la stimulation vagale peut mener soit à une dynamique plus complexe des réentrées soit à l’arrêt de la FA en fonction des quatre paramètres étudiés. Ils démontrent qu’une décharge vagale rapide, représentée par des constantes de temps faibles combinées à une quantité suffisamment grande d’ACh, a une forte probabilité de briser la réentrée primaire provoquant une activité fibrillatoire. Cette activité est caractérisée par la création de plusieurs ondelettes à partir d’un rotor primaire sous l’effet de l’hétérogénéité du gradient de repolarisation causé par l’activité autonomique.
Resumo:
Les logiciels sont en constante évolution, nécessitant une maintenance et un développement continus. Ils subissent des changements tout au long de leur vie, que ce soit pendant l'ajout de nouvelles fonctionnalités ou la correction de bogues. Lorsque les logiciels évoluent, leurs architectures ont tendance à se dégrader et deviennent moins adaptables aux nouvelles spécifications des utilisateurs. En effet, les architectures de ces logiciels deviennent plus complexes et plus difficiles à maintenir à cause des nombreuses dépendances entre les artefacts. Par conséquent, les développeurs doivent comprendre les dépendances entre les artefacts des logiciels pour prendre des mesures proactives qui facilitent les futurs changements et ralentissent la dégradation des architectures des logiciels. D'une part, le maintien d'un logiciel sans la compréhension des les dépendances entre ses artefacts peut conduire à l'introduction de défauts. D'autre part, lorsque les développeurs manquent de connaissances sur l'impact de leurs activités de maintenance, ils peuvent introduire des défauts de conception, qui ont un impact négatif sur l'évolution du logiciel. Ainsi, les développeurs ont besoin de mécanismes pour comprendre comment le changement d'un artefact impacte le reste du logiciel. Dans cette thèse, nous proposons trois contributions principales : La spécification de deux nouveaux patrons de changement et leurs utilisations pour fournir aux développeurs des informations utiles concernant les dépendances de co-changement. La spécification de la relation entre les patrons d'évolutions des artefacts et les fautes. La découverte de la relation entre les dépendances des anti-patrons et la prédisposition des différentes composantes d'un logiciel aux fautes.
Resumo:
La maintenance du logiciel est une phase très importante du cycle de vie de celui-ci. Après les phases de développement et de déploiement, c’est celle qui dure le plus longtemps et qui accapare la majorité des coûts de l'industrie. Ces coûts sont dus en grande partie à la difficulté d’effectuer des changements dans le logiciel ainsi que de contenir les effets de ces changements. Dans cette perspective, de nombreux travaux ont ciblé l’analyse/prédiction de l’impact des changements sur les logiciels. Les approches existantes nécessitent de nombreuses informations en entrée qui sont difficiles à obtenir. Dans ce mémoire, nous utilisons une approche probabiliste. Des classificateurs bayésiens sont entraînés avec des données historiques sur les changements. Ils considèrent les relations entre les éléments (entrées) et les dépendances entre changements historiques (sorties). Plus spécifiquement, un changement complexe est divisé en des changements élémentaires. Pour chaque type de changement élémentaire, nous créons un classificateur bayésien. Pour prédire l’impact d’un changement complexe décomposé en changements élémentaires, les décisions individuelles des classificateurs sont combinées selon diverses stratégies. Notre hypothèse de travail est que notre approche peut être utilisée selon deux scénarios. Dans le premier scénario, les données d’apprentissage sont extraites des anciennes versions du logiciel sur lequel nous voulons analyser l’impact de changements. Dans le second scénario, les données d’apprentissage proviennent d’autres logiciels. Ce second scénario est intéressant, car il permet d’appliquer notre approche à des logiciels qui ne disposent pas d’historiques de changements. Nous avons réussi à prédire correctement les impacts des changements élémentaires. Les résultats ont montré que l’utilisation des classificateurs conceptuels donne les meilleurs résultats. Pour ce qui est de la prédiction des changements complexes, les méthodes de combinaison "Voting" et OR sont préférables pour prédire l’impact quand le nombre de changements à analyser est grand. En revanche, quand ce nombre est limité, l’utilisation de la méthode Noisy-Or ou de sa version modifiée est recommandée.
Resumo:
Le surenroulement de l’ADN est important pour tous les processus cellulaires qui requièrent la séparation des brins de l’ADN. Il est régulé par l’activité enzymatique des topoisomérases. La gyrase (gyrA et gyrB) utilise l’ATP pour introduire des supertours négatifs dans l’ADN, alors que la topoisomérase I (topA) et la topoisomérase IV (parC et parE) les éliminent. Les cellules déficientes pour la topoisomérase I sont viables si elles ont des mutations compensatoires dans un des gènes codant pour une sous-unité de la gyrase. Ces mutations réduisent le niveau de surenroulement négatif du chromosome et permettent la croissance bactérienne. Une de ces mutations engendre la production d'une gyrase thermosensible. L’activité de surenroulement de la gyrase en absence de la topoisomérase I cause l’accumulation d’ADN hyper-surenroulé négativement à cause de la formation de R-loops. La surproduction de la RNase HI (rnhA), une enzyme qui dégrade l’ARN des R-loops, permet de prévenir l’accumulation d’un excès de surenroulement négatif. En absence de RNase HI, des R-loops sont aussi formés et peuvent être utilisés pour déclencher la réplication de l’ADN indépendamment du système normal oriC/DnaA, un phénomène connu sous le nom de « constitutive stable DNA replication » (cSDR). Pour mieux comprendre le lien entre la formation de R-loops et l’excès de surenroulement négatif, nous avons construit un mutant conditionnel topA rnhA gyrB(Ts) avec l’expression inductible de la RNase HI à partir d’un plasmide. Nous avons trouvé que l’ADN des cellules de ce mutant était excessivement relâché au lieu d'être hypersurenroulé négativement en conditions de pénurie de RNase HI. La relaxation de l’ADN a été montrée comme étant indépendante de l'activité de la topoisomérase IV. Les cellules du triple mutant topA rnhA gyrB(Ts) forment de très longs filaments remplis d’ADN, montrant ainsi un défaut de ségrégation des chromosomes. La surproduction de la topoisomérase III (topB), une enzyme qui peut effectuer la décaténation de l’ADN, a corrigé les problèmes de ségrégation sans toutefois restaurer le niveau de surenroulement de l’ADN. Nous avons constaté que des extraits protéiques du mutant topA rnhA gyrB(Ts) pouvaient inhiber l’activité de surenroulement négatif de la gyrase dans des extraits d’une souche sauvage, suggérant ainsi que la pénurie de RNase HI avait déclenché une réponse cellulaire d’inhibition de cette activité de la gyrase. De plus, des expériences in vivo et in vitro ont montré qu’en absence de RNase HI, l’activité ATP-dépendante de surenroulement négatif de la gyrase était inhibée, alors que l’activité ATP-indépendante de cette enzyme demeurait intacte. Des suppresseurs extragéniques du défaut de croissance du triple mutant topA rnhA gyrB(Ts) qui corrigent également les problèmes de surenroulement et de ségrégation des chromosomes ont pour la plupart été cartographiés dans des gènes impliqués dans la réplication de l’ADN, le métabolisme des R-loops, ou la formation de fimbriae. La deuxième partie de ce projet avait pour but de comprendre les rôles des topoisomérases de type IA (topoisomérase I et topoisomérase III) dans la ségrégation et la stabilité du génome de Escherichia coli. Pour étudier ces rôles, nous avons utilisé des approches de génétique combinées avec la cytométrie en flux, l’analyse de type Western blot et la microscopie. Nous avons constaté que le phénotype Par- et les défauts de ségrégation des chromosomes d’un mutant gyrB(Ts) avaient été corrigés en inactivant topA, mais uniquement en présence du gène topB. En outre, nous avons démontré que la surproduction de la topoisomérase III pouvait corriger le phénotype Par- du mutant gyrB(Ts) sans toutefois corriger les défauts de croissance de ce dernier. La surproduction de topoisomérase IV, enzyme responsable de la décaténation des chromosomes chez E. coli, ne pouvait pas remplacer la topoisomérase III. Nos résultats suggèrent que les topoisomérases de type IA jouent un rôle important dans la ségrégation des chromosomes lorsque la gyrase est inefficace. Pour étudier le rôle des topoisomérases de type IA dans la stabilité du génome, la troisième partie du projet, nous avons utilisé des approches génétiques combinées avec des tests de « spot » et la microscopie. Nous avons constaté que les cellules déficientes en topoisomérase I avaient des défauts de ségrégation de chromosomes et de croissance liés à un excès de surenroulement négatif, et que ces défauts pouvaient être corrigés en inactivant recQ, recA ou par la surproduction de la topoisomérase III. Le suppresseur extragénique oriC15::aph isolé dans la première partie du projet pouvait également corriger ces problèmes. Les cellules déficientes en topoisomérases de type IA formaient des très longs filaments remplis d’ADN d’apparence diffuse et réparti inégalement dans la cellule. Ces phénotypes pouvaient être partiellement corrigés par la surproduction de la RNase HI ou en inactivant recA, ou encore par des suppresseurs isolés dans la première partie du projet et impliques dans le cSDR (dnaT18::aph et rne59::aph). Donc, dans E. coli, les topoisomérases de type IA jouent un rôle dans la stabilité du génome en inhibant la réplication inappropriée à partir de oriC et de R-loops, et en empêchant les défauts de ségrégation liés à la recombinaison RecA-dépendante, par leur action avec RecQ. Les travaux rapportés ici révèlent que la réplication inappropriée et dérégulée est une source majeure de l’instabilité génomique. Empêcher la réplication inappropriée permet la ségrégation des chromosomes et le maintien d’un génome stable. La RNase HI et les topoisomérases de type IA jouent un rôle majeur dans la prévention de la réplication inappropriée. La RNase HI réalise cette tâche en modulant l’activité de surenroulement ATP-dependante de la gyrase, et en empêchant la réplication à partir des R-loops. Les topoisomérases de type IA assurent le maintien de la stabilité du génome en empêchant la réplication inappropriée à partir de oriC et des R-loops et en agissant avec RecQ pour résoudre des intermédiaires de recombinaison RecA-dépendants afin de permettre la ségrégation des chromosomes.
Resumo:
Cette thèse a pour but d’améliorer l’automatisation dans l’ingénierie dirigée par les modèles (MDE pour Model Driven Engineering). MDE est un paradigme qui promet de réduire la complexité du logiciel par l’utilisation intensive de modèles et des transformations automatiques entre modèles (TM). D’une façon simplifiée, dans la vision du MDE, les spécialistes utilisent plusieurs modèles pour représenter un logiciel, et ils produisent le code source en transformant automatiquement ces modèles. Conséquemment, l’automatisation est un facteur clé et un principe fondateur de MDE. En plus des TM, d’autres activités ont besoin d’automatisation, e.g. la définition des langages de modélisation et la migration de logiciels. Dans ce contexte, la contribution principale de cette thèse est de proposer une approche générale pour améliorer l’automatisation du MDE. Notre approche est basée sur la recherche méta-heuristique guidée par les exemples. Nous appliquons cette approche sur deux problèmes importants de MDE, (1) la transformation des modèles et (2) la définition précise de langages de modélisation. Pour le premier problème, nous distinguons entre la transformation dans le contexte de la migration et les transformations générales entre modèles. Dans le cas de la migration, nous proposons une méthode de regroupement logiciel (Software Clustering) basée sur une méta-heuristique guidée par des exemples de regroupement. De la même façon, pour les transformations générales, nous apprenons des transformations entre modèles en utilisant un algorithme de programmation génétique qui s’inspire des exemples des transformations passées. Pour la définition précise de langages de modélisation, nous proposons une méthode basée sur une recherche méta-heuristique, qui dérive des règles de bonne formation pour les méta-modèles, avec l’objectif de bien discriminer entre modèles valides et invalides. Les études empiriques que nous avons menées, montrent que les approches proposées obtiennent des bons résultats tant quantitatifs que qualitatifs. Ceux-ci nous permettent de conclure que l’amélioration de l’automatisation du MDE en utilisant des méthodes de recherche méta-heuristique et des exemples peut contribuer à l’adoption plus large de MDE dans l’industrie à là venir.
Resumo:
Les systèmes logiciels sont devenus de plus en plus répondus et importants dans notre société. Ainsi, il y a un besoin constant de logiciels de haute qualité. Pour améliorer la qualité de logiciels, l’une des techniques les plus utilisées est le refactoring qui sert à améliorer la structure d'un programme tout en préservant son comportement externe. Le refactoring promet, s'il est appliqué convenablement, à améliorer la compréhensibilité, la maintenabilité et l'extensibilité du logiciel tout en améliorant la productivité des programmeurs. En général, le refactoring pourra s’appliquer au niveau de spécification, conception ou code. Cette thèse porte sur l'automatisation de processus de recommandation de refactoring, au niveau code, s’appliquant en deux étapes principales: 1) la détection des fragments de code qui devraient être améliorés (e.g., les défauts de conception), et 2) l'identification des solutions de refactoring à appliquer. Pour la première étape, nous traduisons des régularités qui peuvent être trouvés dans des exemples de défauts de conception. Nous utilisons un algorithme génétique pour générer automatiquement des règles de détection à partir des exemples de défauts. Pour la deuxième étape, nous introduisons une approche se basant sur une recherche heuristique. Le processus consiste à trouver la séquence optimale d'opérations de refactoring permettant d'améliorer la qualité du logiciel en minimisant le nombre de défauts tout en priorisant les instances les plus critiques. De plus, nous explorons d'autres objectifs à optimiser: le nombre de changements requis pour appliquer la solution de refactoring, la préservation de la sémantique, et la consistance avec l’historique de changements. Ainsi, réduire le nombre de changements permets de garder autant que possible avec la conception initiale. La préservation de la sémantique assure que le programme restructuré est sémantiquement cohérent. De plus, nous utilisons l'historique de changement pour suggérer de nouveaux refactorings dans des contextes similaires. En outre, nous introduisons une approche multi-objective pour améliorer les attributs de qualité du logiciel (la flexibilité, la maintenabilité, etc.), fixer les « mauvaises » pratiques de conception (défauts de conception), tout en introduisant les « bonnes » pratiques de conception (patrons de conception).
Resumo:
L’ingénierie dirigée par les modèles (IDM) est un paradigme d’ingénierie du logiciel bien établi, qui préconise l’utilisation de modèles comme artéfacts de premier ordre dans les activités de développement et de maintenance du logiciel. La manipulation de plusieurs modèles durant le cycle de vie du logiciel motive l’usage de transformations de modèles (TM) afin d’automatiser les opérations de génération et de mise à jour des modèles lorsque cela est possible. L’écriture de transformations de modèles demeure cependant une tâche ardue, qui requiert à la fois beaucoup de connaissances et d’efforts, remettant ainsi en question les avantages apportés par l’IDM. Afin de faire face à cette problématique, de nombreux travaux de recherche se sont intéressés à l’automatisation des TM. L’apprentissage de transformations de modèles par l’exemple (TMPE) constitue, à cet égard, une approche prometteuse. La TMPE a pour objectif d’apprendre des programmes de transformation de modèles à partir d’un ensemble de paires de modèles sources et cibles fournis en guise d’exemples. Dans ce travail, nous proposons un processus d’apprentissage de transformations de modèles par l’exemple. Ce dernier vise à apprendre des transformations de modèles complexes en s’attaquant à trois exigences constatées, à savoir, l’exploration du contexte dans le modèle source, la vérification de valeurs d’attributs sources et la dérivation d’attributs cibles complexes. Nous validons notre approche de manière expérimentale sur 7 cas de transformations de modèles. Trois des sept transformations apprises permettent d’obtenir des modèles cibles parfaits. De plus, une précision et un rappel supérieurs à 90% sont enregistrés au niveau des modèles cibles obtenus par les quatre transformations restantes.
Resumo:
Recent advances in tissue engineering and regenerative medicine have shown that controlling cells microenvironment during growth is a key element to the development of successful therapeutic system. To achieve such control, researchers have first proposed the use of polymeric scaffolds that were able to support cellular growth and, to a certain extent, favor cell organization and tissue structure. With nowadays availability of a large pool of stem cell lines, such approach has appeared to be rather limited since it does not offer the fine control of the cell micro-environment in space and time (4D). Therefore, researchers are currently focusing their efforts on developing strategies that include active compound delivery systems in order to add a fourth dimension to the design of 3D scaffolds. This review will focus on recent concepts and applications of 2D and 3D techniques that have been used to control the load and release of active compounds used to promote cell differentiation and proliferation in or out of a scaffold. We will first present recent advances in the design of 2D polymeric scaffolds and the different techniques that have been used to deposit molecular cues and cells in a controlled fashion. We will continue presenting the recent advances made in the design of 3D scaffolds based on hydrogels as well as polymeric fibers and we will finish by presenting some of the research avenues that are still to be explored.