============================================================================== Supported for various UML Modelelements: ============================================================================== "Core" Package: ------------------------------------------------------------------------------ ModelElement | Status -----------------------+------------------------------------------------------ Association | AssociationClass | not used in rep_* AssociationEnd | Attribute | Class | Generalization | only single inheritance in rep_* Operation | Interface | used in rep_*? Dependency | does not distinguish between different kind of | dependencies (abstraction, binding, permission, usage) Parameter | ------------------------------------------------------------------------------ "Datatypes" Package: ------------------------------------------------------------------------------ ModelElement | Status -----------------------+------------------------------------------------------ AggregationKind | not used in rep_* ScopeKind | ChangeableKind | not used in rep_* | (should be converted into invariants?) Multiplicity | OrderingKind | dresden (and we) use sequences for ordered | association ends, but UML/OCL specifies OrderedSet ParameterDirectionKind | UML/OCL allows several return parameters, we allow | only one VisibilityKind | ------------------------------------------------------------------------------ "Extension Mechanisms" Package: ------------------------------------------------------------------------------ ModelElement | Status -----------------------+------------------------------------------------------ Stereotype | constraints attached to stereotypes are not used. | Not all modelelements in xmi_* can have stereotypes. | In rep_*, only classifiers can have stereotypes. TaggedValue | Not all modelelements in xmi_* can have taggedvalues. | In rep_*, no tagged values are used. ------------------------------------------------------------------------------ "Model Management" Package: ModelElement | Status -----------------------+------------------------------------------------------ Package | xmi_* does not distinguish between models, packages, | and subsystems. | rep_* has no notion of packages. ------------------------------------------------------------------------------ "Statemachines" Package: ModelElement | Status --------------------------+--------------------------------------------------- Transition | Event | currently only support for CallEvent. (SignalEvent, CallEvent)| Guard | the guard's expression is just a string PseudoStateVars | StateVertex | no support for StubState's | Argouml, Poseidon do not support Subactivity states StateMachine | ActivityGraph | argouml, poseidon do not support partitions ------------------------------------------------------------------------------ ============================================================================== Support for various types of constraints: ============================================================================== ------------------------------------------------------------------------------ stereo- | | expression- | type | context | type | Status --------+----------------+---------------+------------------------------------ inv: | classifier | Boolean | done pre: | operation | Boolean | done post: | operation | Boolean | done body: | operation | result type | done (converted to post) init: | attribute or | same type | done | AssociationEnd | | def: | classifier | declared type | dresden-ocl should add the | | | defined attribute/operation | | | to the model with appropriate | | | invariant, resp. postcondition, | | | but does currently not. derive:| attribute or | same type | not yet implemented in dresden-ocl | AssociationEnd | | guard: | transistion of | Boolean | not implemented in dresden-ocl | state machine | | (not clear, how this should be | | | done.) ------------------------------------------------------------------------------ ============================================================================== Support for various expression-types: ============================================================================== ------------------------------------------------------------------------------ Type | Status ---------------------+-------------------------------------------------------- Primitive Types | ok (Boolean, Integer, | Real, String) | User-defined Classes | ok, (only single inheritance in rep_*, | no restriction in xmi_*) Interfaces | ?? Collections | ok, but dresden-ocl does not support OrderedSet (Set,Sequence,Bag) | VoidType,OclAny | ok EnumerationTypes | -- (planned) TupleTypes | -- (planned) OclModelElementType | -- (not planned) OclMessageType | -- (not planned) ------------------------------------------------------------------------------ ============================================================================== Supported subset of OCL expressions: ============================================================================== ------------------------------------------------------------------------------ Expression | Status -------------------------+---------------------------------------------------- IfExp | ok VariableExp | ok AssociationEndCallExp | ok (no support for "qualifiers") AttributeCallExp | ok OperationCallExp | ok OperationWithTypeCallExp | ok LetExp: | ok IteratorExp | ok IterateExp | ok PrimitiveLiteralExp | ok (called "LiteralExp" in current code) CollectionLiteralExp | only support for empty collections, | full support is planned. AssociationClassCallExp | -- (planned) EnumLiteralExp | -- (planned) TupleLiteralExp | -- (planned) OclMessageExp | -- (not planned) ------------------------------------------------------------------------------ ============================================================================== Miscellaneous Issues: ============================================================================== TBD