36 resultados para Code Comprehension
em Universit
Resumo:
Les antipatrons sont de “mauvaises” solutions à des problèmes récurrents de conception logicielle. Leur apparition est soit due à de mauvais choix lors de la phase de conception soit à des altérations et des changements continus durant l’implantation des programmes. Dans la littérature, il est généralement admis que les antipatrons rendent la compréhension des programmes plus difficile. Cependant, peu d’études empiriques ont été menées pour vérifier l’impact des antipatrons sur la compréhension. Dans le cadre de ce travail de maîtrise, nous avons conçu et mené trois expériences, avec 24 sujets chacune, dans le but de recueillir des données sur la performance des sujets lors de tâches de compréhension et d’évaluer l’impact de l’existence de deux antipatrons, Blob et Spaghetti Code, et de leurs combinaisons sur la compréhension des programmes. Nous avons mesuré les performances des sujets en terme : (1) du TLX (NASA task load index) pour l’éffort ; (2) du temps consacré à l’exécution des tâches ; et, (3) de leurs pourcentages de réponses correctes. Les données recueillies montrent que la présence d’un antipatron ne diminue pas sensiblement la performance des sujets alors que la combinaison de deux antipatrons les entrave de façon significative. Nous concluons que les développeurs peuvent faire face à un seul antipatron, alors que la combinaison de plusieurs antipatrons devrait être évitée, éventuellement par le biais de détection et de réusinage.
Resumo:
Nous proposons une approche basée sur la formulation interactive des requêtes. Notre approche sert à faciliter des tâches d’analyse et de compréhension du code source. Dans cette approche, l’analyste utilise un ensemble de filtres de base (linguistique, structurel, quantitatif, et filtre d’interactivité) pour définir des requêtes complexes. Ces requêtes sont construites à l’aide d’un processus interactif et itératif, où des filtres de base sont choisis et exécutés, et leurs résultats sont visualisés, changés et combinés en utilisant des opérateurs prédéfinis. Nous avons évalués notre approche par l’implantation des récentes contributions en détection de défauts de conception ainsi que la localisation de fonctionnalités dans le code. Nos résultats montrent que, en plus d’être générique, notre approche aide à la mise en œuvre des solutions existantes implémentées par des outils automatiques.
Resumo:
Les logiciels sont de plus en plus complexes et leur développement est souvent fait par des équipes dispersées et changeantes. Par ailleurs, de nos jours, la majorité des logiciels sont recyclés au lieu d’être développés à partir de zéro. La tâche de compréhension, inhérente aux tâches de maintenance, consiste à analyser plusieurs dimensions du logiciel en parallèle. La dimension temps intervient à deux niveaux dans le logiciel : il change durant son évolution et durant son exécution. Ces changements prennent un sens particulier quand ils sont analysés avec d’autres dimensions du logiciel. L’analyse de données multidimensionnelles est un problème difficile à résoudre. Cependant, certaines méthodes permettent de contourner cette difficulté. Ainsi, les approches semi-automatiques, comme la visualisation du logiciel, permettent à l’usager d’intervenir durant l’analyse pour explorer et guider la recherche d’informations. Dans une première étape de la thèse, nous appliquons des techniques de visualisation pour mieux comprendre la dynamique des logiciels pendant l’évolution et l’exécution. Les changements dans le temps sont représentés par des heat maps. Ainsi, nous utilisons la même représentation graphique pour visualiser les changements pendant l’évolution et ceux pendant l’exécution. Une autre catégorie d’approches, qui permettent de comprendre certains aspects dynamiques du logiciel, concerne l’utilisation d’heuristiques. Dans une seconde étape de la thèse, nous nous intéressons à l’identification des phases pendant l’évolution ou pendant l’exécution en utilisant la même approche. Dans ce contexte, la prémisse est qu’il existe une cohérence inhérente dans les évènements, qui permet d’isoler des sous-ensembles comme des phases. Cette hypothèse de cohérence est ensuite définie spécifiquement pour les évènements de changements de code (évolution) ou de changements d’état (exécution). L’objectif de la thèse est d’étudier l’unification de ces deux dimensions du temps que sont l’évolution et l’exécution. Ceci s’inscrit dans notre volonté de rapprocher les deux domaines de recherche qui s’intéressent à une même catégorie de problèmes, mais selon deux perspectives différentes.
Resumo:
La traduction du nouveau Code civil néerlandais en anglais et en français représentait un grand défi en raison du caractère systématique et fondateur d’un code, du recours à une terminologie et à une organisation nouvelles et de la longueur des articles. Dans un premier temps, le Code a été traduit selon une terminologie juridique anglaise strictement civiliste, tant en anglais qu’en français, et a été publié sous un format trilingue. Toutefois, sous la pression des praticiens, lesquels recherchaient une traduction correspondant mieux aux attentes de lecteurs anglophones habitués à la terminologie de la common law, une formule a été élaborée pour produire une version anglaise compréhensible pour les deux familles juridiques, au besoin hors de tout contexte et sans recourir à des notes. Une telle formule mérite considération lorsqu’il s’agira de produire d’autres traductions de textes civilistes en anglais.
Resumo:
Article publié avec l'accord de la Revue Les Cahiers de Droit (accessible sur http://www.fd.ulaval.ca/cahiers/)
Resumo:
Un résumé en anglais est également disponible.
Resumo:
Un résumé en anglais est également disposnible.
Resumo:
Un résumé en anglais est également disponible.
Resumo:
La vie en société s’organise autour de systèmes structurants : politique, économique, juridique, religieux, etc. En démocratie, le droit a pour mission essentielle d’assurer la paix, la stabilité et la sécurité ; pour ce faire, il tend à rendre toute chose prévisible, en normalisant les comportements, en uniformisant les règles. Ainsi, les rapports privés s’incarneront dans la fixité et la linéarité autour d’une figure relationnelle unique, le duo. La mouvance sociale, l’effervescence économique semblent faire fi de ce moule trop contraignant. Les acteurs s’inscrivent dans la pluralité et tissent des rapports densément enchevêtrés. Selon la théorie juridique classique, le droit doit alors adopter une stratégie de simplification : fragmenter les situations, circonscrire des espaces clos autour de la cellule nucléaire d’origine, en chasser ceux qu’il perçoit comme des parasites. La tactique consiste à se donner une structure binaire, à opposer par exemple les parties aux tiers. L’auteure soutient que la seule présence des tiers, identifiés juridiquement à des étrangers, constitue la marque indélébile du bouillonnement communicationnel. Que le droit refuse d’en rendre compte expressément dévoile l’artificialité de sa construction.