Expérimentation d un modèle abstrait de syntaxe abstraite
|
|
- Francine Beauregard
- il y a 8 ans
- Total affichages :
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 Mehdi Iraqi-Houssaini Laboratoire LSIS-INSM 2 cours des Arts et Métiers 13100 Aix-en-Provence, France RÉSUMÉ. Le
Plus en détailDSL. 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étailFormula 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étailopenarchitectureware & 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étailGé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étailREMOTE 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étailSQL 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étailIngé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étailBases 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étailVers 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étailDé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étailStructuration 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étailSolution 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étailUne 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étailOnce 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étailTable 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étailLangage 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étailQuelques 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étailLES 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étailExtensions à 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étailInformation 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étailProgramme «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étailOpenPaaS 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étailChapitre 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étailComposants 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étailbasé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étailLe 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étailTypes 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étailForthcoming 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étailIngé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étailCours 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étailIT203 : 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étailVé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étailProposition 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étailPatrons 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étailAnalyse,, 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étailLes 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étailA 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étailPré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étailMODELISATION 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étailUML (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étailMé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étailLa 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étailCours 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étailSynergies 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étailLes 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étailRÉ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étailMysql. 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étailNom 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étailPré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étailBases 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étailLangage 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étailIntroduction à 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étailDé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étailTraduction 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étailRTDS 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étailPrincipe 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étail1-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étailAlignement 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étailGé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étailTP 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étailIntroduction à 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étailVisual 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étailIntroduction 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étailCOMMANDES 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 / 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 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étailGestion 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étailA 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étailCours 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étailJava 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étailCursus 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étailUtilisation 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étailJé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étailArchitecture à 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étailNotes 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étailArchitectures 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étailFOUNDATIONS 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étailInstructions 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étailIyad 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étailTP1 : 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étailRapport 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étailAPIs 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étailEtat 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étailProgrammation 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étailDSLs 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étailDafoe 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étailObjectif 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étailConception 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étailPlan. 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étailQuick 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étailAGROBASE : 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étailCours 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étail1. 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étailBases 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étailVé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étailGé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étailIntroduction 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étailService 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