Issue 15653: UML::Action metaclass is too ambiguous for «FinishAction» (uml-testing-profile-rtf) Source: Fraunhofer FOKUS (Mr. Marc-Florian Wendland, marc-florian.wendland(at)fokus.fraunhofer.de) Nature: Clarification Severity: Minor Summary: Rational: Section 6.3.2 Test Behavior, Subsection FinishAction (Stereotyp description) says the following: --- A FinishAction is an action that determines that the test component will finish its execution of the test case immediately. This does not mean that the test component is terminated. --- Issue: Extending the abstract metaclass UML::Action (the root of any defined Action within UML superstructure), a tester has to select a concrete subclass of Action of his flavor. Extending a metaclass in terms of a stereotype is not comparable to the object-oriented concepts of extension (i.e. specialization). As a result, «FinishAction» could be assigned to each concrete action in a model, what is too ambiguous. With respect to test model interchange a more precise semantics and metaclass should be defined. It would be better, even for the understanding, to extend a concrete subclass of UML::Action (e.g. UML::OpaqueAction or similar). Resolution: Use UML::OpaqueAction and UML::InvocationAction as base classes for «FinishAction», due to the following reasons: - UML::OpaqueAction is a concrete subclass of UML::Action, allowing the definition of user-/domain-specific descriptions as well as to add a various number of input and output parameter to and from the action. A user can configure the action to his liking. By using a domain-specific OpaqueAction, the user has the possibility to model the «FinishAction» in a declarative way. - UML::InvocationAction is the abstract super class of all invocation actions (SendObjectAction, CallBehaviorAction. CallOperationAction, BroadcastSignalAction). The user might want to execute a particular behavior that represents the finish behavior. In order to be as generic as necessary but concrete as possible, UML::InvocationAction is used Revised Text: Replace Figure Replace Figure 6.4 (issue 15770 already changed the numbering to 7.4) with Update Text Change subsection Description of section FinishAction from A FinishAction is an action that determines that the test component will finish its execution of the test case immediately. This does not mean that the test component is terminated. To A finish action is an action that completes the test case for one test component immediately. The action has no implicit effect on other test components involved in the same test case, but it has recognized the need for other test components to be notified of the finish such that they may no longer expect messages from the finished test component. This must be specified explicitly. Update Text Change Extensions subsection (introduced by resolution of issue 15770) of section FinishAction from • Action (from UML::Actions::BasicActions) To • OpaqueAction (from UML::Actions::BasicActions) • InvocationAction (from UML::Actions::BasicActions) Update Text Change subsection Semantics of section FinishAction from A FinishAction means that the test component will move to a state where it awaits the conclusion of the test case that is now running. This may mean waiting for other test components to finish their behavior corresponding to that test case. In the traces of the test behavior for that test case, there will be no event occurrences on a test component after its FinishAction. to A finish action moves a test component to a state where it awaits the conclusion of the test case that is now running. This may mean waiting for other test components to finish their behavior corresponding to that test case. In the traces of the test behavior for that test case, there will be no event occurrences on a test component after it was finished. Consequently, the local verdict of a finished test component cannot be altered. If the finish action is used within an Interaction, the test component to be finished is determined by the lifeline, representing a test component, which is covered by the ActionExecutionSpecification pointing to the finish action. If the finish action is used within an Activity and if there is at least one test component defined in the test configuration, than there must be a target input pin owned by the finish action. The target input pin is typed by the classifier of the test component. It represents the test component to be finished. The multiplicity of the target input pin must be 1. Extending InvocationAction allows the invocation of a particular behavioral description on the finished test component, which is called when the test component is finished. Update Text Add constraints to the Constraints subsection of section FinishAction (Constraint section was introduced by resolution to issue 15770): [1] If «FinishAction» is applied to an OpaqueAction and if it is used within an activity, there is exactly one input pin with name target. Its type must be a StructuredClassifier with «TestComponent» applied, and its multiplicity must be set to 1. [2] If «FinishAction» is applied to an InvocationAction, the multiplicity of the target input pin must be 1. Disposition: Resolved Actions taken: September 27, 2010: received issue October 21, 2011: closed issue Discussion: End of Annotations:===== m: webmaster@omg.org Date: 27 Sep 2010 18:16:57 -0400 To: Subject: Issue/Bug Report ******************************************************************************* Name: Marc-Florian Wendland Employer: Fraunhofer FOKUS mailFrom: marc-florian.wendland@fokus.fraunhofer.de Terms_Agreement: I agree Specification: UML Testing Porifle Section: 6.3.2 FormalNumber: formal/05-07-07 Version: 1.0 Doc_Year: 2005 Doc_Month: July Doc_Day: 07 Page: 20 Title: UML::Action metaclass is too ambiguous for «FinishAction» Nature: Clarification Severity: Minor CODE: 3TMw8 B1: Report Issue Description: Rational: Section 6.3.2 Test Behavior, Subsection FinishAction (Stereotyp description) says the following: --- A FinishAction is an action that determines that the test component will finish its execution of the test case immediately. This does not mean that the test component is terminated. --- Issue: Extending the abstract metaclass UML::Action (the root of any defined Action within UML superstructure), a tester has to select a concrete subclass of Action of his flavor. Extending a metaclass in terms of a stereotype is not comparable to the object-oriented concepts of extension (i.e. specialization). As a result, «FinishAction» could be assigned to each concrete action in a model, what is too ambiguous. With respect to test model interchange a more precise semantics and metaclass should be defined. It would be better, even for the understanding, to extend a concrete subclass of UML::Action (e.g. UML::OpaqueAction or similar).