Expérimentation d un modèle abstrait de syntaxe abstraite

Dimension: px
Commencer à balayer dès la page:

Download "Expérimentation d un modèle abstrait de syntaxe abstraite"

Transcription

1 MajecSTIC 2009 Avignon,France, du16au 18novembre2009 Expérimentation d un modèle abstrait de syntaxe abstraite Fabien Cadoret et Mickaël Kerboeuf Université de Bretagne Occidentale, LISyC, 20 avenue Le Gorgeu BREST Cedex 3 Contact : Fabien.Cadoret@etudiant.univ-brest.fr Résumé Dans le contexte de l ingénierie dirigée par les modèles, un DSL est un langage dédié à l expression et à la manipulation de données spécifiques à un certain domaine. Pour qu un DSL soit exploitable, il doit être accompagné d outils d analyse et de transformation. Ces outils ne sont pas tous spécifiquement liés au DSL. Par exemple, les outils d optimisation fondés sur l analyse du flot de contrôle ne sont pas liés à un quelconque domaine et devraient donc pouvoir être appliqués à plusieurs DSL. Or, dans un développement dirigé par la syntaxe, ces outils sont difficiles à réutiliser car trop intimement liés au DSL pour lequel ils ont été conçus. Dans le but de favoriser la réutilisation, nous proposons une démarche qui consiste à créer en premier lieu un modèle abstrait des données requises par les outils partagés. Les DSL ciblés sont ensuite dérivés de ce modèle abstrait. Ils sont ainsi par construction compatibles avec les outils correspondants. Nous expérimentons le bénéfice de cette démarche sur deux DSL de domaines et de syntaxes très différents. Abstract In the context of model-driven engineering, a DSL is a language dedicated to a particular domain. Using a DSL implies to build analysis and processing tools that are not all specifically related to the DSL. For instance, optimization tools based on the analysis of control flow graphs are not specifically linked to any domain. They should be applied to different DSL. But in a syntax-driven development, these tools are not easily reusable because they are too tightly linked to the DSL for which they have been designed. In order to promote reusability, we suggest a model-driven approach whose first step is the definition of an abstract model of data that are required by the shared tools. DSLs are derived from this abstract model. By construction, they are consistent with the corresponding tools. In this paper, we investigate the benefit of this approach on two DSLs whose syntaxes and domains are very different. Mots-clés: génie logiciel, modèles, IDM, DSL, syntaxe abstraite Keywords: software engineering, models, MDE, DSL, abstract syntax 1. Introduction La réutilisation de composants est un moyen fondamental de construire efficacement des logiciels fiables[6]. Dans le cas particulier des composants d analyse et de transformation de données exprimées dans un langage spécifique, la réutilisation se heurte à certains écueils. Dans cette section, nous précisons le contexte général de la production logicielle, plus particulièrement dans le cadre de l ingénierie dirigée par les modèles. Nous présentons ensuite le contexte particulier des langages à domaines spécifiques, et le problème de réutilisation auquel nous nous intéressons. Production du logiciel L industrie du logiciel est confrontée à un état de crise chronique qui se traduit par des coûts et des délais de développement difficiles à maîtriser, une qualité difficile à garantir, et une très faible capacité pour un produit existant à être réutilisé dans différents contextes. Les phases de maintenance sont elles-mêmes difficiles à maîtriser en termes de coûts et de délais [4]. Cette situation est en partie due au caractère immatériel de la production. Une solution logicielle à un problème est notamment constituée de programmes, de données, de procédures et de documentations, dont on peut facilement sous-estimer la complexité. De plus, la constante et rapide

2 2 Fabien Cadoret, Mickaël Kerboeuf progression de la technologie de l information s accompagne d une constante et rapide progression des besoins exprimés. L industrie du logiciel doit donc en permanence s adapter, d une part àces nouveaux besoins, et d autrepart àce que la technologie offrede plus innovant sans qu il y ait parfois suffisamment de recul pour l évaluer complètement. Ingénierie dirigée par les modèles Pour pallier cet état de crise, un certain nombre de pratiques ont été proposées, étudiées et partiellement adoptées par l industrie du logiciel. Parmi elles, l ingénierie dirigée par les modèles[7, 15] est un paradigme d ingénierie dans lequel le modèle d un logiciel est au cœur du processus de son développement. Ce modèle a pour objectif de structurer les données et les traitements qui caractérisent les entités conceptuelles que manipule le logiciel, ainsi que les flux d informations entre ces entités. Parmi elles, on peut distinguer les entités purement techniques liées à l architecture du logiciel (e.g. réseaux, bases de données), et les entités métier liées au domaine d application du logiciel (e.g. la banque, la pêche). Dans un développement dirigé par les modèles d un logiciel, il convient dans un premier temps de définir, ou de réutiliser, le modèle de son domaine d application. Ce modèle, également appelé métamodèle, décrit des concepts métier, ainsi que leurs propriétés, leurs relations et leurs contraintes. Il décrit également la façon de les manipuler. Le premier but est de capitaliser la connaissance d un domaine métier afin de la réutiliser dans différentes applications liées à ce même domaine. Dans une certaine mesure, via des environnements spécialisés[3,5,14], un métamodèle permet également de générer tout ou partie d un logiciel, d en vérifier les propriétés, de le documenter, et de maîtriser ainsi plus facilement son évolution. Domain Specific Languages Un langage spécifique à un domaine, ou DSL (i.e. Domain Specific Language), est un langage dédié à l expression et à la manipulation des concepts d un domaine métier particulier [11, 16]. Par exemple, SQL peut être considéré comme un DSL spécifiquement dédié au domaine des bases de données relationnelles. Un langage de script shell peut être considéré comme un DSL spécifiquement dédié au domaine de l administration des systèmes. L usage d un DSL est donc ciblé, par opposition à l usage d un langage généraliste comme Java ou UML. Production de l outillage d un DSL L outillage d un DSL est l ensemble des outils d analyse et de transformation qui manipulent les programmes de ce DSL. Par exemple, l outillage de SQL pourra contenir un outil de mise en forme normale, ou un compilateur. La démarche qui consiste à développer conjointement un DSL et son outillage peut être considéré comme la généralisation d un processus d ingénierie dirigé par les modèles [10]. En effet, les modèles, et en particulier les modèles de domaines qui spécifient des entités métier, sont largement utilisés, et très tôt, dans le processus de développement d une application centrée sur un DSL. L importance des modèles intermédiaires qui permettent de transformer un programme source exprimé dans un DSL en une certaine cible (e.g. une entité du domaine, ou une propriété à valider) a été montré depuis plusieurs années(e.g.[2]). Problématique et plan de l article Plusieurs DSL peuvent requérir un même outil d analyse ou de transformation tout en étant très différents du point de vue de leur syntaxe et de leur domaine respectif. Il apparaît alors naturel de tenter de réutiliser cet outil dans l outillage de chacun des langages. Or, on constate que dans une démarche traditionnelle de développement dirigée par la syntaxe, ces outils sont difficiles à réutilisercartropintimementliésàlasyntaxedesdslpourlesquelsilsontétéconçus.afindefavoriser la réutilisation, nous proposons une démarche dirigée par les modèles qui vise à abstraire en premier lieu toute construction syntaxique. Dans cet article, nous détaillons cette proposition et nous justifions sa pertinence en l expérimentant sur deux exemples concrets. Dans la prochaine section, nous exposons en détail le principe de notre proposition. Dans la section suivante, nous présentons son expérimentation. En conclusion, nous présentons les travaux connexes et futurs. 2. Modèle abstrait de syntaxe abstraite La syntaxe abstraite d un langage est un modèle statique dont les instances représentent des programmes du langage. Généralement, la syntaxe abstraite provient de la transformation d une syn-

