81 research outputs found

    Modélisation par contraintes de programmes en bytecode Java pour la génération automatique de tests

    Get PDF
    Program verification is essential to maintain a certain level of quality and reliability. Testing is to date the most used software verification mean in industry. Constraint programming is seen as an effective way to automate test data generation. In this thesis we propose a constraint modeling of the Java bytecode semantics, and a method, based on this modeling, to automatically generate test data. Our constraint model of the semantics of a Java bytecode program allows effective deductions, including in the presence of complex data structures or inheritance. In particular, the use of type variables can take into account inheritance and polymorphic method calls. Our method of test data generation uses the constraint model to cover specific instructions of the program under test. It uses a backward progression in the control flow graph to enumerate paths leading to the target instructions. This method suits particularly to cover instructions that are not reached by other methods of test data generation. Finally this method is implemented in a prototype named JAUT (Java Automatic Unit Testing). The experiments show that the prototype can increase the statements coverage obtained with the other available tools.La vérification des programmes est indispensable pour maintenir un certain niveau de qualité et de fiabilité. Le test est à ce jour le moyen de vérification des logiciels le plus utilisé dans l¤industrie. La programmation par contraintes est vue comme un moyen efficace pour automatiser la génération de données de test. Dans cette thèse nous proposons une modélisation par contraintes de la sémantique du bytecode Java, ainsi qu¤une méthode, basée sur cette modélisation, pour générer automatiquement des données de test. Notre modèle à contraintes de la sémantique d¤un programme en bytecode Java permet de faire des déductions efficaces, y compris en présence de structures de données complexes ou d¤héritage. En particulier, l¤utilisation de variables de type permet de prendre en compte l¤héritage et les appels de méthodes polymorphes. Notre méthode de génération de données de test exploite le modèle à contraintes pour couvrir des instructions particulières du programme sous test. Elle se base sur un parcours en arrière du graphe de flot de contrôle pour énumérer des chemins menant aux instructions cibles. Elle est en particulier adaptée à la couverture d¤instructions non couvertes par les autres méthodes de génération de données de test. Enfin cette méthode est mise en application dans un prototype, JAUT (Java Automatic Unit Testing). Les expériences montrent que le prototype permet d¤augmenter la couverture des instructions obtenue avec les autres outils disponibles

    Apprentissage partiel de grammaires lexicalisées

    Get PDF
    International audienceSur le plan théorique, le modèle de Gold semble adapté à l'apprentissage des langues naturelles. Cependant la mise en pratique des algorithmes d'acquisition issus de ce modèle pose de nombreux problèmes. Nous développons dans cet article des résultats obtenus à la suite des travaux de Buszkowski, Penn et Kanazawa, qui ont montré que certaines classes de grammaires catégorielles sont apprenables. L'algorithme d'origine nécessite une grande quantité d'information en entrée pour être efficace. En changeant la nature des informations en entrée, nous proposons un algorithme d'apprentissage de grammaires catégorielles plus réaliste dans la perspective d'applications aux langues naturelles. Cette méthode peut être étendue à certains formalismes grammaticaux lexicalisés, comme les grammaires de liens. L'expérimentation que nous proposons avec ce formalisme tend à montrer la faisabilité de notre approche

    Mathématiques et programmation analyse des besoins et inventaire de ressources au collégial /

    Get PDF
    "Ce projet constitue le troisième volet d'une recherche portant sur les applications de l'ordinateur dans l'enseignement et l'apprentissage des mathématiques au collégial"Également disponible en version papierTitre de l'écran-titre (visionné le 5 déc. 2009)Bibliogr

    Modélisation d'un outil graphique d'aide à la compréhension de résolution de programmes logiques

    Get PDF
    Ce projet de recherche traite du domaine de l’intelligence artificielle, plus précisément de la programmation logique, un type de programmation utilisée pour concevoir des systèmes dits intelligents. Ce type de programmation est toutefois assez complexe à assimiler et il n’existe, à notre connaissance, aucun outil interactif qui permette de montrer efficacement le processus d’exécution d’un programme logique. L’objectif de cette recherche consistait donc à proposer un modèle d’outil facilitant la compréhension de la résolution d’un programme logique. Le modèle proposé permet de représenter graphiquement et dynamiquement la trace de résolution d’un programme logique. Un prototype a été construit pour valider ce modèle avec des programmes écrits en langage Prolog. L’utilisateur peut ainsi suivre les étapes d’exécution à travers l’affichage dynamique d’un arbre de dérivation. Actuellement, le modèle ne permet pas de prendre en compte des programmes écrits avec différents langages de programmation, une telle généralisation serait une bonne amélioration

    Approche logique pour l'analyse de traces d'exécutions

    Get PDF
    Les techniques traditionnelles de détection d'intrusions s'appuient sur différentes approches permettant d'identifier une utilisation non prévue et non autorisée de différentes ressources d'un système informatique. Afinn de détecter ces comportements, nous décrivons dans ce mémoire une approche logique de détection d'intrusions basée sur l'identification, dans des traces d'exécutions, de violations de politiques de sécurité données. Le modèle développé spécifie l'état des ressources d'un système ainsi que les effets des différents appels système sur cet état. Le système obtenu, qui s'apparente à un système expert, s'appuie sur un ensemble de règles logiques décrivant les connaissances d'un expert en sécurité informatique. Tout comportement illégal, c'est-à-dire non conforme aux politiques de sécurité considérées, est signalé et est considéré comme une tentative d'intrusion. Le système implémenté est capable de détecter une large classe d'attaques puisque l'approche développée ne se base pas sur certaines séquences particulières d'actions déjà recensées, mais plutôt sur les effets des différentes actions effectuées. De plus, il est capable de détecter de nouveaux comportements malveillants non préalablement identifiés.Traditional techniques for intrusion detection based on different approaches for identifying unintended and unauthorized use of dfferent resources of a computer system. To detect these behaviors, we describe in this paper a logical approach to intrusion detection based on the identification, in execution traces, of violations of given security policies. The developed model specifies the state of system resources as well as the effects of different system calls on this state. The resulting system, which is similar to an expert system, relies on a set of logical rules describing the knowledge of an expert in computer security. Any illegal behavior, that means not conform to the considered security policies, is reported and is considered as an intrusion attempt. The implemented system is able to detect a wide class of attacks since the approach is not based on some particular sequences of actions already identified, but rather on the effects of different actions performed. In addition, it is able to detect new malicious behavior not previously identified

    Interprétation contextuelle et assistée de fonds d'archives numérisées (application à des registres de ventes du XVIIIe siècle)

    Get PDF
    Les fonds d'archives forment de grandes quantités de documents difficiles à interpréter automatiquement : les approches classiques imposent un lourd effort de conception, sans parvenir à empêcher la production d'erreurs qu'il faut corriger après les traitements.Face à ces limites, notre travail vise à améliorer la processus d'interprétation, en conservant un fonctionnement page par page, et en lui apportant des informations contextuelles extraites du fonds documentaire ou fournies par des opérateurs humains.Nous proposons une extension ciblée de la description d'une page qui permet la mise en place systématique d'échanges entre le processus d'interprétation et son environnement. Un mécanisme global itératif gère l'apport progressif d'informations contextuelles à ce processus, ce qui améliore l'interprétation.L'utilisation de ces nouveaux outils pour le traitement de documents du XVIIIe siècle a montré qu'il était facile d'intégrer nos propositions à un système existant, que sa conception restait simple, et que l'effort de correction pouvait être diminué.Fonds, also called historical document collections, are important amounts of digitized documents which are difficult to interpret automatically: usual approaches require a lot of work during design, but do not manage to avoid producing many errors which have to be corrected after processing.To cope with those limitations, our work aimed at improving the interpretation process by making use of information extracted from the fond, or provided by human operators, while keeping a page by page processing.We proposed a simple extension of page description language which permits to automatically generate information exchange between the interpretation process and its environment. A global iterative mechanism progressively brings contextual information to the later process, and improves interpretation.Experiments and application of those new tools for the processing of documents from the 18th century showed that our propositions were easy to integrate in an existing system, that its design is still simple, and that required manual corrections were reduced.RENNES-INSA (352382210) / SudocSudocFranceF

    Présentation du langage C

    Get PDF
    • …
    corecore