PIMped Papyrus - A Language Workbench for UML DSLs

Post on 14-Sep-2014

180 views 0 download

Tags:

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 of PIMped Papyrus - A Language Workbench for UML DSLs

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