998 resultados para Automatic code generations
Resumo:
Alors que l’Organisation de Coopération et de Développement Economique appelle de tous ses voeux à développer les initiatives en matière de corporate governance pour faire face aux échecs dont la crise financière a été le témoin, la loi belge du 6 avril 2010 témoigne d’une position proactive et met en oeuvre les propositions faites au niveau européen. D’un côté, certaines modifications législatives introduites au premier trimestre 2010 sont connues du juriste français et soulèvent des interrogations similaires à celles existantes en France. D’un autre côté, un certain nombre d’options choisies par le gouvernement belge (notamment celles concernant la rémunération) présente un caractère original, la France n’en étant à l’heure actuelle qu’au stade des débats. Au-delà de détailler la loi d’avril 2010 dans son aspect gouvernance d’entreprise avec un regard comparatiste, le présent article s’interroge sur l’efficacité future du dispositif mis en place.
Resumo:
L’intérêt de l’enfant est une notion « polymorphe » dont les tenants et aboutissants sont difficiles à cerner. A priori, nous postulions que son caractère polymorphe en permet l’instrumentalisation, les acteurs sociaux cherchant, par la représentation qu’ils s’en font, à défendre leurs intérêts. Notre mémoire prend d’ailleurs à partie l’exemple de l’avant-projet de Loi modifiant le Code civil et d’autres dispositions législatives en matière d’adoption et d’autorité parentale. Dans notre premier titre, il convenait ainsi de dresser l’historique de l’intérêt de l’enfant en tant que notion variablement évolutive, de sa réception en jurisprudence et dans les lois québécoises portant sur l’adoption, à son incorporation en droit commun, à la suite de l’abrogation du concept de puissance paternelle. Nous en avons également identifié les fondements, au travers du droit anglais, du droit international, des Chartes et du droit naturel. Les éléments de définition du concept étant multiples, nous avons enfin cherché à le conceptualiser, à en dégager les bases légales et à effectuer l’analyse doctrinale et jurisprudentielle de ses critères. Puis, afin de démontrer nos prémisses, nous avons examiné, dans notre seconde partie, les discours de quelques 23 intervenants dans le cadre des consultations menées par la Commission des institutions sur l’avant-projet de loi susdit. En somme, alors que les chercheurs universitaires ont une position ne cherchant pas à insister sur une dimension de l’intérêt de l’enfant convergeant vers leur mission, les propos des ordres professionnels, des groupes de pression et des organismes para-gouvernementaux sont, en revanche, à l’effet contraire.
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:
La documentation des programmes aide les développeurs à mieux comprendre le code source pendant les tâches de maintenance. Toutefois, la documentation n’est pas toujours disponible ou elle peut être de mauvaise qualité. Le recours à la redocumentation s’avère ainsi nécessaire. Dans ce contexte, nous proposons de faire la redocumentation en générant des commentaires par application de techniques de résumé par extraction. Pour mener à bien cette tâche, nous avons commencé par faire une étude empirique pour étudier les aspects quantitatifs et qualitatifs des commentaires. En particulier, nous nous sommes intéressés à l’étude de la distribution des commentaires par rapport aux différents types d’instructions et à la fréquence de documentation de chaque type. Aussi, nous avons proposé une taxonomie de commentaires pour classer les commentaires selon leur contenu et leur qualité. Suite aux résultats de l’étude empirique, nous avons décidé de résumer les classes Java par extraction des commentaires des méthodes/constructeurs. Nous avons défini plusieurs heuristiques pour déterminer les commentaires les plus pertinents à l’extraction. Ensuite, nous avons appliqué ces heuristiques sur les classes Java de trois projets pour en générer les résumés. Enfin, nous avons comparé les résumés produits (les commentaires produits) à des résumés références (les commentaires originaux) en utilisant la métrique ROUGE.
Resumo:
Traditionnellement, les applications orientées objets légataires intègrent différents aspects fonctionnels. Ces aspects peuvent être dispersés partout dans le code. Il existe différents types d’aspects : • des aspects qui représentent des fonctionnalités métiers ; • des aspects qui répondent à des exigences non fonctionnelles ou à d’autres considérations de conception comme la robustesse, la distribution, la sécurité, etc. Généralement, le code qui représente ces aspects chevauche plusieurs hiérarchies de classes. Plusieurs chercheurs se sont intéressés à la problématique de la modularisation de ces aspects dans le code : programmation orientée sujets, programmation orientée aspects et programmation orientée vues. Toutes ces méthodes proposent des techniques et des outils pour concevoir des applications orientées objets sous forme de composition de fragments de code qui répondent à différents aspects. La séparation des aspects dans le code a des avantages au niveau de la réutilisation et de la maintenance. Ainsi, il est important d’identifier et de localiser ces aspects dans du code légataire orienté objets. Nous nous intéressons particulièrement aux aspects fonctionnels. En supposant que le code qui répond à un aspect fonctionnel ou fonctionnalité exhibe une certaine cohésion fonctionnelle (dépendances entre les éléments), nous proposons d’identifier de telles fonctionnalités à partir du code. L’idée est d’identifier, en l’absence des paradigmes de la programmation par aspects, les techniques qui permettent l’implémentation des différents aspects fonctionnels dans un code objet. Notre approche consiste à : • identifier les techniques utilisées par les développeurs pour intégrer une fonctionnalité en l’absence des techniques orientées aspects • caractériser l’empreinte de ces techniques sur le code • et développer des outils pour identifier ces empreintes. Ainsi, nous présentons deux approches pour l’identification des fonctionnalités existantes dans du code orienté objets. La première identifie différents patrons de conception qui permettent l’intégration de ces fonctionnalités dans le code. La deuxième utilise l’analyse formelle de concepts pour identifier les fonctionnalités récurrentes dans le code. Nous expérimentons nos deux approches sur des systèmes libres orientés objets pour identifier les différentes fonctionnalités dans le code. Les résultats obtenus montrent l’efficacité de nos approches pour identifier les différentes fonctionnalités dans du code légataire orienté objets et permettent de suggérer des cas de refactorisation.
Resumo:
Au Québec, la Loi sur les services de santé et les services sociaux, Chapitre S-4.2, à son article 233, demande à ce que chacun des établissements de santé, dispose d’un code d’éthique qui essentiellement demande de préciser les droits des usagers et de fixer les conduites attendues du personnel. Le législateur souhaitait améliorer les conduites du personnel dès le début des années 1990 et envisageait désigner un organisme de surveillance pour s’en assurer. Cette contrainte ne fut pas retenue et 20 ans plus tard, la volonté d’assurer des conduites attendues n’est toujours pas assujettie de contraintes ou de contrôles même si elle est toujours souhaitée. En 2003 toutefois, le Ministre a mis en place un processus de visites ministérielles dans les milieux d’hébergement et à ce jour quelques 150 établissements ont été visités. Ces équipes se sont préoccupées entre autre de la fonction du code d’éthique pour soutenir les directions de ces établissements. Elles ne réussissent pas à pouvoir s’appuyer sur le code d’éthique pour qu’il soit l’assise pour baser les décisions cliniques, organisationnelles et de gestion de chacune des organisations du réseau de la santé et des services sociaux du Québec. Il faut à ce moment-ci faire le constat que le code d’éthique, obligatoire, figure au nombre des nombreuses contraintes rencontrées par les organisations. Les établissements doivent passer un processus d’agrément aux trois ans et le code d’éthique n’est pas davantage un élément dynamique retenu à ce processus de validation de normes de qualité. De plus, une revue québécoise spécialisée en gestion de la santé a consacré un numéro complet de 15 articles sur « éthique et comportements » et le code d’éthique y est absent sauf pour deux articles qui s’y attardent spécifiquement. Est-ce une question d’éthique dont il est question par ce code, ou si ce n’est pas davantage de la déontologie, d’autant que le législateur veut avant tout s’assurer de comportements adéquats de la part des employés et des autres personnes qui exercent leur profession. Est-ce qu’un code de conduite ne serait pas plus approprié pour atteindre les fins visées? Cette question est répondue dans ce mémoire qui regarde les concepts d’éthique, de déontologie, de codes, de régulation des comportements. De plus, des analyses détaillées de 35 codes d’éthique actuels de divers établissements et de diverses régions du Québec iv sont présentées. La littérature nous donne les conditions de réussite pour un code et outre l’importance à accorder aux valeurs énoncées dans l’organisation, il est également question des sanctions à prévoir au non-respect de ces valeurs. Elles se doivent d’être claires et appliquées. Enfin, beaucoup d’organisations parlent maintenant de code de conduite et ce terme serait tout à fait approprié pour rejoindre le souhait du législateur qui veut assurer des conduites irréprochables des employés et autres personnes qui y travaillent. C’est la conclusion de ce travail, énoncée sous forme de recommandation.
Resumo:
Dans cet article issu d’une conférence prononcée dans le cadre du Colloque Leg@l.IT (www.legalit.ca), l’auteur offre un rapide survol des fonctionnalités offertes par les systèmes de dépôt électronique de la Cour fédérale et de la Cour canadienne de l’impôt afin de dégager les avantages et inconvénients de chacune des technologies proposées. Cet exercice s’inscrit dans une réflexion plus large sur les conséquences de la migration progressive de certaines juridictions vers le dépôt électronique. Si cette tentative de moderniser le processus judiciaire se veut bénéfique, il demeure qu’un changement technologique d’une telle importance n’est pas sans risques et sans incidences sur les us et coutumes de l’appareil judiciaire. L’auteur se questionne ainsi sur la pratique adoptée par certains tribunaux judiciaires de développer en silo des solutions d’informatisation du processus de gestion des dossiers de la Cour. L’absence de compatibilité des systèmes et le repli vers des modèles propriétaires sont causes de soucis. Qui plus est, en confiant le développement de ces systèmes à des firmes qui en conservent la propriété du code source, ils contribuent à une certaine privatisation du processus rendant la mise en réseau de l’appareil judiciaire d’autant plus difficile. Or, dans la mesure où les systèmes de différents tribunaux seront appelés à communiquer et échanger des données, l’adoption de solutions technologiques compatibles et ouvertes est de mise. Une autre problématique réside dans l’apparente incapacité du législateur de suivre l’évolution vers la virtualisation du processus judiciaire. Le changement technologique impose, dans certains cas, un changement conceptuel difficilement compatible avec la législation applicable. Ce constat implique la nécessité d’un questionnement plus profond sur la pertinence d’adapter le droit à la technologie ou encore la technologie au droit afin d’assurer une coexistence cohérente et effective de ces deux univers.
Resumo:
Le code source de la libraire développée accompagne ce dépôt dans l'état où il était à ce moment. Il est possible de trouver une version plus à jour sur github (http://github.com/abergeron).
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 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 révision du code est un procédé essentiel quelque soit la maturité d'un projet; elle cherche à évaluer la contribution apportée par le code soumis par les développeurs. En principe, la révision du code améliore la qualité des changements de code (patches) avant qu'ils ne soient validés dans le repertoire maître du projet. En pratique, l'exécution de ce procédé n'exclu pas la possibilité que certains bugs passent inaperçus. Dans ce document, nous présentons une étude empirique enquétant la révision du code d'un grand projet open source. Nous investissons les relations entre les inspections des reviewers et les facteurs, sur les plans personnel et temporel, qui pourraient affecter la qualité de telles inspections.Premiérement, nous relatons une étude quantitative dans laquelle nous utilisons l'algorithme SSZ pour détecter les modifications et les changements de code favorisant la création de bogues (bug-inducing changes) que nous avons lié avec l'information contenue dans les révisions de code (code review information) extraites du systéme de traçage des erreurs (issue tracking system). Nous avons découvert que les raisons pour lesquelles les réviseurs manquent certains bogues était corrélées autant à leurs caractéristiques personnelles qu'aux propriétés techniques des corrections en cours de revue. Ensuite, nous relatons une étude qualitative invitant les développeurs de chez Mozilla à nous donner leur opinion concernant les attributs favorables à la bonne formulation d'une révision de code. Les résultats de notre sondage suggèrent que les développeurs considèrent les aspects techniques (taille de la correction, nombre de chunks et de modules) autant que les caractéristiques personnelles (l'expérience et review queue) comme des facteurs influant fortement la qualité des revues de code.