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.
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
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
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/)
(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.