UML was developed as a language to model complete software systems. However, it is as well suitable to describe only parts of systems. Here it is though even more urgent than in the first case to precisely fix the semantics of the UML. Not only the informal definitions of the contructs contribute to misunderstandings, but also their lack. The sequel shall describe when, for which purpose and by which means specifications can be omitted without loss of information.

Beispiel 1:

In figure 1 an isolated class without superclases or corresponding statechart diagram is declared. Arguing on a purely syntactical level this class has no behaviour (that can be represented by a statechart).   In actual fact the declared operations are to be invoked one after the other. TrigoCD That is why it it makes sense to presume the default statechart diagram depicted in figure 2 (hello Rational; only  one of the two recursive transitions is visible. Acording to this, after the object has been created, the operations can be invoked one after the other until the object is destroyed. It is certainly neither necessary nor realistic in such a case to enter each statechart diagram for every  class and all oeprations manually. This first interpretation of a missing statechart diagram is thus advisable. TrigoSTD



The aspect becomes interesting if a class inherits apart from attributes and operationsalso a statechart diagram from its superclass as depicted in figure 3 and figure 4.


With the subclass specifying new operations that do not appear in  the statechart diagram there are at least three interpretations.

  1. The operations fits into a certain pattern resulting from the superclass.
  2. The new operation can be executed at any time.
  3. We have found an error, that cannot be solved automatically.

In the first two cases it can be possible to complete the erronous specification meaningfully. In the first we expect from the operation that it behaves in an analogous way to the inherited operations. The difficulty here is obviously to recognise the schemes automatically and to insert the new oeprations properly. Realistic is only an interactice completion, that inquires about the underlying schemes and treats them accordingly.

SubDevice2STD In the second case the situation is much simpler. The operation can be defined as a recursive operation at all states.

to be continued... :-((

[Heimat] [inder_de] [WAP-Matrix] [akr_de] [e-mail] [UML] [PS]