3 Expérimentation d un modèle abstrait de syntaxe abstraite 3 taxe concrète issue d une grammaire non-contextuelle(typiquement exprimée en forme de Backus- Naur). La syntaxe concrète est structurée par des règles de dérivation qui portent sur des vocabulaires terminaux et non-terminaux. Les données conformes à ce type de syntaxes concrètes sont des arbres appelés arbres de dérivation ou arbre de syntaxe concrète [1]. La syntaxe abstraite est une simplification de la syntaxe concrète qui consiste typiquement à abstraire les notions de règles de dérivation, de terminaux et de non-terminaux. Au delà de ces premières simplifications, la syntaxe abstraite peut être plus ou moins proche de la syntaxe concrète selon les objectifs d analyse et de transformation des données (e.g. compilation ou vérification) Développement dirigé par la syntaxe La transformation de la syntaxe concrète vers la syntaxe abstraite est traditionnellement programmée par les actions sémantiques qui décorent une grammaire fournie à un générateur d analyseur syntaxique. Ce type d analyseur produit des instances conformes à la syntaxe abstraite à partir d un programme syntaxiquement correct. L outillage d un DSL est constitué d un analyseur syntaxique, mais aussi d outils d analyse et de transformation. Les données d entrée de ces outils sont des instances conformes au modèle de syntaxe abstraite. Les outils d analyse produisent des informations qualitatives (e.g. validité du typage statique). Les outils de transformation produisent des données conformes au même modèle(e.g. optimisation), ou conformes à d autres modèles (e.g. production de code exécutable). Lorsqu on développe l outillage de plusieurs DSL, on peut constater qu un certain nombre d outils réalisés séparément et spécifiquement pour chacun d eux ont les mêmes finalités. Par exemple, les outils d optimisation qui analysent le flot de contrôle pour éliminer les variables inutiles et le code mort (i.e. code jamais exécuté) peuvent être nécessaires pour des DSL très différents mais partageant un même caractère impératif. Il apparaît donc naturel de tenter de réutiliser ces composants pour les différents langages concernés. Or, on constate que la réutilisation d un composant est loin d être immédiate. En effet, comme les modèles de syntaxe abstraite des langages proviennent de leurs syntaxes concrètes, ils encapsulent étroitement des notions plus ou moins spécifiquement liées aux domaines avec des constructions purement liées aux langages Développement dirigé par les outils Afin de favoriser la réutilisation, nous proposons une démarche dirigée par les modèles dont la première étape consiste à créer indépendamment d une quelconque syntaxe le modèle des données qui doivent être traitées par les outils ciblés. Nous appelons ce modèle le modèle abstrait de syntaxe abstraite. Il s agit bien d un modèle de syntaxe abstraite puisqu il décrit les données qu au moins un DSL doit permettre d exprimer. Nous le qualifions d abstrait car il n est pas issu de la syntaxe concrète d un DSL particulier. La production de ce modèle abstrait consiste à mettre en place les structures de données les mieux adaptées aux outils. Il pourra s agir par exemple d un binary decision diagram pour un model-checker ou d un control data flow graph pour un compilateur. Cette première phase nécessite des connaissances expertes du domaine d application des outils, et une maîtrise des meilleures pratiques de conceptions de ce type d outils (e.g. design patterns). Le modèle abstrait doit avoir pour vertue première d être indépendant des constructions particulières d un langage. Il doit pouvoir aussi bien s appliquer à un langage existant qu à un langage créédetoute piècepour unbesoin précis. Dans une deuxième phase, les syntaxes abstraites des langages nécessitant ces outils sont dérivées du modèle abstrait. Sur la base de ces modèles dérivés, on peut alors achever l outillage de chacun des DSL en développant d une part les outils réellement spécifiques, et en invoquant d autre part les outils réutilisables définis au niveau abstrait. La figure 1 présente un exemple typique d une série de traitements appliqués à des programmes d un DSL procédural. Un programme conforme à une grammaire est syntaxiquement analysé par le parser qui produit des instances conformes au modèle de syntaxe abstraite. Un analyseur permet ensuite de vérifier le respect de certaines contraintes, notamment de typage. Ensuite, un optimiseur est chargé de produire un nouveau lot d instances, toujours conforme au modèle de syntaxe abstraite, dans lequel on a par exemple éliminé les variables inutiles et le code mort. Enfin, un pretty-printer permet de récupérer le programme ainsi analysé et optimisé dans la syntaxe concrète d origine. La syntaxe abstraite du DSL dérive d un modèle abstrait sur lequel sont fondés des outils par construction réutilisables (e.g. analyse de flot de contrôle utilisée par l optimiseur).

