25/11/2011
3
NTRODUCTION
The complexity level reached today for the development of computer-intensive
systems requires for new design paradigms. In this context, the most promising
used principle is commonly referred to as “raising the level of abstraction” and is
one of the main distinguishing features of model-based approaches.
The principle of separation of concerns is indeed widely used in engineering, including
model-based engineering, to address the ever growing complexity of system designs.
This principle implies specialization of technologies, and in the context of model-based
engineering, it has led to the development of domain specific modeling languages
(DSML). Those DSMLs provide constructs that are directly aligned with the concepts of
the domain in question. Yet, the large majority of systems, including software-intensive
systems, are still denoted using general purpose languages. The main reasons are
probably the ready availability of tools, language documentation and training courses for
these languages, as well as the ready availability of expert practitioners. Also, for many
enterprises, using general-purpose languages appears as the less risky and less
expensive alternative. Consequently, various domain-specific program libraries, written
in a general purpose language, are often developed in place of DSLs. Main drawbacks of
this approach are modeling tools are then not domain-oriented, and automated tools,
such as compilers, cannot recognize and take advantage of domain-specific knowledge
(e.g., for optimization). Behind those aforementioned disadvantages, the issue is that the
positive impact of using model-based engineering for designing complex systems is then
reduced: models are more difficult to be authoring, and their automatic exploitation is
limited, and any way much more difficult to implement.
In addition, a key design principle for industry is to maximize reuse of technology,
knowledge, and tools—an argument that usually resonates in industry, where reducing
cost is a primary objective. Unless they serve core business purposes or provide major
competitive advantages, enterprises generally prefer well-known standard technologies.
The Object Management Group (OMG, www.omg.org
) is one of the principal
international organizations promoting standards supporting the usage of model-based
software and systems development. The Unified Modeling Language (UML) standard (1)
is probably the most representative of these and has had definitively significant
successes in the software industry as well as in other domains, such as IT and financial
systems. UML was designed as a general-purpose modeling language as well as a
foundation for deriving different domain-specific
languages, mainly through its profile mechanism.
Consequently, when an industry needs a DSML, the
best advice we can give is: “Don’t reinvent the wheel,
adopt UML instead, but tailor it to your needs!”
Papyrus is the Eclipse graphical editing tool for UML2: www.eclipse.org/papyrus. In
accordance with its primary goal to implement the complete standard specification of
UML2, Papyrus provides an extensive support for UML profiles. It includes hence all
the facilities for defining and applying UML profiles in a very rich and efficient manner.
But, it also provides powerful tool customization capabilities similar to DSML-like meta-
tools. This way, Papyrus is a tool enabling to gather the advantages of using a general-
purpose language such as UML2, but also those of DSML-based approaches.
The purpose of this document is to detail all Papyrus features related to DSML-
engineering, including information about UML profiles, and Papyrus customization
“Don’t reinvent the wheel, adopt
UML instead, but tailor it to your