Your SlideShare is downloading. ×
PIMped Papyrus - A Language Workbench for UML DSLs
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

PIMped Papyrus - A Language Workbench for UML DSLs

249

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. …

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
249
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
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.
  • Transcript

    • 1. Copyright © 2014 SolutionsIQ, Inc. All rights reserved. By: Tim Myer PIMped Papyrus A Language Workbench For UML DSLs
    • 2. Working Agreement Electronics By Exception Ask Questions Start / End on Time
    • 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. 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. Backlog Doing Done History DSLs NIEM Modeling
    • 6. National Information Exchange Model • Approach for Information Exchange • Local • State • National • Community-Driven • Standards-Based
    • 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. • Developed by DOJ and SEARCH • Methodology • Reference Model • Modeling Tool Justice Information Exchange Model
    • 9. • EMF-based Workflow Editor • Information Exchange Modeler • UML Profiles JIEM Modeling Tool
    • 10. • Enterprise Agile transformation services • Staffing • Outsourced and onsite development • Scrum, Lean, SAFe and XP training • Release planning facilitation • Executive workshops SolutionsIQ
    • 11. • Climby dude • XP coach • Programmer • Sometime WIKISPEED contributor • timezra online Tim Myer
    • 12. Backlog Doing Done History DSLs NIEM Modeling
    • 13. What is a DSL? • A limited form of language • Addresses a specific need • Has structure • Structure determines concrete syntax
    • 14. How Can We Describe It? • External • Translated from another language • Internal • Subset of the host
    • 15. Platform Independent and Specific Models
    • 16. Projecting Editor • Storage representation • Textual files • Editable representation • AST • Allows errors and ambiguities
    • 17. Making Abstractions Concrete • Semantics of the DSL • Turn a PIM to a PSM • Turn a PSM into XSDs, MPD, IEPD, …
    • 18. Backlog Doing Done History DSLs NIEM Modeling
    • 19. The Abstract Syntax
    • 20. The Abstract Syntax
    • 21. Extended Elements • Package • Component • Class • Datatype • Property • Generalization • Realization • Usage • Comment
    • 22. The Concrete Syntax
    • 23. The Projecting Editor
    • 24. The Workbench Palette
    • 25. Palette Declaration
    • 26. Palette Definition
    • 27. Properties View Configuration
    • 28. Properties View Configuration
    • 29. Properties Editor Enhancements
    • 30. Properties View Enhancements
    • 31. Properties View Enhancements
    • 32. Inline Editor Configuration
    • 33. Inline Editor Contribution
    • 34. PIM to PSM to MPD and Back!
    • 35. Generators
    • 36. Re-using Libraries
    • 37. Import Intellisense
    • 38. Intellisense Configuration
    • 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. Backlog Doing Done History DSLs NIEM Modeling
    • 41. Evaluate This Session Sign-in: www.eclipsecon.org Select session from schedule Evaluate: 1 2 3

    ×