As introduced in the section on the PCM’s roles (see section 2.1.2), the domain expert is responsible to model the behaviour of the system’s users. This includes the course of the user’s interaction with the system as well as the data the users exchange with it. The PCM uses the so called UsageModel for this task, which is described in the following subsections. The usage package has been added to the PCM byKoziolek(2008). Hence, a detailed discussion of this extension is given byKoziolek(2008). The following gives a brief summary of the usage package.
3.8.1
Usage Model and Usage Scenarios
A UsageModel serves as container for all interactions with the system. As such it contains a set of UsageScenarios. A UsageScenario is a typical interaction with the system performed by a particular group of users. The semantics of the UsageModel defines that the system’s performance is evaluated under all the scenarios running concurrently. For example, in a web shop, one group of users are customers browsing for and buying products. Another group contains administrative users which maintain product prices, generate reports, or- der supply on low stocks, etc. Administrators access the system not as frequent as cus- tomers do. Hence, the amount of users and thus the frequency of jobs generated by users depends on the usage scenario.
+interArrivalTime 1 1..* +usageScenario +workload 1 +scenarioBehaviour 1 UsageModel UsageScenario Workload OpenWorkload ClosedWorkload ThinkTime InterArrivalTime 1 +thinkTime Scenario Behaviour RandomVariable specification : String population : Integer
Figure 3.17: UsageModel, UsageScenario and Workloads (Becker et al.,2007)
To specify the interaction frequency, each UsageScenario contains a WorkloadSpecifica- tion (see figure 3.17). There are two types of WorkloadSpecifications: OpenWorkloads and ClosedWorkloads. Both workload types have their origins in queueing network theory. However, there are PCM specific adjustments.
OpenWorkloads describe a job arrival process in which users arrive at the system, exe- cute their usage scenario and leave again. The frequency of their arrival is given by the time that passes between two users arriving at the system. This time span is described as random variable in the PCM characterised by an arbitrary stochastic expression. This allows for classical InterArrivalTime distributions like the Poisson distribution as well as arbitrary distribution functions. Note, that OpenWorkloads allow to specify infeasible ar- rival rates, e.g., arrival rates larger than the resulting departure rate.
ClosedWorkloads use a constant number of users which execute usage scenarios, delay their execution to think in order to prepare their next steps and start again. The think time is a random variable described by a stochastic expression which again allows classical distributions as well as arbitrary ones.
Contained in each UsageScenario there is a UsageBehaviour described in the next section.
3.8.2
UsageBehaviour
A UsageBehaviour models the steps executed by a single user in a UsageScenario. Its struc- ture is similar to the SEFF’s structure. However, compared to the SEFF is offers a reduced set of modelling concepts, i.e., it disallows parameter dependencies in control flow an- notations, has no resource demands, no forks, and no acquire or release actions. The reduced complexity is expected to help domain experts in learning the concepts, thus, enabling them to create usage models themselves.
A UsageBehaviour consists of a sequence of UserActions which in analogy to the SEFF’s AbstractActions always form a chain going from a Start to a Stop (notice, the missing Ac-
+actions 0..* 0..1 +predecessor 0..1 +successor +branchedBehaviour 1 0..* +branchTransitions +actualParameterUsage 0..* Scenario Behaviour Abstract UserAction Loop EntryLevel SystemCall VariableUsage Start Stop Branch BranchTransition branchProbability : EDouble 1 +bodyBehaviour Signature +signature 1 ProvidedRole +providedRole 1
Figure 3.18: Different UserActions (Becker et al.,2007)
tion postfix compared to the SEFF’s action names).
The most important action a user can perform is to interact with the system by calling a method in one of the system’s provided roles. This so called SystemEntryLevelCall is the equivalent of an ExternalCallAction in the SEFF indicating a user’s request for service. As in the SEFF the call is blocking until a it returns with a result.
SystemEntryLevelCalls can have input VariableUsages having the same meaning as in ExternalCallActions. However, the random variables characterising the input parameters like NUMBER OF ELEMENTS can not depend on other variables in the usage model. They have to be composed from literals only including literals describing random variables having a certain fixed distribution.
Besides SystemLevelEntryCalls, UserBehaviours can contain control flow constructs. Supported are probabilistic branches in Branch actions and Loops with a random amount of loop iterations. As there are no random variables depending on other variables in the usage model, there are no equivalent actions to GuardedBranchTransitions or CollectionIter- atorActions.
3.8.3
Usage Context
Using the information available in the UsageModel the usage context of the system calls can be derived. Based on this information, the usage context of the system’s inner com- ponents is determined. An analytical approach to this is presented in the PhD thesis by
Koziolek(2008).