4 4 Fabien Cadoret, Mickaël Kerboeuf FIG. 1 Workflow dedsl connecté àunmodèle abstraitdesyntaxe abstraite 3. Expérimentation Dans cette section, nous présentons une expérimentation de cette approche sur deux langages. Les DSL sont généralement soit des langages existants, soit des langages créés pour un besoin spécifique. Nous avons retenu un langage dans chacune des catégories. Ils sont de syntaxes et de domaines très différents. Nous présentons d abord un développement traditionnel dirigé par la syntaxe, et nous présentons ensuite notre proposition. Nous en mesurons le bénéfice par une série de métriques portant notamment sur la quantité de code réutilisé et le temps de développement. Le détail et les résultats complets de cette expérimentation sont disponibles dans[9] Exemples de DSL: C-Script et PL/SQL Pour illustrer la catégorie des DSL créés pour un besoin spécifique, nous introduisons C-Script, un DSL de type C-Shell dont le domaine est l administration système. Il s agit syntaxiquement d un sous-ensemble très restreint du langage C. Il est possible de créer des fonctions locales, de déclarer des variables scalaires, et les seules fonctions primitives correspondent à des commandes système. Il est possible de rediriger l entrée et la sortie standard des commandes depuis, ou vers, des fichiers. Dans l exemple suivant, une variable est déclarée, typée, initialisée, et affichée. L affichageest redirigéversunfichier : int x = 2; echo x > resultat.txt; Le deuxième DSL que nous utilisons dans le cadre de l expérimentation est un langage existant. Il s agit de PL/SQL [13], une extension procédurale de SQL. Nous le considérons ici comme un DSL dédié à la gestion des bases de données relationnelles. L exemple suivant illustre la notion deprocédure,qui se distingue dansle langagede lanotion de fonction: CREATE PROCEDURE update_price { _newprice NUMBER; _pkey products.pkey%type; } IS BEGIN UPDATE products SET price = _newprice WHERE pkey = _pkey; END; 3.2. Production dirigée par la syntaxe La première étape de notre expérimentation consiste à développer des outils pour C-Script et PL/SQL en adoptant une démarche dirigée par la syntaxe. La figure 2 représente une portion du modèle de syntaxe abstraite de C-Script. Le modèle complet est disponible dans le rapport[9]. Il s agit d un modèle typiquement produit par une démarche dirigée par la syntaxe. En effet, ce sont les constructions syntaxiques exprimées par la grammaire du langage qui ont déterminé la structure finale du modèle. Dans l extrait présenté, une instruction (classe Statement) peut être la déclaration d une fonction locale (classe Function), une conditionnelle (classe If), un bloc (classe Bloc), une affectation (classe Assignment), ou une simple expression (classe Expression). Une conditionnelle est associée à deux sous-ensembles d instructions qui correspondent respectivement aux clauses alors et sinon. Elle est également associée à une expression correspondant à une condition. Parmi les expressions existantes, un appel (classe Call) est associé à un élément qui peut être appelé (classe Callable). Il s agit soit d une fonction locale, soit d un opérateur du langage. Un appel est également associé à une série éventuellement vide d expressions qui constitue ses paramètres effectifs.

5 Expérimentation d un modèle abstrait de syntaxe abstraite 5 FIG. 2 Extraitdu modèle desyntaxe abstraitede C-Script FIG. 3 Extraitdu modèle desyntaxe abstraitede PL/SQL Lafigure3estunextraitdumodèledesyntaxeabstraitedePL/SQL.Lemodèlecompletestdisponible dans le rapport[9]. Comme pour C-Script, ce modèle est typiquement issu d une grammaire. On y retrouve des notions déjà présentes pour C-Script(instructions, conditionnelles, blocs, affectations, expressions, variables, et constantes). Dans l extrait présenté ici, nous mettons l accent sur deux différences fondamentales : une expression n est pas une instruction; et les notions de procédure (classe PCallable) et de fonctions (classe FCallable) sont distinctes. L appel d une procédure (classe PCall) est une instruction. L appel d une fonction est une expression (classe FCall). On distingue ainsi le contexte d utilisation des procédures (procédures locales et prédéfinies comme INSERT) de celui des fonctions (opérateurs; fonctions locales et prédéfinies comme SELECT). Les modèles présentés ont été développés et outillés en Java. Parmi les outils développés, certains sont spécifiques comme l outil de vérification de la cohérence des requêtes d insertion pour PL/SQL, ou les pretty-printer qui permettent de récupérer les programmes dans leur syntaxe concrète d origine. Les autres outils développés ont des finalités partagées. Il s agit d outils d optimisation fondés sur une analyse du flot de contrôle : suppression des variables inutiles, détection des variables non initialisées, et propagation de constantes Production dirigée par les outils Le caractère impératif des deux langages explique l existence d outils à finalités communes fondés sur l analyse de flot de contrôle. Pour autant, l adaptation d un composant PL/SQL à C-Script(ou inversement) est loin d être immédiate. Par exemple, la distinction des concepts de fonctions et procédures en PL/SQL a un impact dans la syntaxe abstraite du langage qu on ne retrouve pas dans C-Script. Or, du point de vue de l analyse du flot de contrôle, cette distinction est inutile. Elle est pourtant prise en compte dans le composant d analyse développé pour PL/SQL, ce qui le rend difficilement adaptable à C-Script. Modèle abstrait pour l outillage du flot de contrôle Ce problème nous amène à définir un modèle dans lequel les données à analyser sont dans une forme optimale pour l outil. Dans notre exemple, il s agit d un graphe adapté à l analyse du flot de contrôle. Il apparaît partiellement en gris sur le modèle de la figure 4. Le modèle complet est

