reliability of transaction identification in use cases
Context: The concept of transaction is used in Use Case Points (UCP), and in many other functional size measurement methods, to capture the smallest unit of functionality that should be considered while measuring the size of a system. Unfortunately, in the case of the UCP method many different definitions of use-case transaction (and approaches to their identification) have been proposed thus far. Therefore, a question arises whether all of them define the same concept, and do they provide similar results when used by different people. Objective: The goal of this study was to investigate differences and similarities between the existing definitions of use-case transactions that can have an impact on reliability of the use-case-based functional size measurement. Method: A controlled experiment was conducted on a group of 120 students. The independent variable was a technique used for transaction identification (four methods were investigated), while the dependent variable was the number of transactions identified by participants in a use-case-based requirements specification. Results: A significant difference in the median number of transactions was observed between groups using the original Karner's definition, and the definition proposed by Diev, which is based on the elementary process known from Function Point Analysis. In addition, a list of problems influencing intramethod reliability was defined based on the qualitative analysis of the experiment data. Conclusions: It seems that there are two main sources of use-case transactions definitions. The Karner's definition of transaction is based on the concept of use-case transaction proposed by Jacobson -- the inventor of use cases, while the second one proposed by Diev, is based on the elementary process. There are also other methods for transaction identification that follow one of these definitions (e.g. Robiolo and Orosco stimuli-verbs approach). The important observation is that both main definitions of transactions yield different on-average results when used by different people. Therefore, it is important to consistently use only one in order to create a reliable historical database.
use case points functional size measurement use-case transactions