LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.

Slides:



Advertisements
Similar presentations
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Advertisements

Barak Agiv Itamar Ben-Zaken Barak Nahum Vladislav Smolensky Academic Advisor: Yuval Elovici Professional Advisor: Mira Balaban.
The Data Mining Visual Environment Motivation Major problems with existing DM systems They are based on non-extensible frameworks. They provide a non-uniform.
Eclipse[10] MIPSinEclipse. Overview Goal: To provide a friendly development environment for CS students programming in MIPS (particularly CS33 at UCLA),
Getting Ready for Java. What is Java? Java is a programming language: a language that you can learn to write, and the computer can be made to understand.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
15-Jul-15 Getting Ready for Java. What is Java? Java is a programming language: a language that you can learn to write, and the computer can be made to.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
CSCI-383 Object-Oriented Programming & Design Lecture 15.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
1 An Analytical Evaluation of BPMN Using a Semiotic Quality Framework Terje Wahl & Guttorm Sindre NTNU, Norway Terje Wahl, 14. June 2005.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. Towards Translating between XML and WSML based on mappings between.
Simplicity First: Use of Tools in Undergraduate CS and IS Teaching By David Naugler and Ken Surendran Southeast Missouri State University Computer Science.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Agenda 1. Introduction 2. Overview of SU-MoVal 3. OCL-based Model Validation 4. QVT-based Transformations 5. Demo of SU-MoVal 6. Conclusion and Future.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Copyright © 2009 AtlanMod. All Rights Reserved Frédéric Jouault & Hugo Bruneliere AtlanMod team (INRIA & Mines de Nantes) Possible Benefits of Bridging.
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
Introduction to Eclipse CSC 216 Lecture 3 Ed Gehringer Using (with permission) slides developed by— Dwight Deugo Nesa Matic
Some Software Engineering Principles by D. L. Parnas Presented by Team 7: Amitkumar Dhameja Cincy Francis Rong Gu CS575 - Software Design, Team 7.
SE: CHAPTER 7 Writing The Program
Eurostat Expression language (EL) in Eurostat SDMX - TWG Luxembourg, 5 Jun 2013 Adam Wroński.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
Slide title In CAPITALS 50 pt Slide subtitle 32 pt Model based development for the RUNES component middleware platform Gabor Batori
STASIS Technical Innovations - Simplifying e-Business Collaboration by providing a Semantic Mapping Platform - Dr. Sven Abels - TIE -
5-Jun-16 Getting Ready for Java. 2 What is Java? Java is a programming language: a language that you can learn to write, and the computer can be made.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
29-Nov-15 Getting Ready for Java. 2 What is Java? Java is a programming language: a language that you can learn to write, and the computer can be made.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
GUI For Computer Architecture May01-05 Team Members: Neil HansenCprE Ben JonesCprE Jon MathewsCprE Sergey SannikovCprE Clients/Advisors: Manimaran Govindarasu.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Software Development Introduction
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
A Framework for Developing Compiler-like Components Jackline Ssanyu ( Software Engineering and Technology Group) Eindhoven University of Technology Supervisors:
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Chapter – 8 Software Tools.
Final Presentation, European Cooperative House Brussels, 16 Dec.2009 Training +45 “Teachers Facilitating Learning among Elders” WP5 Test and Evaluation.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Design Pattern Support based on principles of model driven development Zihao Zhao.
1 Budapest University of Technology and Economics Department of Measurement and Information Systems Budapest University of Technology and Economics Fault.
Project Dow: Extending EclipseTrader Emmanuel Sotelo Fall 2008.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Human Computer Interaction Lecture 21 User Support
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
Human Computer Interaction Lecture 21,22 User Support
Systems Analysis and Design With UML 2
Tools of Software Development
Programming Languages 2nd edition Tucker and Noonan
Prof. Andreas Prinz Høgskolen i Agder
Chapter 7 –Implementation Issues
Execute your Processes
Getting Ready for Java version Apr-19.
Ponder policy toolkit Jovana Balkoski, Rashid Mijumbi
Games Development 2 Entity / Architecture Review
Software Architecture & Design
Presentation transcript:

LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany

2 Outline Introduction Problem and Motivation Background Solution Approach LanguageLab Examples of Use Impressions from Initial Testing Summary and Future Work

Introduction Master ICT course at UiA covering DSLs, language design, compiler theory and metamodelling. Experiences from this course triggered the work on LanguageLab. Issues with the practical exercises – before LanguageLab: Based on Eclipse since students know it from previous courses. Having to find a consistent set of plugins for Eclipse that work nicely together. Each year. Update teaching materials accordingly. Anticipate and handle a wide range of issues Students often installed wrong versions Two students with seemingly same setup doing the same, get different results. 3

Problem and Motivation «Learning Metamodelling is difficult» Why? Because of the principles, or because of the tools used to teach it? Turns out it is a bit of both. Most of the available tools and technologies are rather complex. Do they really need to be that complex? Fundamental principles may be obscured by the complexity. When you go to the depth of the basic principles of MDA and metamodelling, the common understanding may not be as universal as we thought. E.g: How does MDA levels work for language aspects beyond structure? What is the nature of M0? So how can we make it easier to learn (and teach) metamodelling? Need a tool that is easy to learn to use AND conceptually clear Choice: Find one or create one? 4

