Home » Eclipse Projects » Papyrus for Real Time » Papyrus-rt and conformance/compatibility to UML version and UML profile (UML versions and UML profile standard supported by Papyrus-rt)
|Papyrus-rt and conformance/compatibility to UML version and UML profile [message #1797790]
||Tue, 06 November 2018 12:40
| Benoît-Lotfi Jacquelin
Registered: November 2018
Dear Sir, Madam|
I want to compare different version of an UML model.
I saw that papyrus-rt 1.0.0 provide a UML model comparison feature, however I have some questions about it.
My questions are the following:
- Which UML specification standard versions are supported by the tool?
- Are these UML specification 100% supported or only partially?
- Does exist a formal confirmation for this compatibility?
- In case of a compatibility less than 100% for the language versions implemented, are there metrics defined to demonstrate which percentage, respectively which elements of a language version are supported and which conformances are fulfilled by the tool?
- Papyrus-rt implements the UML-RT modeling language which is a modelling language intended for real-time and embedded systems.
However it seems that the UML-RT modeling language has no formal specification.
I visited the website of the Object Management Group and I could not find any specification about it.
The UML profiles for real time currently available are the following :
* UML Profile for MARTE version 1.1
* UML Profile for Modeling QoS and FT QFTP version 1.1
* UML Profile for System on a Chip SoCP™ version 1.0.1
* UML Profile for Schedulability, Performance, & Time SPTP™ version 1.1
- Is the UML-RT language a UML profile which is currently not recognized/adopted by the OMG?
- Where can I find the specification of this profile, is it somewhere available, or is it defined within the documentation of papyrus-rt?
- What are the differences between the MARTE profile and the UML-RT language?
- Is Papyrus-rt the only tool supporting the UML-RT language, if not what are the other tools?
|Re: Papyrus-rt and conformance/compatibility to UML version and UML profile [message #1797867 is a reply to message #1797790]
||Wed, 07 November 2018 16:19
| Ernesto Posse
Registered: March 2011
My responses are inline below.|
On Nov 6, 2018, at 3:18 PM, email@example.com wrote:
> I saw that papyrus-rt 1.0.0 provide a UML model comparison feature, however I have some > questions about it.
> My questions are the following:
> - Which UML specification standard versions are supported by the tool?
Papyrus-RT 1.0 is based on Papyrus 3.0 Oxygen, itself based on the Eclipse UML2 project. Papyrus 3.0 (and therefore Papyrus-RT 1.0) implements UML 2.5 (version 5.3 of the Eclipse UML2 project).
> - Are these UML specification 100% supported or only partially?
Are you asking for support for modelling? support for the modelling compare feature in particular? Support for both the syntax and static semantics of UML or also the dynamic (runtime) semantics?
From the modelling point of view I'm pretty sure (base) Papyrus supports the full standard, it's syntax and *static* semantics, although with some varying degrees of quality in the UI. Although you may want to confirm in the Papyrus forum if the support is 100%. It supports *all* types of UML diagrams. From the (runtime) semantics point of view, that's a different story. Base Papyrus (as opposed to Papyrus-RT) doesn't include any code generation or model execution capabilities, so there is no explicit runtime semantics support, although there is an extension called "Papyrus Designer" that supports a subset, although I don't recall how much. I think the model-compare capability is general enough, but I am not certain.
Papyrus-RT technically includes Papyrus and therefore the full UML, but the full standard is not explicitly supported, this is, you can load and edit standard UML models in Papyrus-RT, but the specific customizations to the tool and code generation are restricted to UML-RT. Support for the UML-RT language is complete both syntactic and semantic, as the tool includes a code generator and runtime system implementing the UML-RT language in full.
Papyrus-RT implements the UML-RT language and includes customizations of some specific types of diagrams, in particular "capsule diagrams" (which specialize composite structure diagrams) and "state machine diagrams". Nevertheless, you can still use the base Papyrus capabilities and include "standard" composite structure diagrams, standard state machine diagrams, and in fact any standard UML diagram.
> - Does exist a formal confirmation for this compatibility?
First, what kind of conformance are you looking for? syntactic conformance or semantic conformance?
If you are looking for a formal, mathematical proof of such conformance, no, there isn't any, for either base Papyrus or Papyrus-RT (or any UML tool as far as I know), but the support for (the syntax and static semantics of) UML is comprehensive.
If you are looking for some sort of certification by the OMG, then no, because UML-RT is not an OMG standard. I'm not sure if base-Papyrus is OMG certified, but you can ask in their forum. I think it probably is.
In any case, as you are probably aware, the UML specification contains many semantic variation points, and furthermore, the specification is written in natural language (it is not a formal, mathematical specification) and therefore it contains errors and ambiguities. This means that defining "100% compliance" is impossible.
> - In case of a compatibility less than 100% for the language versions implemented, are there metrics defined to demonstrate which percentage, respectively which elements of a language version are supported and which conformances are fulfilled by the tool?
As I said, I think support for the full UML standard in base Papyrus is pretty complete (and of course this is inherited by Papyrus-RT).
As for metrics for the extent of the conformance, I'm not aware that there are any (for any UML tool). But perhaps CEA (the developers of Papyrus) might have more detailed information on this. Although I cannot confirm it, I think Papyrus implements the full UML meta-model, but as mentioned above, not the (dynamic) semantics.
For UML-RT the story is different. Papyrus-RT was created in close collaboration with Bran Selic, the designer of UML-RT (and the ROOM language), also one of the main authors of UML2 itself. The tool implements nearly all of UML-RT, both syntax and runtime semantics, with a few exceptions, like synchronous message passing.
Furthermore, UML-RT influenced heavily the design of UML2 (as Bran is a key member of the OMG) and so the two are closely aligned. Technically, UML-RT is a superset of a subset of UML2: it doesn't include all of the UML2 concepts, and adds a few that do not exist in UML2, but it shares a common core.
> - Papyrus-rt implements the UML-RT modeling language which is a modelling language intended for real-time and embedded systems.
> However it seems that the UML-RT modeling language has no formal specification.
There is an official definition of the profile, although I'm not sure it is publicly available. I've asked the document's owners to see if it can be made publicly available. But there is a standard reference book  and several papers defining the language's formal semantics, including .
> I visited the website of the Object Management Group and I could not find any specification about it.
> The UML profiles for real time currently available are the following :
> * UML Profile for MARTE version 1.1
> * UML Profile for Modeling QoS and FT QFTP version 1.1
> * UML Profile for System on a Chip SoCP™ version 1.0.1
> * UML Profile for Schedulability, Performance, & Time SPTP™ version 1.1
> - Is the UML-RT language a UML profile which is currently not recognized/adopted by the OMG?
UML-RT is not an OMG standard, but its design heavily influenced (and is fully aligned with) UML 2.x. In fact, as I mentioned above, Bran Selic, the author of UML-RT, is also a member of the OMG and one of the key contributors to the UML standard. Incidentally, he is also the main author of the UML Profile for Schedulability, Performance, & Time, which by the way is the predecessor of (and was superseded by) MARTE.
> - Where can I find the specification of this profile, is it somewhere available, or is it defined within the documentation of papyrus-rt?
For the definition of the profile, I've asked the documents owner if it can be released. For other references, the "go-to" reference is the "ROOM" book . For the formal (runtime) semantics, you can read .
> - What are the differences between the MARTE profile and the UML-RT language?
Huge. They address different concerns. The differences are too many to list all here, so instead I'm going to quote myself from :
At the top level, MARTE consists of three packages: the core package, the design modelling package, and the analysis modelling package. The core package provides constructs to describe non-functional properties, time, generic resource modelling, and allocation modelling. The design modelling package provides facilities for generic components, high- level application modelling, and detailed resource modelling. The analysis package provides facilities for generic quantitative analysis modelling, schedulability analysis, and performance analysis. By contrast, UML-RT focuses on system architecture based on the notion of capsules (called actors in ROOM), ports, connectors, services and capsule structure diagrams, and event-driven behavior described by state machines. MARTE's constructs and models are much more detailed than UML-RT's constructs and models. For instance, in MARTE, the basic unit of concurrent execution is called the RtUnit, defined in the HLAM package. This corresponds roughly to a capsule in UML-RT, but an RtUnit specifies many details such as memory size, message pool policies, and waiting times, whereas a UML-RT capsule abstracts such details.
UML SPTP, MARTE, and other similar profiles target the time-driven and hard real-time side of the spectrum of real-time systems, where the primary concern is timeliness, scheduling, and platform-dependent matters. According to Bran Selic, one of the main authors of ROOM, UML-RT, and UML SPTP,
"MARTE deals with completely different aspects than UML-RT. MARTE addresses general issues related to real-time systems as they are usually implemented. Thus, it provides facilities for modeling time, resources, real-time operating systems (with their complex schedulers, lightweight threading systems, mutual exclusion facilities, etc.). It also provides support for modeling platforms of all kinds (including hardware), as well as facilities for doing real-time analyses, such as schedulability and queuing network analysis. ROOM/UML-RT, on the other hand, is a level of abstraction above that and does not deal with any of that." 
Hence, while MARTE is an appropriate formalism for the design and analysis of time-driven, resource-intensive, and platform-dependent, hard real-time systems, UML-RT may be better suited for soft real-time systems where such level of detail is a secondary concern.
To give you a general idea, UML-RT is much smaller and simpler than MARTE and contains only a few core concepts. The central concept is that of a "capsule" (which used to be called "actor" in ROOM, not to be confused with actors in UML UseCases). A capsule is an active class, i.e. a class whose instances have behaviour that may execute concurrently to other capsules. A capsule's behaviour is defined by (a subset of) UML State Machines. Capsules can have internal structure (they are UML composite structures) where the parts contain instances of other capsules. Capsules have ports and capsule instances communicate with each other through these ports exclusively (e.g. no shared-memory, only message passing). Ports are typed by "protocols" which define the types of messages that can be sent or received. In UML-RT, there are only three kinds of diagrams: capsule structure (i.e. composite structure), state machines, and class diagrams (for inheritance relations). Other diagrams can be used in the tool, e.g. for documentation or design, but they won't have any effect on code generation or runtime.
It's been a while since I've looked at MARTE, but I recall that it is much bigger and much more detailed, but as described above, those details are usually at a lower level of abstraction, like resource allocation details. On the other hand, I don't recall that MARTE uses state machines to define behaviour. Furthermore, UML-RT has some concepts that do not exist in MARTE, like service provision points and service access points, or optional and plug-in capsule parts, or a service library, or an improved notion of inheritance, particularly useful for state machines.
To summarize, the UML-RT language is much smaller and simpler than MARTE, but it addresses different concerns and different levels of abstraction. Despite of being simpler, (or perhaps because of it) it has had a significant use in industry, particularly in the telecom sector. Certainly not as much as some more recognizable languages, but nevertheless not insignificant. UML-RT is the successor of the ROOM language (previously ObjectTime), and as such, has been in use since the early 90s.
> - Is Papyrus-rt the only tool supporting the UML-RT language, if not what are the other tools?
No. Currently there is HCL RTist and eTrice. HCL RTist is a commercial, closed-source tool. It is a rebranding of IBM Rational Software Architect-RealTime Edition (RSA-RTE) which replaced Rational RoseRT, which itself was a reimplementation of ObjectTime. I think eTrice may be open-source (like Papyrus-RT) but I'm not certain how extensive its support of UML-RT is, and in particular no graphical model editing (only textual models), and no model comparison capabilities. I'm not sure if their code generators support the full runtime semantics.
 Bran Selic, Garth Gullekson, Paul T. Ward. "Real-Time Object-Oriented Modeling", New York, John Wiley & Sons Inc, 1994. https://en.wikipedia.org/wiki/Real-Time_Object-Oriented_Modeling
 Ernesto Posse and Juergen Dingel. "An executable formal semantics for UML-RT". Software and Systems Modeling, Vol. 15, Issue 1, pp 179-217. 2016. https://link.springer.com/article/10.1007/s10270-014-0399-z
[Updated on: Wed, 07 November 2018 16:26]
Report message to a moderator
Current Time: Thu Aug 22 18:50:28 GMT 2019
Powered by FUDForum
. Page generated in 0.02436 seconds