6 6 Fabien Cadoret, Mickaël Kerboeuf disponible dans le rapport [9]. Nous avons défini cette structure selon certains principes fondamentaux de conception objet(e.g. principe de separation of concerns, pattern composite). La structure ainsi construite n est pas soumise au problème évoqué de distinction de fonctions et procédures. FIG. 4 Extraitdumodèle abstrait(engris) et dérivationsdes syntaxes dec-scriptetpl/sql Les instructions (classe Statement) constituent les sommets du graphe. Parmi les différents types de sommets existant, nous illustrons ici les sommets reliés à un successeur (classe LinkedStatement). Parmi ceux, on distingue les instructions de contrôle(classe ControlStatement), les instructions basiques (classe BasicStatement) et les instructions d appel (classe CallContext), lesquelles sontliéesàunpoint d entréedansunsous-graphedeflot decontrôle (rôle entryjouéparuneinstance de la classe Statement). Les instructions de contrôle introduisent également un ou plusieurs sous-graphes, sélectionnés à l exécution par un sélecteur (classe Selector) qui indique à partir d une expression quel sous-graphe doit être parcouru. Enfin, une instruction basique a un successeur dans le graphe de flot de contrôle et encapsule une expression dont l évaluation produit typiquement un effetde bord.àpartir de ce modèle, nous avons recrééles outils de suppression de variables inutiles et de propagation de constantes. Dérivation de syntaxes Pour pouvoir réutiliser les outils créés au niveau abstrait, les syntaxes abstraites de PL/SQL et C-Script doivent être connectées au modèle abstrait commun. La connexion est réalisée par héritage, encapsulation, et par application de contraintes. L encapsulation et l héritage induisent une dépendance fonctionnelle vers le modèle abstrait, sans réciproque. Les contraintes portent sur le modèle ainsi dérivé et ne remettent pas en cause l intégrité du modèle abstrait. Dans la figure 4, les classes en blanc sont extraites des modèles dérivées. Elles sont stéréotypées par le nom des modèles correspondants, ce qui permet de faire apparaître sur un même diagramme des extraits des syntaxes abstraites C-Script et PL/SQL. Dans les deux cas, les notions d instructions de contrôle sont précisées (classes If, IfS et Bloc). Le seul contexte d appel dans le cadre de C-Script est la fonction (classe Function). En revanche, le contexte d appel pour PL/SQL est dénoté par la notion de sous-programme (classe Subprog) qui se décline en deux notions distinctes dans le langage : fonctions et procédures. Les modèles dérivés ainsi obtenus sont soumis à un certain nombre de contraintes. Elles permettent notamment de préciser que l instance de type Selector associée à une instance de If est plus précisément une instance dela classe IfSqui met enœuvrela méthode getselected conformément à la condition de l instruction If. Concernant PL/SQL, des contraintes liées d une part aux classes Procedure et Insert, et d autre part aux classes Function et Select spécifient la différence qui est faite dans le langage entre les appels conformes à des expressions (e.g. appel de SELECT ou d une fonction locale), et les appels conformes à des instructions (e.g. appel de INSERT ou d une procédure locale). Ces contraintes ont été codées en Java. Conformément au principe illustré dans la figure 1, sur la base du modèle commun des données utiles aux optimisations, nous avons ainsi construit un composant réutilisable et réellement intégré à la fois à l outillage de C-Script et à celui de PL/SQL.

