Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Copyright © 2014 SolutionsIQ, Inc. All rights reserved.
By: Tim Myer
PIMped Papyrus
A Language Workbench For UML DSLs
Working Agreement
Electronics
By Exception
Ask
Questions
Start / End
on Time
Backlog
History
NIEM
SEARCH
JIEM
SIQ
Me
DSLs
NIEM
Modeling
Abstract
/ Config
Internal /
External
Work-
bench
Stereo-
types...
Backlog
Who /
Why
NIEM
SEARCH
JIEM
SIQ
Me
What
How
Abstract
/ Config
Internal /
External
Stereo-
types
Papyrus
QVT
Lucene
...
Backlog Doing Done
History
DSLs
NIEM
Modeling
National Information Exchange Model
• Approach for Information Exchange
• Local
• State
• National
• Community-Driven
• St...
National Consortium for Justice Information and Statistics
• Facilitate information sharing
• Predict, prevent, respond to...
• Developed by DOJ and SEARCH
• Methodology
• Reference Model
• Modeling Tool
Justice Information Exchange Model
• EMF-based Workflow
Editor
• Information Exchange
Modeler
• UML Profiles
JIEM Modeling Tool
• Enterprise Agile transformation services
• Staffing
• Outsourced and onsite development
• Scrum, Lean, SAFe and XP train...
• Climby dude
• XP coach
• Programmer
• Sometime WIKISPEED contributor
• timezra online
Tim Myer
Backlog Doing Done
History
DSLs
NIEM
Modeling
What is a DSL?
• A limited form of language
• Addresses a specific need
• Has structure
• Structure determines concrete sy...
How Can We Describe It?
• External
• Translated from another language
• Internal
• Subset of the host
Platform Independent and Specific Models
Projecting Editor
• Storage representation
• Textual files
• Editable representation
• AST
• Allows errors and ambiguities
Making Abstractions Concrete
• Semantics of the DSL
• Turn a PIM to a PSM
• Turn a PSM into XSDs, MPD, IEPD, …
Backlog Doing Done
History
DSLs
NIEM
Modeling
The Abstract Syntax
The Abstract Syntax
Extended Elements
• Package
• Component
• Class
• Datatype
• Property
• Generalization
• Realization
• Usage
• Comment
The Concrete Syntax
The Projecting Editor
The Workbench Palette
Palette Declaration
Palette Definition
Properties View Configuration
Properties View Configuration
Properties Editor Enhancements
Properties View Enhancements
Properties View Enhancements
Inline Editor Configuration
Inline Editor Contribution
PIM to PSM to MPD and Back!
Generators
Re-using Libraries
Import Intellisense
Intellisense Configuration
Where Do We Go Now?
• Move CI to Travis-CI
• Automate Github releases
• .MSIs and .Apps
• Papyrus 1.0
• NIEM 3.0
• Luna
• ...
Backlog Doing Done
History
DSLs
NIEM
Modeling
Evaluate This Session
Sign-in: www.eclipsecon.org
Select session from schedule
Evaluate:
1
2
3
Upcoming SlideShare
Loading in …5
×

PIMped Papyrus - A Language Workbench for UML DSLs

694 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
  • Be the first to comment

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

×