Interface ResourceDemandingBehaviour

All Superinterfaces:
org.eclipse.emf.cdo.CDOObject, org.eclipse.emf.cdo.common.id.CDOWithID, EObject, de.uka.ipd.sdq.identifier.Identifier, Notifier, PCMBaseClass, PCMClass
All Known Subinterfaces:
ForkedBehaviour, RecoveryActionBehaviour, ResourceDemandingInternalBehaviour, ResourceDemandingSEFF
All Known Implementing Classes:
ForkedBehaviourImpl, RecoveryActionBehaviourImpl, ResourceDemandingBehaviourImpl, ResourceDemandingBehaviourImplGen, ResourceDemandingInternalBehaviourImpl, ResourceDemandingSEFFImpl

public interface ResourceDemandingBehaviour extends de.uka.ipd.sdq.identifier.Identifier, PCMBaseClass
A representation of the model object 'Resource Demanding Behaviour'. Models the behaviour of a component service as a sequence of internal actions with resource demands, control flow constructs, and external calls. Therefore, the class contains a chain of AbstractActions. The emphasis in this type of behaviour is on the resource demands attached to internal actions, which mainly influence performance analysis. Each action in a ResourceDemandingBehaviour references a predecessor and a successor action. Exceptions are the first and last action, which do not reference a predecessor and a successor respectively. A behaviour is valid, if there is a continuous path from the first to last action, which includes all actions. The chain must not include cycles. To specify control flow branches, loops, or forks, component developers need to use special types of actions, which contain nested inner ResourceDemandingBehaviours to specify the behaviour inside branches or loop bodies. Any ResourceDemandingBehaviour can have at most one starting and one finishing action.

The following features are supported:

See Also:
Generated class or method.
EMF model class or method.
annotation="http://www.eclipse.org/emf/2002/Ecore constraints='exactlyOneStopAction exactlyOneStartAction eachActionExceptStartActionandStopActionMustHhaveAPredecessorAndSuccessor'" annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/LPG exactlyOneStopAction='self.steps_Behaviour->select(s|s.oclIsTypeOf(StopAction))->size() = 1' exactlyOneStartAction='self.steps_Behaviour->select(s|s.oclIsTypeOf(StartAction))->size() = 1' eachActionExceptStartActionandStopActionMustHhaveAPredecessorAndSuccessor='not self.steps_Behaviour->select(s|not s.oclIsTypeOf(StartAction) and not s.oclIsTypeOf(StopAction))->exists(a|a.oclAsType(AbstractAction).predecessor_AbstractAction.oclIsUndefined()) and not self.steps_Behaviour->select(s|not s.oclIsTypeOf(StartAction) and not s.oclIsTypeOf(StopAction))->exists(a|a.oclAsType(AbstractAction).successor_AbstractAction.oclIsUndefined())'"