by additional transitions and preconditions in feature states, see the example in Fig. 7.53. sriA-suspendReq() sriA-suspendReq() pre: notSubsribed_or_ pre: noProblem interactionProblem T-setTimeOrd(T2) sriA-suspendRef(cause) sriA-suspendCnf() AnotInCall AandEinCall Asuspended sriA-resumeOrd() T-timeOutRepCnf() sriE-servRelRepCnf(crE,cause) cspc-discOrd(con15) Fig. 7.53 Feature states may require special control functions 7.5.3 Object State The only stable states are resource states. If any of the object's service relations are not in a resource state, the object is in a transient state. If all of the object's service 7.6 The General State Machine Model relations are in a resource state, the object is in a resource state. Note that in case the object is modelled as a virtual object, the object is in a resource state if the pro- vider port is in a resource state. The General State Machine Model The AML state machine can be used for analysing service object behaviour by sim- ulation, for validation of functions and for product verification. It can also be used for prototype implementation (by code generation), although it is expected that the AML user will normally define their own substructure and code. In the context of this book, the model also has a pedagogical value by explaining how the concepts operation, activity, event and state are interpreted in AML, see the scenarios at the end of this section. The AML general state machine model is an FSM. It is independent of any spe- cific state diagram notation technique (FSM state, explicit state, state class, etc.). The model defines six types of objects that can be combined as state machine mod- els for virtual objects, agents and actors, see Fig. 7.54. The internal objects are cho- sen SO that the machine can execute any behaviour description that is based on AML concepts. A state machine model therefore constitutes an execution model for service object specifications in AML, i.e. it is a machine that can execute such specifications. The internal objects have a b