210 likes | 304 Views
Our experience of DSL creation and usage based on Q R eal metatechnology. prof. Andrey Terekhov Head of Software Engineering Chair, SPbSU CEO, Lanit-Tercom. June, 26 th , 2012. Saint-Petersburg. CASE-approach. Visibility Different points of view to the system Reliability
E N D
Our experience of DSL creation and usage based on QReal metatechnology prof. Andrey TerekhovHead of Software Engineering Chair, SPbSU CEO, Lanit-Tercom June, 26th, 2012. Saint-Petersburg
CASE-approach • Visibility • Different points of view to the system • Reliability • Additional syntactic and semantic checks • Automation of the key actions
Domain Specific Modeling • Problem-orientedvisual languages and editors • Narrow scope • Higher level of abstraction • Full automatic code generation • Applicability • Lots of similar problems • Product lines • Large projects • Programming for non-programmers
Productivity boost in 3-10 times • Higher level of abstraction • Full automatic source code generation • Full support of tools • Nokia (1000%) • Kelly, S., Tolvanen, J.-P., Visual domain-specific modeling: benefits and experiences of using metaCASE tools, in: Bezivin, J., Ernst, J. (Eds.), Proceedings of International workshop on Model Engineering, ECOOP 2000. • USAF (300%) • Kieburtz, R., et al. A software engineering experiment in software component generation, Proceedings of 18th International Conference on Software Engineering, Berlin, IEEE Computer Society Press, March, 1996 • Lucent (400-1000%) • Weiss, D., Lai, C. T. R., Software Product-line Engineering, Addison Wesley Longman, 1999.
Our goal • Visual IDE • Use of graphical languages • Tools for rapid language development • Cross-platform • Multi-user access • Collaborative development • Version control • Visual debugging support • Easy-to-use user interface
QReal features • Generic kernel + editor plug-ins • Version control support • Graphical and logical models • Build-in and stand-alone generators • Visual debugging and Visual interpreter • Metamodelling
Metamodelling • Two ways to create tools for a new language • Textual • Graphical • Metaeditor • Form editor • Abstract kernel, modular architecture • Code generation of specific editor based on metamodel
Metamodel • Describes language syntax • Diagram – tab in the palette • Elements: nodes and links • Imported elements • Relations between elements • Example, Class diagram • Element“Class" • Attributes“Name", “Abstract" • Element“Method" • Attributes“Name", “Return value type" • Element“Inheritance"
Metamodel QReal:Robots KernelMetaModel import Diagramа Node Command to motor Command to sensor The same node Wait for touch Wait for Sonar Go Stop Distance link ForwardBackward Enumeration elements
Metamodel QReal:Robots, explanations • Block of “Commands to motor“ • Property“Ports" – ports having connection with motors • Inherited blocks“Stop motors" and“Movement command" • Inherited from " Movement command " blocks“Motors forward" and“Motors backward"
Visual Debugging • Visual diagram interpreter • Visual debugging of generated code
Usability improvement • Mouse gestures recognition
Current research • Interpretation of generators • new DSL to describe generators • interpreter of this language • Language evolution support tools • Interpretable metamodels • Touch screens and multitouch devices support • Visual diff for models • Multi-stroke gesture recognition • Usability issues • ...
QReal • CASE and metaCASE tool • Visual debugging • Multi-user access • Metamodelling • Visual editor fir chip description • Lego NXT robots programming tool • Ubiq Mobile programming tool • Set of UML 2.2 diagrams • Visual requirement editor • ... • https://github.com/qreal/qreal/wiki