Variability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering
|
|
- Angel Goodwin
- 5 years ago
- Views:
Transcription
1 PPL 2009 Keynote Markus Voelter Indepenent/itemis Language Workbenches in Product Line Engineering Variability in PLE Language Workbenches in Domain Specific Languages Modeling and Programming Modeling as Programming Programming as Modeling Expressing Configurabiliy in DSLs Modular Languages Summary Product Line Engineering Variability in PLE Variability differences among products in PL 1
2 Variability Mechanisms Removal optionally take away from overall whole Variability Mechanisms Injection optionally add to minimal core Variability Mechanisms Parametrization define values for predefined params Configuration vs. Customization Variability Routine Configuration Guidance, Efficiency Complexity, Flexibility Creative Construction Configuration Parameters Property Files Wizards Feature-Model Based Configuration Tabular Configurations Graph-Like Languages Framworks Manual Programming Configuration selecting options setting param values Configuration Feature Models mandatory optional Aircraft mandatory Wing Engine Materials or (n of m) alternative (1 of m) or (n of m) high shoulder low Jet Piston metal wood cloth plastic 2
3 Customization real languages instantiation connections Customization Languages PLE is also about Process Organization People Product Mgt. PLE is also about Process Organization People Product Mgt. not today! 3
4 Focus of this talk! Domain Specific Languages Domain Specific Languages programming started close to the hardware abstractions computing chips abstractions computing bits abstractions computing C 4
5 abstractions computing? Java abstractions computing? SQL? 5
6 general purpose domain specific tailor made effective++ specialized, limited used by experts together with other specialized tools execute? map 6
7 DSL Program (aka Model) automated! map map Generation Transformation Compilation GPL Program Interpretation Platform Architecture DSL As you understand and develop your Platform Architecture Develop a language to express it! 7
8 Language resembles architectural concepts Express the applications with the language. Another Story Architecture As Language 8
9 Modeling and Programming Compare Modeling Programming Domain Specific Notations and Abstractions Flexible! Limited! Frameworks Libraries (Fluent) APIs 9
10 Graphical Textual Forms Tables Customize Generator or Interpreter Flexible! Limited! Flexible! Limited! Textual Trees Reflection Meta Programs Open Compilers Define custom Query or or Navigate Transform Custom Validation or Error Checks Flexible! Limited! Flexible! Limited! AST APIs Static Analysis Regex IDE plugins Static Analysis Open Compilers Different Representations and Projections Mixing and Composing Languages Flexible! Limited! Flexible? Limited! Text is Text Code Folding Tree Views Visualizations Python-to-C-like Internal DSLs Embed-As-String Specific: LINQ 10
11 Scalable Usable IDE Support Debugging Refactoring Testing Brittle! Mature! Brittle! Mature! Modeling Tools!?? Versioning Diff, Merge Branching Brittle! Mature! Gets some Jobs done. Gets the Job Done! some people doubt that everybody agrees for some tools Different Worlds Programming Tools!= Modeling Tools 11
12 Different Worlds Modeling Tool!= Modeling Tool Different Worlds Mix Models and Programs Different Worlds Mix Models and Programs AST Navigation & Query Different Worlds Mix Models and Programs AST Navigation & Query Integration of 3GL code Different Worlds Mix Models and Programs AST Navigation & Query Integration of 3GL code Code Constraints 12
13 History? Why the difference? Modeling Programming Modeling Programming (Mostly) Textual Notations Concrete Syntax Storage (Fancy) ASCII Editors Read-Only Visualizations Modeling (Mostly) Graphical Notations Abstract Syntax Storage Projecting Editors Different editable views for model Programming (Mostly) Textual Notations Concrete Syntax Storage (Fancy) ASCII Editors Read-Only Visualizations Why the difference? 13
14 It is time for a Different Perspective Programming the way we do Modeling? Modeling Programming == == Programming Modeling Modeling the way we do Programming? We don t want to model, we want to program! 14
15 We don t want to model, we want to program! at different levels of abstaction from different viewpoints integrated! We don t want to model, we want to program! with different degrees of domain-specificity with suitable notations with suitable expressiveness We don t want to model, we want to program! And always: precise and tool processable Language Workbench (Martin Fowler) 15
16 Language Workbench (Martin Fowler)? Freely use define persistent languages and abstract representation integrate them Language Workbench (Martin Fowler) Language Workbench (Martin Fowler)? language ::= projectional editing + schema + editors generators Language Workbench (Martin Fowler) Language Workbench (Martin Fowler) persist incomplete or contradictory information Language Workbench (Martin Fowler) + powerful editing testing refactoring debugging groupware language definition implies IDE definition 16
17 Language Workbench (Martin Fowler) support for classical classical and+ modeling programming Syntax primarily textual Syntax primarily textual with more symbols think: mathematics Syntax primarily textual sometimes box&line style Syntax primarily textual sophisticated visualizations 17
18 Modeling as Programming Modeling as Programmig (Mostly) Textual Notations Concrete Syntax Storage (Fancy) ASCII Editors Read-Only Visualizations Parser-based text to tree to text Custom Syntax Graphical Textual Symbolic++ IDE Support Teamwork Debugging Custom Editors 18
19 Complete Symbolic Integration Goto Def Find Refs Refactoring Integrates with Current Dev Infrastructure Version Mgt Diff/Merge Cmd Line Tools Limited to Unicode how to handle non-character symbols Graphics!= Text two worlds separate editors per syntax/viewpoint models can still be ref integrated 19
20 Eclipse Xtext Building Textual Editors Eclipse Xtext Xtext: Specify Grammar Building Textual Editors Xtext: Gen. Meta Model Xtext: Constraints 20
21 Xtext: Generated Editor Xtext: Generated Editor Code Completion Xtext: Generated Editor Xtext: Generated Editor Syntax Coloring Custom Keyword Coloring Realtime Constraint Validation Xtext: Generated Editor Customizable Outlines Xtext: Generated Editor Code Folding 21
22 Xtext: Generated Editor Xtext: Generated Editor Goto Definition Find References Cross-File References Model as EMF DEMO I Building DSLs with Eclipse Xtext Programming as Modeling 22
23 Programming as Modeling (Mostly) Graphical Notations Abstract Syntax Storage Projecting Editors Different editable views for model Programming as Modeling (Mostly) Graphical Any kind of Notations Abstract Syntax Storage Projecting Editors Different editable views for model Projectional tree to text-lookalike (editor) to other trees **+ to text Language Composition There s no parsing. Unique Language Element Identity. Unlimited language composition. Flexible Notations Textual like ASCII box & line mathematical Graphical Semi-Graphical treated the same can be mixed 23
24 Automatic IDE Extension tool support is inherent for languages built with projectional tools language definition implies IDE definition Multiple Notations for the same concepts e.g. in different contexts or for different tasks Partial Projections different views for different roles/people only a particular variant Storage!= Schema store arbitrary meta data change log conflicting information variability annotations independent of language schema! aspects, overlay Live Programs think: spreadsheet a change to one part of program can lead to (dependent) changes in other parts useful e.g. for tests running in the workbench Tree Editing is different from editing text try to make it feel like text takes some getting used to but: for more flexible notations a more general editing paradigm is needed 24
25 Infrastructure Integration storage is not text diff/merge must be in tool existing text tools don t work Proprietary Tools no standards no out-of-the-box interop Jetbrains Meta Programming System Build new standalone DSLs released in Q licensed under Apache
26 Build new standalone DSLs Build DSLs that reuse parts of other languages Build new standalone DSLs Build DSLs that reuse parts of other languages (MPS comes with BaseLanguage) extend base language Java++ Build new standalone DSLs Build DSLs that reuse parts of other languages Language Extension Example (MPS comes with BaseLanguage) extend base language build DSLs that reuse parts of BaseLanguage Java++ Language Extension Example Language Extension Example Old ReadWriteLock l = l.readlock().lock(); try { //code finally { l.readlock().unlock(); Old ReadWriteLock l = l.readlock().lock(); try { //code finally { l.readlock().unlock(); New ReadWriteLock l = lock (l) { //code 26
27 Structure Editor Typesystem Generator Structure Editor Typesystem Generator Structure Editor Typesystem Generator Structure Editor Typesystem Generator Structure Editor Typesystem Generator Structure Editor Typesystem Generator 27
28 Structure Editor Typesystem Generator Structure Editor Typesystem Generator Structure Editor Typesystem Generator Language Extension Example Result behaves like a native base language construct Language Extension Example Result behaves like a native base language construct Language Extension Example Translated to regular Java code based on the generator package jaxdemo.sandbox.sandbox; import java.util.concurrent.locks.lock; public class DemoClass { private Lock lock; public DemoClass() { try { this.getlock().lock(); SharedResouce.instance().doSomething(); finally { this.getlock().unlock(); private Lock getlock() { return this.lock; 28
29 DEMO II Extending Java with JetBrains MPS Example Languages UI Language Example Languages HTML Templates Example Languages Persistent Classes 29
30 Tabular Projection Native Projection Textual DSL Projection Version 1.0 released in Dec 15, 2008 currently at 1.5 Statemachine Example Commercial Product Eval available upon request Statemachine Example Statemachine Example 30
31 Java Projection Ruby Projection Ruby Projection Two projections side/side Statemachine Example Statemachine Example Statemachine Example Statemachine Example Pension Workbench Example Text Editing Domain 31
32 Pension Workbench Example Pension Workbench Example Insurance Mathematics Domain Pension Rules Domain w/ tests Pension Workbench Example Pension Workbench Example All in one Document Symbolically integrated Expressing Configurability 32
33 Configuration on model level fewer variation points less complex expanded via generator Model Transformation Implementation Artefacts more abstract less detailed less abstract more detailed Configuration on model level fewer variation points less complex expanded via generator Transformation = Variation Point Negative Variability: Conditionally taking something away Negative Variability: Conditionally taking something away Feature Models 33
34 component DelayCalculator { provides default: IDelayCalculator requires screens[0..n]: IInfoScreen provides mon: IMonitoring feature monitoring component DelayCalculator { provides default: IDelayCalculator requires screens[0..n]: IInfoScreen provides mon: IMonitoring feature monitoring System Failover Monitoring Data Management Graceful Degradation Redundancy Centralized Distributed namespace monitoringstuff feature monitoring { component MonitoringConsole { requires devices:[*]: IMonitor instance monitor: MonitoringConsole dynamic connect monitor.devices query { type = IMonitor Positive Variability: Conditionally adding something to a minimal core Positive Variability: Conditionally adding something to a minimal core Aspects 34
35 namespace monitoring { component MonitoringConsole instance monitor: dynamic connect monitor.devices aspect (*) component { provides mon: IMonitoring component DelayCalculator { component AircraftModule { component InfoScreen { component DelayCalculator { component AircraftModule { component InfoScreen { aspect (*) component { provides mon: IMonitoring component DelayCalculator { provides mon: IMonitoring component AircraftModule { provides mon: IMonitoring component InfoScreen { provides mon: IMmonitoring Weaver isgeneric: works with all (container) model elements aspect (*) <type> all instances of type aspect (tag=bla) <type> all instances with tag bla aspect (name=s*) <type> all instances whose name starts with S AO + Features namespace monitoring feature monitoring { component MonitoringConsole instance monitor: dynamic connect monitor.devices aspect (*) component { provides mon: IMonitoring 35
36 DEMO III Adding Variability and connectivity to a feature model to an Xtext DSL A statemachine Actually, several! Variant for Pedestrians 36
37 Variant for Cars DEMO IV Expressing Variability with MPS Facilities to express Variability are completely independent of the target language! Facilities to express Variability are completely independent of the target language! which leads to 37
38 Modular Languages Viewpoints Business custom purpose-built create/include Custom Notations Viewpoints real business expert integration Business Viewpoints Technical predefined library configure Big Language? m k a o b n c L j i h d e f g with many first class concepts! 38
39 Small Language? L Modular Language a b c d e f my L g h i j k l with a few, orthogonal and poweful concepts with many optional, composable concepts Modular Language Like frameworks and libraries, Modular Language Like frameworks and libraries, but with syntax and IDE support Not a new idea 39
40 Growing A Language (Guy L Steele) (Seemingly) Simple Example Adding matrices to C in an embedded environment. Currently: Currently: Declare Data Structures in XML Generate Headers Implement manually in C Matrices not supported in XML format and generator 40
41 Currently: Currently: Tool team would have to do the extension a lot of work busy one central tool No real compiler support in the resulting C code type checks operator overloading generics (matrix<int>) matrix syntax? Better Solution Better Solution Better Solution generic matrix and vector types real matrix and vector literals 41
42 Better Solution Better Solution syntax highlights for vectors and matrices operator overloading Better Solution Better Solution operator overloading static optimization symmetrical matrices identity matrix diagonal matrices math notation Better Solution a separate language module used only by those who really need it 42
43 In addition: PLE Variability In addition: PLE Variability annotating variability expressions to arbitrary regions annotating variability expressions to arbitrary regions statically checked In addition: PLE Variability annotating variability expressions to arbitrary regions project variant 43
44 44
45 45
46 46
47 DEMO V Language Modularity with MPS 47
48 Summary Usefulness of DSLs Usable tools Variability in Models Modular Languages Usefulness of DSLs Usable tools Variability in Models Modular Languages Usefulness of DSLs Usable tools Variability in Models Modular Languages Usefulness of DSLs Usable tools Variability in Models Modular Languages 48
49 THE END Usefulness of DSLs Usable tools Variability in Models Modular Languages Markus Voelter Indepenent/itemis 49
Domain-Specific Languages Language Workbenches
Software Engineering with and Domain-Specific Languages Language Workbenches Peter Friese Itemis peter.friese@itemis.de Markus Voelter Independent/itemis voelter@acm.org 1 Programming Languages C# Erlang
More informationProgramming Modeling Two Worlds? Programmierung Modellierung Zwei Welten? und. and. Markus Voelter Independent/itemis
und Programmierung Modellierung Zwei Welten? and Modeling Two Worlds? Markus Voelter Independent/itemis voelter@acm.org Markus Voelter Independent/itemis voelter@acm.org 1 Languages C# Erlang C++ Python
More informationLanguage Extension and Composition with Language Workbenches
Language Extension and Composition with Language Workbenches Eelco Visser TU Delft E.Visser@tudelft.nl Markus Voelter Independent/itemis voelter@acm.org Different Worlds Programming Tools!= Modeling Tools
More information10 Thoughts 2 Demos * Discussions
Developing Embedded software with Language Workbenches Stuttgart, 20.09.2011 Markus Voelter Independent/itemis voelter@acm.org 10 Thoughts 2 Demos * Discussions 1 1 Embedded Development Two Classes in
More informationA little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best
Domain Specific Languages Markus Voelter Independent/itemis voelter@acm.org A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES
More informationDomain Specific Languages. Product Line Engineering
Using Domain Specific Languages in the context of Product Line Engineering Markus Voelter Independent/itemis voelter@acm.org Using Domain Specific Languages in the context of Product Line Engineering DSLs
More informationDSL Implementation. ... with language Workbenches. v1.1 Jan 16, Markus Voelter independent/itemis
DSL Implementation... with language Workbenches. v1.1 Jan 16, 2013 Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter Last Year s Talk
More informationDomain Specific Languages. Requirements (Engineering)
Domain Specific Languages and Requirements (Engineering) Andreas Graf Andreas.graf@itemis.de Markus Voelter www.voelter.de voelter@acm.org What are Requirements? a requirement is a singular documented
More informationPlan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language
Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.
More informationWhat are Requirements?
Domain Specific Languages and Requirements (Engineering) Markus Voelter www.voelter.de voelter@acm.org What are Requirements? 1 a requirement is a singular documented need of what a particular product
More informationLanguage engineering and Domain Specific Languages
Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.
More informationA conceptual framework for building good DSLs. Markus Voelter independent/itemis
DSL Design A conceptual framework for building good DSLs Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter based on material from a
More informationCSSE 490 Model-Based Software Engineering: Domain Specific Language Introduction
CSSE 490 Model-Based Software Engineering: Domain Specific Language Introduction Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Plan for the Day Introduction
More informationIntroduction to Dependable Systems: Meta-modeling and modeldriven
Introduction to Dependable Systems: Meta-modeling and modeldriven development http://d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 3 Software development Automated software
More informationABAP DSL Workbench SAP TechED 2016
ABAP DSL Workbench SAP TechED 2016 Barcelona, November 2016-0 - Hello. Hello. Example Asia Diner Yes? Number 77. Take away? No. Hello. Hello. Hello. Hello. As always? Yes. As always? Yes. Where are the
More informationExtending Java TM TM And Developing DSLs With JetBrains MPS Open- Source Language Workbench
Extending Java TM TM And Developing DSLs With JetBrains MPS Open- Source Language Workbench Konstantin Solomatov JetBrains Lead Developer for JetBrains MPS Project 1 Agenda > Extending languages. Why bother?
More informationDomain Specific - a Binary Decision?
Domain Specific - a Binary Decision? Markus Voelter independent/itemis Ötztaler Strasse 38 70327 Stuttgart, Germany voelter@acm.org Bernhard Merkle SICK AG R&D Software Engineering Erwin-Sick-Str.1 79183
More informationFrustrated by all the hype?
Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People
More informationLet s build. like they build. Markus Völter Bernd Kolb
Let s build like they build Markus Völter voelter@acm.org www.voelter.de @markusvoelter Bernd Kolb kolb@itemis.de www.itemis.de @berndkolb B 0 Motivation Examples 1 M Healthcare Context & Motivation Mobile
More informationA Family of Languages for Architecture Description
A Family of Languages for Architecture Description Markus Voelter Independent Consultant, Grabenstrasse 4, 73033 Goeppingen, Germany voelter@acm.org, http://www.voelter.de Abstract In this paper I describe
More informationPractical DSL Design. Groovy Sydney Meetup May 4th, Peter Bell CEO/CTO SystemsForge
Practical DSL Design Groovy Sydney Meetup May 4th, 2010 Peter Bell CEO/CTO SystemsForge Overview Before DSLs... What is a DSL? Creating a DSL Good DSL Design Key Concepts Implementing DSLs in Groovy Testing
More informationbuilding DSLs with language workbenches
ThoughtWorks building DSLs with language workbenches NEAL FORD software architect / meme wrangler ThoughtWorks nford@thoughtworks.com 3003 Summit Boulevard, Atlanta, GA 30319 www.nealford.com www.thoughtworks.com
More informationCompositional Model Based Software Development
Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability
More informationwith openarchitectureware
Model-Driven Development with openarchitectureware Markus Völter voelter@acm.orgorg www.voelter.de Sven Efftinge sven@efftinge.de www.efftinge.de Bernd Kolb bernd@kolbware.de www.kolbware.de 2006-7 Völter,
More informationProgramming Languages
Trends in Programming Languages ICALEPCS 2011 Markus Voelter Independent/itemis voelter@acm.org A single language to rule them all An ecosystem of languages An ecosystem of languages The Pendulum Swings
More informationUsing Scala for building DSL s
Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain
More informationComparison and merge use-cases from practice with EMF Compare
Comparison and merge use-cases from practice with EMF Compare Laurent Delaigue Philip Langer EMF Compare Working with models Comparing text files EMF Compare Working with models Comparing models EMF Compare
More informationPEG-Based Language Workbench
PEG-Based Language Workbench Yuriy Korenkov, Ivan Loginov, Arthur Lazdin Saint Petersburg National Research University of Information Technologies, Mechanics and Optics Saint Petersburg, Russia ged.yuko,
More informationDESIGN, EVOLUTION AND USE
DESIGN, EVOLUTION AND USE of KernelF voelter@acm.org www.voelter.de @markusvoelter Markus Völter Check out the paper! http://voelter.de/data /pub/kernelf-icmt.pdf EXAMPLE 1 Healthcare 1 Context Mobile
More informationAn Evaluation of Domain-Specific Language Technologies for Code Generation
An Evaluation of Domain-Specific Language Technologies for Code Generation Christian Schmitt, Sebastian Kuckuk, Harald Köstler, Frank Hannig, Jürgen Teich Hardware/Software Co-Design, System Simulation,
More informationSoftware Architecture
Software Architecture Benjamin Satzger Distributed Systems Group TU Wien http://www.infosys.tuwien.ac.at/staff/ bsatzger Models Terms Unified Modeling Language (UML) Architecture Description Language (ADL)
More informationIntroduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University
Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML
More informationADT: Eclipse development tools for ATL
ADT: Eclipse development tools for ATL Freddy Allilaire (freddy.allilaire@laposte.net) Tarik Idrissi (tarik.idrissi@laposte.net) Université de Nantes Faculté de Sciences et Techniques LINA (Laboratoire
More informationAADL Graphical Editor Design
AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized
More informationIntroduction to XML 3/14/12. Introduction to XML
Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML
More informationMarkus Völter
of Markus Völter voelter@acm.org www.voelter.de @markusvoelter Examples 1 Healthcare Context & Motivation Mobile Apps that help patients w/ treatments Monitor side-effects and recommend actions Manage
More informationIntroduction to EGF. Benoît Langlois / Thales Global Services.
www.thalesgroup.com Introduction to EGF Benoît Langlois / Thales Global Services 2 / Agenda Introduction EGF Architecture Concepts & Practice EGF Portfolios 3 / Agenda Introduction EGF Architecture Concepts
More informationStart Up Benoît Langlois / Thales Global Services Eclipse (EMFT) EGF 2011 by Thales; made available under the EPL v1.
www.thalesgroup.com Start Up Benoît Langlois / Thales Global Services 2 / Introduction EGF Architecture Concepts & Practice EGF Portfolios 3 / Introduction EGF Architecture Concepts & Practice EGF Portfolios
More informationXtext. Introduction and Real World Samples. Hendrik Bünder, itemis AG. itemis AG
Xtext Introduction and Real World Samples Hendrik Bünder, itemis AG Who is this guy? Hendrik Bünder IT-Consultant Agenda Introduction to Xtext What, How, Why? Common DSLs DSLs that no longer impress anybody.
More informationMatrex Table of Contents
Matrex Table of Contents Matrex...1 What is the equivalent of a spreadsheet in Matrex?...2 Why I should use Matrex instead of a spreadsheet application?...3 Concepts...4 System architecture in the future
More informationDocumentation of Eclipse Applications with DITA
Experts in Information Management Solutions and Services Documentation of Eclipse Applications with DITA Eclipse Embedded Day Stuttgart 2010 Gunthilde Sohn, instinctools GmbH Agenda Challenges in Software
More informationINT NTION L. Domain Expert DSLs
INT NTION L S O F T W A R E E A Domain Expert DSLs Magnus Christerson Intentional Software Corporation Henk Kolk CTO Financial Services, Capgemini The Challenge Business to accelerate Collabora ation Business
More informationDomain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons
Domain-Specific Languages Martin Fowler With Rebecca Parsons AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Sydney Tokyo Singapore
More informationCSSE 490 Model-Based Software Engineering: Software Factories
CSSE 490 Model-Based Software Engineering: Software Factories Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Learning Outcomes: MBE Discipline Relate Model-Based
More informationDániel Darvas Domain-specific languages (DSLs): what, how and when?
Dániel Darvas Domain-specific languages (DSLs): what, how and when? ICE Tea 21/02/2014 Outline Theory Concept of DSLs Technology Support for DSLs Reality Some details of the ST Example DSL Theory / Concept
More informationComparing graphical DSL editors
Comparing graphical DSL editors AToM 3 vs GMF & MetaEdit+ Nick Baetens Outline Introduction MetaEdit+ Specifications Workflow GMF Specifications Workflow Comparison 2 Introduction Commercial Written in
More informationIntroduction to OpenArchitectureWare
Introduction to OpenArchitectureWare Dr. Neil Loughran Neil.Loughran@sintef.no 20 th April 2009 ICT 1 Objective To give some insights into an alternative model transformation approach i.e. OpenArchitectureWare
More informationProjecting a Modular Future
Projecting a Modular Future Markus Voelter 1, Jos Warmer 2, and Bernd Kolb 3 1 independent/itemis, voelter@acm.org 2 independent, jos.warmer@openmodeling.nl 3 itemis, bernd.kolb@itemis.de Abstract. We
More informationopenarchitectureware 4.1 An introduction
openarchitectureware 4.1 An introduction Markus Voelter, www.voelter.de, openarchitectureware (oaw) is a suite of tools and components assisting with model driven software development, more precisely it
More informationDeveloping Web-Based Applications Using Model Driven Architecture and Domain Specific Languages
Proceedings of the 8 th International Conference on Applied Informatics Eger, Hungary, January 27 30, 2010. Vol. 2. pp. 287 293. Developing Web-Based Applications Using Model Driven Architecture and Domain
More informationSOA = Same Old Architecture?
SOA = Same Old Architecture? Gregor Hohpe Software Engineer www.eaipatterns.com Could It Be So Easy? WSDL SOAP WS-* Int MyMethod(String text) { } WebMethod Cut Copy Paste Buzzword compliant, but not a
More informationDomain-Specific Languages for Composable Editor Plugins
Domain-Specific Languages for Composable Editor Plugins LDTA 2009, York, UK Lennart Kats (me), Delft University of Technology Karl Trygve Kalleberg, University of Bergen Eelco Visser, Delft University
More informationSyntax and Grammars 1 / 21
Syntax and Grammars 1 / 21 Outline What is a language? Abstract syntax and grammars Abstract syntax vs. concrete syntax Encoding grammars as Haskell data types What is a language? 2 / 21 What is a language?
More informationRaising the Level of Development: Models, Architectures, Programs
IBM Software Group Raising the Level of Development: Models, Architectures, Programs Dr. James Rumbaugh IBM Distinguished Engineer Why Is Software Difficult? Business domain and computer have different
More informationGetting the Most from Eclipse
Getting the Most from Eclipse Darin Swanson IBM Rational Portland, Oregon Darin_Swanson@us.ibm.com March 17, 2005 What is Eclipse An extensible tools platform Out-of-box function and quality to attract
More informationHandling Variability
Handling Variability Version 2.0, December 11, 2009 Markus Völter, Independent/itemis (voelter@acm.org) 2009 Markus Voelter Copyright retain by author(s). Permission granted to Hillside Europe for inclusion
More informationbuilding dsl s in static & dynamic languages
ThoughtWorks building dsl s in static & dynamic languages NEAL FORD thoughtworker / meme wrangler ThoughtWorks 14 Wall St, Suite 2019, New York, NY 10005 nford@thoughtworks.com www.nealford.com www.thoughtworks.com
More informationThe PISA Project A Model Driven Development case study
In collaboration with The PISA Project A Model Driven Development case study Pedro J. Molina, PhD. May 19 th, 2007 Contents Introduction Goals Foundations Design aspects & Trade-offs Demo Problems found
More informationNews in RSA-RTE 10.1 updated for sprint Mattias Mohlin, November 2017
News in RSA-RTE 10.1 updated for sprint 2017.46 Mattias Mohlin, November 2017 Overview Now based on Eclipse Neon.3 (4.6.3) Many general improvements since Eclipse Mars Contains everything from RSARTE 10
More informationGoals. Greater Geate Abstraction work on a higher level do more with less insulate from technology. Increase Value. Reduce lossiness.
MDD: the Good, the Bad and the Ugly Steven Kelly CTO, MetaCase www.metacase.com com stevek@metacase.com Markus Voelter Independent/itemis AG www.voelter.de voelter@acm.org Part 1 1 Goals Goals Greater
More informationChristian Doppler Laboratory
Christian Doppler Laboratory Software Engineering Integration For Flexible Automation Systems AutomationML Models (in EMF and EA) for Modelers and Software Developers Emanuel Mätzler Institute of Software
More informationAutomatized Generating of GUIs for Domain-Specific Languages
Automatized Generating of GUIs for Domain-Specific Languages Michaela Bačíková, Dominik Lakatoš, and Milan Nosáľ Technical University of Košice, Letná 9, 04200 Košice, Slovakia, (michaela.bacikova, dominik.lakatos,
More informationEclipse technology in IFMS Interface Management System
Eclipse Finance Day 2013 Eclipse technology in IFMS Interface Management System Marc Schlienger A story today about Eclipse and IFMS SOA at Credit Suisse The construction of a System MDD in the large Leveraging
More informationx ide xml Integrated Development Environment Specifications Document 1 Project Description 2 Specifi fications
x ide xml Integrated Development Environment Specifications Document Colin Hartnett (cphartne) 7 February 2003 1 Project Description There exist many integrated development environments that make large
More informationModel driven Engineering & Model driven Architecture
Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software
More informationBIG MODELS AN ALTERNATIVE APPROACH
2. BIG MODELS AN ALTERNATIVE APPROACH Whitepaper Eclipse Summit 2008 Modeling Symposium Jos Warmer, Ordina (jos.warmer@ordina.nl) Abstract Scaling up modeling within project runs into many practical problems.
More informationAdvanced Topics in Software Engineering (02265) Ekkart Kindler
Advanced Topics in Software Engineering (02265) Recapitulation (I. Introduction ) 2 Levels of models ClassDiagram is an instance of PetriNet * Object * Class 1 start 1 end * Association concrete syntax
More informationEclipse Support for Using Eli and Teaching Programming Languages
Electronic Notes in Theoretical Computer Science 141 (2005) 189 194 www.elsevier.com/locate/entcs Eclipse Support for Using Eli and Teaching Programming Languages Anthony M. Sloane 1,2 Department of Computing
More informationWhen Modeling meets Productivity. Sven Efftinge - itemis
When Modeling meets Productivity Sven Efftinge - itemis I Eclipse JDT I GIT So what s the Problem? It s the Language not the Tooling! Level of Abstraction Reuse existing, proven technology and apply
More informationLanguage Shapes (Architectural) Thought Markus Völter
Language Shapes (Architectural) Thought Markus Völter voelter@acm.org www.voelter.de @markusvoelter Language Shapes (Architectural) Thought Sapir Whorf hypothesis aka Whorfianism The principle of linguis;c
More informationThe Unified Modelling Language. Example Diagrams. Notation vs. Methodology. UML and Meta Modelling
UML and Meta ling Topics: UML as an example visual notation The UML meta model and the concept of meta modelling Driven Architecture and model engineering The AndroMDA open source project Applying cognitive
More informationSemantic Modularization Techniques in Practice: A TAPL case study
1 Semantic Modularization Techniques in Practice: A TAPL case study Bruno C. d. S. Oliveira Joint work with Weixin Zhang, Haoyuan Zhang and Huang Li July 17, 2017 Text 2 EVF: An Extensible and Expressive
More informationTesting DSLs How to test DSLs, their IDEs and Programs
Testing DSLs How to test DSLs, their IDEs and Programs Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter A DSL is a focussed, processable
More informationWhat Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs
What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs EclipseCon Europe 2016 2016-10-26 Roman Mitin Avaloq Evolution AG Allmendstrasse 140 8027 Zurich Switzerland T +41 58 316
More informationIntroduction to Model Driven Engineering using Eclipse. Frameworks
Introduction to Model Driven Engineering using Eclipse Model Driven Development Generator s Bruce Trask Angel Roman MDE Systems Abstraction Model Driven Development Refinement 1 Part I Agenda What is Model
More informationLanguage Workbench Challenge 2016: the JetBrains Meta Programming System
Language Workbench Challenge 2016: the JetBrains Meta Programming System Eugen Schindler Canon/Océ Technologies eugenschindler@gmail.com Klemens Schindler Sioux Embedded Systems klemensschindler@gmail.com
More informationchallenges in domain-specific modeling raphaël mannadiar august 27, 2009
challenges in domain-specific modeling raphaël mannadiar august 27, 2009 raphaël mannadiar challenges in domain-specific modeling 1/59 outline 1 introduction 2 approaches 3 debugging and simulation 4 differencing
More informationSemantic search and reporting implementation on platform. Victor Agroskin
Semantic search and reporting implementation on.15926 platform Victor Agroskin 10.05.2012 1 About the.15926 project TechInvestLab.ru Moscow-based strategy, organization and IT architecture consultancy
More informationTurning a Suite of Modeling and Processing Tools Into a Production Grade System
Turning a Suite of Modeling and Processing Tools Into a Production Grade System Pascal Rivière 1, Olivier Rosec 1 1 Caisse nationale d assurance vieillesse (Cnav) 110 112 avenue de Flandre, F-75019 Paris
More informationTeiid Designer User Guide 7.5.0
Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata
More informationUnit E Step-by-Step: Programming with Python
Unit E Step-by-Step: Programming with Python Computer Concepts 2016 ENHANCED EDITION 1 Unit Contents Section A: Hello World! Python Style Section B: The Wacky Word Game Section C: Build Your Own Calculator
More informationDefining Domain-Specific Modeling Languages
Defining Domain-Specific Modeling Languages 1 st Oct 2008 Juha-Pekka Tolvanen MetaCase 1 Relevant language classifications to start with General-Purpose / Domain-Specific Narrow area of interest Often
More informationSafely-Composable Type-Specific Languages
Safely-Composable Type-Specific Languages Cyrus Omar Darya Kurilova Ligia Nistor Benjamin Chung Alex Potanin (Victoria University of Wellington) Jonathan Aldrich School of Computer Science Carnegie Mellon
More informationA Multi-layered Domain-specific Language for Stencil Computations
A Multi-layered Domain-specific Language for Stencil Computations Christian Schmitt Hardware/Software Co-Design, University of Erlangen-Nuremberg SPPEXA-Kolloquium, Erlangen, Germany; July 09, 2014 Challenges
More informationTools to Develop New Linux Applications
Tools to Develop New Linux Applications IBM Software Development Platform Tools for every member of the Development Team Supports best practices in Software Development Analyst Architect Developer Tester
More informationDominique Blouin Etienne Borde
Dominique Blouin Etienne Borde dominique.blouin@telecom-paristech.fr etienne.borde@telecom-paristech.fr Institut Mines-Télécom Content Domain specific Languages in a Nutshell Overview of Eclipse Modeling
More informationNews in RSA-RTE 10.1 updated for sprint Mattias Mohlin, July 2017
News in RSA-RTE 10.1 updated for sprint 2017.28 Mattias Mohlin, July 2017 Overview Now based on Eclipse Neon.3 (4.6.3) Many general improvements since Eclipse Mars Contains everything from RSARTE 10 and
More information(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days
Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented
More informationProgramming in Scala Second Edition
Programming in Scala Second Edition Martin Odersky, Lex Spoon, Bill Venners artima ARTIMA PRESS WALNUT CREEK, CALIFORNIA Contents Contents List of Figures List of Tables List of Listings Foreword Foreword
More informationSpoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT
Spoofax: An Extensible, Interactive Development Environment for Program Transformation with Stratego/XT Karl Trygve Kalleberg 1 Department of Informatics, University of Bergen, P.O. Box 7800, N-5020 BERGEN,
More informationLanguage Workbenches, Embedded Software and Formal Verification
Language Workbenches, Embedded Software and Formal Verification Markus Voelter independent/itemis voelter@acm.org www.voelter.de voelterblog.blogspot.de @markusvoelter +Markus Voelter Daniel Ratiu ForTISS
More informationDynamic Languages Toolkit. Presented by Andrey Tarantsov
Dynamic Languages Toolkit Presented by Andrey Tarantsov Dynamic Languages Toolkit Serves as a foundation for scripting and dynamically-typed language IDEs Generalizes JDT code and follows its architecture
More informationFunction names can be specified with winidea syntax for qualified names, if multiple download files and file static functions are tested.
_ RELEASE NOTES testidea 9.12.x 9.12.14 (28.3.2012) Qualified function names Function names can be specified with winidea syntax for qualified names, if multiple download files and file static functions
More informationAn IDE for the Grammatical Framework John J. Camilleri University of Gothenburg
Chapter 1 An IDE for the Grammatical Framework John J. Camilleri University of Gothenburg Abstract The GF Eclipse Plugin provides an integrated development environment (IDE) for developing grammars in
More informationChapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.
Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: WSAD. J2EE business topologies. Workbench. Project. Workbench components. Java development tools. Java projects
More informationOracle Application Development Framework Overview
An Oracle White Paper July 2009 Oracle Application Development Framework Overview Introduction... 1 Oracle ADF Making Java EE Development Simpler... 2 THE ORACLE ADF ARCHITECTURE... 3 The Business Services
More informationNew and Noteworthy. Peter Friese Bernd Kolb
New and Noteworthy Peter Friese peter.friese@gentleware.com http://www.gentleware.com Bernd Kolb b.kolb@kolbware.de http://www.kolbware.de What is openarchitectureware? oaw Languages New: AOP Mechanisms
More informationAJDT: Getting started with Aspect-Oriented Programming in Eclipse
AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten
More informationLessons learned from building Eclipse-based add-ons for commercial modeling tools
Lessons learned from building Eclipse-based add-ons for commercial modeling tools (from a technology perspective) István Ráth Ákos Horváth EclipseCon France June 14 2018 MagicDraw A popular modeling tool
More informationJetBrains TeamCity Comparison
JetBrains TeamCity Comparison TeamCity is a continuous integration and continuous delivery server developed by JetBrains. It provides out-of-the-box continuous unit testing, code quality analysis, and
More information