7 Expérimentation d un modèle abstrait de syntaxe abstraite Comparaison des approches Afin d estimer plus précisément le bénéfice de notre proposition, nous avons comptabilisé pour chaquedsllenombredeclassesdéfinies,lenombredelignesdecodeetletauxdecoderéutilisé. La durée de développement est donnée à titre indicatif. Le tableau 1 rassemble ces résultats. Approche Outillage Lignes de code Classes Durée Code réutilisé syntax-driven C-Script jours 0% PL/SQL jours 0% Modèle abstrait jours 0% tool-driven C-Script jours 72% PL/SQL jours 68% TAB. 1 Comparaisondes approchesdirigéeparla syntaxeetdirigéeparles outils La première partie du tableau indique le nombre de lignes de code, le nombre de classes et le temps indicatif de modélisation et de développement dans la première phase de l expérimentation (approche dirigée par la syntaxe). A cause de l impact des syntaxes concrètes dans la conception des composants, il n a pas été possible(ou simple) de les réutiliser(d où le taux nul). Néanmoins, nous aurions pu réutiliser les seules structures basiques communes aux deux DSL. Le taux de code commun aurait alors avoisiné les 5%. La deuxième partie du tableau indique les résultats pour la deuxième phase de l expérimentation (approche dirigée par les outils). Elle fait clairement apparaître la forte proportion de code réutilisé dans les deux langages. Le nombre de lignes de code mentionné dans cette deuxième partie pour C-Script et PL/SQL concerne le code spécifique. On obtient donc le nombre total de ligne en y rajoutant les 3400 lignes du modèle abstrait. A première vue, même si notre proposition semble bien favoriser la réutilisation, elle implique également une inflation du code produit. Cependant, nous avons montré que nos outils pouvaient être réutilisés dans différents contextes. Ansi, plus ils sont réutilisés pour d autres DSL, moins la part de code supplémentaire est significative proportionnellement. De plus, quand nous analysons en détail le code supplémentaire, nous constatons qu il correspond essentiellement à la connexion des modèles, à la transformation des données, et à la vérification de contraintes. Ce type de code est précisément celui qui est susceptible d être généré automatiquement par des procédés récents d ingénierie dirigée par les modèles. Le code réutilisé est quant à lui le cœur des outils d analyse. Il est souvent critique, et il requière des connaissances expertes du domaine. Il s agit donc typiquement de code dont la capitalisation est essentielle. La durée est indicative, mais elle corrobore nos arguments. En effet, le code supplémentaire n a pas induit un temps proportiennel de développement supplémentaire. De plus, nos travaux en cours concernant la génération automatique de ce code tendent à réduire significativement cet écart de durée. 4. Conclusion Dans une démarche traditionnelle de développement dirigée par la syntaxe, la grammaire qui formalise la syntaxe d un DSL imprègne le modèle des données sur lequel sont fondés les outils d analyse et de transformation. Ces outils sont donc difficilement exploitables pour d autres langages. Le développement dirigé par les outils que nous proposons consiste à créer d abord le modèle des données, puis à en dériver des syntaxes abstraites. Nous avons pu constater sur une expérience liée à deux DSL de syntaxe et de domaine très différents que cette approche permet effectivement de partager directement des outils, par construction communs. Dans le contexte de l ingénierie dirigée par les modèles, de nombreux travaux ont été menés dans le but de favoriser la réutilisation de composants, de transformations, ou de modèles, en particulier de syntaxes. Par exemple, dans [8], les auteurs proposent une technique de composition

8 8 Fabien Cadoret, Mickaël Kerboeuf logicielle qui s applique à n importe quel type de langage, décrit par une grammaire ou un métamodèle, grâce à un environnement dédié. Cette technique est un fondement d EMFText, plug-in Eclipse qui permet de définir des syntaxes textuelles pour des langages décrits par des métamodèles Ecore. Dans l état actuel des travaux, nous nous sommes focalisés sur les connexions entre modèles abstraits de syntaxes abstraites et modèles concrets de syntaxe abstraite (i.e. liés directement à des syntaxes concrètes). Nous n avons pas traité le problème des connexions des syntaxes concrètes et abstraites. Par exemple, parmi les outils que nous avons développés, les pretty-printers qui régénèrent des programmes syntaxiquement conforme à une grammaire produisent actuellement directement des chaînes de caractères. Conformément aux principes développés dans [12], nous envisageons de produire à la place des instances d un métamodèle de syntaxe concrète, qu un visiteur pourrait ensuite parcourir dans le but de générer la syntaxe concrète. Ce principe permet de décoreller complètement ces outils d une quelconque syntaxe, et de les rendre ainsi adaptables à différents langages. Dans l état actuel de l expérimentation, le développement des modèles, des contraintes et du code est entièrement réalisé en Java. Afin de donner un caractère plus systématique (et en partie automatisable) à notre démarche, nous étudions la possibilité d outiller les modèles dans un environnement de métamodélisation(e.g. EMF) et de transformation(e.g. ATL). Ces techniques permettraient notamment de guider la dérivation des syntaxes abstraites à partir d un modèle abstrait. Nous étudions également la généralisation de la démarche présentée ici afin d établir une hiérarchie de modèles abstraits qui structurerait l ensemble des outils réutilisables pour un ensemble important de DSL. Au final, cette hiérarchie permettrait d établir une classification de DSL guidée par des besoins en outillage. Bibliographie 1. Alfred Aho, Monica Lam, Ravi Sethi, et Jeffrey Ullman. Compilers : Principles, Techniques, and Tools(2nd Edition). Addison Wesley, août Jon Bentley. Programming pearls: little languages. Commun. ACM, 29(8): , Steve Cook. Domain-Specific Modeling. The architecture journal (9), http ://msdn.microsoft.com/en-us/arcjournal/bb aspx, Edsger Dijkstra. The Humble Programmer. Communications of the ACM, Eclipse Modeling Framework. http :// 6. William Frakes et Christopher Fox. Sixteen questions about software reuse. Communications of the ACM, 38(6):75 ff., Robert France et Bernhard Rumpe. Model-driven Development of Complex Software : A Research Roadmap. In FOSE 07: Future of Software Engineering. IEEE Computer Society, Jakob Henriksson, Florian Heidenreich, Jendrik Johannes, Steffen Zschaler, et Uwe Aßmann. Extending grammars and metamodels for reuse: the Reuseware approach. IET Software, Mickael Kerboeuf et Fabien Cadoret. Modèle abstrait de syntaxe abstraite pour l outillage réutilisable de DSL. Technical report, LISyC, numéro RR MKFC, http :// mai Ivan Kurtev, Jean Bézivin, Frédéric Jouault, et Patrick Valduriez. Model-based DSL frameworks. In OOPSLA 06 : Companion to the 21st ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications. ACM, Marjan Mernik, Jan Heering, et Anthony Sloane. When and how to develop domain-specific languages. ACM Comput. Surv., 37(4): , Pierre-Alain Muller, Franck Fleurey, Frédéric Fondement, Michel Hassenforder, Rémi Schneckenburger, Sébastien Gérard, et Jean-Marc Jézéquel. Model-Driven Analysis and Synthesis of Concrete Syntax. In MoDELS, pages , Oracle Database 10g Documentation Library. PL/SQL User s Guide and Reference. http ://download-uk.oracle.com/docs/cd/b14117_01/appdev.101/b10807.pdf, Platypus. Technical Summary and download. http ://cassoulet.univ-brest.fr/mme. 15. Douglas Schmidt. Model Driven Engineering. IEEE Computer, 39(2):25 31, février Arie van Deursen, Paul Klint, et Joost Visser. Domain-specific languages : an annotated bibliography. SIGPLAN Not., 35(6):26 36, juin 2000.

