pimped papyrus - a language workbench for uml dsls
Post on 14-Sep-2014
184 views
DESCRIPTION
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.TRANSCRIPT
Copyright © 2014 SolutionsIQ, Inc. All rights reserved.
By: Tim Myer
PIMped PapyrusA Language Workbench For UML DSLs
Working Agreement
Electronics By
Exception
Ask Questions
Start / End on Time
Backlog
HistoryNIEM
SEARCH
JIEM
SIQ
Me
DSLs
NIEM Modelin
g
Abstract / Config
Internal /
External
Work-bench
Stereo-types
Papyrus
QVT
Lucene
PIM / PSM
Future
Gener-ator
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
Backlog
Doing
Done
History
DSLs
NIEM Modelin
g
National Information Exchange Model
• Approach for Information Exchange
• Local• State• National• Community-Driven• Standards-Based
NIEM
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
SEARCH
• Developed by DOJ and SEARCH• Methodology• Reference Model• Modeling Tool
JIEMJustice Information Exchange Model
• EMF-based Workflow Editor
• Information Exchange Modeler
• UML Profiles
JIEMJIEM Modeling Tool
• Enterprise Agile transformation services
• Staffing• Outsourced and onsite
development• Scrum, Lean, SAFe and XP training• Release planning facilitation• Executive workshops
SIQSolutionsIQ
• Climby dude• XP coach• Programmer• Sometime WIKISPEED contributor• timezra online
MeTim Myer
Backlog
Doing
Done
History
DSLs
NIEM Modelin
g
What is a DSL?
• A limited form of language• Addresses a specific need• Has structure• Structure determines concrete
syntax
Abstract / Config
How Can We Describe It?
• External• Translated from another
language• Internal
• Subset of the host
Internal /
External
Platform Independent and Specific Models
PIM/ PSM
Projecting Editor
• Storage representation• Textual files
• Editable representation• AST• Allows errors and ambiguities
Work-bench
Making Abstractions Concrete
• Semantics of the DSL• Turn a PIM to a PSM• Turn a PSM into XSDs, MPD, IEPD,
…
Gener-ator
Backlog
Doing
Done
History
DSLs
NIEM Modelin
g
The Abstract SyntaxStereo-types
The Abstract SyntaxStereo-types
Extended ElementsStereo-types
• Package• Component• Class• Datatype• Property• Generalization• Realization• Usage• Comment
The Concrete SyntaxStereo-types
The Projecting EditorPapyrus
The Workbench PalettePapyrus
Palette DeclarationPapyrus
Palette DefinitionPapyrus
Properties View Configuration
Papyrus
Properties View Configuration
Papyrus
Properties Editor Enhancements
Papyrus
Properties View Enhancements
Papyrus
Properties View Enhancements
Papyrus
Inline Editor ConfigurationPapyrus
Inline Editor ContributionPapyrus
PIM to PSM to MPD and Back! QVT
Generators QVT
Re-using LibrariesLucene
Import IntellisenseLucene
Intellisense ConfigurationLucene
+ Papyrus
Where Do We Go Now?Future
• Move CI to Travis-CI• Automate Github releases• .MSIs and .Apps• Papyrus 1.0• NIEM 3.0• Luna• New features• More contributors
Backlog
Doing
Done
History
DSLs
NIEM Modelin
g
Evaluate This Session
Sign-in: www.eclipsecon.org
Select session from schedule
Evaluate:
1
2
3