Background MDA for language tools: Generating language tools from model- driven language specifications. Working on a higher level of abstraction compared to writing a compiler. Facilitates rapid development of DSLs Levels of the metamodel architecture: M0 to M3, closed loop at the top Different meta-languages cover different language aspects: structure, constraints, presentation / concrete syntax, behaviour / execution / transformation / code generation 5

Solution Approach Basic assumptions: Support all language aspects in the same hierarchy. All level transitions are of the same nature and can be handled similarly. Allows to move a model up and down among the levels. Module and Interface-based approach to simplify implementation. Meta-languages offer interfaces to be used in defining a language. Can generate an instantiation interface and move the language up to the meta-level, and create a language instance module the same way. That way we only need two levels in the tool; language and meta-language. 6

LanguageLab LanguageLab implements the proposed approach and is intended to be conceptually sound as well as student friendly. Allow working on a suitable level of abstraction. Avoid unnecessary complexity. Encourage best practices in metamodelling. Based on Eclipse/EMF but hiding these from the user. RCP standalone application. User has no access to Java/underlying platform, all has to be done with meta-languages Implemented cooperatively with help and input from several bachelor/master- students. 7

LanguageLab GUI Module-oriented interface. Upper part shows interfaces made available from loaded meta-modules. Left middle part is an optional tree view showing all elements of the module. Right middle part contains tabbed view of editors for different language aspects of the module. Lower part optionally shows the generated lower interface that contains elements that are made available when module is used as a meta-module. 8

The LanguageLab Module Model 9

The LanguageLab Module Model – RTStateInfo 10

Basic Modules and Bootstrapping Three basic meta-language modules bootstrapped (mutually self-defined): BasicStructure BasicMapping BasicTextEditor These can in turn be used to make simple language modules, or additional or more advanced meta- languages. 11

Presentation Aspect and Editors Integrating TEF (Textual Editing Framework) for defining textual editor No generation step needed – editor is grammar interpreter. BasicTextEditor meta-language module allows to define the grammar. 12

Behaviour Aspect, Instantiation and Execution BasicMapping provides a mapping language that can be used for: Instantiation semantics Generation of RTE Simple execution semantics (sufficient for e.g. PetriNet) 13

Examples of Use From M3 to M0 1. Load relevant meta-language modules 2. Create a language PetriNet based on these Create the structure of PetriNet based on BasicStructure. Define an editor using BasicTextEditor. Define a function for generating RTE with BasicMapping. Generate instantiation interface (as defined in BasicStructure) and RTE creation function. 3. Load the PetriNet module as meta-module. 4. Create MyPetriNet module. 5. Execute the PrepareToRun operation to generate runtime elements and execution functions 6. Load as meta-module and create RT_MyPetriNet 7. Execute it. 14

Examples of Use – Step 1 & 2 – PetriNet 1. Load relevant metalanguage- modules 2. Create a language PetriNet based on these Create the structure of PetriNet based on BasicStructure. Define an editor using BasicTextEditor. Define a function for generating RTE with BasicMapping. Generate instantiation interface (as defined in BasicStructure) and RTE creation function. 15

Examples of Use – Step 3, 4 & 5 – MyPetriNet 1. Load relevant meta-language modules 2. Create a language PetriNet based on these 3. Load the PetriNet module as meta-module. 4. Create MyPetriNet. 5. Execute the PrepareToRun operation to generate runtime elements and init, step, run functions. 16

Examples of Use – Step 6 & 7 – RT_MyPetriNet 1. Load relevant metalanguage-modules 2. Create a language PetriNet based on these 3. Now load the PetriNet module as meta-module. 4. Create MyPetriNet. 5. Execute the PrepareToRun operation to generate runtime elements 6. Load MyPetriNet as meta-module and create RT_MyPetriNet 7. Execute it. 17

Impressions from Initial Testing Tested on ICT Master-students in a course covering language theory, generative programming, compiler theory and meta-modelling. Given group work tasks related to understanding and changing a given set of modules. Extend the PetriNet module with some additional features Change the textual syntax of SimpleStructure to be more Java-like All groups finished the tasks successfully, Without being hindered or confused by tool complexity, Faster than expected compared to previous years’ experiences with comparable tasks in an Eclipse/EMF-based environment. Very little technical problems compared to previous years. One student initially had problems related to wrong or missing Java JRE. Students gave positive feedback on the usability and user-friendliness of LanguageLab No complaints, and no comments when asked about suggestions for improvement. On the right track, but more testing needed! 18

Summary New language workbench based on a component/interface-based view on the metamodel architecture. We are not changing the metamodel architecture but rather giving a clarifying simplified view. Component/Interface-based approach to language specification Prototype developed: Bootstrapped with basic simple modules for structure, textual editing and mapping / instantiation semantics. Covers the essential aspects of language design. Especially designed for conceptual clarity and simplicity. Successfully tested on students. 19

Future Work Future work: More basic meta-modules needed. Execution semantics Constraints. Graphical syntax. Improved error handling – meaningful error messages. Updated documentation – although intended to be intuitive. More systematic testing on a larger group of students. Making LanguageLab available to the public as Open Source. 20

The End Questions? Thank you! 21