Environnement logiciel basé sur les modèles pour la conception collaborative de produit

Environnement logiciel basé sur les modèles pour la conception collaborative de produit Environnement logiciel basé sur les modèles pour la conception collaborative de produit Mehdi Iraqi-Houssaini Laboratoire LSIS-INSM 2 cours des Arts et Métiers 13100 Aix-en-Provence, France RÉSUMÉ. Le

Plus en détail

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur goulwen.lefur@obeo.fr. Le 23 novembre 2012

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur goulwen.lefur@obeo.fr. Le 23 novembre 2012 DSL Domain Specific Language À l'aide des technologies Eclipse Modeling Le 23 novembre 2012 Goulwen Le Fur goulwen.lefur@obeo.fr Le but de cette session Montrer : Ce qu'est-un DSL/DSM Comment implémenter

Plus en détail

Formula Negator, Outil de négation de formule.

Formula Negator, Outil de négation de formule. Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente

Plus en détail

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de itemis France 2009 All rights reserved 1 Itemis en quelques mots Spécialisé dans l

Plus en détail

Générer du code à partir d une description de haut niveau

Générer du code à partir d une description de haut niveau Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,

Plus en détail

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION THÈSE N O 2388 (2001) PRÉSENTÉE AU DÉPARTEMENT D'INFORMATIQUE ÉCOLE POLYTECHNIQUE FÉDÉRALE

Plus en détail

SQL Parser XML Xquery : Approche de détection des injections SQL

SQL Parser XML Xquery : Approche de détection des injections SQL SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des

Plus en détail

Ingénierie des Modèles. Méta-modélisation

Ingénierie des Modèles. Méta-modélisation Ingénierie des Modèles Méta-modélisation Eric Cariou Master Technologies de l'internet 2 ème année Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr

Plus en détail

Bases de données - Modèle relationnel

Bases de données - Modèle relationnel Bases de données - Modèle relationnel Introduction SITE :http://www.univ-orleans.fr/lifo/members/mirian.halfeld/ BD - Mírian Halfeld-Ferrari p. 1 Les bases de données - Bibliographie Ullman and Widom,

Plus en détail

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services 69 Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services M. Bakhouya, J. Gaber et A. Koukam Laboratoire Systèmes et Transports SeT Université de Technologie de Belfort-Montbéliard

Plus en détail

Développement d un interpréteur OCL pour une machine virtuelle UML.

Développement d un interpréteur OCL pour une machine virtuelle UML. ObjeXion Software Prototyping made easy SA au capital de 500 000 F Siret 421 565 565 00015 APE 722Z Téléphone : 03 89 35 70 75 Télécopie : 03 89 35 70 76 L embarcadère 5, rue Gutemberg 68 800 Vieux-Thann,

Plus en détail

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe Karima Dhouib, Sylvie Després Faiez Gargouri ISET - Sfax Tunisie, BP : 88A Elbustan ; Sfax karima.dhouib@isets.rnu.tn,

Plus en détail

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des

Plus en détail

Une méthode d apprentissage pour la composition de services web

Une méthode d apprentissage pour la composition de services web Une méthode d apprentissage pour la composition de services web Soufiene Lajmi * Chirine Ghedira ** Khaled Ghedira * * Laboratoire SOIE (ENSI) University of Manouba, Manouba 2010, Tunisia Soufiene.lajmi@ensi.rnu.tn,

Plus en détail

Once the installation is complete, you can delete the temporary Zip files..

Once the installation is complete, you can delete the temporary Zip files.. Sommaire Installation... 2 After the download... 2 From a CD... 2 Access codes... 2 DirectX Compatibility... 2 Using the program... 2 Structure... 4 Lier une structure à une autre... 4 Personnaliser une

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Extensions à la formation. Laurent Pérochon, 28-30 avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan

Extensions à la formation. Laurent Pérochon, 28-30 avril 2008, RMT Modelia, modélisation conceptuelle, formation UML, INRA Castanet Tolosan Extensions à la formation Diagramme de timing FinEpreuve SautBarrière CourseAvantBarrière SautMur {>2 et 10 et 2 et 10 et

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Composants génériques de calcul scientifique

Composants génériques de calcul scientifique Composants génériques de calcul scientifique T. Géraud et A. Duret-Lutz RAPPORT TECHNIQUE 9901 MARS 1999 Laboratoire de Recherche et Développement d EPITA 14-16, rue Voltaire 94276 Le Kremlin-Bicêtre cedex

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Le Guide Pratique des Processus Métiers

Le Guide Pratique des Processus Métiers Guides Pratiques Objecteering Le Guide Pratique des Processus Métiers Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam 21 avenue Victor Hugo 75016

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Forthcoming Database

Forthcoming Database DISS.ETH NO. 15802 Forthcoming Database A Framework Approach for Data Visualization Applications A dissertation submitted to the SWISS FEDERAL INSTITUTE OF TECHNOLOGY ZURICH for the degree of Doctor of

Plus en détail

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau labsticc.univ-brest.fr/pages_perso/babau/ Ingénierie Dirigée par les Modèles Editeurs de modèles (Eclipse Modeling Tools) Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr IT203 : Systèmes de gestion de bases de données A. Zemmari zemmari@labri.fr 1 Informations pratiques Intervenants : Cours : (A. Zemmari zemmari@labri.fr) TDs, TPs : S. Lombardy et A. Zemmari Organisation

Plus en détail

Vérifier la qualité de vos applications logicielle de manière continue

Vérifier la qualité de vos applications logicielle de manière continue IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions

Plus en détail

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P EUROCOPTER SAS Groupe EADS Marignane Ecole des Mines d Alès Laboratoire de Génie Informatique et d Ingénierie de Production LGI2P Nîmes Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P Titre Domaine

Plus en détail

Patrons de Conception (Design Patterns)

Patrons de Conception (Design Patterns) Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques

Plus en détail

Analyse,, Conception des Systèmes Informatiques

Analyse,, Conception des Systèmes Informatiques Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Préparer un état de l art

Préparer un état de l art Préparer un état de l art Khalil DRIRA LAAS-CNRS, Toulouse Unité de recherche ReDCAD École Nationale d ingénieurs de Sfax Étude de l état de l art? Une étude ciblée, approfondie et critique des travaux

Plus en détail

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1

Plus en détail

UML (Diagramme de classes) Unified Modeling Language

UML (Diagramme de classes) Unified Modeling Language UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association

Plus en détail

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Méthodes d évolution de modèle produit dans les systèmes du type PLM Résumé de thèse étendu Méthodes d évolution de modèle produit dans les systèmes du type PLM Seyed Hamedreza IZADPANAH Table des matières 1. Introduction...2 2. Approche «Ingénierie Dirigée par les Modèles»

Plus en détail

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)* La démarche MDA Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)* Référence : Livrable 1.1-5 Date : Mai 2002 * : Les partenaires du projet ACCORD sont CNAM,

