Domain Specific Languages With Eclipse Modeling

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    stückweise durchgehen

    Java schlecht im Abstrahieren von Struktur, Redundanz
    Code-Generierung definiert Platform-Mapping (Architekt)
    Referenz aus anderen DSLs, Wartbarkeit

    Java schlecht im Abstrahieren von Struktur, Redundanz
    Code-Generierung definiert Platform-Mapping (Architekt)
    Referenz aus anderen DSLs, Wartbarkeit

    Java schlecht im Abstrahieren von Struktur, Redundanz
    Code-Generierung definiert Platform-Mapping (Architekt)
    Referenz aus anderen DSLs, Wartbarkeit

    Raise level of abstraction, Avoids redundancy
    Separation of concerns, Reuse of domain concepts
    Higher expressiveness, Ubiquitous language

    Die DSL für DSLs, Eclipse-basiert
    Define textual DSLs easily, Ready-to-use tool-chain, Easy but flexible customizing and tweaking,
    Durable foundation with Java Eclipse EMF, Strong community

    1 Group

    Domain Specific Languages With Eclipse Modeling - Presentation Transcript

    1. Software Installation • Unzip the Eclipse distribution matching your OS Windows users: Use a location close to the root directory • Run the Eclipse executable • Choose File -> Import -> Existing projects into workspace • Select Archive file and choose workspace.zip from the USB stick
    2. Domain-specific Languages With Eclipse Modeling Jan Köhnlein, Karsten Thoms Markus Völter, Sebastian Zarnekow itemis AG
    3. Karsten Thoms Sebastian Zarnekow Jan Köhnlein Markus Voelter
    4. Karsten Thoms Sebastian Zarnekow Jan Köhnlein Markus Voelter
    5. Domain-specific Language (DSL)
    6. Domain-specific Language (DSL) a formal, processable language targeting at a specific viewpoint or aspect of a system.
    7. Example: JPA
    8. @Entity public class Customer implements Serializable { private Long id; private String name; private Address address; private Collection<Order> orders = new HashSet<Order>(); private Set<PhoneNumber> phones = new HashSet<PhoneNumber>(); public Customer() {} @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } @OneToMany public Collection<Order> getOrders() { return orders; } public void setOrders(Collection<Order> orders) { this.orders = orders; } @ManyToMany public Set<PhoneNumber> getPhones() { return phones; } public void setPhones(Set<PhoneNumber> phones) { this.phones = phones; } }
    9. @Entity public class Customer implements Serializable { private Long id; private String name; private Address address; private Collection<Order> orders = new HashSet<Order>(); private Set<PhoneNumber> phones = new HashSet<PhoneNumber>(); public Customer() {} @Id public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } entity Customer { public void setName(String name) { this.name = name; String name } Address address public Address getAddress() { return address; Order* orders } public void setAddress(Address address) { PhoneNumber** phones this.address = address; } } @OneToMany public Collection<Order> getOrders() { return orders; } public void setOrders(Collection<Order> orders) { this.orders = orders; } @ManyToMany public Set<PhoneNumber> getPhones() { return phones; } public void setPhones(Set<PhoneNumber> phones) { this.phones = phones; } }
    10. Abstraction
    11. The right tool for the right job
    12. MWE Xpand
    13. G ra m m ar
    14. Reference ar Model m m ra G
    15. Reference ar Model m m ra G
    16. Reference ar Model m m ra G DSL Workbench
    17. Reference ar Model m m ra G DSL Workbench Editor
    18. Reference ar Model m m ra G DSL Workbench Editor Infrastucture
    19. Reference ar Model m m ra G DSL Workbench Editor Infrastucture Generator
    20. Editor Generator
    21. Editor AST Generator
    22. Editor AST TeX Xpa T ma p TeXeXpa p n nd m l p Te m a p n ad m pln lad te pl ad te at te e Generator
    23. Editor AST TeX Xpa T ma p TeXeXpa p n nd m l p Te m a p n ad m pln lad te pl ad te at te e Generator
    24. Editor AST TeX Xpa T ma p TeXeXpa p n nd m l p Te m a p n ad m pln lad te pl ad te at te e Generator E Ex xe Ex A c r Ex Ae etcu uta Aecrtcuifata bl A rti uifata ctbl e rt fata ctb e ifa c b le ct t le
    25. Showtime
    26. Generation Gap Pattern BaseClass baseMethod() framework manually written AbstractGeneratedClass generatedMethod() generated ConcreteCustomizedClass overriddenMethod() generated once additionalMethod() modified manually
    27. Questions? find out more at http://www.xtext.org

    + schwurbelschwurbel, 1 month ago

    custom

    281 views, 0 favs, 0 embeds more stats

    Domain-specific Languages with Eclipse Modeling
    wi more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 281
      • 281 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 13
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events