blob: 27ce5583985042d6214a1ae12b463f31710c0bfb [file] [log] [blame]
<?php
/*******************************************************************************
* Copyright (c) 2015 Eclipse Foundation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eric Poirier (Eclipse Foundation) - Initial implementation
*******************************************************************************/
?>
<h1 class="article-title"><?php echo $pageTitle; ?></h1>
<img src="/community/eclipse_newsletter/2014/april/images/papyrus.jpg"
width="200" alt="" />
<br>
<h2>What is Papyrus?</h2>
<p>
This article introduces the <a
href="https://www.eclipse.org/papyrus/">Papyrus</a> 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 (<a target="_blank"
href="http://www.omg.org">OMG</a>) 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.
</p>
<p>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.</p>
<h3>Background</h3>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<h2>Papyrus 1.0</h2>
<p>
The Eclipse platform along with its modeling high-level project, and
the <a href="http://polarsys.org/">PolarSys</a> 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 <a
href="http://wiki.eclipse.org/MDT-UML2">UML2 meta-model</a>. 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.
</p>
<p>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.</p>
<a href="/community/eclipse_newsletter/2014/april/images/CustoDSL.png"
target="_blank"><img
src="/community/eclipse_newsletter/2014/april/images/CustoDSL.png"
width="200" alt="" /></a>
<a href="/community/eclipse_newsletter/2014/april/images/Image1.png"
target="_blank"><img
src="/community/eclipse_newsletter/2014/april/images/Image1.png"
width="200" alt="" /></a>
<a href="/community/eclipse_newsletter/2014/april/images/Image9.png"
target="_blank"><img
src="/community/eclipse_newsletter/2014/april/images/Image9.png"
width="200" alt="" /></a>
<br>
<p>
<small>Click on images to enlarge</small>
</p>
<br />
<h3>Who’s Using Papyrus?</h3>
<p>Papyrus has already been adopted by different industries, including
Esterel Technologies:</p>
<cite>"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."</cite>
<br />
<p>- Eric Bantegnie, President and CEO, Esterel Technologies</p>
<h3>Functionalities</h3>
<p>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.</p>
<p>Papyrus provides numerous functions in support of UML 2 modeling.
The following list, while not complete, represents some of its
advanced modeling features:</p>
<ul>
<li><b>A tools palette highly customizable.</b> Each diagram type
has its own palette of tools allowing creation of UML elements in
the diagram and configurable easily to fit user needs.</li>
<li><b>A property view.</b> 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.
<a href="/community/eclipse_newsletter/2014/april/images/Image6.png"
target="_blank"><img
src="/community/eclipse_newsletter/2014/april/images/Image6.png"
width="200" alt="" /></a>
<br>
<p>
<small>Click on image to enlarge</small>
</p></li>
<li><b>Model navigation.</b> 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.</li>
<li><b>Contextual text editors enabling syntax highlight,
completion, and content assist.</b> 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.</li>
<li><b>OCL constraint specification and checking.</b> 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.</li>
<li><b>Model import.</b> 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.</li>
</ul>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<h5>References</h5>
<p>
<small>1. OMG: UML Version v2.5, formal/07-02-05, <a target="_blank"
href="http://www.omg.org/spec/UML/2.5/">http://www.omg.org/spec/UML/2.5/</a>.
</small>
</p>
<div class="bottomitem">
<h3>About the Authors</h3>
<div class="row">
<div class="col-sm-12">
<div class="row">
<div class="col-sm-8">
<img class="author-picture"
src="/community/eclipse_newsletter/2014/april/images/seb.jpg"
width="75" alt="Sebastien Gerard" />
</div>
<div class="col-sm-16">
<p class="author-name">
Sébastien Gérard<br />
<a target="_blank" href="http://www-list.cea.fr/en">CEA List</a>
</p>
</div>
</div>
</div>
<div class="col-sm-12">
<h6>Co-Authors</h6>
<p>
<strong>CEA's Papyrus Team</strong><br>Ansgar Radermacher<br>Arnaud
Cuccuru<br>Benoit Maggy<br>Camille Letavernier<br>Florian Noyrit<br>Juan
Cadavid<br>Laurent Wouters<br>Patrick Tessier<br>Rémi
Schnekenburger<br>Vincent Lorenzo
</p>
</div>
</div>
</div>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-34967275-3', 'eclipse.org');
ga('send', 'pageview');
</script>