Eclipse Luna: Papyrus 1.0 Release


What is Papyrus?

This article introduces the Papyrus tool, an Eclipse-based visual editor for Unified Modeling Language (UML [1]) modeling. This open source application has two principal objectives: first, it aims to implement the complete UML specification (currently version 2.5), enabling it to be used as the reference implementation of the Object Management Group (OMG) standard. Second, it intends to provide an open, robust, highly scalable, and highly customizable tool for defining Domain-Specific Languages (DSLs) and corresponding tools via the UML profile mechanism. It enables hence to benefit advantages of standard-based solutions in one hand and efficiency of domain-specific modeling solutions in the other hand. Finally, Papyrus is also intended to support large-scale industrial projects, as indicated by the growing list of industrial supporters. Consequently, it provides an efficient and effective alternative to custom and proprietary DSL tools, without losing the benefits of an international standard.

Finally, Papyrus will also serve as an experimental platform for researchers who need to construct proof-of-concept prototypes. Built on top of Eclipse as an open source project, Papyrus is an ideal candidate for this purpose.

Background

As part of its Model-Driven Architecture (MDA) initiative, OMG, an international consortium representing numerous industrial and academic institutions, has provided a comprehensive series of standardized technology recommendations in support of model-based development of both software and systems in general. These recommendations cover core facilities such as meta-modeling, model transformations, general-purpose languages, and Domain-Specific Modeling Languages (DMSLs). A key component in the latter category is UML, which has emerged as the most widely used modeling language in both industry and academia.

A number of tools supporting UML are available from a variety of sources. However, these are generally proprietary solutions whose capabilities and market availability are controlled by their respective vendors. This can be problematic for industrial users, who may require highly specific tool capabilities as well as long-term support that often extends beyond the point of commercial viability.

Consequently, some industrial enterprises are seeking open source solutions for their UML tools. Researchers have a similar need, since proprietary products are often too constraining and inflexible to allow optimized implementation of new ideas and prototypes.

Papyrus 1.0

The Eclipse platform along with its modeling high-level project, and the PolarSys Eclipse working group, are the environment of choice for developing open source tools for enabling and fostering model-driven engineering (MDE). Indeed, within this context, there are two projects dedicated to implement UML. First, there is the UML2 project providing an EMF-based implementation of the UML2 meta-model. This component has become the de facto standard implementation of the UML2 meta-model. Secondly, based on this UML2 component, Papyrus provides user-oriented tools to enable UML2 visual modeling within Eclipse. It includes all its usual graphical editors as defined in the standards, but also other editors enabling tabular-based, text-based, tree-based and form-based views.

Papyrus became an Eclipse open source project in August 2008, and the first code was delivered in November 2008. The Eclipse Luna simultaneous release, scheduled for June 2014, will include Papyrus 1.0. This release represents an important milestone for Papyrus. The project has reached true maturity and its product has developed into an industrial-strength tool. Release 1.0 will include new features and major advances in usability and robustness.


Click on images to enlarge


Who’s Using Papyrus?

Papyrus has already been adopted by different industries, including Esterel Technologies:

"Esterel Technologies has chosen the Papyrus technology platform as a core component of its SCADE System model-based systems engineering product offering and is extremely pleased with its quality and efficiency as well as the common developments undertaken in partnership with and CEA LIST within our common LISTEREL Laboratory."

- Eric Bantegnie, President and CEO, Esterel Technologies

Functionalities

Papyrus allows support for all diagram types defined in UML2. A Papyrus user can therefore build UML2 models that strictly conform to the standardized specification of the language. Papyrus can then be used to check against the UML specification. If something cannot be represented in Papyrus, this generally means that it is not allowed by the specification.

Papyrus provides numerous functions in support of UML 2 modeling. The following list, while not complete, represents some of its advanced modeling features:

  • A tools palette highly customizable. Each diagram type has its own palette of tools allowing creation of UML elements in the diagram and configurable easily to fit user needs.
  • A property view. This allows the editing of any property of a UML element as well as any of its graphical properties. These properties are organized by categories for ease of use. There is also an "expert" category, allowing access to all the properties defined in the UML meta-model.

    Click on image to enlarge

  • Model navigation. Papyrus enables the addition of hyperlinks from one model element shown in a view to a model element shown in another view, to another view, or even to an external document (such as a pdf file or a web page). Hyperlinks may be created either within one model or between elements of different models.
  • Contextual text editors enabling syntax highlight, completion, and content assist. When a text-based model element (such as a property) is accessed, Papyrus helps by providing a list of possible values, such as a list of existing types or existing cardinalities. Papyrus also validates the text according to its grammar (if defined). This functionality is customizable; a user can provide an implementation (such as a specific text editor and validation rules) for specific needs.
  • OCL constraint specification and checking. OCL constraints can be specified for each UML element at the model level or at the meta-model level, such as in a profile definition. Furthermore, these constraints can be checked against the current model.
  • Model import. Papyrus can import models, profiles, or elements from other files. Imported elements can be used in the model and edited as for any other elements.

To meet the primary goal of realizing the UML2 specification, Papyrus also provides extensive support for UML profiles. It includes all facilities for defining and applying UML profiles in a very rich and efficient manner. It also provides powerful tool customization capabilities similar to DSML-like meta-tools.

The main intent here is to enable the profile plugin of Papyrus to dynamically drive its customization as defined by a profile. When applying a profile, Papyrus may adapt its visual rendering and GUI to fit the specific domain supported by that profile. If the profile is unapplied later, the tool resumes its previous configuration.

When designing a UML2 profile, it is sometimes necessary to customize one or more existing UML2 diagram editors. So Papyrus supports customization of existing editors with the added capability of extending such customizations by adding new tools relevant to the stereotypes defined in the UML profile. For example, the SysML requirements diagram editor is designed as a customization of the classic UML2 class diagram editor, with additional features for direct manipulation of all the concepts defined in the SysML requirements diagram.

Finally, when embedding a profile within an Eclipse plugin, a designer can also provide a specific properties view that simplifies the manipulation of the stereotypes and properties to make them more user-friendly. The outline editor and the tool menu can also be customized to fit the domain-specific concerns of the profile.

References

1. OMG: UML Version v2.5, formal/07-02-05, http://www.omg.org/spec/UML/2.5/.

About the Authors

Sebastien Gerard

Sébastien Gérard
CEA List

Co-Authors

CEA's Papyrus Team
Ansgar Radermacher
Arnaud Cuccuru
Benoit Maggy
Camille Letavernier
Florian Noyrit
Juan Cadavid
Laurent Wouters
Patrick Tessier
Rémi Schnekenburger
Vincent Lorenzo