Interface ScenarioBehaviour

  • All Superinterfaces:
    org.eclipse.emf.cdo.CDOObject, org.eclipse.emf.cdo.common.id.CDOWithID, Entity, EObject, de.uka.ipd.sdq.identifier.Identifier, NamedElement, Notifier
    All Known Implementing Classes:
    ScenarioBehaviourImpl

    public interface ScenarioBehaviour
    extends Entity
    A representation of the model object 'Scenario Behaviour'. A ScenarioBehaviour specifies possible sequences of executing services provided by the system. It contains a set of AbstractUserActions, each referencing a predecessor and successor (except the first and last action), thereby forming a sequence of actions. See the AbstractAction documentation for why it is advantageous to model control flow in this way, as the same principle is used in the RDSEFF language. Concrete user actions of the usage model are: - Branch - Loop - EntryLevelSystemCall - Delay - Start - Stop So far, ScenarioBehaviours do not include forks in the user flow (i.e., splitting the flow with an AND semantic), as it is assumed that users always act sequentially. As there are no random variables depending on other variables in the usage model, there are no equivalent actions to GuardedBranchTransitions or CollectionIteratorActions.

    The following features are supported:

    See Also:
    UsagemodelPackage.getScenarioBehaviour()
    Generated class or method.
    EMF model class or method.
    annotation="http://www.eclipse.org/emf/2002/Ecore constraints='eachuseractionexceptStartandStopmusthaveapredecessorandsuccessor exactlyonestart exactlyonestop'" annotation="http://www.eclipse.org/emf/2002/Ecore/OCL eachuseractionexceptStartandStopmusthaveapredecessorandsuccessor='not self.actions_ScenarioBehaviour->select(s|not s.oclIsTypeOf(Start) and not s.oclIsTypeOf(Stop))->exists(a|a.oclAsType(AbstractUserAction).predecessor.oclIsUndefined()) and not self.actions_ScenarioBehaviour->select(s|not s.oclIsTypeOf(Start) and not s.oclIsTypeOf(Stop))->exists(a|a.oclAsType(AbstractUserAction).successor.oclIsUndefined())' exactlyonestart='self.actions_ScenarioBehaviour->select(s|s.oclIsTypeOf(Start))->size() = 1' exactlyonestop='self.actions_ScenarioBehaviour->select(s|s.oclIsTypeOf(Stop))->size() = 1'"