OMEGA UML profile
This page describes the OMEGA UML profile
defined in project and its semantics; it answers some questions,
concerning the
choice of UML and the particular profile chosen and about the problems
concerning semantics.
UML profile. 1
Semantics. 5
References
concerning profile and
semantics. 7
The choice of the subset of UML that we have
made can be considered as relatively standard with respect to the
choices of
commercial UML tools for simulation and/or code generation for
real-time and
embedded systems, such as Rhapsody, Telelogic TAU and Rose Real-Time,
emerging
from ROOM. These tools mainly focus on what is called a “platform
independent” description of the system, that is a model focussing
on the
software structure and on the functionality of an application,
independently of
the middleware, OS, hardware architecture,… it is going to be executed
on.
A so-called “platform dependent” model
should provide in addition, enough information to generate code or to
analyze
non-functional aspects for a given platform. Notice that the UML profile
for
Scheduling, Performance and Time (SPT) [SPT03]
– focuses like we do – on the analysis of time
related properties; to this aim, it provides concepts for defining
different
kinds of “resources”, “task” needing a resource to be executed and
consuming
some quantities, in particular time.
An aim of the Omega project is to handle these
two aspects less independently as they are in most existing tools. The
aim is
to use less violent abstractions of one aspect when verifying the
other, in
cases where this is needed.
The profile has been defined in phases. First,
a so called Kernel Model, has been defined, representing a useful
operational
subset, rich enough, to start the work on the tools and the case
studies. In particular,
the combined modelling synchronous and asynchronous parts of a system,
is an
important issue in some of the case studies. The criteria for the
choice of
this profile are the usefulness for the potential users, the
availability of
the chosen notations in the CASE tools, the semantic choices of
existing UML
tools and the possibility to provide rapidly some verification tool
support for
the chosen notations. In a second phase, notations for the expression
of time
constraints, of requirements and for structuring models are defined.
For the OMEGA Kernel Model, we have
chosen, like the considered CASE tools, a relatively complete subset of
the
operational part of UML, where
- The static structure of the system is described in terms
of a class diagram with only a few restrictions, where associations
between classes express inclusion or accessibility.
- In particular, like the standard profile, we distinguish
between active and passive classes, but with a particular
interpretation: the behaviour of an active class and all the classes
owned or created by it, represent a mono-threaded behaviour, executing
request in a run-to-completion fashion. This notion of activity group
is also used in Rhapsody, and is similar to the notion of process in
SDL or capsule in ROOM.
- Communication between objects is either via asynchronous
signals or via synchronous operation calls, where we distinguish
between primitive operations which are executed by the calling thread
and normal operations which are scheduled by the active object of the
activity group.
- The behaviour of the system is described by means of an
explicit imperative action language which can be used in combination
with a form of state machine notation for describing transition systems
extended with data, communication and object creation.
Real-time extensions and observers
UML 1.4 includes no support for real-time, but
a profile for Scheduling Performance and Time (called SPT profile) had
been
defined, including some extensions for the expression of timing
properties,
mainly in the form of tag values. We have defined a real-time profile
that
respects the SPT profile which takes over most of its basic concepts,
defines a
concrete syntax where this is missing and specifies the usage. Also,
contrary
to the SPT where time constraints are mainly expressed at instance
level, the
Omega real-time profile enables time constraints at class level.
- We have introduced the notions of timer and clock,
as they exist in other modelling formalism and as they have been
introduced in UML 2.0. Timers can be set and deactivated and cause a
“timeout event” after a specified duration and clocks can be set and
deactivated, and when active, they count the duration since they have
been set for the last time. This allows the definition of time
dependent behaviour by means of new primitives in the action language.
- We provide syntactic access to semantic level events. A
semantic level event is a state change in the underlying dynamic
semantic. Each syntactic construct may have to 0, 1 or more semantic
level events associated. With a state an enter and an exit
event is associated, with a signal transmission, a send, a receive
and a consume event. A syntax is defined for identifying all
state changes. An event can be defined as a class stereotyped
<<event>> with predefined parameters depending on their
type (all events have an occurrence time, a send-signal event has a
sender, a receiver, a signal type, signal type depending parameters)
and possibly user defined attributes. Moreover, there are means to
refer to different occurrences of an event in a given execution or
prefix of it.
- Expressions of the type duration which can be used in
time constraints can be defined simply using arithmetic expressions on
clocks and the occurrence time attribute of different events (this is
the access to time and duration used in OCL, see below and in
observers, see next item), by a set of predefined duration expressions
- Time constraints may be arbitrary Boolean expressions
depending on time and duration expressions, but we consider only linear
constraints in all our tools. Time constraints can occur
- In the
form of guards in state machines and observers,
- conditions
in LSC,
- OCL
constraints
- explicit
time constraints or constraint patterns associated with different UML
construct, as they are foreseen in SPT (WCET associated with methods, minDelay,
maxDelay associated with channels,…) ; notice that such
derived constraints are presently not implemented in the tools, they
have to expressed using the basic means for expression of time
constraints
- We have introduced observers mainly as a
means for expressing complex time constraints using a UML operational
syntax, accessible to the user. They are defined as stereotyped of
state machines, where transitions are triggered by semantic level event
occurrences (they can be identified using explicitly defined
event instances or by using an event matching clause as in the
definition of a corresponding event class). An observer allows
expressing constraints on the order and/or timing of occurrence of
semantic level events and is a means to define dynamic properties
depending on time or not. Observers have proven to be well accepted by
users. They express safety properties in the form of acceptors (an
execution leading to an <<error>> state represents an error
trace). In addition, observers can express assumptions (a sequence
leading to an <<invalid>> state is “not to be considered”).
- Finally, some minimal concepts have been introduced to
define scheduling constraints and general scheduling policies.
OCL has been developed as a constraint and
query language for static UML models and does therefore not adequately
capture
the dynamic behaviour of objects and systems. To overcome this
short-coming, we
distinguish between local constraints, which are used to specify the
behaviour
of an object without referring to the context in which it is used, and
global
constraints, which are used to specify the context in which object
occur and
how objects are connected. This distinction is achieved by using the
additional
stereotypes <<local>> and <<global>> which are
attached
to constraints. Additionally, we defined a trace logic in OCL which
specifies
an object's behaviour in terms of constraints of traces of events it
can
observe. The trace logic is a conservative extension of OCL 2.0, where
we
provide data types for events, very similar to the events presented in
the
preceding section, and a logical constant “trace” of type Sequence of
Events
which designates the local trace. For global specifications, we
introduced a
corresponding global assertion language, which is a generalisation of
the local
assertion language. Finally, these assertion languages include
mechanisms for
specifying global constraints by providing component and system
contexts. This
is necessary, because OCL 2.0 assumes that the context, in which a
constraint
is to be evaluated, is an object and not a collection of objects.
This extension of OCL allows one to capture all
safety properties of an object in a way similar to LSC or sequence
diagrams,
without being bound to refer or provide an objects environment.
In OMEGA, we have anticipated the UML2.0
component model by using the notations provided by the profiles
available
presently in tools. Components encapsulate their internal description
and
interact only through a certain kind of objects which are called ports.
Ports
are instances of internal classes which are represented by roles. Roles
export
information about the required and provided operations of these classes
by
means of interfaces.
Another distinguishing feature of the OMEGA
component model is that ports can dynamically instantiate their
associated
required interfaces which are used to represent external classes
belonging to
other components. Connectors wire roles of different components
together to
form a component-based application, and a required interface I
acts as placeholder for the external class realizing the role wired to I.
Notice that Components in UML 2.0 do not
encapsulate their internal structure. In OMEGA a component does
encapsulate its
internal class structure because in OMEGA we have defined the relation
between
the internal class structure of a component and its (provided and
required)
interfaces at the level of the action language for state machines. A
characteristic feature of this relation is that the state machines
describing
the behaviour of ports in general contain actions for instantiating
required
interfaces. By the component connectors these required interfaces are
associated to the classes describing the ports of another component.
Consequently, component connectors in OMEGA allow for the
inter-component
dynamic creation of ports.
OMEGA components are used to structure sets of
classes and to support a modelling discipline based on interfaces.
Based on the
connections provided by a component system diagram, we formalize the
semantics
in terms of the semantics of the underlying class structure. The
behaviour is
defined as the concurrent behaviour of the objects living in the
component and
renaming the required interfaces in the corresponding state-machines by
their
realizations as specified by the connections.
The CASE tools Rhapsody and Rational Rose do
not support components yet. As a workaround, a component based design
can be
done within the Kernel Model Language by modelling components as
classes. One
can also associate LSCs and OCL assertions to components to specify the
overall
behaviour of their ports. One can also associate with each role of a
component
a state machine describing the externally observable behaviour of its
instances. The resulting set of state machines describes the overall
behaviour
of the ports of a component. The interactions between the ports of
different
components then can be model-checked by the OMEGA tools.
OMEGA also started preliminary work on a
compositional semantics of components. Such a semantics forms the basis
for the
further development of compositional verification techniques which
allow
separating the verification of the observable interactions between
components
from the verification of their implementation.
Sequence diagrams are widely used by UML users,
but their UML 1.4 version is not expressive enough, as they can
describe only a
particular (desired or forbidden) execution of a particular set of
instances up
to the order of independent events.
For this reason, we have chosen Live Sequence
Charts [DH01],
a formalism extending the existing versions of
Sequence charts (MSC, High Level MSC,…) by adding
- Quantifiers, stating that either there exist an execution
or all executions with a certain prefix are compatible with a given
chart (distinction of existential- or possible - and universal
– or mandatory -charts)
- Liveness constraints by marking certain events
“mandatory” (so called hot conditions) to distinguish which
observations of prefixes are considered to satisfy the chart and which
ones not.
These Live Sequence charts have been extended
in Omega for taking into account Object Orientation and timing
constraints:
- The Global time progress supposed in Omega is represented
by an external event tick, representing time progress by one
time unit. LSC specifications can store time in variables and
conditions can contain constraints on such variables, similar as in
timed automata. Due to the distinction between mandatory and non
mandatory conditions, this allows to distinguish between reaction to
external time progress and time dependent requirements.
- The extension to object orientation and dynamic systems
is obtained by allowing the interpretation of “life lines” as classes
(a set of potential instances) and the introduction of quantifiers on
life lines. This allows distinguishing the case where the event
specified by the LSC should be observed in all existing instances of a
class at the instant of occurrence of the corresponding event, and the
case where the behaviour must be observed in at least one such instance.
A set L of events traces and conditions
satisfies a set of LSC charts if each trace in L
satisfies
all universal charts and for each existential chart there exists at
least one
trace satisfying it. A trace in L satisfies a universal
chart, if
in its projection on the set A of events and conditions
observed
by the chart is of the form
(A*-prechart)∞ U ((A*-prechart);prechart;mainchart)∞
A detailed
description of the semantics of LSC can be found in [D1.2.2-b].
The profile is defined by a set of documents
describing a set of admitted constructs and other restrictions, a set
of
stereotypes and tag values that can be used and their meaning, as well
as a
library containing the definition of time-related data types (available
in
Rational Rose and in I-Logix Rhapsody formats).
- Operational Kernel model: the kernel model is defined by
some restrictions of the UML 1.4 profile and a few extensions with
stereotypes and predefined tag values. Descriptions can be found in the
publications [DJP*02,DJP*05].
All the tools developed in OMEGA are based on the kernel model and
consider at least a subset of it. The document [Syntax]
provides an overview on the accepted syntax, including the Omega Action
Language OMAL which is accepted by the Omega tools.
- Timing extensions: The time extensions consist mainly in
the definition of stereotypes which are described in [GOO04]
and in the syntax document [Syntax].
We have defined a library that contains the definition of time-related
data types. The library is part of the IFx distribution.
- OCL: The OCL extensions are defined as a conservative
extension of OCL2.0, where the extensions are described in [KdB03a,KdB03b,KdB04].
It tries to subsume part of the expression language of the timing
extensions, but uses a different syntax. Its syntax is defined in the
document [Syntax].
- Component model: The component model is defined mainly in
terms of syntax conventions which are described in the document [Syntax].
- LSC: LSC are a particular form of sequence diagrams,
originally defined in [DH01]
explaining graphical syntax. More recent descriptions with extensions
are defined in [HM02,MHK02,LSCuser04,D1.2.2-b].
Graphical editors are implemented in Weizmann’s PlayEngine and in
OFFIS’ UVE tool.
Semantics
We have defined a formal semantics for all
parts of the system in terms of sequences of the above defined semantic
level events,
where time extensions add an occurrence time to events. The problem
solved by
the tools, is answering a question of the form
environment
assumption + mode l |= property ?
where environment, model and property
may be expressed using different formalisms, but for each one a single
one is
used. The question can be reduced to a question of the form
L(environment assumption + model)
\subseteq L(property) ?
and this is
well defined if the (timed and untimed) semantics of the formalisms
used for
models and properties are defined independently. Ensuring consistency
is now,
as usual, the problem of the tool builder to correctly implement an
algorithm
solving this question.
Notice that one of the aims of OMEGA was to
provide a new profile for Real-time and embedded systems which extends
the
expressivity of the currently existing tools. For this reason, today,
the user
can not use the analysis tools together with the code generator of his
CASE
tool as none of them generates code in accordance with the Omega
profile.
The questions about semantic choices were
discussed mainly for the operational Kernel model and for the time
extensions.
One motivation of the project was the
definition of a profile and semantic framework appropriate for the
description
of mixed synchronous/asynchronous systems. In this context arose the
question
on how to handle the non determinism induced by concurrency and if and
how to
restrict non determinism of time progress.
- Synchronous approaches impose often deterministic time
progress (in fact maximal system progress) whereas asynchronous models
in general assume external time (non controllable time progress). Timed
automata with urgency allow any kind of control over time progress, but
earlier experience showed that explicit transition urgencies are not
accepted by users. For time extended operational specification, this
lead us to the proposal of some choices of urgency modes handling this
issue implicitly, and it turned out that this was sufficient for the
considered case studies. In LSC, one of these options is chosen, and
time progress is determined by the environment, where the environment
is only taken into account in stable states and only one environment
event is available at a time. In OCL, this is somehow a non issue as it
is used only in a declarative manner. When working only with OCL
without the existence of a operational model, which is what we have
mainly done, restrictions on non determinism and time progress can be
imposed by a set of axioms.
- As a result, using the Kernel model with the notion of
activity group (extended with time), we can accommodate so-called GALS
(Globally asynchronous, locally synchronous Systems). Nevertheless,
this needs still some undesired workaround for those users used to the
use of synchronous languages, such as Esterel, Lustre or Signal.
- We have looked into the interest of general coordination
frameworks, and we have developed a component model based on a very
general notion of interaction between a possibly variable number of
components based on lattices of interactions complete interactions. We
have showed that this framework allows a more direct integration of
synchronous and asynchronous systems [GS02,GS03,GS04].
Nevertheless, it was not possible to integrate this work directly into
our UML profile as it would have required in addition a different type
of diagrams not accessible through existing UML tools.
The work on semantics generated several
unexpected problems and lead to some reflections on how to deal with
them. We
have obtained some insights, but there are still many open questions:
1.
It turned out that the
initially provided version of the semantics, that everybody believed to
understand in a first approximation, led to many misinterpretations and
almost
endless discussions amongst the partners. This motivated on one hand,
the
elaboration of several abstract semantics on more restricted subsets of
the
profile. It motivated also the work on the semantic exploration tool
RML and
some more long term reflections on how to represent semantic choices in
an easy
to understand way.
·
An implementation of
the chosen semantics, such as they are provided by the RML and the IFx
tool
together with a well chosen set of examples are probably a good way to
demonstrate by examples the user what the semantics of a tool is, but
this can
not be the only information given to the user – just like use cases, it
will
never be complete.
·
The usage of explicit
priority rules makes semantic variations easily recognizable if these
variations correspond to a particular elimination of non determinism.
·
Abstract semantics (of
small sub-calculi) can also be helpful in this respect, but there
strength is
rather to provide insight about the essentials of the considered
calculus or to
help understanding the consequences of the choice between to options
for a
given variation point. In particular, we have developed an abstract
class
calculus [ABBS04].
2.
The previous problem
motivated us to try to identify all potential semantic variation
points. It was
already clear from the experience with state chart semantics that the
number of
variation points is very high in presence of parallel and deep history
states
and therefore we left these features aside in a first approach. A study
provided in deliverable [D.1.1.4]
shows that the possible variation points concerning
method invocation is also very high; moreover, the number of variation
points
increases considerably with the granularity. This shows that it is
probably not
practicable to provide the user an explicit choice for all variation
points.
3.
As one of the
objectives of the project was to enable a compositional approach to
verification, some effort was spent to provide a compositional
semantics
instead of the initial global semantics. The difficulty to provide such
a
semantics comes from the aim to design a semantics which is both
compositional
and abstract; this provides information on the minimal information
needed for
the verification of a set of relevant properties, and indeed, we
obtained some
interesting results here.
In OMEGA, a formal theory has been
developed for reasoning compositionally about the behaviour of a system
in
terms of its class invariants. A class invariant describes in a generic
manner
the local communication traces of the instances of a class. The
behaviour of
the system is given as a set of global communication traces. In
general,
communication traces formalize message sequence charts in UML and
abstract from
the actual creation of objects.
The compositional proof theory
provides an axiomatic characterisation of unbounded class instantiation
at the
level of abstraction provided by the communication traces.
Compositional
verification techniques based on communication traces have been applied
successfully to the MARS example.
[ABBS04]
Erika Ábrahám, Marcello M. Bonsangue, Frank S. de
Boer, Martin Steffen Object
Connectivity and Full Abstraction for a Concurrent Calculus of Classes
In To appear in the LNCS Proceedings of the First International
Colloquium
on Theoretical Aspects of Computing, ICTAC 2004
[D.1.1.4]
Harald Fecher, Marcel Kyas, Frank de Boer, Variation
Points of the Semantics concerning Methods, December 2003
[D1.2.2-b]
D. Harel, H. Kugler, R. Marelly, A. Votintseva, J. Klose, B. Westphal,
Deliverable
D1.2.2-b, Live Sequence charts for UML and their semantics
[DJP*02]
Werner Damm, Bernhard Josko, Amir Pnueli, Angelika Votintseva Understanding
UML: A Formal Semantics of Concurrency and Communication in Real-Time
UML
In Frank de Boer, Marcello Bonsangue, Susanne Graf, Willem-Paul de
Roever
(Eds.) Proceedings of the 1st Symposium on Formal Methods for
Components and
Objects (FMCO 2002) LNCS Tutorials vol. 2852 2003
[DJP*05]
Werner Damm, Bernhard Josko, Amir Pnueli, Angelika Votintseva A
discrete-time UML semantics for concurrency and communication in
safety-critical applications In Science of Computer
Programming
2005
[DH01]
W. Damm and D. Harel. LSCs: Breathing Life into
Message
Sequence Charts. Formal Methods in System Design, 19(1):45 -- 80,
July 2001
[GOO04]
Susanne Graf, Ileana Ober, Iulian Ober Timed
annotations in UML accepted to STTT, Int. Journal on
Software
Tools for Technology Transfer Springer Verl. 2004
[GS02]
Joseph Sifakis. Scheduler
Modelling Based on the Controller Synthesis Paradigm In Journal
of Real-Time Systems, special issue on Control Approaches to Real-Time
Computing vol. 23 2002
[GS03]
Gregor Gössler, Joseph Sifakis Composition
for Component-Based Modeling In 1st Symposium on Formal
Methods
for Components and Objects, revised lectures LNCS Tutorials vol.
2852 2003
[GS04]
Gregor Gössler, Joseph Sifakis Priority
systems In proceedings of FMCO'03 LNCS 3188 2004
[GP05]
Susanne Graf, Andreas Prinz Time
in ASMs
- Some problems and solutions In ASM 2005, to appear in
LNCS,
2005
[HM02]
D. Harel, R. Marelly Playing
with
Time: On the Specification and Execution of Time-Enriched LSC
In Proc.
10th IEEE/ACM Int. Symp. on Modelling, Analysis and Simulation of
Computer and
Telecommunication Systems (MASCOTS 2002), Fort Worth, Texas 2002
[MHK02]
R. Marelly, D. Harel, H. Kugler Multiple
Instances and Symbolic Variables in Executable Sequence Charts
In Proc.
17th Ann. ACM Conf. on Object-Oriented Programming, Systems, Languages
and
Applications (OOPSLA'02) 2002
[LSCuser04]
D. Harel and R. Marelly, "Play-Engine User's Guide" Play-Book
[KdB03a]
Marcel Kyas, Frank de Boer, Assertion
Languages for Object
Structures in
UML, Omega Deliverable D1.2.1, 9. January 2003
[KdB03b]
Marcel Kyas, Frank de Boer, Addendum
to Assertion Languages for
Object
Structures in UML, Omega Deliverable D1.2.1b, 18. July 2003
[KdB04]
Marcel Kyas, Frank de Boer, On
Message Specification in UML, In:
de
Boer, Frank S. and Bonsangue, Marcello (eds.) Compositional
Verification in
UML, ENTCS vol. 101, 2004
[Syntax]
Marcel Kyas, Joost Jacob, Ileana Ober, Iulian Ober, Angelika
Votintseva,
OMEGA
syntax for users, Omega Deliverable D2.2.3 Annex 1. January 2005.
External
References
[SPT03]
OMG, Response
to
the OMG RFP for Schedulability, Performance and Time, v. 2.0
March 2002
|