58 research outputs found

    Composition non modulaire modulaire

    Get PDF
    This document survey my different research activities since I have defended my PhD. Thesis. The thread of these work is my fascination for modular programming but also its limits when there is not a single modular decomposition but several decompositions that must coexist. These researches are structured according to several axes: control and data flow, static and dynamic behavior, sequential, concurrent and distributed context.Ce document retrace mes différentes activités de recherche depuis ma thèse. Le fil conducteur de ces travaux est ma fascination pour la programmation modulaire mais aussi ses limites lorsque qu'il n'existe pas une décomposition modulaire d'un problème mais plusieurs décompositions qui doivent coexister. Ces recherches sont déclinées selon plusieurs axes : flot de contrôle et flot de données, comportements statiques et dynamiques, contextes séquentiels, concurrents et distribués

    Vues et transformations de programmes pour la modularité des évolutions

    Get PDF
    La maintenance consomme une grande partie du coût de développement des logiciels ce qui rend l optimisation de ce coût parmi les enjeux importants dans le monde du génie logiciel. Dans cette thèse nous visons à optimiser ce coût par rendre ces maintenances modulaires. Pour atteindre cet objectif, nous définissons des transformations des architectures des programmes qui permettent de transformer le programme à maintenir vers une architecture qui facilite la tâche de maintenance voulue. Nous nous concentrons plus sur la transformation entre les architectures à propriétés de modularité duales tels que les patrons de conception Composite et Visiteur. Dans ce contexte, nous définissons une transformation automatique et réversible basée sur le refactoring entre un programme structuré selon le Composite et sa structureVisiteur correspondante. Cette transformation est validée par la génération d une précondition qui garantit statiquement sa réussite. Elle est aussi adaptée afin qu elle prenne en compte la transformation de quatre variations du patron Composite et est validée sur le programme JHotDraw qui comporte ces quatre variations. Nous définissons aussi une transformation réversible au sein du patron Singleton afin de pouvoir bénéficier de l optimisation par l introduction de ce patron et la souplesse par sa suppression selon les exigences de l utilisateur du logiciel.Maintenance consumes a large part of the cost of software development which makes the optimization of that cost among the important issues in the world of software engineering. In this thesis we aim to optimize this cost by making these maintenances modular. To achieve this goal, we define transformations of program architectures that allow to transform a program to maintain into an architecture that facilitates the maintenance tasks required. We focus on transformation between architectures having dual modularity properties such as Composite and Visitor designpatterns. In this context, we define an automatic and reversible transformation based on refactoring between a program structured according to the Composite structure and its corresponding Visitor structure. This transformation is validated by generating a precondition which guarantees statically its success. It is also adapted to take into account the transformation of four variations of Composite pattern and it is then applied to JHotDraw program in which these four variations occur. We define also a reversible transformation in the Singleton pattern to benefit from optimization by introducing this pattern and flexibility by its suppression according to the requirements of the software user.NANTES-ENS Mines (441092314) / SudocSudocFranceF

    Un cadre formel pour le développement orienté aspect : modélisation et vérification des interactions dues aux aspects

    Full text link
    Thèse numérisée par la Division de la gestion de documents et des archives de l'Université de Montréal

    Compilation statique de Java

    Get PDF
    Mémoire numérisé par la Direction des bibliothèques de l'Université de Montréal

    Langage de programmation pour les simulations géoréférencées à base d'agents

    Get PDF
    Lors des dix dernières années, les technologies basées sur les agents logiciels ont été appliquées dans plusieurs domaines tels que les jeux vidéo, les films où évoluent des personnages animés, en réalité virtuelle, dans le développement d’interfaces où sont fournis des agents « assistants », dans les applications Web éducatives utilisant des personnages virtuels, pour ne nommer que ceux-là. Dans plusieurs de ces domaines, les simulations à base d’agents nécessitent l’intégration de données géographiques. Celles-ci intègrent une dimension spatiale et permettent la simulation de divers phénomènes complexes tels que ceux qui sont liés aux dynamiques urbaines. Ce qui a mené à un nouveau domaine de recherche : les simulations géoréférencées à base d’agents (ou SGBA). Certaines plateformes logicielles développées pour les SGBA permettent à l’aide de différentes techniques, la spécification et l’implantation de simulations à base d’agents. Par contre, les comportements des agents qui peuvent y être spécifiés sont encore très limités, ce qui est insuffisant pour le développement de simulations géoréférencées de phénomènes sociaux. Dans ce type de simulations, les agents doivent agir de façon autonome et posséder des capacités d’appréhension de l’espace et de prise de décisions en rapport avec l’environnement géographique dans lequel ils évoluent. Pour posséder de telles caractéristiques, nous considérons que ces agents doivent au minimum posséder un mécanisme de perception autonome et individuel (de l’espace physique, des autres objets et agents), en plus d’être proactifs et posséder des comportements autonomes prenant en compte de leur connaissance du monde dans lequel ils évoluent (leur environnement virtuel). La spécification de ce type d’agents est une tâche très difficile et, à notre connaissance, aucun environnement de développement actuel n’offre de langage de programmation permettant de créer ce type d’agents. Dans le contexte du projet PLAMAGS (Programming LAnguage for MultiAgent GeoSimulations), nous avons développé un nouveau langage de programmation orienté-agent, une démarche de conception appliquée et un environnement de développement permettant la création et l’exécution rapide et simple de simulations géoréférencées à base d’agents. Les principales contributions du projet PLAMAGS sont : - Un langage de programmation descriptif, procédural et orienté-objet complet et utilisable à toutes les étapes du processus de développement et totalement dédié aux SGBA. Ce qui permet d’éliminer l’étape de transition et de transposition du modèle théorique en langage de programmation et ainsi éviter toutes les difficultés qui y sont rattachées. - Une démarche de conception appliquée où les étapes de modélisation, conception, implémentation, exécution et validation sont fusionnées et intégrées à chaque étape de la démarche. - Un modèle comportemental puissant (pour les agents), intuitif, modulaire, extensible et flexible permettant un développement itératif incrémental à l’aide d’abstractions prenant la forme de décompositions (sous-comportements). - Un modèle d’interactions spatialisées clairement défini et directement intégré dans les primitives du langage de programmation.In the last decade, technologies based on software agents have been used in many domains such as video games, movies containing animated characters, virtual reality, in visual interfaces development where “wizards” are supplied and in educative Web applications using virtual characters, just to name a few. In many of these domains, agent-based simulations require the integration of geographic data. These add a spatial dimension and allow the simulation of many complex phenomena such as those included in urban dynamics. This has spawned a new research field: Multi-Agent- Geo-Simulation (MAGS for short). Some of the frameworks developed for MAGS use many different techniques to specify and implement tagent-based simulations. However, the agents’ behaviors that can be specified are usually very limited and are insufficient for the development of geo-referenced simulation of social phenomena. In this type of simulation, the agents must act autonomously and have the ability to perceive the environment in which they evolve, and then take decision based on these perceptions. To benefit from such characteristics, we consider that these agents must minimally have a perception mechanism that is autonomous and unique to each agent which need as well as to be proactive and have autonomous behavior in relation to their virtual environment. The specification of this type of agent is a difficult task and, to the best of our knowledge, none of the existing development environment offers a language able to fulfill it. In the context of the PLAMAGS (Programming LAnguage for Multi-Agent Geo-Simulations) Project, we developed a new agent-oriented programming language, an applied design methodology and an integrated development environment that allow a quick and simple design and execution cycle of agent-based geo-referenced simulations. The main contributions of this work are as follows: - A full-fledged descriptive programming language, procedural and object-oriented that is usable at every stage of the development cycle and that is dedicated to MAGS. This language eliminates the transition and transposition from the theoretical model to the programming language and thus avoids all the difficulties inherent to such a transposition task. - An applied development methodology where the modeling, design and implementation, execution and validation steps are merged and integrated throughout the development cycle. - A behavioral model that is powerful (agent wise), intuitive, modular, extensible and flexible and thus allows a sequential and iterative development using abstractions based on decomposition (sub-behaviors). - A spatialized interaction model that is clearly defined and directly integrated in the primitives of the programming language

    Actes des 2èmes journées sur l’Ingénierie Dirigée

    Get PDF
    National audienceL’ingénierie dirigée par les modèles (IDM), appelée en anglais MDE (Model-Driven Engineering) ou aussi MDD (Model-Driven Development) place le modèle au centre du processus de conception et permet à cette notion de modèle de passer d’un rôle contemplatif à un rôle unificateur vis-à-vis des autres activités du cycle de développement du logiciel. L’IDM doit alors être vu non pas comme une révolution, mais comme un moyen d’intégrationde différents espaces techniques pour aller vers une production automatisée des logiciels.L’ingénierie dirigée par les modèles apporte alors des solutions à la construction de ces nouveaux logiciels en proposant des approches de modélisation, de métamodélisation, de détermination du domaine, de transformation et de prise en compte des plates-formes. Ces approches sont accompagnées de démarches de conception et de moyens de génération de code, mais également de validation et de vérification de la conformité des modèles produits vis-à-vis des métamodèles. Elles sont proches des idées actuelles comme la programmation générative, les langages spécifiques de domaine (DSL), le MIC (Model Integrating Computing) ou encore les usines à logiciels (Software factories). Après le succès des journées IDM à Paris en 2005, la seconde édition de ces journées se déroule à Lille et a pour objectif de rassembler les chercheurs francophones intéressés par ce domaine et souhaitant participer à la structuration de cette communauté scientifique émergente

    Facilités de typage pour l'ingénierie des langages

    Get PDF
    Le nombre et la complexité toujours croissants des préoccupations prises en compte dans les systèmes logiciels complexes (e.g., sécurité, IHM, scalabilité, préoccupations du domaine d'application) poussent les concepteurs de tels systèmes à séparer ces préoccupations afin de les traiter de manière indépendante. L'ingénierie dirigée par les modèles (IDM) prône la séparation des préoccupations au sein de langages de modélisation dédiés. Les langages de modélisation dédiés permettent de capitaliser le savoir et le savoir-faire associés à une préoccupation au travers des constructions du langage et des outils associés. Cependant la définition et l'outillage d'un langage dédié demande un effort de développement important pour un public par définition réduit. Nous proposons dans cette thèse une relation liant les modèles et une interface de modèle permettant de faciliter la mise en place de facilités de typage pour la définition et l'outillage d'un langage dédié. Cette interface expose les éléments de modèle et les transformations de modèles associés à un langage de modélisation dédié. Nous représentons une telle interface par un type de modèles supportant des relations de sous-typage et d'héritage. Dans ce but nous définissons : une relation de typage entre les modèles et les langages de modélisation dédiés permettant de considérer les modèles comme des entités de première classe ; des relations de sous-typage entre langages de modélisation dédiés permettant la réutilisation de la syntaxe abstraite et des transformations de modèles.The ever growing number and complexity of concerns in software intensive systems (e.g., safety, HMI, scalability, business domain concerns, etc.) leads designers of such systems to separate these concerns to deal with them independently. Model-Driven Engineering (MDE) advocates the separation of concerns in Domain-Specific Modeling Languages (DSMLs). DSMLs are used to capitalize the knowledge and know-how associated with a concern through the language constructs and its associated tools. However, both definition and tooling of a DSML require a significant development effort for a limited audience. In this thesis, we propose a relationship between models and model interfaces in order to ease the design of typing facilities for the definition and tooling of a DSML. This interface exposes the model elements and model transformations associated with a DSML. We represent such an interface by a model type supporting subtyping and inheritance relationships. For this purpose we define : a typing relationship between models and DSMLs allowing to consider models as first-class entities; subtyping relationships between DSMLs enabling the reuse of abstract syntax and model transformations.RENNES1-Bibl. électronique (352382106) / SudocSudocFranceF

    "Principes et implantation de vues dans les langages Orientés-objets"

    Full text link
    Thèse numérisée par la Direction des bibliothèques de l'Université de Montréal

    Actes des 14e journées sur les Approches Formelles dans l'Assistance au Développement de Logiciels

    Get PDF
    National audienceCet ouvrage présente les actes des 14èmes journées sur les Approches Formelles dans l'Assistance au Développement de Logiciels (AFADL'2015) qui se sont tenues à Bordeaux les 9 et 10 juin 2015

    Peter, le langage qui n’existe pas...

    Get PDF
    “Inside every large language is a small language struggling to get out ...” [Igarashi et al. 2001]“... and inside every small language is a sharp extension looking for better expressivity ...” [Liquori & Spiwack 2008]It is my privilege and pleasure to introduce Peter, the language that does not exist... The Peter language contains almost the linguistic features I have introduced and investigated in the field of functional and object-oriented programming, plus some new features not published yet. In Peter’s Habilitation, I will try to limit as much as possible the mathematical overhead and the technicalities (e.g. full set of rules, full proofs of theorems, etc.). In my opinion, the habilitation thesis should not be a mere translation of the candidate’s most successful papers (3), nor a commented curriculum vitæ, nor a survey of all the related works in his scientific area (4), just to mention a few “classic Habilitation styles”. It is my opinion that it should be short in length since it is experienced that a very few Habilitation thesis are really downloaded, cited and read. Oftenly, habilitation thesis are not even made accessible on the Web. Peter’s Habilitation will be based on the following three points: • (Modularity) I will present a (Turing complete) kernel of Peter, called Baby Peter, and I will continue in the rest of the Habilitation to extend it in a modular fashion until the final extension, called Wise Peter. Baby Peter is a functional language with object-oriented features equipped with a sound type system. Peter bears some similarities to Atsushi, Benjamin and Phil’s Featherweight Java [IPW01] and Alonso Church’s typed lambda calculus [Chu41]. The main difference lies in an ad hoc exception-handling mechanism allowing the programmer to choose the type system according to her/his necessities and goals. Even more, it allows the programmer to write her/his own type system (see item (Type-programmable)). Some chapters will focus on operational semantics, some others on type systems, some others on both. All topics will be treated in a “lightweight fashion”. Examples of extensions are for instance mixing class-based and pure object-based features, but also improving proof languages à la LF with pattern matching facilities and including those metalanguages to Peter in order to mix algorithms and their correctness proofs. • (Verbatim-like) Instead of annoying the reader with a plain French translation of some of my most relevant papers (6), I will show, for each extension, only some key rules of the operational semantics or of the type system (every system has at least a key rule...) and some motivating examples. I do not plan to prove type soundness for each extension of Peter: the whole soundness of Wise Peter is left as a challenge for the “next” user friendly proof assistant.• (Type-programmable) Type systems for programming languages and proof languages are fixed a priori by language designers; type systems are not first class citizens. To my little knowledge, no language allows the programmer to build, choose, or mix type systems. The idea of modifying the type discipline at compile time is not completely new; a quite inspiring work has been done by the “visionary-6-pages” paper by Gilad in 2004 [Bra04] called Pluggable Type Systems. The possibility to mixing type systems and using it as a first class citizens is an interesting research strand that will constitute an original contribution in Peter’s Habilitation. With the intention of disseminating science in a simple, clear and pedagogical way, and inspired by the works of Kim [Bru99, TKB01, BDKT03, RBC+ 05, Bru02] and Gilles [Dow03, Dow07], I wish you a very nice reading of the Peter’s Habilitation. 3 Although certain parts are taken of my articles. 4 The typographic convention is that references to my papers are in “numeric” style while references to other papers are in “alphanumeric” style. 6 We provide a CD and a Web site with all my papers.C’est mon privilege et plaisir d’introduire Peter, le langage qui n’existe pas... Le langage Peter contient quasiment tous les aspects linguistiques que j’ai introduits et étudiés dans le domaine de la programmation fonctionnelle et objets, ainsi que quelques idées qui n’ont pas encore été publiées. Dans l’habilitation de Peter, la démarche que je suivrai consiste à essayer de limiter les détails concernant les aspects théoriques et techniques (c-à-d. les ensembles complets des règles de typage, suites de théorèmes abscons, etc.). Mon mémoire d’habilitation ne sera pas une traduction brutale des différents articles publiés (1), ni un curriculum vitæ commenté, ni un panorama de tous les articles dans un domaine scientifique (2), pour ne citer que quelques styles classiques de thèses d’habilitation. Tout d’abord elle sera courte car l’expérience enseigne que très peu de thèses d’habilitation sont réellement téléchargées, citées et lues. Très souvent, les thèses d’habilitation ne sont même pas accessibles sur le Web. L’Habilitation de Peter sera fondée sur les trois « dogmes » suivants: • (Modularité) Je commencerai par le plus petit fragment complet (au sens de Turing) de Peter, appelée Baby Peter et je continuerai de façon modulaire, d’extension en extension, jusqu’à l’extension finale appelée Sage Peter. Baby Peter est un langage fonctionnel avec des constructions linguistiques orientées objet et un système de types correct. Peter partage quelques similitudes avec Featherweight Java de Atsushi, Benjamin et Phil [IPW01] et le lambda calcul typé de Alonso (Church) [Chu41]. La différence principale entre Featherweight Java et Peter, est un mécanisme d’exceptions ad hoc, qui permet au programmeur de décider quel système de types sera le plus adapté à l’egard de ses nécessités et objectifs. En plus, ce mécanisme permet au programmeur d'écrire son système de types (voir point Type-programmable). Certains chapitres seront focalisés sur un nouveau système de types, tandis que, dans d’autres chapitres, l’extension sera associée à une extension de la syntaxe et du système de types. Tous les arguments seront traités d’une façon accessible au plus grand nombre de lecteurs. Comme exemples d’extensions, je citerai une forme nouvelle d'héritage multiple, une extension de Peter qui permettra à un objet de « s'échapper de sa classe », une extension de Peter avec filtrage évolué et enfin une extension de Peter qui permettra de mélanger algorithmes et preuves de correction d’algorithmes.• (Verbatim-like) Plutôt que d'asséner à mes lecteurs une traduction française mot-à-mot de mes articles scientifiques (5), j’ai privilegié une présentation simple de chaque extension, utilisant uniquement quelques règles clés de la sémantique opérationnelle ou du système de types (il y a toujours une règle clé...), en ajoutant immédiatement des exemples pour motiver et comprendre son utilisation correcte. Je ne prouverai pas la propriété de complétude de chaque système de types qui étend Peter : la complétude de Sage Peter est proposée en défi au prochain assistant à la preuve convivial. • (Type-programmable) Les systèmes de types pour les langages de programmation et pour la preuve sont fixés a priori par leurs concepteurs et ne sont pas des objets de première classe pouvant être modifiés ou simplement utilisés par le programmeur qui en subit les qualités et les faiblesses. À ma connaissance, aucun langage ne permet au programmeur de « programmer » sa discipline de types personnelle. L’idée de modifier la discipline de typage à la compilation n’est pas très nouvelle ; un article « visionnaire » de 6 pages, qui m'a eclairé, a été Pluggable Type System de Gilad [Bra04] sorti en 2004. La possibilité de permettre au programmeur d'écrire sa propre discipline de typage et de l’utiliser à la volée est par elle-même une contribution originale dans l’habilitation de Peter. Avec l’envie de diffuser la connaissance scientifique de façon simple, claire et pédagogique, inspiré par les ouvrages de Kim [Bru99,TKB01, BDKT03, RBC+ 05, Bru02] et Gilles [Dow03, Dow07], il ne me reste plus qu'à vous souhaiter une bonne lecture de l’habilitation de Peter. 1. Bien que certaines parties soient tirées de mes articles. 2. La convention typographique est que les référence à mes articles soit en style « numérique » tandis que les références à d’autres articles soit en « alphanumérique ». 5 Un CD et un site web contiendront tous mes articles. <br
    • …
    corecore