848 resultados para Computer programs -- Development
Resumo:
Formal verification of software can be an enormous task. This fact brought some software engineers to claim that formal verification is not feasible in practice. One possible method of supporting the verification process is a programming language that provides powerful abstraction mechanisms combined with intensive reuse of code. In this thesis we present a strongly typed functional object-oriented programming language. This language features type operators of arbitrary kind corresponding to so-called type protocols. Sub classing and inheritance is based on higher-order matching, i.e., utilizes type protocols as basic tool for reuse of code. We define the operational and axiomatic semantics of this language formally. The latter is the basis of the interactive proof assistant VOOP (Verified Object-Oriented Programs) that allows the user to prove equational properties of programs interactively.
Resumo:
This study examined the process of integrating children with Emotional Behavioural Disorders (EBDs) with their peers into recreation programs. The purpose was to develop a set of recommendations for the development of a handbook to help workers in recreation with the integration process. To this end, a needs assessment was conducted with experienced recreation workers in the form of semistructured interviews. Participants were recruited from two community centers in a large southern Ontario city. Themes were drawn from the analysis of the interview transcripts and combined with findings from the research literature. The results were a set of recommendations on the content and format of a handbook for integrating children with EBDs into recreation programs.
Resumo:
The purpose of my research was to contribute to the improvement and sustainability of the Special Needs Activity Program, and develop program implementation strategies that had practical outcomes. I conducted an evaluative case study of S.N.A.P in order to determine what a quality adapted physical activity (APA) program is, why S.N.A.P is considered a quality APA program, and what institutional policies and practices exist to support it. Data was collected via interviews, questionnaires, and observations. Data analysis involved inductive and deductive methods, and a SWOTAR evaluation. Results indicate that quality APA programs include: ‘people’, ‘environment’, and ‘expectations’; there are benefits of experiential learning; activity stations that promote creativity are valuable; several stakeholders do not know the details about S.N.A.P but recognize its value; the institution values what S.N.A.P provides, yet, there is nothing being done to sustain it. Future research should investigate the feasibility of implementing S.N.A.P in various contexts.
Resumo:
This research study explored a support system for children with learning disabilities. The Learning Disabilities Association of Niagara Region (LDANR) recently expanded its Better Emotional and Social Times (B.E.S.T.) program to incorporate an innovative, character education initiative called the “Who is NOBODY?” program. The objective of this qualitative case study was two-fold. First, the study aimed to support the LDANR in assessing the efficacy of the “Who is NOBODY?” program, providing the LDANR with empirical support for their programs. Second, the study enabled a more in-depth understanding of how to best support children with LD in regards to their social and emotional well-being. The study explored the “Who is NOBODY?” program through three lenses: design, implementation, and experiences of participating children. Three primary themes emerged from these three data lenses: positive character traits, prosocial behaviour, and strong self-efficacy – leading to the promotion of strong character development and self-esteem. Taken together, the “Who is NOBODY?” program was shown to be a successful remediation program for supporting vulnerable children with LD.
Resumo:
Sport-for-development is the active practice of achieving social ideals through the use of sport and other traditional development programs. The purpose of this thesis was to evaluate SFD best practices from the context of an African organization development project. The case was a development organization in Zambia, Africa that was utilizing sport within its strategy. The data collection and analysis framed using Curado and Bontis (2007) MIC Matrix, the Sport For Development International Working Group’s (2007) best practices model, and B. Kidd’s (2011) Sport-in-Development Logic Model. The research supports that a SFD project is multi-faceted and should include the employment of strategic community programming on the basis of collaborative and integrative sport, health care and education. Further, the researcher found that the best practices include setting specific goals and objectives, as well as instituting regular monitoring and evaluation strategies
Resumo:
This mixed-methods research study sought to determine the impact of an informal science camp—the Youth Science Inquiry Development Camp (YSIDC)—on participants’ science inquiry skills, through self-assessment, as well as their views and attitudes towards science and scientific inquiry. Pre and post data were collected using quantitative surveys (SPSI, CARS), a qualitative survey (VOSI-E), interviews, and researcher’s observations. Paired sample t-tests from the quantitative surveys revealed that the YSIDC positively impacted participants’ science inquiry skills and attitudes towards science. Interviews supported these findings and provided contextual reasons for these impacts. Implications from this research would suggest that informal and formal educational institutions can increase science inquiry skills and promote positive views and attitudes towards science and scientific inquiry by using non-competitive cooperative learning strategies with a mixture of guided and open inquiry. Suggested directions for further research include measuring science inquiry skills directly and conducting longitudinal studies to determine the lasting effects of informal and formal science programs.
Resumo:
Affiliation: Margaret Cargo : Département de médecine sociale et préventive, Faculté de médecine, Université de Montréal
Resumo:
Pour respecter les droits d'auteur, la version électronique de ce mémoire a été dépouillée de ses documents visuels. La version intégrale du mémoire a été déposée au Service de la gestion des documents et archives de l'Université de Montréal.
Resumo:
Les sociétés modernes dépendent de plus en plus sur les systèmes informatiques et ainsi, il y a de plus en plus de pression sur les équipes de développement pour produire des logiciels de bonne qualité. Plusieurs compagnies utilisent des modèles de qualité, des suites de programmes qui analysent et évaluent la qualité d'autres programmes, mais la construction de modèles de qualité est difficile parce qu'il existe plusieurs questions qui n'ont pas été répondues dans la littérature. Nous avons étudié les pratiques de modélisation de la qualité auprès d'une grande entreprise et avons identifié les trois dimensions où une recherche additionnelle est désirable : Le support de la subjectivité de la qualité, les techniques pour faire le suivi de la qualité lors de l'évolution des logiciels, et la composition de la qualité entre différents niveaux d'abstraction. Concernant la subjectivité, nous avons proposé l'utilisation de modèles bayésiens parce qu'ils sont capables de traiter des données ambiguës. Nous avons appliqué nos modèles au problème de la détection des défauts de conception. Dans une étude de deux logiciels libres, nous avons trouvé que notre approche est supérieure aux techniques décrites dans l'état de l'art, qui sont basées sur des règles. Pour supporter l'évolution des logiciels, nous avons considéré que les scores produits par un modèle de qualité sont des signaux qui peuvent être analysés en utilisant des techniques d'exploration de données pour identifier des patrons d'évolution de la qualité. Nous avons étudié comment les défauts de conception apparaissent et disparaissent des logiciels. Un logiciel est typiquement conçu comme une hiérarchie de composants, mais les modèles de qualité ne tiennent pas compte de cette organisation. Dans la dernière partie de la dissertation, nous présentons un modèle de qualité à deux niveaux. Ces modèles ont trois parties: un modèle au niveau du composant, un modèle qui évalue l'importance de chacun des composants, et un autre qui évalue la qualité d'un composé en combinant la qualité de ses composants. L'approche a été testée sur la prédiction de classes à fort changement à partir de la qualité des méthodes. Nous avons trouvé que nos modèles à deux niveaux permettent une meilleure identification des classes à fort changement. Pour terminer, nous avons appliqué nos modèles à deux niveaux pour l'évaluation de la navigabilité des sites web à partir de la qualité des pages. Nos modèles étaient capables de distinguer entre des sites de très bonne qualité et des sites choisis aléatoirement. Au cours de la dissertation, nous présentons non seulement des problèmes théoriques et leurs solutions, mais nous avons également mené des expériences pour démontrer les avantages et les limitations de nos solutions. Nos résultats indiquent qu'on peut espérer améliorer l'état de l'art dans les trois dimensions présentées. En particulier, notre travail sur la composition de la qualité et la modélisation de l'importance est le premier à cibler ce problème. Nous croyons que nos modèles à deux niveaux sont un point de départ intéressant pour des travaux de recherche plus approfondis.
Resumo:
Le développement du logiciel actuel doit faire face de plus en plus à la complexité de programmes gigantesques, élaborés et maintenus par de grandes équipes réparties dans divers lieux. Dans ses tâches régulières, chaque intervenant peut avoir à répondre à des questions variées en tirant des informations de sources diverses. Pour améliorer le rendement global du développement, nous proposons d'intégrer dans un IDE populaire (Eclipse) notre nouvel outil de visualisation (VERSO) qui calcule, organise, affiche et permet de naviguer dans les informations de façon cohérente, efficace et intuitive, afin de bénéficier du système visuel humain dans l'exploration de données variées. Nous proposons une structuration des informations selon trois axes : (1) le contexte (qualité, contrôle de version, bogues, etc.) détermine le type des informations ; (2) le niveau de granularité (ligne de code, méthode, classe, paquetage) dérive les informations au niveau de détails adéquat ; et (3) l'évolution extrait les informations de la version du logiciel désirée. Chaque vue du logiciel correspond à une coordonnée discrète selon ces trois axes, et nous portons une attention toute particulière à la cohérence en naviguant entre des vues adjacentes seulement, et ce, afin de diminuer la charge cognitive de recherches pour répondre aux questions des utilisateurs. Deux expériences valident l'intérêt de notre approche intégrée dans des tâches représentatives. Elles permettent de croire qu'un accès à diverses informations présentées de façon graphique et cohérente devrait grandement aider le développement du logiciel contemporain.
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.
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.
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 formation est une stratégie clé pour le développement des compétences. Les entreprises continuent à investir dans la formation et le développement, mais elles possèdent rarement des données pour évaluer les résultats de cet investissement. La plupart des entreprises utilisent le modèle Kirkpatrick/Phillips pour évaluer la formation en entreprise. Cependant, il ressort de la littérature que les entreprises ont des difficultés à utiliser ce modèle. Les principales barrières sont la difficulté d’isoler l’apprentissage comme un facteur qui a une incidence sur les résultats, l’absence d’un système d’évaluation utile avec le système de gestion de l’apprentissage (Learning Management System - LMS) et le manque de données standardisées pour pouvoir comparer différentes fonctions d’apprentissage. Dans cette thèse, nous proposons un modèle (Analyse, Modélisation, Monitoring et Optimisation - AM2O) de gestion de projets de formation en entreprise, basée sur la gestion des processus d’affaires (Business Process Management - BPM). Un tel scénario suppose que les activités de formation en entreprise doivent être considérées comme des processus d’affaires. Notre modèle est inspiré de cette méthode (BPM), à travers la définition et le suivi des indicateurs de performance pour gérer les projets de formation dans les organisations. Elle est basée sur l’analyse et la modélisation des besoins de formation pour assurer l’alignement entre les activités de formation et les objectifs d’affaires de l’entreprise. Elle permet le suivi des projets de formation ainsi que le calcul des avantages tangibles et intangibles de la formation (sans coût supplémentaire). En outre, elle permet la production d’une classification des projets de formation en fonction de critères relatifs à l’entreprise. Ainsi, avec assez de données, notre approche peut être utilisée pour optimiser le rendement de la formation par une série de simulations utilisant des algorithmes d’apprentissage machine : régression logistique, réseau de neurones, co-apprentissage. Enfin, nous avons conçu un système informatique, Enterprise TRaining programs Evaluation and Optimization System - ETREOSys, pour la gestion des programmes de formation en entreprise et l’aide à la décision. ETREOSys est une plateforme Web utilisant des services en nuage (cloud services) et les bases de données NoSQL. A travers AM2O et ETREOSys nous résolvons les principaux problèmes liés à la gestion et l’évaluation de la formation en entreprise à savoir : la difficulté d’isoler les effets de la formation dans les résultats de l’entreprise et le manque de systèmes informatiques.
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.