PIMped Papyrus - A Language Workbench for UML DSLs

41
Copyright © 2014 SolutionsIQ, Inc. All rights reserved. By: Tim Myer PIMped Papyrus A Language Workbench For UML DSLs
  • date post

    14-Sep-2014
  • Category

    Technology

  • view

    179
  • download

    0

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

Page 1: 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

Page 2: PIMped Papyrus - A Language Workbench for UML DSLs

Working Agreement

Electronics By

Exception

Ask Questions

Start / End on Time

Page 3: PIMped Papyrus - A Language Workbench for UML DSLs

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

Page 4: PIMped Papyrus - A Language Workbench for UML DSLs

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

Page 5: PIMped Papyrus - A Language Workbench for UML DSLs

Backlog

Doing

Done

History

DSLs

NIEM Modelin

g

Page 6: PIMped Papyrus - A Language Workbench for UML DSLs

National Information Exchange Model

• Approach for Information Exchange

• Local• State• National• Community-Driven• Standards-Based

NIEM

Page 7: PIMped Papyrus - A Language Workbench for UML DSLs

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

Page 8: PIMped Papyrus - A Language Workbench for UML DSLs

• Developed by DOJ and SEARCH• Methodology• Reference Model• Modeling Tool

JIEMJustice Information Exchange Model

Page 9: PIMped Papyrus - A Language Workbench for UML DSLs

• EMF-based Workflow Editor

• Information Exchange Modeler

• UML Profiles

JIEMJIEM Modeling Tool

Page 10: PIMped Papyrus - A Language Workbench for UML DSLs

• Enterprise Agile transformation services

• Staffing• Outsourced and onsite

development• Scrum, Lean, SAFe and XP training• Release planning facilitation• Executive workshops

SIQSolutionsIQ

Page 11: PIMped Papyrus - A Language Workbench for UML DSLs

• Climby dude• XP coach• Programmer• Sometime WIKISPEED contributor• timezra online

MeTim Myer

Page 12: PIMped Papyrus - A Language Workbench for UML DSLs

Backlog

Doing

Done

History

DSLs

NIEM Modelin

g

Page 13: PIMped Papyrus - A Language Workbench for UML DSLs

What is a DSL?

• A limited form of language• Addresses a specific need• Has structure• Structure determines concrete

syntax

Abstract / Config

Page 14: PIMped Papyrus - A Language Workbench for UML DSLs

How Can We Describe It?

• External• Translated from another

language• Internal

• Subset of the host

Internal /

External

Page 15: PIMped Papyrus - A Language Workbench for UML DSLs

Platform Independent and Specific Models

PIM/ PSM

Page 16: PIMped Papyrus - A Language Workbench for UML DSLs

Projecting Editor

• Storage representation• Textual files

• Editable representation• AST• Allows errors and ambiguities

Work-bench

Page 17: PIMped Papyrus - A Language Workbench for UML DSLs

Making Abstractions Concrete

• Semantics of the DSL• Turn a PIM to a PSM• Turn a PSM into XSDs, MPD, IEPD,

Gener-ator

Page 18: PIMped Papyrus - A Language Workbench for UML DSLs

Backlog

Doing

Done

History

DSLs

NIEM Modelin

g

Page 19: PIMped Papyrus - A Language Workbench for UML DSLs

The Abstract SyntaxStereo-types

Page 20: PIMped Papyrus - A Language Workbench for UML DSLs

The Abstract SyntaxStereo-types

Page 21: PIMped Papyrus - A Language Workbench for UML DSLs

Extended ElementsStereo-types

• Package• Component• Class• Datatype• Property• Generalization• Realization• Usage• Comment

Page 22: PIMped Papyrus - A Language Workbench for UML DSLs

The Concrete SyntaxStereo-types

Page 23: PIMped Papyrus - A Language Workbench for UML DSLs

The Projecting EditorPapyrus

Page 24: PIMped Papyrus - A Language Workbench for UML DSLs

The Workbench PalettePapyrus

Page 25: PIMped Papyrus - A Language Workbench for UML DSLs

Palette DeclarationPapyrus

Page 26: PIMped Papyrus - A Language Workbench for UML DSLs

Palette DefinitionPapyrus

Page 27: PIMped Papyrus - A Language Workbench for UML DSLs

Properties View Configuration

Papyrus

Page 28: PIMped Papyrus - A Language Workbench for UML DSLs

Properties View Configuration

Papyrus

Page 29: PIMped Papyrus - A Language Workbench for UML DSLs

Properties Editor Enhancements

Papyrus

Page 30: PIMped Papyrus - A Language Workbench for UML DSLs

Properties View Enhancements

Papyrus

Page 31: PIMped Papyrus - A Language Workbench for UML DSLs

Properties View Enhancements

Papyrus

Page 32: PIMped Papyrus - A Language Workbench for UML DSLs

Inline Editor ConfigurationPapyrus

Page 33: PIMped Papyrus - A Language Workbench for UML DSLs

Inline Editor ContributionPapyrus

Page 34: PIMped Papyrus - A Language Workbench for UML DSLs

PIM to PSM to MPD and Back! QVT

Page 35: PIMped Papyrus - A Language Workbench for UML DSLs

Generators QVT

Page 36: PIMped Papyrus - A Language Workbench for UML DSLs

Re-using LibrariesLucene

Page 37: PIMped Papyrus - A Language Workbench for UML DSLs

Import IntellisenseLucene

Page 38: PIMped Papyrus - A Language Workbench for UML DSLs

Intellisense ConfigurationLucene

+ Papyrus

Page 39: PIMped Papyrus - A Language Workbench for UML DSLs

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

Page 40: PIMped Papyrus - A Language Workbench for UML DSLs

Backlog

Doing

Done

History

DSLs

NIEM Modelin

g

Page 41: PIMped Papyrus - A Language Workbench for UML DSLs

Evaluate This Session

Sign-in: www.eclipsecon.org

Select session from schedule

Evaluate:

1

2

3