Issue 15771: Continuation information of DefaultApplication should be formalized as model concepts (uml-testing-profile-rtf) Source: Fraunhofer FOKUS (Mr. Marc-Florian Wendland, marc-florian.wendland(at)fokus.fraunhofer.de) Nature: Revision Severity: Significant Summary: UTP specification, section 6.4.2 Test Behavior, subsection DefaultApplication (p.19) say the following: "A default application is a dependency used to apply a default behavior to a unit of testing on a test component. That unit of test behavior must be one of the following: Package, Classifier, Behavior, InteractionFragment, State, Region, or Activity." Additionally, subsubsection Notation says the following: "The notation for a default is identical to a Comment (i.e., a rectangle with a bent corner). The text in the comment symbol has the following syntax: default default-identifier [continue | repeat [repetition-count] ] If nothing is given following the default identifier, continue is assumed. If no repetition-count is given, infinity is assumed." Description ########################################## The information, given in the notation section, determine how to proceed if a applied default is executed. Continue means that the process flow will continue after the behavior of the default was executed once. In contrast, repeat indicates the number of re-invocations of the default, in a case, when a previous execution has not matched. Those information are crucial parts of «DefaultApplication», hence, introducing them just as a remark in the notation section is not enough. Since the continuation information are currently just defined as “textual syntax”, meaning, there are no metamodel concepts for expressing the continuation behavior, it is not clear where (to what property of the extended metaclass “Dependency”) to add these information. Additionally, a parser is required to obtain the information from the text. To easy both the applicability and understandability those information should be part of «DefaultApplication» as property. By doing so, access to the information is easy to get and to evaluate. Resolution: Introduce a repetition attribute that determines the number of repetitions of the default behavior. The default value is unlimited (*). For further formalization a new constraint will be introduced, stating the target of the default application must be a behavior marked as <<Default>>. Revised Text: Replace Figure Replace Figure 6.3 with (notice: Figure number already changed to 7.3 due to resolution of issue 15770) Update Text Add a property repetition of primitive type unlimited natural to «DefaultApplication» Attributes subsection of section DefaultApplication (notice: Attributes section was introduced by resolution of issue 15770) • repetition : UnlimitedNatural [1] = * A possibly unlimited integer value, indicating how often the behavior in the referenced default shall be invoked. Default value is * (unlimited). Update Text Change subsection Semantics of section DefaultApplication from Please refer to the semantics of Default. to A default application relates a default to a unit of test behavior. A unit of test behavior can be one of Package, Classifier, Behavior, InteractionFragment, State or Region. The unit of testing must be related to a test component. Default behavior can be integrated into any situation where the test component expects a particular reaction of the SUT. In case a default is applied to a Package, the default will be applied to each possible unit of testing of each test component either contained directly (child) or indirectly (descendant) in that package. In case a default is applied to an InteractionFragment, the InteractionFragment must cover a lifeline representing a test component. Most likely a default is applied to a subclass of OccurrenceSpecification, representing the reception of a signal or operation call or a reply message (MessageOccurrenceSpecification) on a test component lifeline. The repetition attribute indicates how often the default behavior will be executed, if none of the possibilities stated in the default becomes affected. 0 indicates the default will be executed once (continue), whereas * stands for unlimited repetition (repeat) of the behavior until either one of the possibilities stated in the default become affected, or the execution environment concludes the test case. It is supposed that the execution environment concludes with a Verdict::error, but not restricted to it. Update Constraint Since having both metaclasses (UML::Behavior and UML::Activity) mentioned in the constraint section, change the constraint [1] of subsection Constraints of section DefaultApplication from [1] The default application relates a default to a unit of test behavior. That unit of test behavior must be one of the following: Package, Classifier, Behavior, InteractionFragment, State, Region, or Activity To [1] The client of default application must be one of Package, Classifier, Behavior, InteractionFragment, State, or Region. Update Constraint Alter constraint [2] of subsection Constraints of section DefaultApplication from [2] The multiplicity of clientDependency is restricted to [0..1] to [2] The multiplicity of client of a default application is restricted to [1]. Update Constraint Add a new constraint into subsection Constraints of section DefaultApplication: [3] The supplier of a default application must be a Behavior with «Default» applied. Update Text Change paragraph in subsection Notation of section DefaultApplication from default default-identifier [continue | repeat [repetition-count] ] If nothing is given following the default identifier, continue is assumed. If no repetition-count is given, infinity is assumed. to default default-identifier [repetition] If no repetition-count is given, infinity is assumed. Update Text Change paragraph in subsection Semantics of section Default from The above rule applies when the default is defined as continue which is the situation if nothing is explicitly specified. When the default is defined as repeat, the resulting set of traces is more elaborate since the default portions are repeated a number of times depending on the repetition count of the repeat. To The above rule applies when the default application repetition attribute is set to 0 (called continue). When the default application repetition attribute is greater than 0 (called repeat), the resulting set of traces is more elaborate since the default portions are repeated a number of times depending on the repetition count of the repetition attribute. Disposition: Resolved see page 40 of ptc/2011-07-18 for figures Actions taken: October 22, 2010: received issue October 21, 2011: closed issue Discussion: End of Annotations:===== m: webmaster@omg.org Date: 22 Oct 2010 02:44:24 -0400 To: Subject: Issue/Bug Report ******************************************************************************* Name: Marc-Florian Wendland Employer: Fraunhofer Institut FOKUS mailFrom: marc-florian.wendland@fokus.fraunhofer.de Terms_Agreement: I agree Specification: UML Testing Profile Section: 6.4.2 FormalNumber: formal/05-07-07 Version: 1.0 Doc_Year: 2005 Doc_Month: July Doc_Day: 07 Page: 19 Title: Continuation information of DefaultApplication should be formalized as model concepts Nature: Revision Severity: Significant CODE: 3TMw8 B1: Report Issue Description: Rational ####################################### UTP specification, section 6.4.2 Test Behavior, subsection DefaultApplication (p.19) say the following: "A default application is a dependency used to apply a default behavior to a unit of testing on a test component. That unit of test behavior must be one of the following: Package, Classifier, Behavior, InteractionFragment, State, Region, or Activity." Additionally, subsubsection Notation says the following: "The notation for a default is identical to a Comment (i.e., a rectangle with a bent corner). The text in the comment symbol has the following syntax: default default-identifier [continue | repeat [repetition-count] ] If nothing is given following the default identifier, continue is assumed. If no repetition-count is given, infinity is assumed." Description ########################################## The information, given in the notation section, determine how to proceed if a applied default is executed. Continue means that the process flow will continue after the behavior of the default was executed once. In contrast, repeat indicates the number of re-invocations of the default, in a case, when a previous execution has not matched. Those information are crucial parts of «DefaultApplication», hence, introducing them just as a remark in the notation section is not enough. Since the continuation information are currently just defined as .textual syntax., meaning, there are no metamodel concepts for expressing the continuation behavior, it is not clear where (to what property of the extended metaclass .Dependency.) to add these information. Additionally, a parser is required to obtain the information from the text. To easy both the applicability and understandability those information should be part of «DefaultApplication» as property. By doing so, access to the information is easy to get and to evaluate.