12 resultados para Compilers (Computer programs) -- Design

em Universit


Relevância:

100.00% 100.00%

Publicador:

Resumo:

La maladie des artères périphériques (MAP) se manifeste par une réduction (sténose) de la lumière de l’artère des membres inférieurs. Elle est causée par l’athérosclérose, une accumulation de cellules spumeuses, de graisse, de calcium et de débris cellulaires dans la paroi artérielle, généralement dans les bifurcations et les ramifications. Par ailleurs, la MAP peut être causée par d`autres facteurs associés comme l’inflammation, une malformation anatomique et dans de rares cas, au niveau des artères iliaques et fémorales, par la dysplasie fibromusculaire. L’imagerie ultrasonore est le premier moyen de diagnostic de la MAP. La littérature clinique rapporte qu’au niveau de l’artère fémorale, l’écho-Doppler montre une sensibilité de 80 à 98 % et une spécificité de 89 à 99 % à détecter une sténose supérieure à 50 %. Cependant, l’écho-Doppler ne permet pas une cartographie de l’ensemble des artères des membres inférieurs. D’autre part, la reconstruction 3D à partir des images échographiques 2D des artères atteintes de la MAP est fortement opérateur dépendant à cause de la grande variabilité des mesures pendant l’examen par les cliniciens. Pour planifier une intervention chirurgicale, les cliniciens utilisent la tomodensitométrie (CTA), l’angiographie par résonance magnétique (MRA) et l’angiographie par soustraction numérique (DSA). Il est vrai que ces modalités sont très performantes. La CTA montre une grande précision dans la détection et l’évaluation des sténoses supérieures à 50 % avec une sensibilité de 92 à 97 % et une spécificité entre 93 et 97 %. Par contre, elle est ionisante (rayon x) et invasive à cause du produit de contraste, qui peut causer des néphropathies. La MRA avec injection de contraste (CE MRA) est maintenant la plus utilisée. Elle offre une sensibilité de 92 à 99.5 % et une spécificité entre 64 et 99 %. Cependant, elle sous-estime les sténoses et peut aussi causer une néphropathie dans de rares cas. De plus les patients avec stents, implants métalliques ou bien claustrophobes sont exclus de ce type d`examen. La DSA est très performante mais s`avère invasive et ionisante. Aujourd’hui, l’imagerie ultrasonore (3D US) s’est généralisée surtout en obstétrique et échocardiographie. En angiographie il est possible de calculer le volume de la plaque grâce à l’imagerie ultrasonore 3D, ce qui permet un suivi de l’évolution de la plaque athéromateuse au niveau des vaisseaux. L’imagerie intravasculaire ultrasonore (IVUS) est une technique qui mesure ce volume. Cependant, elle est invasive, dispendieuse et risquée. Des études in vivo ont montré qu’avec l’imagerie 3D-US on est capable de quantifier la plaque au niveau de la carotide et de caractériser la géométrie 3D de l'anastomose dans les artères périphériques. Par contre, ces systèmes ne fonctionnent que sur de courtes distances. Par conséquent, ils ne sont pas adaptés pour l’examen de l’artère fémorale, à cause de sa longueur et de sa forme tortueuse. L’intérêt pour la robotique médicale date des années 70. Depuis, plusieurs robots médicaux ont été proposés pour la chirurgie, la thérapie et le diagnostic. Dans le cas du diagnostic artériel, seuls deux prototypes sont proposés, mais non commercialisés. Hippocrate est le premier robot de type maitre/esclave conçu pour des examens des petits segments d’artères (carotide). Il est composé d’un bras à 6 degrés de liberté (ddl) suspendu au-dessus du patient sur un socle rigide. À partir de ce prototype, un contrôleur automatisant les déplacements du robot par rétroaction des images échographiques a été conçu et testé sur des fantômes. Le deuxième est le robot de la Colombie Britannique conçu pour les examens à distance de la carotide. Le mouvement de la sonde est asservi par rétroaction des images US. Les travaux publiés avec les deux robots se limitent à la carotide. Afin d’examiner un long segment d’artère, un système robotique US a été conçu dans notre laboratoire. Le système possède deux modes de fonctionnement, le mode teach/replay (voir annexe 3) et le mode commande libre par l’utilisateur. Dans ce dernier mode, l’utilisateur peut implémenter des programmes personnalisés comme ceux utilisés dans ce projet afin de contrôler les mouvements du robot. Le but de ce projet est de démontrer les performances de ce système robotique dans des conditions proches au contexte clinique avec le mode commande libre par l’utilisateur. Deux objectifs étaient visés: (1) évaluer in vitro le suivi automatique et la reconstruction 3D en temps réel d’une artère en utilisant trois fantômes ayant des géométries réalistes. (2) évaluer in vivo la capacité de ce système d'imagerie robotique pour la cartographie 3D en temps réel d'une artère fémorale normale. Pour le premier objectif, la reconstruction 3D US a été comparée avec les fichiers CAD (computer-aided-design) des fantômes. De plus, pour le troisième fantôme, la reconstruction 3D US a été comparée avec sa reconstruction CTA, considéré comme examen de référence pour évaluer la MAP. Cinq chapitres composent ce mémoire. Dans le premier chapitre, la MAP sera expliquée, puis dans les deuxième et troisième chapitres, l’imagerie 3D ultrasonore et la robotique médicale seront développées. Le quatrième chapitre sera consacré à la présentation d’un article intitulé " A robotic ultrasound scanner for automatic vessel tracking and three-dimensional reconstruction of B-mode images" qui résume les résultats obtenus dans ce projet de maîtrise. Une discussion générale conclura ce mémoire. L’article intitulé " A 3D ultrasound imaging robotic system to detect and quantify lower limb arterial stenoses: in vivo feasibility " de Marie-Ange Janvier et al dans l’annexe 3, permettra également au lecteur de mieux comprendre notre système robotisé. Ma contribution dans cet article était l’acquisition des images mode B, la reconstruction 3D et l’analyse des résultats pour le patient sain.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Une étude récente auprès de 302 mathématiciens canadiens révèle un écart intriguant : tandis que 43% des sondés utilisent la programmation informatique dans leur recherche, seulement 18% indiquent qu'ils emploient cette technologie dans leur enseignement (Buteau et coll., 2014). La première donnée reflète le potentiel énorme qu'a la programmation pour faire et apprendre des mathématiques. La deuxième donnée a inspiré ce mémoire : pourquoi existe-t-il un tel écart ? Pour répondre à cette question, nous avons mené une étude exploratoire qui cherche à mieux comprendre la place de la programmation dans la recherche et la formation en mathématiques au niveau universitaire. Des entrevues semi-dirigées ont été conduites avec 14 mathématiciens travaillant dans des domaines variés et à différentes universités à travers le pays. Notre analyse qualitative nous permet de décrire les façons dont ces mathématiciens construisent des programmes informatiques afin d'accomplir plusieurs tâches (p.e., simuler des phénomènes réels, faire des mathématiques « expérimentales », développer de nouveaux outils puissants). Elle nous permet également d'identifier des moments où les mathématiciens exposent leurs étudiants à certains éléments de ces pratiques en recherche. Nous notons toutefois que les étudiants sont rarement invités à concevoir et à écrire leurs propres programmes. Enfin, nos participants évoquent plusieurs contraintes institutionnelles : le curriculum, la culture départementale, les ressources humaines, les traditions en mathématiques, etc. Quelques-unes de ces contraintes, qui semblent limiter l'expérience mathématique des étudiants de premier cycle, pourraient être revues.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Aujourd’hui, nous savons qu’environ 75 à 80% des impacts environnementaux des produits sont déterminés lors de la conception. Le rôle du designer industriel est donc crucial pour arriver à une forme de développement plus viable. Cette recherche tente de cibler les champs de connaissances qui devraient faire partie de la formation des professionnels du développement de produits pour y intégrer les aspects environnementaux. Après une recension de la littérature en design industriel, en pédagogie et en environnement, l’étude de terrain a été conduite en deux temps. Selon des critères prédéfinis, des programmes universitaires « spécialisés » en environnement/développement durable, au Québec, ainsi que des formations en éco-conception, offerts en France, ont été analysés. L’étude de terrain a été complétée par un entretien en profondeur semi-dirigé avec un consultant, qui aide des entreprises québécoises à intégrer l’environnement en développement de produits. L’analyse des informations recueillies met en évidence la nécessité de transformer rapidement les formations universitaires en conception de produits. Le nouveau cursus de design industriel devrait; 1. Intégrer les connaissances relatives aux impacts environnementaux; 2. Encourager le travail en équipes multidisciplinaires pour enrichir la collecte d’informations relative aux projets de développement; 3. Établir une collaboration étroite entre les établissements d’enseignement et les industries, ce qui est essentiel à la compréhension des enjeux de développement de produits et services (culture de l’entreprise, coût, délais, logistique, réglementation, etc.).

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Objectif principal: Il n’est pas démontré que les interventions visant à maîtriser voire modérer la médicamentation de patients atteints d’hypertension peuvent améliorer leur gestion de la maladie. Cette revue systématique propose d’évaluer les programmes de gestion contrôlée de la médicamentation pour l’hypertension, en s’appuyant sur la mesure de l’observance des traitements par les patients (CMGM). Design: Revue systématique. Sources de données: MEDLINE, EMBASE, CENTRAL, résumés de conférences internationales sur l’hypertension et bibliographies des articles pertinents. Méthodes: Des essais contrôlés randomisés (ECR) et des études observationnelles (EO) ont été évalués par 2 réviseurs indépendants. L’évaluation de la qualité (de ce matériel) a été réalisée avec l’aide de l’outil de Cochrane de mesure du risque de biais, et a été estimée selon une échelle à quatre niveaux de qualité Une synthèse narrative des données a été effectuée en raison de l'hétérogénéité importante des études. Résultats: 13 études (8 ECR, 5 EO) de 2150 patients hypertendus ont été prises en compte. Parmi elles, 5 études de CMGM avec l’utilisation de dispositifs électroniques comme seule intervention ont relevé une diminution de la tension artérielle (TA), qui pourrait cependant être expliquée par les biais de mesure. L’amélioration à court terme de la TA sous CMGM dans les interventions complexes a été révélée dans 4 études à qualité faible ou modérée. Dans 4 autres études sur les soins intégrés de qualité supérieure, il n'a pas été possible de distinguer l'impact de la composante CMGM, celle-ci pouvant être compromise par des traitements médicamenteux. L’ensemble des études semble par ailleurs montrer qu’un feed-back régulier au médecin traitant peut être un élément essentiel d’efficacité des traitements CMGM, et peut être facilement assuré par une infirmière ou un pharmacien, grâce à des outils de communication appropriés. Conclusions: Aucune preuve convaincante de l'efficacité des traitements CMGM comme technologie de la santé n’a été établie en raison de designs non-optimaux des études identifiées et des ualités méthodologiques insatisfaisantes de celles-ci. Les recherches futures devraient : suivre les normes de qualité approuvées et les recommandations cliniques actuelles pour le traitement de l'hypertension, inclure des groupes spécifiques de patients avec des problèmes d’attachement aux traitements, et considérer les résultats cliniques et économiques de l'organisation de soins ainsi que les observations rapportées par les patients.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

De nos jours, les applications de grande taille sont développées à l’aide de nom- breux cadres d’applications (frameworks) et intergiciels (middleware). L’utilisation ex- cessive d’objets temporaires est un problème de performance commun à ces applications. Ce problème est appelé “object churn”. Identifier et comprendre des sources d’“object churn” est une tâche difficile et laborieuse, en dépit des récentes avancées dans les tech- niques d’analyse automatiques. Nous présentons une approche visuelle interactive conçue pour aider les développeurs à explorer rapidement et intuitivement le comportement de leurs applications afin de trouver les sources d’“object churn”. Nous avons implémenté cette technique dans Vasco, une nouvelle plate-forme flexible. Vasco se concentre sur trois principaux axes de con- ception. Premièrement, les données à visualiser sont récupérées dans les traces d’exécu- tion et analysées afin de calculer et de garder seulement celles nécessaires à la recherche des sources d’“object churn”. Ainsi, des programmes de grande taille peuvent être vi- sualisés tout en gardant une représentation claire et compréhensible. Deuxièmement, l’utilisation d’une représentation intuitive permet de minimiser l’effort cognitif requis par la tâche de visualisation. Finalement, la fluidité des transitions et interactions permet aux utilisateurs de garder des informations sur les actions accomplies. Nous démontrons l’efficacité de l’approche par l’identification de sources d’“object churn” dans trois ap- plications utilisant intensivement des cadres d’applications framework-intensive, inclu- ant un système commercial.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Les structures avec des lieurs sont très communes en informatique. Les langages de programmation et les systèmes logiques sont des exemples de structures avec des lieurs. La manipulation de lieurs est délicate, de sorte que l’écriture de programmes qui ma- nipulent ces structures tirerait profit d’un soutien spécifique pour les lieurs. L’environ- nement de programmation Beluga est un exemple d’un tel système. Nous développons et présentons ici un compilateur pour ce système. Parmi les programmes pour lesquels Beluga est spécialement bien adapté, plusieurs peuvent bénéficier d’un compilateur. Par exemple, les programmes pour valider les types (les "type-checkers"), les compilateurs et les interpréteurs tirent profit du soutien spécifique des lieurs et des types dépendants présents dans le langage. Ils nécessitent tous également une exécution efficace, que l’on propose d’obtenir par le biais d’un compilateur. Le but de ce travail est de présenter un nouveau compilateur pour Beluga, qui emploie une représentation interne polyvalente et permet de partager du code entre plusieurs back-ends. Une contribution notable est la compilation du filtrage de Beluga, qui est particulièrement puissante dans ce langage.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Pour respecter les droits auteur, la version electronique de cette thèse a été dépouillée de ses documents visuels et audio-visuels. La version intégrale de la thèse a été déposée au Service de la gestion des documents et des archives de l'Université de Montréal.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Un objectif principal du génie logiciel est de pouvoir produire des logiciels complexes, de grande taille et fiables en un temps raisonnable. La technologie orientée objet (OO) a fourni de bons concepts et des techniques de modélisation et de programmation qui ont permis de développer des applications complexes tant dans le monde académique que dans le monde industriel. Cette expérience a cependant permis de découvrir les faiblesses du paradigme objet (par exemples, la dispersion de code et le problème de traçabilité). La programmation orientée aspect (OA) apporte une solution simple aux limitations de la programmation OO, telle que le problème des préoccupations transversales. Ces préoccupations transversales se traduisent par la dispersion du même code dans plusieurs modules du système ou l’emmêlement de plusieurs morceaux de code dans un même module. Cette nouvelle méthode de programmer permet d’implémenter chaque problématique indépendamment des autres, puis de les assembler selon des règles bien définies. La programmation OA promet donc une meilleure productivité, une meilleure réutilisation du code et une meilleure adaptation du code aux changements. Très vite, cette nouvelle façon de faire s’est vue s’étendre sur tout le processus de développement de logiciel en ayant pour but de préserver la modularité et la traçabilité, qui sont deux propriétés importantes des logiciels de bonne qualité. Cependant, la technologie OA présente de nombreux défis. Le raisonnement, la spécification, et la vérification des programmes OA présentent des difficultés d’autant plus que ces programmes évoluent dans le temps. Par conséquent, le raisonnement modulaire de ces programmes est requis sinon ils nécessiteraient d’être réexaminés au complet chaque fois qu’un composant est changé ou ajouté. Il est cependant bien connu dans la littérature que le raisonnement modulaire sur les programmes OA est difficile vu que les aspects appliqués changent souvent le comportement de leurs composantes de base [47]. Ces mêmes difficultés sont présentes au niveau des phases de spécification et de vérification du processus de développement des logiciels. Au meilleur de nos connaissances, la spécification modulaire et la vérification modulaire sont faiblement couvertes et constituent un champ de recherche très intéressant. De même, les interactions entre aspects est un sérieux problème dans la communauté des aspects. Pour faire face à ces problèmes, nous avons choisi d’utiliser la théorie des catégories et les techniques des spécifications algébriques. Pour apporter une solution aux problèmes ci-dessus cités, nous avons utilisé les travaux de Wiels [110] et d’autres contributions telles que celles décrites dans le livre [25]. Nous supposons que le système en développement est déjà décomposé en aspects et classes. La première contribution de notre thèse est l’extension des techniques des spécifications algébriques à la notion d’aspect. Deuxièmement, nous avons défini une logique, LA , qui est utilisée dans le corps des spécifications pour décrire le comportement de ces composantes. La troisième contribution consiste en la définition de l’opérateur de tissage qui correspond à la relation d’interconnexion entre les modules d’aspect et les modules de classe. La quatrième contribution concerne le développement d’un mécanisme de prévention qui permet de prévenir les interactions indésirables dans les systèmes orientés aspect.

Relevância:

30.00% 30.00%

Publicador:

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 dans le code. Lorsque ces logiciels évoluent, leurs architectures ont tendance à se dégrader avec le temps et deviennent moins adaptables aux nouvelles spécifications des utilisateurs. Elles deviennent plus complexes et plus difficiles à maintenir. Dans certains cas, les développeurs préfèrent refaire la conception de ces architectures à partir du zéro plutôt que de prolonger la durée de leurs vies, ce qui engendre une augmentation importante des coûts de développement et de maintenance. Par conséquent, les développeurs doivent comprendre les facteurs qui conduisent à la dégradation des architectures, pour prendre des mesures proactives qui facilitent les futurs changements et ralentissent leur dégradation. La dégradation des architectures se produit lorsque des développeurs qui ne comprennent pas la conception originale du logiciel apportent des changements au logiciel. D'une part, faire des changements sans comprendre leurs impacts peut conduire à l'introduction de bogues et à la retraite prématurée du logiciel. D'autre part, les développeurs qui manquent de connaissances et–ou d'expérience dans la résolution d'un problème de conception peuvent introduire des défauts de conception. Ces défauts ont pour conséquence de rendre les logiciels plus difficiles à maintenir et évoluer. Par conséquent, les développeurs ont besoin de mécanismes pour comprendre l'impact d'un changement sur le reste du logiciel et d'outils pour détecter les défauts de conception afin de les corriger. Dans le cadre de cette thèse, nous proposons trois principales contributions. La première contribution concerne l'évaluation de la dégradation des architectures logicielles. Cette évaluation consiste à utiliser une technique d’appariement de diagrammes, tels que les diagrammes de classes, pour identifier les changements structurels entre plusieurs versions d'une architecture logicielle. Cette étape nécessite l'identification des renommages de classes. Par conséquent, la première étape de notre approche consiste à identifier les renommages de classes durant l'évolution de l'architecture logicielle. Ensuite, la deuxième étape consiste à faire l'appariement de plusieurs versions d'une architecture pour identifier ses parties stables et celles qui sont en dégradation. Nous proposons des algorithmes de bit-vecteur et de clustering pour analyser la correspondance entre plusieurs versions d'une architecture. La troisième étape consiste à mesurer la dégradation de l'architecture durant l'évolution du logiciel. Nous proposons un ensemble de m´etriques sur les parties stables du logiciel, pour évaluer cette dégradation. La deuxième contribution est liée à l'analyse de l'impact des changements dans un logiciel. Dans ce contexte, nous présentons une nouvelle métaphore inspirée de la séismologie pour identifier l'impact des changements. Notre approche considère un changement à une classe comme un tremblement de terre qui se propage dans le logiciel à travers une longue chaîne de classes intermédiaires. Notre approche combine l'analyse de dépendances structurelles des classes et l'analyse de leur historique (les relations de co-changement) afin de mesurer l'ampleur de la propagation du changement dans le logiciel, i.e., comment un changement se propage à partir de la classe modifiée è d'autres classes du logiciel. La troisième contribution concerne la détection des défauts de conception. Nous proposons une métaphore inspirée du système immunitaire naturel. Comme toute créature vivante, la conception de systèmes est exposée aux maladies, qui sont des défauts de conception. Les approches de détection sont des mécanismes de défense pour les conception des systèmes. Un système immunitaire naturel peut détecter des pathogènes similaires avec une bonne précision. Cette bonne précision a inspiré une famille d'algorithmes de classification, appelés systèmes immunitaires artificiels (AIS), que nous utilisions pour détecter les défauts de conception. Les différentes contributions ont été évaluées sur des logiciels libres orientés objets et les résultats obtenus nous permettent de formuler les conclusions suivantes: • Les métriques Tunnel Triplets Metric (TTM) et Common Triplets Metric (CTM), fournissent aux développeurs de bons indices sur la dégradation de l'architecture. La d´ecroissance de TTM indique que la conception originale de l'architecture s’est dégradée. La stabilité de TTM indique la stabilité de la conception originale, ce qui signifie que le système est adapté aux nouvelles spécifications des utilisateurs. • La séismologie est une métaphore intéressante pour l'analyse de l'impact des changements. En effet, les changements se propagent dans les systèmes comme les tremblements de terre. L'impact d'un changement est plus important autour de la classe qui change et diminue progressivement avec la distance à cette classe. Notre approche aide les développeurs à identifier l'impact d'un changement. • Le système immunitaire est une métaphore intéressante pour la détection des défauts de conception. Les résultats des expériences ont montré que la précision et le rappel de notre approche sont comparables ou supérieurs à ceux des approches existantes.

Relevância:

30.00% 30.00%

Publicador:

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.

Relevância:

30.00% 30.00%

Publicador:

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.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Le système de santé d'aujourd'hui fait appel à de nombreuses technologies de l'information nommées TIS (Technologies de l’Information en Santé). Celles-ci ont donné naissance à de nouvelles formes d’interaction médecin-patient et ont complexifié l'approche thérapeutique dite
« centrée sur le patient ». Les TIS promettent une plus grande efficacité et l’augmentation de la satisfaction des patients par le biais d’une meilleure compréhension de la maladie pour le patient. Or, elles peuvent également devenir des sources de conflit pour le professionnel de la santé, étant donné leur utilisation en dehors des rencontres cliniques ainsi que leur tendance à agir comme des barrières communicationnelles lors des consultations. Cette recherche vise a étudier les critères de design nécessaires à la conception d’un TIS pouvant améliorer la relation médecin-patient et donc, faciliter la communication et améliorer l’alliance thérapeutique. L’étude utilise une approche centrée sur l’utilisateur et vise donc à comprendre les besoins et les attentes des médecins et des patients. En étudiant les nouvelles approches en santé et les TIS, il a été possible de comprendre le contexte et les besoins des utilisateurs en terme de communication. Ces derniers sont primordiaux au processus dit centré sur l’utilisateur. Le faible taux de rétention du discours du médecin devient une barrière communicationnelle importante, tout comme le temps pressurisé. La recherche nous montre que l’ajout d’un outil virtuel de vulgarisation peut, à l’aide de média visuels (tel que des modélisations, des animations 3D et des dessins), grandement aider la relation médecin-patient.