PIMped Papyrus - A Language Workbench for UML DSLs

477 views
377 views

Published on

The NIEM Modeling Tool project is an open source toolset built on the Eclipse 4 platform for creating standards-based information exchanges between local and national law enforcement agencies.

With the beta launch of the project this month, we take a step back to reflect on what it takes to write a graphical language workbench for a UML PIM DSL. Using Martin Fowler's criteria for defining a new DSL as the framework for this session, we will explore some of the NIEM toolset's features and how you can use these same ideas to develop a graphical IDE for other DSLs:

* UML Stereotypes to represent a language syntax
* Papyrus extensions, palette and properties view customizations for the graphical editor
* QVT to generate artifacts from the abstract representation
* Lucene for indexing existing libraries for import them into your model
* Epsilon for runtime validation

Tim Myer is an XP coach and programmer at SolutionsIQ, a leading provider of Agile transformation services that takes a real-world approach to delivering Agile at scale.

SEARCH is dedicated to improving the quality of justice and public safety through the use, management and exchange of information; application of new technologies; and responsible law and policy, while safeguarding security and privacy.

NIEM is a community-driven, government-wide, standards-based approach to exchanging information.


Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
477
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Formally initiated in April 2005 by the chief information officers of the U.S. Department of Homeland Security and the U.S. Department of Justice, NIEM is a community-driven, government-wide, standards-based approach to exchanging information. NIEM has issued three releases: 1.0 in 2006, 2.0 in 2007, and 2.1 in 2009. The NIEM 3.0 schemas are now available. NIEM-UML for Version 3.0 is currently in progress. (see https://www.niem.gov/aboutniem/Pages/history.aspx)
  • SEARCH leads efforts to facilitate information sharing and communication solutions that help State, local and tribal agencies better predict, prevent, respond to and recover from criminal activity, natural disasters, terrorist and all hazard type events. SEARCH also focuses on protecting the privacy and civil liberties of individuals whose data and information is the subject of the electronic information sharing environment.(see http://www.search.org/about-search/company-background/)
  • Developed by the U.S. Department of Justice Bureau of Justice Assistance, and SEARCH, to help jurisdictions across the country document their business information sharing requirements. (see http://www.search.org/programs/info/jiem/)
  • (see http://www.search.org/programs/info/jiem/tool/)
  • https://github.com/timezrahttp://timezra.blogspot.com/
  • (see http://martinfowler.com/articles/languageWorkbench.html#DefiningANewDsl)
  • The abstraction language and the configuration language are the same.No symbolic barrier.Tools available for the host language are available for the configuration language.(see http://martinfowler.com/articles/languageWorkbench.html#DefiningANewDsl)
  • Sometimes a DSL can seem like a small bivy site on top of a large mountain with crevasses and seracs below.Platform Independent Model of model-driven DSLs - The problem here is that the UML is a mightily complex language. The extension mechanisms are also quite complex and it's not easy to see how they will work out in practice. It's also not clear how well tools will be able to manipulate these extensions. One particular gray area is that of generation.(see http://martinfowler.com/articles/mdaLanguageWorkbench.html)
  • The abstraction language and the configuration language are the same.No symbolic barrier.Tools available for the host language are available for the configuration language.(see http://martinfowler.com/articles/languageWorkbench.html#DefiningANewDsl)
  • There is no standard generation standards to define how UML diagrams get interpreted as code. As a result there's no sufficiently precise semantics for the UML. Indeed I've heard UML proponents proud to say that UML has no semantics.(see http://martinfowler.com/articles/mdaLanguageWorkbench.html)
  • There are 4 main UML Profiles that contain our UML Stereotype declarations:NIEM_Common_Profile contains Stereotypes available in either the PIM or the PSMNIEM_PIM_Profile contains the platform independent StereotypesNIEM_PSM_Profile contains platform specific StereotypesModel_Package_Description_Profile contains Stereotypes used for packaging the emitted schemas, catalog, changelog and sample XML files.
  • The NIEM UML abstract syntax is defined by UML Stereotypes
  • Our vocabulary comprises a very small subset of UML elements.
  • The Pet Adoption example comes with the NIEM UML Tooling.
  • Papyrus provides a customizable editor and views for using UML-based DSLs.
  • These palette contributions require no coding, only configuration.
  • PIMped Papyrus - A Language Workbench for UML DSLs

    1. 1. Copyright © 2014 SolutionsIQ, Inc. All rights reserved. By: Tim Myer PIMped Papyrus A Language Workbench For UML DSLs
    2. 2. Working Agreement Electronics By Exception Ask Questions Start / End on Time
    3. 3. Backlog History NIEM SEARCH JIEM SIQ Me DSLs NIEM Modeling Abstract / Config Internal / External Work- bench Stereo- types Papyrus QVT Lucene PIM / PSM Future Gener- ator
    4. 4. Backlog Who / Why NIEM SEARCH JIEM SIQ Me What How Abstract / Config Internal / External Stereo- types Papyrus QVT Lucene Work- bench PIM / PSM Future Gener- ator
    5. 5. Backlog Doing Done History DSLs NIEM Modeling
    6. 6. National Information Exchange Model • Approach for Information Exchange • Local • State • National • Community-Driven • Standards-Based
    7. 7. National Consortium for Justice Information and Statistics • Facilitate information sharing • Predict, prevent, respond to and recover from hazard type events • Protect the privacy and civil liberties of individuals
    8. 8. • Developed by DOJ and SEARCH • Methodology • Reference Model • Modeling Tool Justice Information Exchange Model
    9. 9. • EMF-based Workflow Editor • Information Exchange Modeler • UML Profiles JIEM Modeling Tool
    10. 10. • Enterprise Agile transformation services • Staffing • Outsourced and onsite development • Scrum, Lean, SAFe and XP training • Release planning facilitation • Executive workshops SolutionsIQ
    11. 11. • Climby dude • XP coach • Programmer • Sometime WIKISPEED contributor • timezra online Tim Myer
    12. 12. Backlog Doing Done History DSLs NIEM Modeling
    13. 13. What is a DSL? • A limited form of language • Addresses a specific need • Has structure • Structure determines concrete syntax
    14. 14. How Can We Describe It? • External • Translated from another language • Internal • Subset of the host
    15. 15. Platform Independent and Specific Models
    16. 16. Projecting Editor • Storage representation • Textual files • Editable representation • AST • Allows errors and ambiguities
    17. 17. Making Abstractions Concrete • Semantics of the DSL • Turn a PIM to a PSM • Turn a PSM into XSDs, MPD, IEPD, …
    18. 18. Backlog Doing Done History DSLs NIEM Modeling
    19. 19. The Abstract Syntax
    20. 20. The Abstract Syntax
    21. 21. Extended Elements • Package • Component • Class • Datatype • Property • Generalization • Realization • Usage • Comment
    22. 22. The Concrete Syntax
    23. 23. The Projecting Editor
    24. 24. The Workbench Palette
    25. 25. Palette Declaration
    26. 26. Palette Definition
    27. 27. Properties View Configuration
    28. 28. Properties View Configuration
    29. 29. Properties Editor Enhancements
    30. 30. Properties View Enhancements
    31. 31. Properties View Enhancements
    32. 32. Inline Editor Configuration
    33. 33. Inline Editor Contribution
    34. 34. PIM to PSM to MPD and Back!
    35. 35. Generators
    36. 36. Re-using Libraries
    37. 37. Import Intellisense
    38. 38. Intellisense Configuration
    39. 39. Where Do We Go Now? • Move CI to Travis-CI • Automate Github releases • .MSIs and .Apps • Papyrus 1.0 • NIEM 3.0 • Luna • New features • More contributors
    40. 40. Backlog Doing Done History DSLs NIEM Modeling
    41. 41. Evaluate This Session Sign-in: www.eclipsecon.org Select session from schedule Evaluate: 1 2 3

    ×