51 research outputs found
A Top-Down Approach to Managing Variability in Robotics Algorithms
One of the defining features of the field of robotics is its breadth and
heterogeneity. Unfortunately, despite the availability of several robotics
middleware services, robotics software still fails to smoothly handle at least
two kinds of variability: algorithmic variability and lower-level variability.
The consequence is that implementations of algorithms are hard to understand
and impacted by changes to lower-level details such as the choice or
configuration of sensors or actuators. Moreover, when several algorithms or
algorithmic variants are available it is difficult to compare and combine them.
In order to alleviate these problems we propose a top-down approach to
express and implement robotics algorithms and families of algorithms so that
they are both less dependent on lower-level details and easier to understand
and combine. This approach goes top-down from the algorithms and shields them
from lower-level details by introducing very high level abstractions atop the
intermediate abstractions of robotics middleware. This approach is illustrated
on 7 variants of the Bug family that were implemented using both laser and
infra-red sensors.Comment: 6 pages, 5 figures, Presented at DSLRob 2013 (arXiv:cs/1312.5952
Redécouvrir les Solutions des Design Patterns
A design pattern can be seen as a couple. Most formal descriptions of design patterns focus on the solution part and do not pay attention to the problem nor to the links between problems and solutions. In this paper we propose to express these problems using meta-variables which encapsulate a code fragment (awkwardly) expressing the intention of the developer. A generalization of the classical fold transformation will refactor this awkward term by displacing it to the proper functional or data abstraction. This generalized folding seems to be able to represent mechanisms pervasive in design patterns and to reproduce their solutions. This gives hope that much better tool support can be achieved than with today's approaches.Un design pattern peut être vu comme un couple . La plupart des descriptions formelles des design patterns se concentrent sur la solution et néglige le problème ainsi que les liens qui les unissent. Dans ce papier nous proposons d'exprimer ces problèmes en utilisant des méta-variables qui encapsulent un fragment de code exprimant (maladroitement) l'intention du développeur. Une généralisation d'une classique transformation dite de pliage permet de corriger le terme intentionnel en le déplaçant vers une nouvelle abstraction fonctionnelle ou de données. Ce pliage généralisé semble en mesure de représenter des mécanismes constamment utilisés dans les design patterns et de reproduire leurs solutions. Ceci permet d'espérer que les design patterns pourront à l'avenir être beaucoup mieux outillés
Redécouvrir les Solutions des Design Patterns
A design pattern can be seen as a couple. Most formal descriptions of design patterns focus on the solution part and do not pay attention to the problem nor to the links between problems and solutions. In this paper we propose to express these problems using meta-variables which encapsulate a code fragment (awkwardly) expressing the intention of the developer. A generalization of the classical fold transformation will refactor this awkward term by displacing it to the proper functional or data abstraction. This generalized folding seems to be able to represent mechanisms pervasive in design patterns and to reproduce their solutions. This gives hope that much better tool support can be achieved than with today's approaches.Un design pattern peut être vu comme un couple . La plupart des descriptions formelles des design patterns se concentrent sur la solution et néglige le problème ainsi que les liens qui les unissent. Dans ce papier nous proposons d'exprimer ces problèmes en utilisant des méta-variables qui encapsulent un fragment de code exprimant (maladroitement) l'intention du développeur. Une généralisation d'une classique transformation dite de pliage permet de corriger le terme intentionnel en le déplaçant vers une nouvelle abstraction fonctionnelle ou de données. Ce pliage généralisé semble en mesure de représenter des mécanismes constamment utilisés dans les design patterns et de reproduire leurs solutions. Ceci permet d'espérer que les design patterns pourront à l'avenir être beaucoup mieux outillés
Towards Tool Support for Design Patterns Using Program Transformations
Design patterns have greatly helped spreading a limited number of well-tried solutions to recurring object-oriented problems. But as new patterns are introduced at a steady rate, the concept must evolve so that tools can help programmers not to be lost, facing a host of patterns. In this paper, we propose that design patterns be systematically analyzed and reformulated to exhibit a reasoning binding solutions to precisely stated problems, given a set of mechanisms. We show on some creational patterns how these mechanisms can be described as program transformations and how an assistant tool could systematically explore the set of potential solutions induced by these transformations. This would both help the selection and the instantiation of the appropriate patterns
Vers une approche "générer et tester" pour aider à utiliser les patrons de conception
National audienc
Support des patrons de conception dans les outils UML
Les outils UML intégrant le support de l utilisation des patrons de conception doivent permettent une mise en œuvre correcte des solutions de patrons, sans remettre en cause la cohérence des modèles UML. Ils doivent permettre aussi de vérifier que les solutions des patrons appliqués résolvent réellement les problèmes de conception auxquels ces solutions sont destinées et que les contextes d application ne contrarient pas les principes de conception que ces solutions utilisent pour résoudre les problèmes. Nous nous intéressons dans cette thèse aux aspects solution et problème des patrons de conception. Nous proposons un ensemble de contraintes et de transformations permettant : i) une intégration correcte et cohérente des solutions de patrons dans les modèles UML. ii) spécifier la partie des problèmes de conception liés au couplage des patrons de conception GOF. Nous utilisons l ensemble de contraintes et de transformations obtenues sous forme d une extension au standard UML.PARIS-BIUSJ-Thèses (751052125) / SudocPARIS-BIUSJ-Mathématiques rech (751052111) / SudocSudocFranceF
Transformations de programmes et contraintes de qualité pour améliorer l'outillage des patrons de conception
Les patrons de conception présentent des solutions éprouvées par des experts à des problèmes récurrents de conception. Plusieurs travaux ont essayé de traduire sous une forme exploitable automatiquement l'expertise que les patrons visent à disséminer. Toutefois en négligeant les problèmes que ces patrons résolvent et les liens qui relient ces problèmes aux solutions, le support des patrons dans les outils reste très superficiel. En effet pour représenter le savoir faire sous-jacent aux patrons, il faudrait pouvoir décrire une situation de départ problématique et construire une solution à partir de cette situation. Notre approche repose donc essentiellement sur deux propositions : 1) il est possible si le concepteur explicite les contraintes de qualité que l'application doit satisfaire, de détecter automatiquement certains problèmes de conception; 2) il est possible avec un nombre restreint de transformations de reproduire au moins en partie la solution d un grand nombre de patrons GoF.PARIS-BIUSJ-Thèses (751052125) / SudocPARIS-BIUSJ-Mathématiques rech (751052111) / SudocSudocFranceF
Usine logicielle de composants de simulation de procédés CAPE-OPEN
L IFP est depuis une dizaine d'années acteur principal du développement du standard CAPE-OPEN pour l'interopérabilité de composants de simulation de procédés. Ce standard définit les interfaces que doivent implémenter les composants de simulation offerts par des fournisseurs logiciels différents pour pouvoir communiquer entre eux. La plupart des environnements commerciaux de simulation sont compatibles CAPE-OPEN, le plus souvent dans sa déclinaison Microsoft COM, parfois dans sa déclinaison CORBA, et prochainement sous une déclinaison .NET. Toutefois, même si le standard a contribué à la résolution des problèmes d interopérabilité, l architecture à base de composants qu il impose a introduit une complexité supplémentaire, difficile à maîtriser notamment par les experts métier. En effet, le développement de nouveaux composants, et la maintenance de composants existants, nécessitent des connaissances non fonctionnelles liées au standard lui-même, et à sa déclinaison intergicielle. D une part, ces composants contenant des connaissances d origines diverses, leur développement est complexe. Ceci se traduit en pratique par la nécessité de faire collaborer plusieurs experts lors du développement et la maintenance des composants. D autre part, les connaissances étant fortement couplées dans le code, ce dernier est difficile à comprendre, et donc difficile à maintenir. Ainsi, l objectif de la thèse est donc de disposer d'un système d'ingénierie logicielle capable de faciliter l adaptation d un composant vers n'importe quelle implémentation, en particulier COM ou .NET. Plus précisément, l objectif est d arriver à minimiser cette complexité, en réalisant l objectif de l Ingénierie Dirigée par les Modèles (IDM), à savoir l indépendance par rapport à la plateforme, dans un contexte particulier, de façon à permettre la génération de composants vers différents intergiciels. Afin d'atteindre cet objectif, nous proposons de nous appuyer sur les techniques de méta modélisation et de transformation de modèles. L approche proposée consiste à séparer les trois aspects nécessaires au développement de ces composants : l aspect métier, l aspect CAPE-OPEN, et l aspect intergiciel. Ces aspects sont modélisés séparément avec des langages visuels, conçus spécifiquement pour chaque aspect, et sont combinés automatiquement grâce à des mécanismes de transformation de modèles. Dans un premier temps, un état de l art des principes et des pratiques de l IDM est effectué. A travers cette étude, nous mettrons l accent sur trois questions fondamentales, à savoir comment représenter les connaissances, comment transformer les connaissances, et enfin comment réunir les pratiques dans un canevas commun supportant un processus de développement agile. A la suite de cette étude, nous proposons une approche dirigée par les modèles basée sur la modélisation dédiée des aspects, et la transformation de modèles à base de graphes. Cette approche a été implémentée pour générer la structure interne du composant, ainsi qu une partie de sa sémantique. Enfin, nous validons l approche par rapport à un ensemble de critères, certains qualitatifs et d autres formels, ainsi que par rapport à un ensemble de changements anticipés sur les aspects considérés.PARIS-BIUSJ-Mathématiques rech (751052111) / SudocSudocFranceF
- …