Plus en détail

Cours en ligne Développement Java pour le web

Cours en ligne Développement Java pour le web Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité

Plus en détail

Synergies entre Artisan Studio et outils PLM

Synergies entre Artisan Studio et outils PLM SysML France 13 Novembre 2012 William Boyer-Vidal Regional Sales Manager Southern Europe Synergies entre Artisan Studio et outils PLM 2012 2012 Atego. Atego. 1 Challenges & Tendances Complexité des produits

Plus en détail

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R Yves Aragon, David Haziza & Anne Ruiz-Gazen GREMAQ, UMR CNRS 5604, Université des Sciences

Plus en détail

RÉSUMÉ DE THÈSE. L implantation des systèmes d'information (SI) organisationnels demeure une tâche difficile

RÉSUMÉ DE THÈSE. L implantation des systèmes d'information (SI) organisationnels demeure une tâche difficile RÉSUMÉ DE THÈSE L implantation des systèmes d'information (SI) organisationnels demeure une tâche difficile avec des estimations de deux projets sur trois peinent à donner un résultat satisfaisant (Nelson,

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

Nom de l application

Nom de l application Ministère de l Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Gafsa Département Technologies de l Informatique

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

Bases de données. Chapitre 1. Introduction

Bases de données. Chapitre 1. Introduction Références : Bases de données Pierre Wolper Email : pw@montefiore.ulg.ac.be URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

Définition et diffusion de signatures sémantiques dans les systèmes pair-à-pair

Définition et diffusion de signatures sémantiques dans les systèmes pair-à-pair Définition et diffusion de signatures sémantiques dans les systèmes pair-à-pair Raja Chiky, Bruno Defude, Georges Hébrail GET-ENST Paris Laboratoire LTCI - UMR 5141 CNRS Département Informatique et Réseaux

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

RTDS G3. Emmanuel Gaudin emmanuel.gaudin@pragmadev.com

RTDS G3. Emmanuel Gaudin emmanuel.gaudin@pragmadev.com RTDS G3 Emmanuel Gaudin emmanuel.gaudin@pragmadev.com PragmaDev Dédiée au développement d un AGL pour le développement des applications temps réel et embarquées. Réseau de partenaires: Formations, Service,

Plus en détail

Principe de symétrisation pour la construction d un test adaptatif

Principe de symétrisation pour la construction d un test adaptatif Principe de symétrisation pour la construction d un test adaptatif Cécile Durot 1 & Yves Rozenholc 2 1 UFR SEGMI, Université Paris Ouest Nanterre La Défense, France, cecile.durot@gmail.com 2 Université

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles Laurent PY CEO, Smartesting Laurent.py@smartesting.com @py_laurent www.smartesting.com Guillaume Coquelle Testeur,

Plus en détail

Génie Logiciel Avancé Cours 3 Le modèle à objets

Génie Logiciel Avancé Cours 3 Le modèle à objets Génie Logiciel Avancé Cours 3 Le modèle à objets Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot - Paris 7 URL http://upsilon.cc/zack/teaching/1112/gla/ Copyright

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Avant de commencer à travailler avec le produit, il est nécessaire de comprendre, à un haut niveau, les problèmes en réponse desquels l outil a été

Plus en détail

Visual Paradigm Contraintes inter-associations

Visual Paradigm Contraintes inter-associations Visual Paradigm Contraintes inter-associations Travail de Bachelor d'informaticien de gestion Partie C Présentation de Visual Paradigm 1 Présentation de Visual Paradigm For UML L objet du travail de Bachelor

Plus en détail

Introduction aux bases de données

Introduction aux bases de données Introduction aux bases de données Références bibliographiques Jeff Ullman,Jennifer Widom, «A First Course in Database systems», Prentice-Hall, 3rd Edition, 2008 Hector Garcia-Molina, Jeff Ullman, Jennifer

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Gestion mémoire et Représentation intermédiaire

Gestion mémoire et Représentation intermédiaire Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement Cursus Outils & Développement Vous êtes Consultant, Chef de Projets, Directeur des Systèmes d Information, Directeur Administratif et Financier, Optez pour les «formations Produits» Nous vous proposons

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données Base de Données Cours Introductif Base de Données Quelques chiffres Évolution annuelle moyenne 2004/2000 15% +20% 12% 5% 0.5% 2000 2004 L3G IA SG mono poste : Part de marché 5% 5% 10% Paradox 65% SG 15%

Plus en détail

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants

Architecture à base de composants pour le déploiement adaptatif des applications multicomposants Architecture à base de composants pour le déploiement adaptatif des applications multicomposants Dhouha Ayed, Chantal Taconet, et Guy Bernard GET / INT, CNRS Samovar 5157 9 rue Charles Fourier 91011 Évry,

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Architectures Ouvertes pour l Adaptation des Logiciels

Architectures Ouvertes pour l Adaptation des Logiciels Architectures Ouvertes pour l Adaptation des Logiciels Frédéric Duclos 1, Jacky Estublier 2, Rémy Sanlaville 1 Published in review Génie Logiciel And proceedings ICSSEA, Paris 2001 1 Dassault Systèmes

Plus en détail

FOUNDATIONS OF SYSTEMS AND PROPERTIES: METHODOLOGICAL SUPPORT FOR MODELING PROPERTIES OF SOFTWARE-INTENSIVE SYSTEMS

FOUNDATIONS OF SYSTEMS AND PROPERTIES: METHODOLOGICAL SUPPORT FOR MODELING PROPERTIES OF SOFTWARE-INTENSIVE SYSTEMS FOUNDATIONS OF SYSTEMS AND PROPERTIES: METHODOLOGICAL SUPPORT FOR MODELING PROPERTIES OF SOFTWARE-INTENSIVE SYSTEMS THÈSE N O 3013 (2004) PRÉSENTÉE À LA FACULTÉ INFORMATIQUE ET COMMUNICATIONS Institut

Plus en détail

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00 HFFv2 1. OBJET L accroissement de la taille de code sur la version 2.0.00 a nécessité une évolution du mapping de la flash. La conséquence de ce

Plus en détail

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1 SysCom - CReSTIC Université de Reims 17/02/2011 1 Motivation Gestion des expérimentations Avec les workflows Simulation Simulation des Systèmes Distribués ANR USS SimGrid Campagne de Test et gestion de

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon L Y O N Département Informatique Année 2011/2012 Rapport de Synthèse Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon Laboratoire Ptidej de L Ecole Polytechnique de Montréal

Plus en détail

APIs de table pour SQL Server

APIs de table pour SQL Server 2013 D - Pratique APIs de table pour SQL Server Établissement: HEG Arc Haute école Arc Gestion Réalisé par: M. Informaticien de gestion 2009-2013 S adresse à: M.Fabrice Camus Date de début et de fin du

Plus en détail

Etat de l art sur le développement logiciel dirigé par les modèles.

Etat de l art sur le développement logiciel dirigé par les modèles. Etat de l art sur le développement logiciel dirigé par les modèles. Samba Diaw* Rédouane Lbath* Bernard Coulette* * Université de Toulouse Laboratoire IRIT Université de Toulouse 2-Le Mirail 5, allées

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

DSLs pour le Développement Agile de Transformations

DSLs pour le Développement Agile de Transformations DSLs pour le Développement Agile de Transformations Laurent Thiry*, Bernard Thirion*, Michel Hassenforder* Ecole Nationale Supérieure d Ingénieurs du Sud Alsace Laboratoire MIPS, Université de Haute Alsace

Plus en détail

Dafoe Présentation de la plate-forme UIMA

Dafoe Présentation de la plate-forme UIMA Laboratoire d Informatique de l université Paris-Nord (UMR CNRS 7030) Institut Galilée - Université Paris-Nord 99, avenue Jean-Baptiste Clément 93430 Villetaneuse, France 11 juillet 2007 Plates-formes

Plus en détail

Objectif du cours. Outline. Complexité des systèmes modernes. La modélisation et UML dans les activités du Génie Logiciel...

Objectif du cours. Outline. Complexité des systèmes modernes. La modélisation et UML dans les activités du Génie Logiciel... Objectif du cours La modélisation et UML dans les activités du Génie Logiciel... ESIR2, GL (LSI) Benoit Combemale Université de Rennes 1, ESIR & IRISA (Triskell team) Benoit.Combemale@irisa.fr Identifier

Plus en détail

Conception des bases de données : Modèle Entité-Association

Conception des bases de données : Modèle Entité-Association Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational

Plus en détail

AGROBASE : un système de gestion de données expérimentales

AGROBASE : un système de gestion de données expérimentales AGROBASE : un système de gestion de données expérimentales Daniel Wallach, Jean-Pierre RELLIER To cite this version: Daniel Wallach, Jean-Pierre RELLIER. AGROBASE : un système de gestion de données expérimentales.

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

1. Plan. 1. Plan...1 2. Information essentielles...2

1. Plan. 1. Plan...1 2. Information essentielles...2 Frédéric Fondement Curriculum Vitæ détaillé 1. Plan 1. Plan...1 2. Information essentielles...2 2.1. Résumé...2 2.2. Informations essentielles...2 2.3. Titres universitaires...4 2.4. Parcours professionnel...6

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

Vérification formelle de la plate-forme Java Card

Vérification formelle de la plate-forme Java Card Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

Introduction du test dans la modélisation par aspects

Introduction du test dans la modélisation par aspects Introduction du test dans la modélisation par aspects Jacques Klein 1 Benoit Baudry 1 Olivier Barais 1 Andrew Jackson 2 1 IRISA/INRIA Rennes Université de Rennes 1 Campus Universitaire de Beaulieu F-35042

Plus en détail

Service d inspection automatisée des logiciels

Service d inspection automatisée des logiciels Service d inspection automatisée des logiciels A - Introduction: qualité du logiciel, le rôle de l inspection du code Pour toute l industrie du logiciel, la qualité reste encore un objectif difficile à

Plus en détail