Information Technology Reference
In-Depth Information
order has been displayed on the screen - and we assume that the user has successfully
performed the subsequent reviewing task.
The above principles are deliberately general and informal so that they can be easily
refined and applied in a variety of architectural, composition and variability implemen-
tation scenarios. In a component-based or service-oriented setting, for example, the
mapped code of each task can be associated with existing interfaces or services - or
adapters thereof - which may or may not be used by the process engine or other orches-
tration/composition environment. In an aspect-oriented application, on the other hand,
modularization need not follow task separation. Instead tasks can be written as advice
to be weaved (or not) in appropriate locations in the source code. Later in the paper,
drawing from our case study with the on-line cart system, we show how fulfilling the
above principles turned out to be a very natural process.
3.2
Adding Customization Constraints
The temporally extended goal model with its precedence links is intended to be an un-
constrained and behaviorally rich model of the domain at hand. Indeed, the goal model
of Figure 1 describes a large variety of ways by which the user could go about fulfilling
the root goal, as long as each of these ways is physically possible and reasonable. How-
ever the shop owner may wish to restrict certain possibilities. For example, she may
want to disallow the user to view the prices unless he logs in first or prevent the user
from viewing and/or adding comments, before logging in or in general. She may even
go on to disallow use of the cart, again prior to logging in or even for the entire session.
In the last case, this would effectively imply turning the system into a tool for browsing
products only.
To express additional constraints on how users can achieve their goals we augment
the goal model with the appropriate customization formulae (CFs - frame D in Figure
2). CFs are formulae in linear temporal logic (LTL) grounded on elements of the goal
model. Different stakeholders in different contexts and situations may wish to augment
the goal model with a different set of CFs, restricting thereby the space of possible
plans to fit particular requirements. To construct CFs we use 0-argument predicates such
as useCart or browseItems to denote satisfaction of tasks and goals. These predicates
become (and stay) true once the task or goal they represent is respectively performed
or satisfied. Furthermore, symbols
U
are used to represent the standard
temporal operators always, eventually, next and until , respectively.
Using CFs we can represent interesting temporal constraints that performance of
tasks or satisfaction of goals must obey. Back to our on-line shop example, assume that
the shop owner would like to disallow certain users from browsing the products without
them having logged in first. This could be written as a CF as follows:
¬
,
,
and
login
The above means that, in a use scenario, the task View Basic Product Info ( t 7 ) should
not be performed (signified by predicate viewBasicProductInfo becoming true) before
the task Login ( t 1 ) is performed for the first time (thus, predicate login becoming true).
For another class of users there may be a more relaxed constraint:
¬
viewBasicProductInfo
U
viewPrices
U
login
 
Search WWH ::




Custom Search